UCOSII在运行时进入了OS_TaskIdle的问题

发布者:数字冒险最新更新时间:2015-09-21 来源: eefocus关键字:UCOSII  OS_TaskIdle 手机看文章 扫描二维码
随时随地手机看文章
目前正在用ucosii跑几个小任务,还算稳定。由于接触ucosii时间并不太长,所以出了问题还是会在系统上找问题。

int main(void)


INT8U ret = 0;

IOInit(); //外设功能初始化
OSInit(); //uCOS-II系统初始化 

ret = OSTaskCreate( MY_Task, //初始化任务
(void*)0, //无参数
&Start_TaskStk[APP_TASK_STK_SIZE-1], //任务堆栈大小为128*4Byte
PRIO_START_TASK); //优先级最高


OSStart(); //开始任务调度
return 0;
}
void MY_TASK()
{
OSStatInit(); //统计任务初始化 
ret = OSTaskCreate(tasksd,
NULL,
&GuiTaskStk[APP_TASK_STK_SIZE-1],
PRIO_SD_HANDLE_TASK); 
ret = OSTaskCreate(Web_TASK,
NULL, 
&KeyTaskStk[APP_TASK_STK_SIZE-1],
PRIO_TEMP_TASK); 

ret = OSTaskCreate(TemCheckTask, 
NULL, &TempTaskStk[APP_TASK_STK_SIZE-1],
PRIO_WEB_TASK);

}

这是我建的任务。
实际上,每个任务都是一个死循环。循环里边是要处理的代码。
循环的最后是一个ostimedly();函数用于延时,在延时的时候,将该循环里的任务挂起,执行下一个优先级任务。当延时到了,又会跑到优

先级最高里了。
在我加了ds18b20的函数后,发现程序进入OS_TaskIdle();内出不来了,以为延时时间少,然后加到10-100,可还是不行。去掉ds18b20

程序后就可以了,查找后发现,原来delay_us利用的时系统滴答做的延时,延时完后将滴答关掉了,而ucosii的心脏也是系统滴答产生的,

这样就会,卡在空闲任务里了。
void SysTick_Handler(void)
{
OSIntEnter();

OSTimeTick(); 
OSIntExit(); 
}
void delay_usinds(u32 Nus) 

SysTick->LOAD=Nus*9; //时间加载 
SysTick->CTRL|=0x01; //开始倒数 
while(!(SysTick->CTRL&(1<<16))); //等待时间到达 
SysTick->CTRL=0X00000000; //关闭计数器 
SysTick->VAL=0X00000000; //清空计数器 
} 所以终于找到 进入空闲任务OS_TaskIdle()的原因了。

关键字:UCOSII  OS_TaskIdle 引用地址:UCOSII在运行时进入了OS_TaskIdle的问题

上一篇:移植ucosii遇到的问题 B OSStartHang
下一篇:关于m0核移植ucosii时遇到的问题

推荐阅读最新更新时间:2024-03-16 14:32

uCOS II在ARM处理器上移植过程中的中断处理
uCOS II是一个源码公开、可移植、可固化、可剪裁和抢占式的实时多任务操作系统,其大部分源码是用ANSI C编写,与处理器硬件相关的部分使用汇编语言编写。总量约200行的汇编语言部分被压缩到最低限度,以便于移植到任何一种其它的CPU上。 uCOS II最多可支持56个任务,其内核为占先式,总是执行就绪态的优先级最高的任务,并支持Semaphore (信号量)、Mailbox (邮箱)、MessageQueue(消息队列)等多种常用的进程间通信机制。与大多商用RTOS不同的是,uCOS II公开所有的源代码.并可以免费获得,只对商业应用收取少量License费用。 uCOS II移植跟OS_CUP_C.C、OS_
[单片机]
如何将UCOSII移植到51单片机上
一、准备工作 1. 开发环境: Keil C集成开发环境 2. 源代码:UCOSII的源代码,网上可以自己下载 3. 文件分析: 1)UCOSII文件中与处理器无关的文件: OS_CORE.C OS_FLAG.C OS_MBOX.C OS_MEM.C OS_MUTEX.C OS_Q.C OS_SEM.C OS_TASK.C OS_TIME.C UCOS_II.C UCOS_II.H 以上这些文件在c51移植过程中只需给函数加上可重入性即可,即在每个函数后面添加关键字:reentrant 2)与应用相关的文件: INCLUDES.H——其中包含51单片机头文件和相关应用头文件 OS_CFG.H——这个文件对于要应用系统中的相关工
[单片机]
如何将<font color='red'>UCOSII</font>移植到51单片机上
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved