高级会员
- 积分
- 507
- 金钱
- 507
- 注册时间
- 2015-2-11
- 在线时间
- 121 小时
|
5金钱
照着原子的freertos移植到另外一块板子,开两个任务,其中只能运行一个。[mw_shl_code=applescript,true]#define START_TASK_PRIO 1
#define START_STK_SIZE 128
TaskHandle_t StartTask_Handler;
void start_task(void *pvParameters);
#define LED1_TASK_PRIO 2
#define LED1_STK_SIZE 100
TaskHandle_t LED1Task_Handler;
void led1_task(void *pvParameters);
#define LED2_TASK_PRIO 3
#define LED2_STK_SIZE 100
TaskHandle_t LED2Task_Handler;
void led2_task(void *pvParameters);[/mw_shl_code]
[mw_shl_code=applescript,true]//创建开始任务
xTaskCreate((TaskFunction_t )start_task, //任务函数
(const char* )"start_task", //任务名称
(uint16_t )START_STK_SIZE, //任务堆栈大小
(void* )NULL, //传递给任务函数的参数
(UBaseType_t )START_TASK_PRIO, //任务优先级
(TaskHandle_t* )&StartTask_Handler); //任务句柄
vTaskStartScheduler(); //开启任务调度[/mw_shl_code]
[mw_shl_code=applescript,true]//开始任务任务函数
void start_task(void *pvParameters)
{
taskENTER_CRITICAL(); //进入临界区
//创建LED1任务
xTaskCreate((TaskFunction_t )led1_task,
(const char* )"led1_task",
(uint16_t )LED1_STK_SIZE,
(void* )NULL,
(UBaseType_t )LED1_TASK_PRIO,
(TaskHandle_t* )&LED1Task_Handler);
//创建LED2任务
xTaskCreate((TaskFunction_t )led2_task,
(const char* )"led2_task",
(uint16_t )LED2_STK_SIZE,
(void* )NULL,
(UBaseType_t )LED2_TASK_PRIO,
(TaskHandle_t* )&LED2Task_Handler);
vTaskDelete(StartTask_Handler); //删除开始任务
taskEXIT_CRITICAL(); //退出临界区
}[/mw_shl_code]
任务函数就是LED闪亮,就只有一个LED闪。
|
最佳答案
查看完整内容[请看2#楼]
找到问题了,自己移植原子的,没用的sys文件,函数调度出现问题了,后面改用FreeRTOS的sysTick就正常了。
|