文章目录
- 
   - 
     - 
       - 
         - 
           - Freertos移植
- TCB控制块
- 中断管理 (内部异常和外部中断)
- 同步互斥与通信
- 消息队列:
- 邮箱:
- 信号量:
- 互斥量:
- 事件组:
- 任务通知:
 
 
- 
           
 
- 
         
 
- 
       
 
- 
     
Freertos移植

-  其核心文件为,tasks.c、timers.c、queue.c、event_groups.c、croutine.c、list.c。源码兼顾了很多平台,但是我们可以删除一些不用的平台以及例程等,只保留我们要的。 
 比如RVDS/ARM_CM3,这表示cotexM3架构再RVDS或Keil工具上的移植文件(比如下图中的port.c、portmacro.h)
 在编程过程中的大部分宏配置都在FreeRTOSConfig.h这个配置文件(调度、优先级、空闲任务等)
-  任务切换基础 
 1、任务间的切换,是利用tick中断实现的(关于这个时间片轮转的时间通过上面提到过的配置文件设置)
 2、stm32+freertos之所以要用到两套timebase(一是freertos的心跳tick (os_tick)
 3、防止在高优先级(优先级高于systick)中断服务中调用HAL_Delay(),导致中断服务忙等待,这样任何优先级低于该中断的中断都得不到服务,当然也包括os的全部调度.BaseType_t xTaskCreate(TaskFunction_t pxTaskCode,//函数指针 const char* const pcName,//任务名字 const configSTACK_DEPTH usStackDepth,//任务栈大小 void * const pv Parameters,//传入任务的参数,通常是指的是任务的参数 UbaseType_t uxPriority,//优先级 TaskHandle_t * const pxCreatedTask);//任务函数句柄 上面是动态创建任务,而静态创建任务是需要自己分配任务堆栈以及TCB控制块大小 Void vTaskDelete(TaskHandle_t xTaskToDelete);//任务句柄 Void



















