NB-IOT 模块 MT2625 使用总结
MT2625 NB-IOT SOC 应用
基于中移物联网 M5311 模块。
AT 建立 UDP 连接
查询 apn:AT+CGDCONT?
激活 apn
AT+EGACT=1,1,”cmnbiot6”,””,””
其中 cmnbiot6 为查询到的 apn
建立 socket
AT+ESOC=1,2,1
建立连接
AT+ESOCON=0,PORT,”IPADDR”
AT+ESOCON=0,2039,”114.116.144.151” “118.31.15.152”
发送数据
AT+ESOSEND=0,2,3132
断开连接
AT+ESODIS=0
关闭 sock
ARM GCC 库打桩——符号替换
开发中,难免会遇到只有库没有源码的情况,调试的时候,库里的几个函数又非常关键,那我们怎么控制里面的流程呢,并插入自己代码?
这个时候就需要使用 GCC 工具重定义库中的符号,然后在外面包装该函数。
举例一个库:lib_test.a
库中的函数:void hello_test_lib(void);
现在,我们想把库里面的 hello_test_lib 函数替换为 new_hello_test_lib,需要以下步骤:
复制一份 lib_test.a 为 lib_test_bak.a
arm-none-eabi-objcopy lib_test.a lib_test_bak.a
重定义符号
a
python 遍历删除指定格式文件
代码放在自己电脑上总是找不到,那就放到博客里吧。
在做嵌入式开发的时候,总是会生成很多中间文件(如 .o 文件),所有有时候需要去查找删除这样的文件,所以就写了这个一个 python 脚本。
代码假定你将该代码命名为 rm_specifial_file.py。
#!/user/bin/python
#coding:utf-8
import sys, os
import time
# 解决乱码问题
reload(sys)
sys.setdefaultencoding("utf-8")
def recursive_del_files(del_path, del_fil
RT-Thread DHT11 温湿度传感器驱动
分享一个我整理的 DHT11 温湿度传感器驱动 dht11_rtt 软件包
dht11_rtt 是基于 RT-Thread 物联网操作系统实现的 dht11 驱动软件包,该软件包托管在 GitHub,使用 Apache-2.0 协议许可。
dht11_rtt 驱动使用了 RT-Thread Sensor 传感器框架和 Pin 驱动框架,因此在使用的过程中需要开启这两个功能。不过,在使用 RT-Thread 的 menuconfig 进行配置的时候会默认选中 Sensor 和 Pin 设备配置。
简介DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字
RT-Thread Pin 设备驱动框架快速对接
为什么需要 Pin 设备驱动框架
跨平台可移植应用
操作简单
试想下面这个场景:
你基于 STM32 MCU 编写了一个包含很多 GPIO 操作的应用程序,GPIO 控制函数使用的是 HAL 库。后面,由于某种原因,MCU 需要更换,使用的是 NXP 的芯片,不支持 HAL 库,那你怎么办?
通常,你会查找所有 GPIO 操作相关的接口,然后替换成 NXP 提供的 GPIO 驱动函数,如果 GPIO 的编排方式不一样(有的有 GPIOA 这样的分组,有的没有),那就更加的麻烦。这样,你就维护了两个版本的应用程序。
那么,有了 Pin 驱动框架能解决这个问题吗?
当然,Pin 只能解决应用层代
Cortex-M3/4 调试技巧、STM32 调试手段
Cortex-M3/4 一些调试技巧今天主要总结下这段时间在没有 调试器 情况下,解决 bug 的一些辅助调试手段。
在没有 调试器 的情况下,进行代码调试的手段就只有 log 大法,为了能够尽可能详细地输出有用的调试信息,往往我们需要将 调用栈 、R0- R15 寄存器、SCB、中断状态、线程状态等信息打印出来,然后配合 反汇编 进行调试跟踪代码。这会用到一些特殊的函数(内链汇编函数),下面将介绍我用到的汇编函数,这些都基于 GUN GCC 工具链。
获取中断号获取中断号是通过系统控制块 SCB 寄存器来获取,参考如下:
#define SCB_ICSR_VECTACTIVE_Pos