二过 发表于 2012-10-7 16:19:33

KEIL for ARM ucos-ii,软件仿真正常,下载到片子任务调度异常


请教各位大神:

KEIL for ARM ucos-ii,软件仿真正常,下载到片子以后任务调度异常。

cumtgao 发表于 2012-10-8 17:20:11

很正常,你把延时加长点

二过 发表于 2012-10-8 22:11:07

cumtgao 发表于 2012-10-8 17:20 static/image/common/back.gif
很正常,你把延时加长点

延时?? 都还没有用到延时呀…

cumtgao 发表于 2012-10-9 08:35:44

二过 发表于 2012-10-8 22:11 static/image/common/back.gif
延时?? 都还没有用到延时呀…

就是任务挂起时间加长

二过 发表于 2012-10-9 14:56:01

cumtgao 发表于 2012-10-9 08:35 static/image/common/back.gif
就是任务挂起时间加长

多谢~~是这样的:在一个低优先级的任务中创建了一个高优先级的任务,这时候不久会进行任务切换吗,这时候任务切换也不正常,没有用到任务延时(挂起)。

cumtgao 发表于 2012-10-9 15:05:28

二过 发表于 2012-10-9 14:56 static/image/common/back.gif
多谢~~是这样的:在一个低优先级的任务中创建了一个高优先级的任务,这时候不久会进行任务切换吗,这时候 ...

如果你在低优先级任务中创建了一个高优先级任务,并且没有挂起低优先级的任务???
你这样做和一开始就创建了该高优先级任务没有什么区别,每一个systick到来 各个任务的timdly都会减一。一旦有高于这个低优先级的任务处于任务就绪状态,那个高优先的任务就会执行。

二过 发表于 2012-10-9 15:14:46

cumtgao 发表于 2012-10-9 15:05 static/image/common/back.gif
如果你在低优先级任务中创建了一个高优先级任务,并且没有挂起低优先级的任务???
你这样做和一开始就 ...

对,是这样的,就是为了让高优先级的任务运行(因为在高优先级的任务中会有等待消息队列这样的使自己挂起的操作),在创建任务的中不是有任务调度函数可以进行任务调度和切换吗,但是就是切换不到高优先级的任务中来运行。

cumtgao 发表于 2012-10-9 15:20:55

二过 发表于 2012-10-9 15:14 static/image/common/back.gif
对,是这样的,就是为了让高优先级的任务运行(因为在高优先级的任务中会有等待消息队列这样的使自己挂起 ...

理论上是这样,没有代码不好分析,贴那个低优先级任务的代码吧

二过 发表于 2012-10-9 15:30:04

cumtgao 发表于 2012-10-9 15:20 static/image/common/back.gif
理论上是这样,没有代码不好分析,贴那个低优先级任务的代码吧

是LWIP的代码,代码太长了,大概是这样,自己建立一个优先级较低的任务,其中就会去做tcpip的初始化,在初始化时会调用ucos-ii的功能函数去创建网络主线程tcpip_thread(),这时候在仿真的时候它能够切换到这个主线程,但是下载到片子中以后就切换不到这个主线程了…

marx 发表于 2012-10-9 15:33:07

估计是任务栈崩溃了。实际使用可能比仿真任务栈占用大。
你应该用iar而不是keil来开发ucosii程序

二过 发表于 2012-10-9 15:36:28

marx 发表于 2012-10-9 15:33 static/image/common/back.gif
估计是任务栈崩溃了。实际使用可能比仿真任务栈占用大。
你应该用iar而不是keil来开发ucosii程序 ...

有没有什么解决方法…我手头用的就是keil…是低优先级的任务的任务栈崩了还是高优先级任务的崩了,把它改大一点可行不?   多谢啦~~

marx 发表于 2012-10-9 16:47:03

问题就出在你如果用lwip或者gui的话,ram会非常紧张,不是想改大任务栈就能随便改的。iar可以看每个任务最大使用当前使用,根据这个来改。MDK搞ucos简直RZ透顶,学生玩玩行,实际做项目根本不行。

二过 发表于 2012-10-9 16:50:03

marx 发表于 2012-10-9 16:47 static/image/common/back.gif
问题就出在你如果用lwip或者gui的话,ram会非常紧张,不是想改大任务栈就能随便改的。iar可以看每个任务最 ...

崴了…肿么办呢…{:cry:}

jomin 发表于 2012-10-9 17:01:24

可以加个延时测试一下

cumtgao 发表于 2012-10-9 19:44:42

没有代码    如何分析?

i55x 发表于 2012-10-9 20:26:58

cumtgao 发表于 2012-10-9 19:44 static/image/common/back.gif
没有代码    如何分析?

lwip的代码那么长,不是你这种能力的人能分析的。

二过 发表于 2012-10-10 09:56:43

i55x 发表于 2012-10-9 20:26 static/image/common/back.gif
lwip的代码那么长,不是你这种能力的人能分析的。

有没有什么解决办法呢…求指教{:smile:}

nicholasdlut 发表于 2012-10-16 22:55:12

先把其他无关任务的堆栈减小,或者直接关掉。看看是不是Ram不够导致的问题

二过 发表于 2012-10-17 11:19:52

nicholasdlut 发表于 2012-10-16 22:55 static/image/common/back.gif
先把其他无关任务的堆栈减小,或者直接关掉。看看是不是Ram不够导致的问题 ...

怎么来看RAM够不够啊,其实现除了lwip自身的任务以外,自己创建的只有一个任务啊…   谢谢回复~~
页: [1]
查看完整版本: KEIL for ARM ucos-ii,软件仿真正常,下载到片子任务调度异常