studio建工程,并使能AT组件和Air720出现的一些问题

发布于 2021-02-07 15:23:10

一直使用MDK,看到RT Thread Studio介绍感觉不错,就建立了429的工程,并使能了AT组件,正好有块air724,at指令基本跟720一致,就直接使用了,发现编译时出现了一些错误。

1.第一个错误

../packages/at_device-v2.0.3/class/air720/at_device_air720.c:923:12: error: static declaration of 'air720_reboot' follows non-static declaration

初步定位下来是,上面函数声明没有static关键字修饰,这里函数实现有所以报错
直接修改上面函数声明 加上 static 关键字即可

2.第二个报错

../packages/at_device-v2.0.3/class/air720/at_device_air720.c: In function 'air720_control':
../packages/at_device-v2.0.3/class/air720/at_device_air720.c:982:10: error: 'AT_DEVICE_CTRL_REBOOT' undeclared (first use in this function)

查了下没有定义 AT_DEVICE_CTRL_REBOOT 这里直接把这个case分支给删除了,

3.第三个报错

d:/rt-threadstudio/repo/extract/toolchain_support_packages/arm/gnu_tools_for_arm_embedded_processors/5.4.1/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7e-m/fpu\libg.a(lib_a-sbrkr.o): In function `_sbrk_r':
sbrkr.c:(.text._sbrk_r+0xc): undefined reference to `_sbrk'
collect2.exe: error: ld returned 1 exit status

查了论坛建议使能 libc 组件
然后编译就通过了

4.烧写后运行出错终端显示

[E/at.clnt] AT client initialize failed! Not find the device(uart3).
[E/at.clnt] AT client(V1.3.0) on device uart3 initialize failed(-1).
[E/at.dev] air720 device(air720) initialize failed, get AT client(uart3) failed.

这个就是串口3驱动没打开
直接修改了 board.h 文件
添加了宏

#define BSP_USING_UART3
#define BSP_UART3_TX_PIN       "PB10"
#define BSP_UART3_RX_PIN       "PB11"

5.运行时出现的第二个错误

[E/at.dev] the lte pin is low
thread:air720_ stack overflow
air720_   10  running 0x00000174 0x00000400    100%   0x0000000f -02

线程堆栈溢出
修改 #define air720_LINK_THREAD_STACK_SIZE 1024*2
然后再次编译烧写就正常了,也能ping

有几点疑问?
1.在初始化的过程中,敲终端回车是没有反应的,是不是AT这块线程一直占用卡住其它线程?
2.在ping的过程中输入 ps 命令可以看到很多个 air_720 线程,并且同一个优先级?

查看更多

关注者
0
被浏览
315
4 个回答
李子成
李子成 2021-02-07

第一个问题:应该是你的连接放在了main函数之前执行。默认是这样。使能at设备的在线程中初始化应该就可以了。

Assert
Assert 2021-02-20

使用最新版本(latest)的rtthread就避免了上述一些问题

照您说的配置完成后,也可以ping通但是串口那里一直在刷,这是什么原因啊。不是应该初始化一遍就可以了吗?捕获.PNG

彩虹色
彩虹色 2021-04-01

image.png

我使能at设备的在线程中初始化,没有这么多问题,但是栈始终会溢出,无法解决,有什么好办法吗

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览