uC/OSⅡ源码学习笔记

最近在图书馆借了一本书,叫做《uC/OSⅡ标准教程》,对uC/OSⅡ的源码进行了详尽的分析,感觉很受用。算是C和数据结构知识的一次实战吧。

1、实时系统不允许时间过长的中断,更不允许在中断里新建任务。比如uC/OSⅡ。

2、如果要编写可重入函数,则一定不能直接在程序中修改全局数据。如果一定要使用全局变量,则必须使用系统提供的临界状态处理办法禁止中断。

3、进入临界状态在uC/OSⅡ中有三种管理办法:

1:仅仅使用简单的禁止/使能中断的汇编指令来实现宏OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL。这存在一个问题,无论进入临界状态时中断管理方式如何,在退出临界状态时都是开中断的。

2:将中断前的状态入栈,退出临界状态时,将数据出栈。这样可以保证进入和退出临界状态的时候对中断管理的方式一致,但是这样的方式存在出栈和入栈的操作,占用了一定的系统时间。

3:将CPU的状态寄存器的值保存在临界变量cpu_sr中,这个临界变量在所有函数中都会被分配空间,然后禁止中断。退出临界状态时,将从该临界变量中回复CPU的状态寄存器值。这种处理方法效率较高。但要求CPU必须有状态寄存器。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值