这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 行业应用 » 汽车电子 » 【S32K3XX】S32DS 环境下 FreeRtos 适配使用

共1条 1/1 1 跳转至

【S32K3XX】S32DS 环境下 FreeRtos 适配使用

高工
2025-09-17 17:54:53     打赏

【简介】

S32K3 系列的芯片FreeRtos 可以作为一个软件包集成到S32DS 工具中来配置使用,软件包的下载可以在如下路径获取(https://nxp.flexnetoperations.com/control/frse/product?entitlementId=179038231&lineNum=1&authContactId=137840707&authPartyId=152468007

image.png

进入后选择和本地的RTD驱动匹配的版本下载,本地使用的RTD 版本为RTD 4.0.0 下载和RTD版本匹配的FreeRtos软件包。

image.png

将下载的软件包 安装到S32DS 中

image.png

安装后就可以在S32DS 的配置界面中显示OS了,我们添加FreeRtos 插件。

image.png

image.png

我们使用默认配置更新生成代码后,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();
}

运行后发现任务已经按照预期的进行调度了。

image.png



共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]