rtt15天入门笔记(第五讲中端和临界区保护)

rtt15天入门笔记(第五讲中端和临界区保护)

临界区和临界区资源概念

在一个系统中访问公共资源的代码,特点某一时刻只有一个任务能调用它
任务1
unint32_t value
funca
{
value++;
value+=10;
}
-------------------
任务2
funcb
{
value++;
}
如果不将funca1放入临界区中那么value将+12,将funca1放入临界区中那么value将+11

进入临界区的两种方式

方式一:rt_enter_critical()(只是禁止任务调度)和rt_exit_critical()
方式二:rt_hw_interrupt_disable();(禁止任务调度并且关闭所有中断)和rt_hw_interrupt_enable();

使用临界区注意事项

临界区中的代码不要过多占用时间

rtt中断服务程序如何写

rtt写中断服务程序虚加入一组api:rt_interrupt_enter()(通知rtt进入中断状态);和rt_interrupt_leave();(通知rtt离开中断状态)

你可能感兴趣的:(rtt15天入门笔记(第五讲中端和临界区保护))