【简介】
S32K3 系列的芯片FreeRtos 可以作为一个软件包集成到S32DS 工具中来配置使用,软件包的下载可以在如下路径获取(https://nxp.flexnetoperations.com/control/frse/product?entitlementId=179038231&lineNum=1&authContactId=137840707&authPartyId=152468007)
进入后选择和本地的RTD驱动匹配的版本下载,本地使用的RTD 版本为RTD 4.0.0 下载和RTD版本匹配的FreeRtos软件包。
将下载的软件包 安装到S32DS 中
安装后就可以在S32DS 的配置界面中显示OS了,我们添加FreeRtos 插件。
我们使用默认配置更新生成代码后,FreeRtos 依赖的文件已经自动的添加到工程中了。在S32DS 的环境下我们只需要简单的配置就完成了FreeRtos的适配工作,我们编写如下的测试代码,测试FreeRtos 的任务调度功能。
#define START_TASK_PRIO 2 #define START_STK_SIZE 128 TaskHandle_t StartTask_Handler; void start_task(void *pvParameters); #define TASK1_TASK_PRIO 2 #define TASK1_STK_SIZE 128 TaskHandle_t Task1Task_Handler; void start_task1(void *pvParameters); void start_task(void *pvParameters) { (void)(pvParameters); while(1) { vTaskDelay(500); printf("task 1 \r\n"); } } void start_task1(void *pvParameters) { (void)(pvParameters); while(1) { vTaskDelay(1000); printf("task 2 \r\n"); } } void main(void) { xTaskCreate((TaskFunction_t )start_task, (const char* )"task1", (uint16_t )START_STK_SIZE, (void* )NULL, (UBaseType_t )START_TASK_PRIO, (TaskHandle_t* )&StartTask_Handler); xTaskCreate((TaskFunction_t )start_task1, (const char* )"task2", (uint16_t )TASK1_STK_SIZE, (void* )NULL, (UBaseType_t )TASK1_TASK_PRIO, (TaskHandle_t* )&Task1Task_Handler); vTaskStartScheduler(); }
运行后发现任务已经按照预期的进行调度了。