2022年2月24日

摘要: FreeRTOS任务代码中临界段的进入和退出主要是通过操作寄存器basepri实现的。进入临界段前操作寄存器basepri关闭了所有小于等于宏定义configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY所定义的中断优先级,这样临界段代码就不会被中断干扰到,而且实现任务 阅读全文
posted @ 2022-02-24 20:58 tycoon3 阅读(2567) 评论(0) 推荐(0)
摘要: PendSV是可悬起异常,如果我们把它配置最低优先级,那么如果同时有多个异常被触发,它会在其他异常执行完毕后再执行,而且任何异常都可以中断它。更详细的内容在《Cortex-M3 权威指南》里有介绍,下面我摘抄了一段。 OS 可以利用它“缓期执行”一个异常——直到其它重要的任务完成后才执行动 作。悬起 阅读全文
posted @ 2022-02-24 20:31 tycoon3 阅读(685) 评论(0) 推荐(0)
摘要: 宏定义的形式如下: #define 名字 替换文本 这是一种最简单的宏替换 —— 后续所有出现名字记号的地方都将被替换为 替换文本 。 #define 指令中的名字与变量名的命名方式相同,替换文本可以是任意字符串。通常情况下, #define 指令占一行,替换文本是 #define 指令行尾部的所有 阅读全文
posted @ 2022-02-24 18:09 tycoon3 阅读(1008) 评论(0) 推荐(0)
摘要: tos_knl_irq_enter和tos_knl_irq_leave __API__ void tos_knl_irq_enter(void) { if (!tos_knl_is_running()) { return; } if (unlikely(k_irq_nest_cnt >= K_NES 阅读全文
posted @ 2022-02-24 11:39 tycoon3 阅读(124) 评论(0) 推荐(0)

导航