前言
因为项目需求的更新,最近一直在做将裸机项目移植成RTOS,准备记录这个过程,慢慢尝试,慢慢总结。
项目技术栈盘点:
- 内部和外部flash读写
- eeprom的读写
- GPIO
- 读取传感器数据(主要是SPI和I2C)
- 音频调试(PCM、TDM)
- 网卡(物理层和数据链路层)
- lwip协议栈(传输层、网络层)
- mqtt协议(应用层)
- boot loader
- 固件升级(串口传输固件包和网络传输固件包)
一、关于RTOS的选用
Cortex-M处理器在设计之初就考虑了对OS的支持,它的架构实现了多个特性,保证了OS设计的方便和搞笑。常见或常用的嵌入式OS或RTOS如下:
目前使用比较广泛的开源免费的:μC/OSⅢ、FreeRtos
还有一款近期流行的:RT-thread
以上三款RTOS网上的资料比较多,项目示例也不少,但是我选择了RTX。
主要有两方面的原因:
1、RTX设计的非常强劲,将基于Cortex-M3/M4架构的ARM芯片性能发挥到极致,比如那个零延迟中断特性。而且在任务切换等性能测试方面完爆其它RTOS。
2、RTX由keil公司设计,在keil并入ARM公司后,keil这个IDE已经支持在MDK5的RTE开发环境中简单的鼠标点两下,就能实现配置RTX5的环境,非常简单方便,见下图。并且RTX5调试组件也很强大,可以方便的实时查看RTX5的运行状态,还带有官方的参考资料,在KEIL MDK安装目录里面,可直接打开目录中的index.html(官网在线手册,可能访问会较慢)。
二、用RTX5创建第一个工程
关于RTX5的配置文件config.h文件介绍,见另一篇博客:ARM keil自带的RTOS-RTX5,这里就不过多介绍。
待更新。。。