完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
移植FreeRTos后,参建开始任务后,不能进入滴答定时器中断,同时也不能进入其他函数。屏蔽后,可以进入滴答定时器中断。
//任务优先级 #define START_TASK_PRIO 1 //任务堆栈大小 #define START_STK_SIZE 128 //任务句柄 TaskHandle_t StartTask_Handler; //任务函数 void start_task(void *pvParameters); //任务优先级 #define LED0_TASK_PRIO 2 //任务堆栈大小 #define LED0_STK_SIZE 50 //任务句柄 TaskHandle_t LED0Task_Handler; //任务函数 void led0_task(void *pvParameters); //任务优先级 #define LED1_TASK_PRIO 3 //任务堆栈大小 #define LED1_STK_SIZE 50 //任务句柄 TaskHandle_t LED1Task_Handler; //任务函数 void led1_task(void *pvParameters); int main(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置系统中断优先级分组4 LED_Init(); //初始化LED delay_init(50); //延时函数初始化 RS232_SET_Init(25,9600); //RS232_printf("nihaorn"); //uart_init(115200); //初始化串口 //创建开始任务 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(); //开启任务调度 } //开始任务任务函数 void start_task(void *pvParameters) { taskENTER_CRITICAL(); //进入临界区 //创建LED0任务 xTaskCreate((TaskFunction_t )led0_task, (const char* )"led0_task", (uint16_t )LED0_STK_SIZE, (void* )NULL, (UBaseType_t )LED0_TASK_PRIO, (TaskHandle_t* )&LED0Task_Handler); //创建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); vTaskDelete(StartTask_Handler); //删除开始任务 taskEXIT_CRITICAL(); //退出临界区 } //LED0任务函数 void led0_task(void *pvParameters) { while(1) { LED0=~LED0; vTaskDelay(500); LED0=1; } } //LED1任务函数 void led1_task(void *pvParameters) { while(1) { /* LED1=0; vTaskDelay(200); LED1=1; vTaskDelay(800);*/ LED1 =1; } } |
|
相关推荐
5个回答
|
|
|
已解决。但是现在能进入start_task(),进不了led0_task()和led1_task()
|
|
|
|
|
|
我也遇到同样的问题 移植后 不能任务调度 LED1和LED2不能切换
|
|
|
|
|
|
你的浮点测试任务能执行吗?我的浮点 测试任务能执行,灯不切换,灯显示是绿色
|
|
|
|
|
|
这是动态内存创建任务的方法,很可能是你的动态内存函数相关问题(没有SDRAM或者RAM没有初始化堆)导致的。试试用静态任务创建方法。
|
|
|
|
|
|
如果不想用静态方式,用动态的方式就需要把configTOTAL_HEAP_SIZE 配置的大一些,不然任务不能成功创建。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1018 浏览 1 评论
1849 浏览 0 评论
1830 浏览 1 评论
3254 浏览 5 评论
3581 浏览 9 评论
1021浏览 1评论
1850浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1360浏览 1评论
1852浏览 0评论
1178浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 03:42 , Processed in 0.669682 second(s), Total 82, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2737