## RTOS

 Timebase Source为什么不可以使用滴答定时器呢？

        在FreeRTOS中我们的SysTick定时器被用于了我们的始终基准，它用来实现我们的任务切换，我们的SysTick定时器每次触发我们的中断（默认是一毫秒，可以自行修改为其他值）

Timebase Source是干嘛的呢？

        简单的说，正常裸机开发中我们的SysTick定时器是用来主要是用来进行我们的HAL_Delay()延时的，使用其作为基准，前面我们说了SysTick定时器被用于系统任务切换了，所以它就是一直在工作，或者说一直在触发中断，这样的话我们的HAL_Delay()就需用使用我们的其他定时器（TIM2）进行替代其作用了

系统中断的替换
在FreeRTOSConfig.h中添加#define xPortPendSVHandler PendSV_Handler 
在FreeRTOSConfig.h中添加#define xPortSysTickHandler SysTick_Handler
在FreeRTOSConfig.h中添加#define vPortSVCHandler SVC_Handler
 
第一步：准备一个STM32工程，这里工程越简洁越好
 第二步：准备好工程后，创建一个FreeRTOS文件夹
 第三步：打开刚才下载好的稳定版本文件，路径：FreeRTOS-LTS\FreeRTOS\FreeRTOS-Kernel将里面内容复制出来
 第四步：将内容粘贴到工程中得FreeRTOS文件中
    为了简洁好看，我们在创建个source文件夹把这些.c文件放到这里面
    现在FreeRTOS源码被我们分成了三个目录，分别是①include目录；②portable目录；③source目录

这里 分析一下 FreeRTOS源码结构，①和③包含的是FreeRTOS核心功能源文件及头文件 .c和.h，这两部分的文件试用于各种编译器和处理器，是通用的，基本不需要修改，②为需要移植修改的目录，这与编译器和所使用的CPU有关，属于RTOS硬件接口层。
 
 ***软件到硬件中间必须有一个桥梁，portable 文件夹里面的东西就是 FreeRTOS***
 MemMang 选一个  
 RVDS 依据编译器，选择  port，保留FreeRTOS/portable/RVDS文件夹中的ARM_CM3文件夹
 依据编译器，选择  port
 FreeRTOS-Kernel/portable/GCC/ARM_CM3/

 缺少 FreeRTOSConfig.h 文件
 在demo目录下找到对应内核目录下的demo(可能是其它MCU，不要紧)拷贝一个FreeRTOSConfig.h文件到本地source\FreeRTOS\include目录内