【简介】
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();
}运行后发现任务已经按照预期的进行调度了。

我要赚赏金
