UCOS创建任务出现问题

andylao62 andylao62 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
问题:有6个任务
定义
#define Main_Task_STK_SIZE 1024*5

#define DATA_SAVE_STK_SIZE 1024*5

#define MAP_PRO_STK_SIZE 1024*1

#define KEY_PRO_STK_SIZE 1024*5

#define A_PRO_STK_SIZE 1024*5

#define G_DATA_STK_SIZE 1024*5




#define Main_Task_PRIO 6
#define DATA_SAVE_PRIO 10
#define MAP_PRO_PRIO 8
#define KEY_PRO_PRIO 3
#define A_PRO_PRIO 6
#define G_DATA_PRIO 6


OS_STK TaskStartStk[];
OS_STK Main_TaskStk[];
OS_STK DATA_SAVEStk[];
OS_STK MAP_PROStk[];
OS_STK KEY_PROStk[];
OS_STK A_PROStk[];
OS_STK G_DATAStk[];



任务创建
OSTaskCreate(A_PRO, (void *)0,(void *)& A_PROStk[A_PRO_STK_SIZE-1],A_PRO_PRIO);
OSTaskCreate(G_DATA, (void *)0,(void *)& G_DATAStk[G_DATA_STK_SIZE-1],G_DATA_PRIO);



OSTaskCreate(Main_Task, (void *)0,(void *)& Main_TaskStk[Main_Task_STK_SIZE-1],Main_Task_PRIO);
OSTaskCreate(DATA_SAVE, (void *)0,(void *)& DATA_SAVEStk[DATA_SAVE_STK_SIZE-1],DATA_SAVE_PRIO);
OSTaskCreate(MAP_PRO, (void *)0,(void *)&MAP_PROStk[MAP_PRO_STK_SIZE-1],MAP_PRO_PRIO);
OSTaskCreate(KEY_PRO, (void *)0,(void *)&KEY_PROStk[KEY_PRO_STK_SIZE-1],KEY_PRO_PRIO);

当先创建A_PRO任务时,就不能进入G_DATA这个任务(但是如果修改A_PRO的优先权为8时,就能进入G_DATA这个任务);反过来就不能进入A_PRO这个任务。而其他任务创建先后,及优先级对这两个任务均没有影响。
void A_PRO (void *data)
{

data = data;


while(1)
{
OSTimeDlyHMSM(0, 0, 1, 0);
//Beep();//1 通过响声,或者断点来判断是否进入任务 //Beep();//1
}
}

void G_DATA (void *data)
{


data = data;


while(1)
{
OSTimeDlyHMSM(0, 0, 1, 0);
Beep();//1 通过响声,或者断点来判断是否进入任务
}
}



...全文

相关推荐

基于ucos-ii的哲学家就餐问题

在UCOS-II上解决这个问题,首先需要理解UCOS-II的内核机制,包括任务的创建、任务间的通信(信号量、消息队列等)以及调度策略。

wangyexue

UCOS II在MSP430F149上的移植及多任务实例实现

在现代计算领域中,操作系统扮演着至关重要的角色。它作为硬件与软件之间的桥梁,负责管理系统资源、提供用户界面、执行应用程序,并确保系统的稳定和安全运行。UCOS II,作为一款专为嵌入式系统设计的实时操作系统(RTOS),具有高度的可裁剪性和可配置性。其微内核设计允许开发者根据应用需求定制系统的功能,使其在资源受限的嵌入式环境中十分流行。MSP430F149是德州仪器(Texas Instruments)公司生产的一款高性能16位微控制器,它属于MSP430系列。

csp1223

ucos.rar_ucos_ucos 44b0x

中断处理:移植过程中,需要将UCOS的中断处理函数与44B0X的中断向量表相结合,确保中断能够正确触发和响应。5. 任务创建:根据应用需求,创建UCOS的任务,并配置各个任务的优先级和堆栈大小。6.

alvarocfc

ucos多任务程序实例 及其切换原理简析

同时,了解任务切换的机制有助于避免死锁和优先级反转等问题,确保系统的稳定运行。

大磊大

stm32单片机UCOS操作系统学习代码,创建2个任务.rar_stm32单片机UCOS操作系统学习代码_创建2个任务

此外,还可以深入理解UCOS如何管理和调度任务,以及如何处理任务间的同步问题。对于想要深入掌握STM32和UCOS的开发者来说,这是一个很好的起点,通过实践和调试,能够更好地理解和应用RTOS的原理。

weixin_42651887
评论 3
收藏 已收藏
分享
返回顶部
andylao62
其他硬件开发 2,432 成员 4,281 内容