首先是背景,我的问题的细节如下:
在我工作的公司,我们使用的平台目前是 Microchip PIC32 系列,使用 MPLAB IDE 作为我们的开发环境。以前,我们还为同一应用编写了 Microchip dsPIC 和 TI MSP 系列的固件。固件非常简单,因为代码分为三个主要模块:设备控制、数据采样和用户通信(通常是用户 PC)。设备控制是通过 GPIO 总线和至少一个需要 SPI 或 I2C 控制的部分的组合来实现的。数据采样是使用定时器模块中断驱动来维持采样频率和更多的 SPI/I2C 和 GPIO 总线来控制采样硬件(即 ADC)。用户通信目前是使用 Microchip 应用程序框架通过 USB 实现的。
所以现在的问题是:鉴于我上面所描述的,我会在什么时候考虑为我的项目使用 RTOS?目前我正在考虑将这些可能的触发点作为使用 RTOS 的原因:
- 代码复杂度? 代码库架构/组织仍然足够小,我可以将所有细节都牢记在心。
- 多任务/线程? 现在,通过中断对模块执行进行时间切片就足够了多任务处理。
- 测试? 目前我们在硬件冒烟测试之后没有做太多的正式测试或验证(我希望在不久的将来纠正)。
- 沟通? 我们目前使用自定义数据包格式和协议,该协议几乎只执行 START、STOP、SEND DATA 命令,数据为二进制 blob。
- 项目范围? 在不久的将来,我们有可能获得一个项目,将我们的设备集成到一个更大的系统中,目标是将该系统投入批量生产。目前我们所有的项目都是实验原型,大约一个月的快速周转,一次生产一两个单元。
您认为我还应该考虑哪些其他问题?根据您的经验,是什么说服(或迫使)您考虑使用 RTOS 而不是仅在基本运行时上运行代码?也非常感谢有关为 RTOS 设计/编程的其他资源的指针。