当前位置: 代码迷 >> 单片机 >> ucos II中如何避免有不可中断时间的任务调度?
  详细解决方案

ucos II中如何避免有不可中断时间的任务调度?

热度:223   发布时间:2016-04-28 15:46:27.0
ucos II中如何处理有不可中断时间的任务调度???
最近在做IC卡读写模块系统移植时,遇到有点麻烦的问题。IC卡的读写命令发出去不能被打断,否则发送失败或是丢掉了数据的接收,而这个时间有可能达到9ms,而我的Tick时间由于其他模块又被迫降到了1ms,这个就头大了呀?求教呀!

------解决方案--------------------
为什么不能被打断啊?,读写时段时间的中断应该是没问题的

我用KEIL的RTX读一器件时,偶尔会出错,后来读之前把任务调度关掉,读完后再打开就没事了,没任务调度下就一个定时器扫描按键的中断,很快对读写操作没有影响
------解决方案--------------------
关中断,禁止调度
------解决方案--------------------
IC卡的读写命令发出去不能被打断,否则发送失败或是丢掉了数据的接收,而这个时间有可能达到9ms,而我的Tick时间由于其他模块又被迫降到了1ms,这个就头大了呀?

、、、、、、、、、、、、
如果只是某一单一接口有这个要求的话

可以考虑是不是用一个专门的硬件定时器来实现这个延时读写接口?

以这样来保障实时系统的综合实时性

该硬件定时器与系统中任务的通信,可以采用信号量、消息邮箱等方式
------解决方案--------------------
关中断并且禁止任务调度
------解决方案--------------------
读写卡任务设为最高优先级,并且在读写卡时禁止中断。
不过这样的话如果一直在读写卡,那么其他任务也就无法运行了,~~