现在的位置: 首页 > 综合 > 正文

ucos容易错误的地方

2018年08月26日 ⁄ 综合 ⁄ 共 553字 ⁄ 字号 评论关闭

1、在ucos中断中,如果没有调用操作系统的服务函数(如发送信号量等),则在中断中,不需要要调用才做系统的“进入中断”函数OSIntEnter(),和“退出中断”函数OSIntExit();见周航慈的P125和P75页。

2、关于互斥信号量得核心,是在使用呼哧信号量进行资源同步的时候,任何任务一旦获得共享资源,就可以一直使用到不需要为止,其他任务优先级再高也不能剥夺使用权。因为OSMutexCreate()传递了PIP参数,提升了使用者的优先级,这样可以防止优先级的反转。同时,在定义任务优先级的时候,尽量不要连续,这样有利于PIP参数的选择。

3、在没有行为同步要求的前提下,当传输的数据量不大时,采用全局变量并配合关中断的资源同步措施是一种经济有效的办法,例如时钟RTC,一直在产生时钟,需要的时候去读取即可。

4、消息邮箱。对于要传递的消息,如果是局部变量,则不能被删除,否则局部变量边没有了。在ISR使用局部变量肯定是不行的,因为中断结束,局部变量就没有了。

对于ISR可靠发送消息,有三种办法:1、将消息保存在全局变量中。但是变量定义与ISR代码分离,程序可读性降低。2、将消息保存在ISR的静态局部变量中,见周航慈P155的方法,使用static 3、将消息内容冒充指针发送 见周航慈P157,比较麻烦

抱歉!评论已关闭.