单片机移植-FreeRTOS
这个简单了例子是在 MK24FNM0XXX的板子上开发,从芯片官网找源码,添加RTOS,配置一下对应芯片就OK了。
开始初始化的一些配置在文章:MK24FNM0XXX时钟分频配置,启动芯片中。
具体的一些函数作用:(这边没有包括一些队列之内的一些功能)
任务创建API函数:
/*
pxTaskCode:指向任务函数
pcName:任务函数的别名,方便调试
configSTACK_DEPTH_TYPE :任务堆栈的深度,定义了堆栈可以包含的变量数——不是字节数
pvParameters:参数的指针
uxPriority:任务的优先级
pxCreatedTask :回传的一个句柄
*/
BaseType_t xTaskCreate( TaskFunction_t pxTaskCode,
const char * const pcName, /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
const configSTACK_DEPTH_TYPE usStackDepth,
void * const pvParameters,
UBaseType_t uxPriority,
TaskHandle_t * const pxCreatedTask )
挂起某个任务
void vTaskSuspend( TaskHandle_t xTaskToSuspend )
恢复挂起的某个任务
//
void vTaskResume(TaskHandle_t xTaskToSuspend );
任务删除:
void vTaskDelete( TaskHandle_t xTaskToDelete )
任务延时:
//大概20ms延时左右,具体可以实际测量
void vTaskDelay( const TickType_t xTicksToDelay )
更多功能见更多的函数…
下面仅仅是一个hello world,的一个例子
main:
fun: