RT-Thrdad中临界段的作用
什么是临界段:
临界段是程序在执行时的一段不受干扰的代码执行时间,当进入临界段的时候,其他中断和高优先级的线程无法打断临界段代码的执行,因此,临界段经常会用于有时序的程序,比如I2C,USART等。
例如要重定义串口的rt_kprintf函数的时候,就需要用到临界段:
void rt_hw_console_output(const char *str)
{
rt_enter_critical();
while(*str != '\0')
{
if(*str == '\n')
{
USART_SendData(USART2,'\r');
while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)