uC/OS 利用重构的printf函数 但是多任务启动后 跑飞问题 求...
代码如下:int main(void){
OSInit();
Stm32f10xBSP();
UsartOut("/--------uC/OS-II 消息队列演示例程--------/\n"); //就是这句代码的开启与关闭会影响 OSStart()之后是否进入TaskStart()
//UsartOut("变参函数演示 %d\n",d); //忽略此句
//UsartOut("变参函数演示 %s","this is the string demo\n"); //忽略此句
//UsartOut("变参函数演示 %s这是第%d次\n","OK",d); //忽略此句
OSTaskCreate(
TaskStart,
(void *)0,
&TaskStartSTK,
TASK_START_PRIO
);
OSStart();
return 0x0;
}
static void TaskStart(void *pdata)
{
pdata = pdata;
COMQ = OSQCreate(StrTbl,5);
OSTaskCreate(
Task1,
(void *)0,
&Task1STK,
TASK_1_PRIO
);
OSTaskCreate(
Task2,
(void *)0,
&Task2STK,
TASK_2_PRIO
);
OSTaskCreate(
TaskUsartPrintf,
(void *)0,
&TaskUsartPrintfSTK,
TASK_USART_PRINTF_PRIO
);
while(1)
{
GPIOBSetGpx(GPIO_PIN_0);
OSTimeDlyHMSM(0,0,0,50);
GPIOBResetGpx(GPIO_PIN_0);
OSTimeDlyHMSM(0,0,0,50);
}
}现象描述:
如果关闭那句话 则OSStart启动之后,会进入TaskStart任务继续执行;如果打开那句话,则OSStart之后,不会进入TaskStart任务中。
难道是因为资源被占用????不应该啊!
求大神指导! 注意规范的uCOS-II的初始化
OSInit();
初始化启动任务
OSStart();
在启动任务里面初始化外设,以及滴答时钟,详细的楼主课参考官网的例子 Eric2013 发表于 2013-9-2 20:48 static/image/common/back.gif
注意规范的uCOS-II的初始化
OSInit();
初始化启动任务
哦 呵呵 多谢多谢!这个真没怎么看过就想着先会用再说! 刚学 新手 见谅! 像我这样的代码 也不至于该影响程序的正常执行吧? 是因为不规范 才导致我说的那个问题嘛?? knight_lxf 发表于 2013-9-2 20:51 static/image/common/back.gif
哦 呵呵 多谢多谢!这个真没怎么看过就想着先会用再说! 刚学 新手 见谅! 像我这样的代码 也不至 ...
是因为不规范造成,有机会了读读源码就可以知道为什么要这么写。 Eric2013 发表于 2013-9-2 20:53 static/image/common/back.gif
是因为不规范造成,有机会了读读源码就可以知道为什么要这么写。
{:handshake:} 果然 谢了! 用个互斥量去锁住啊,使用完才会释放,释放了才会到其他线程使用,否则就等在那里 OSStart()准备好前不能发生Tick中断就行了。 eye 发表于 2013-9-3 09:49 static/image/common/back.gif
OSStart()准备好前不能发生Tick中断就行了。
哦原来如此 。因为USART打印字符的时间相对较长,所以发生了SysTick中断,进ISR调用uC/OS提供的服务,但此时uC/OS内核尚未启动。因此跑飞!谢谢! knight_lxf 发表于 2013-9-3 20:36 static/image/common/back.gif
哦原来如此 。因为USART打印字符的时间相对较长,所以发生了SysTick中断,进ISR调用uC/OS提供的服务, ...
启动任务并不是必须的。
虽然uCOS明确要求Tick启动要在Start之后。。。 eye 发表于 2013-9-3 21:29 static/image/common/back.gif
启动任务并不是必须的。
虽然uCOS明确要求Tick启动要在Start之后。。。
兄台,请教另一个比较丢人的问题。 看了段uC/OS了 ,现在的感觉:有时感觉貌似会了(信号量、互斥、邮箱、队列这些东西的接口函数会操作了),有时再细想貌似又什么都不懂! 不知能否理解我说的,如果理解,如果你也有过相同的经历。望指点一二!!真心求教!!先行谢过! Debug单步跟进去,查看关键的数据结构变量。 eye 发表于 2013-9-4 20:01 static/image/common/back.gif
Debug单步跟进去,查看关键的数据结构变量。
谢谢试试!
页:
[1]