有没有专门针对 Cortex-Mx 系列的RTOS?
各位大侠,UCOS FreeRtos RTT 等等 RTOS 的应用范围很广,有没有充分利用 Cortex-Mx 芯片特点的针对 CMx 系列的RTOS? rtt 对,RT-thread 不错~~ COOS freertos,rtt,ucos 这些通用型RTOS确实不错,但有个缺点,在中断中如果要给任务/线程发通知,它们要关闭全局中断,我目前的应用比较特殊,有点类似交换机:三个高速串口,一个以太网口,不知道是不是我不会用,上面三个RTOS移植过来经常串口丢失数据,如果不用RTOS就不会丢失数据,但不用RTOS应用层设计很麻烦. uclinux!照这样发展下去m4上面用uclinux还是不错的! uclinux NCOS。http://ncos.sourceforge.net/ 没想到这么多os了 不知道加硬件FIFO或者DMA能否解决 一个是用DMA之类的方法,这样可以解决关中断引起的高频率读数的丢数问题。缺点是数据处理的实时性有所降低;对不等长报文的处理也有点麻烦。
用带有源代码的RTOS,不一定需要关全局中断。如果小心设计中断服务代码,是可以留一些中断不关的。
具体情况具体分析了。 cortex-m这么高的速度(相对于串口一个字节的时间)还能丢数据,那肯定是程序设计不合理,跟RTOS关中断关系不大。 一个是用DMA之类的方法,这样可以解决关中断引起的高频率读数的丢数问题。缺点是数据处理的实时性有所降低;对不等长报文的处理也有点麻烦。
用带有源代码的RTOS,不一定需要关全局中断。如果小心设计中断服务代码,是可以留一些中断不关的。
具体情况具体分析了。
===================================
这个是比较靠谱的说法,目前正考虑降低串口速率,换来数据通讯的可靠性. 回复【4楼】zf8848
-----------------------------------------------------------------------
1.通用型的RTOS应用中只用多任务功能就可以了.信号通知信箱什么的都关掉.鸡肋功能.
根据自己的需求自行实现...可以用查询方式实现...
2.串口接受数据的时候关掉你先关掉中断.让OS切不出去.空一拍...传输完了再打开... 回复【13楼】adce
回复【4楼】zf8848
-----------------------------------------------------------------------
1.通用型的rtos应用中只用多任务功能就可以了.信号通知信箱什么的都关掉.鸡肋功能.
根据自己的需求自行实现...可以用查询方式实现...
2.串口接受数据的时候关掉你先关掉中断.让os切不出去.空一拍...传输完了再打开...
-----------------------------------------------------------------------
信号通知信箱不就是同步多任务的吗?屏蔽掉了你怎么实现多任务功能?
严重怀疑你的RTOS是跟体育老师学的。 zf8848 发表于 2012-1-10 11:00 static/image/common/back.gif
freertos,rtt,ucos 这些通用型RTOS确实不错,但有个缺点,在中断中如果要给任务/线程发通知,它们要关闭全局中 ...
如果你担心关中断问题,那你可以看看那些内核具体会关多长时间的中断。
首先计算你每个字符需要多长时间。即使串口中断和任务调度中断同使到达,那么任务调度中断之后留给串口中断的时间是不是够?在下一个字符到达之前和任务调度中断之前串口isr是不是能处理完?
adce 发表于 2012-2-2 12:34 static/image/common/back.gif
回复【4楼】zf8848
-----------------------------------------------------------------------
搞笑呢?
RTOS = 实时操作系统
对付数据流输入可以建一个高优先级线程,内容很少,就是接受RX中断发出的信号量,然后把UART DR的数据存入message queue做成的FIFO,
剩下事情的CPU空闲出来自然能够得到处理。 djyosV1.0.0β版本即将发布。
有电力系统用户在cortex-M0(LpC1225)上实现2.5M baud通信不丢数据,不知适合你的要求不。 好久没有看到 djyos 的消息了啊 您的os gui 怎么样了 我都一直以为RT-thread 就是RTT keil自带的RL_ARM,但是不喜欢Keil,还是IAR更好使一些。
另外,ucLinux是OS,不是RTOS,没有实时性。 RTT就是rt-thread吧? ucosIII就是专门针对arm11及cortexM3优化的,很多函数在arm9上效率很低。
其他一些系统都是通用型的,只在移植时做了专门优化。
在 cortex-m3 上,一个好的 RTOS 设计,完全可以做到在 RTOS 自身的代码中不关中断(全局,指限制 BASEPRI 和 PRIMASK 寄存器),例如,keil MDK 自带的 RL-RTX 就是。
页:
[1]