
接触操作系统也有一两年了,最开始接触的是freertos,还是在学校实验室,做的产品是工业控制器,当时弄这个主要是觉得整个工程的业务太多,又有以太网通信,又有485通信,加上数据的打包解析,以及IO输入输出什么的,如果用裸机,那个main函数里面一堆东西,也不好处理,于是就用上了freertos 选择freertos的原因也很简单,cubemx里面自带了嘛,不用费时间移植了 当时用的MCU是STM32F407来着,还带了一块外部RAM,因为RAM大,所以所有任务的堆栈都往大了分配,其实根本用不了那么多 后来出来工作,第一个项目就是给一个前面同志写好的裸机工程移植个ucos,刚接手这个工程的时候也是很那啥的,一个main函数,里面一大堆if,实现各个业务的优先级,看到都晕,后来慢慢将一个个业务拉出来,放到一个个task里面,然后直接用RTOS自带的优先级,看起来就美观很多 总结这两年用RTOS的一点经验吧,一就是用RTOS的时候框架要搭好,哪些业务可以放一起哪些要分开,要考虑好,二就是上锁的时候要谨慎,写加锁的同时一定要写好解锁的函数,不然后面排查起来就辛苦了 |