ucos容易错误的地方

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

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

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

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

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值