前言
以前没接触过Rt,也没用过实时操作系统,所以板子到手,不如何进行学习。
幸亏官方资料多,教程也多,我等小白有持续了解学习的途径。经过几天努力,初步了解了如何编译和下载程序,具体细节留待以后继续研究。
编译源码
RT接口文档,使用doxygen格式处理,查阅接口方便。
支持的编译环境有mdk5,IAR,Gcc。
Env工具是必不可少的.
一个工具包含共建工具和gcc编译环境。
命令:scons —target=mdk5,生成mdk工程,到mdk ide中编译。
命令:scons,直接使用内置gcc编译,编辑代码可以使用vscode,编译成果上右键发送到板子虚拟盘。这是我使用的方式。
当然最省心省力的还是官方工具:RT-Thread Studio。
系统相关
系统启动流程 rtthread_startup
rt_hw_board_init();
rt_show_version();
rt_system_timer_init();
rt_system_scheduler_init();
rt_system_signal_init();
rt_application_init();
rt_system_timer_thread_init();
rt_thread_idle_init();
rt_hw_spin_lock(&_cpus_lock);
rt_system_scheduler_start();
初始化宏
板子信息
开发版使用一颗Nuvoton M487JIDAE MCU,具有浮点运算单元和DSP扩展,有运动传感器和wifi连接。提供了几个借口和连接器用于扩展,包括Arduino Uno、 mikroBUS、I2C等。512K的Flash,160K的SRAM。背面可看到wifi模块,sd卡槽,音频3.5插口
申请项目为测试板子wifi模块。Wifi功能模块使用at协议,at协议分为客户端和服务端。本项目使用at客户端发送请求和数据。
硬件接口一般使用UART和SPI串口通讯。下图可见Iot-487使用UART方式。
测试成果
demo中增加两个函数,file4k、send4k
暴露命令udpclient、file4k、send4k,
Udpclient命令简单测试udp客户端发送20个字节数据,效果如下
file4k命令用来本地生成4k文件。send4k固定间隔发送4k数据。
Udp服务端,接受udp数据,效果如下图
10ms间隔,发送4k数据,服务端接收数据效果如下图
速度大概10KB/s,刚好和串口的默认波特率能够匹配上。
总结
测试过程中发现个问题,发送4k数据测试网络长时间发送数据稳定,reset按钮重启板子后wifi模块失效,打印timeout错误,重插数据线恢复正常,如下图
如理解错误或者测试错误,请见谅和批评指正,万分荣幸。
附件是项目代码。
原作者: 悠悠海
|