[Raw-OS] 关于raw-os中的最大关中断为0us的特性砍掉!

jorya_txj   2015-10-18 12:28 楼主
raw-os中的最大关中断为0us的特性已经维护了2年多的时间,由于这个特性对中断的设计要求高,而且在极端的情况下可能存在动态的不稳定性(取决于中断的设计)主要表现为中断缓存的队列可能会爆掉,此种情况虽然能解决,但是对使用者要求很高。所以这个特性从此砍掉!

值得一提的是最新的ucos 3也把最大关中断为0us的特性标示为过时的特性,不再推荐给新设计使用,所以这一点上是达到共识的,有些路只有走过,思考过,才会知道是否是合适的。如果系统存在高实时性的中断怎么办?比如马达控制等应用场合,这种情况下只要把内核开关中断的移植改为控制中断优先级的门限即可,具体的移植参考lpc4357的移植,也可以参考freertos以及qp的不关中断的移植方法。

最后一提的是对于rtx的系统来说也存在一样的问题,中断缓存的queue会在某些极端情况下爆掉(取决于系统中断的复杂情况)。所以不推荐使用rtx用在新的产品设计上。

最新的内核代码以及移植文件已经上传网站: www.raw-os.org  建议升级并使用。






回复评论 (5)

分享铸就美好未来。。。
点赞  2015-10-18 19:22
把内核开关中断的移植改为控制中断优先级的门限

所有的rtos都可以么?
点赞  2015-10-20 22:40
引用: ljt8015 发表于 2015-10-20 22:40
把内核开关中断的移植改为控制中断优先级的门限

所有的rtos都可以么?

所有的rtos都是可以的。
点赞  2015-10-21 13:25
请问“把内核开关中断的移植改为控制中断优先级的门限”有移植的例子吗?
点赞  2015-10-22 12:16
引用: wxfzy 发表于 2015-10-22 12:16
请问“把内核开关中断的移植改为控制中断优先级的门限”有移植的例子吗?

和具体的cpu以及芯片绑定的很密切,比如:
在m3,m4上可以下面做

#define QF_INT_DISABLE()    __set_BASEPRI(QF_BASEPRI)
#define QF_INT_ENABLE()     __set_BASEPRI(0U)
点赞  2015-10-23 13:00
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复