5.资源管理

    • 资源管理:
      • 各种资源共享方法优劣:

    • 创建临界区方法:
      • 关中断:
        • OS_CFG_ISR_POST_DEFERRED_EN0时,系统以关中断保护临界区;
        • CPU相关函数,而非系统函数,具体在cpu.h文件内;
        • 具体步骤:
          • 临界区前先调用CPU_SR_ALLOC()宏,以分配存储空间存储当前CPU中断状态,具体被存在任务栈内的局部变量CPU_SR内;
          • CPU_CRITICAL_ENTER()将中断标志位存在之前分配空间内,屏蔽可屏蔽中断;
          • 访问临界区的资源,此时的操作即被认为是“原子的”;
          • CPU_CRITICAL_EXIT()恢复之前存储的中断标志位;
        • 说明:
          • 关中断和开中断两个宏必需成对使用,关中断会导致中断延迟时间,影响系统的实时响应;
          • 此种方式是任务和中断服务程序共享变量和数据结构的唯一方法;
          • OS_CRITICAL_ENTER()内调用的是CPU_CRITICAL_ENTER()宏;OS_CRITICAL_EXIT()OS_CRITICAL_EXIT_NO_SCHED()宏;而这些宏用户不应直接访问;

     

    • 禁止任务调度:
      • OS_CFG_ISR_POST_DEFERRED_EN1时,系统尽量以调度器上锁来保护;
      • 具体步骤:
        • 先调用OSSchedLock(&err)关闭任务调度;
        • 访问临界区的代码;
        • 再调用OSSchedUnlock(&err)打开任务调度;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值