19回答

0收藏

ucos-ii 很不不稳定,总是陷入硬件中断,或压根不能启动

回答|共 19 个

倒序浏览

11#

feel-123

发表于 2014-5-27 06:15:05 | 只看该作者

分享到:
非常关注,帮顶
12#

735054479_3015043

发表于 2014-5-27 10:42:52 | 只看该作者

必须顶啊!!!!
13#

Angel-bird

发表于 2014-5-27 11:48:42 | 只看该作者

亮点 发表于 2014-5-26 22:51
void  OS_CPU_SysTickHandler (void)
{
    OS_CPU_SR  cpu_sr;

亮哥,威武!按你说的把OS_EXIT_CRITICAL()删了,系统就好了。可是,我按标准中断程序的写法在函数开始加入一句OS_ENTER_CRITICAL(); 之后,系统又出问题,又非堆栈问题的硬件错误,但是在Keyboard任务的延时函数前随便加个语句,任务又能正常进行任务切换。我就不明白了,一个随便的语句怎么可以起作用。请亮哥指导
14#

Angel-bird

发表于 2014-5-27 11:55:27 | 只看该作者

735054479 发表于 2014-5-27 10:42
必须顶啊!!!!

感谢!!!
15#

Angel-bird

发表于 2014-5-27 11:57:32 | 只看该作者

heelary 发表于 2014-5-27 06:15
非常关注,帮顶

感谢!!!!
16#

laoliang-67665

发表于 2014-5-28 10:31:57 | 只看该作者

Angel-bird 发表于 2014-5-27 11:48
亮哥,威武!按你说的把OS_EXIT_CRITICAL()删了,系统就好了。可是,我按标准中断程序的写法在函数开始加 ...

关中断是问题核心所在,望研究一下移植代码的汇编文件即清楚了
嵌入式,ucos,FPGA系统书籍作者
17#

Angel-bird

发表于 2014-5-29 11:31:33 | 只看该作者

亮点 发表于 2014-5-28 10:31
关中断是问题核心所在,望研究一下移植代码的汇编文件即清楚了

亮哥,你的意思是说,我的ucos-ii不稳定问题,主要是出在移植代码中断没处理好吗?可ARM的汇编我也看不懂,该怎么改呢?
18#

laoliang-67665

发表于 2014-5-29 12:19:08 | 只看该作者

Angel-bird 发表于 2014-5-29 11:31
亮哥,你的意思是说,我的ucos-ii不稳定问题,主要是出在移植代码中断没处理好吗?可ARM的汇编我也看不懂 ...

不是解决了吗?进入临界区和离开临界区要成对出现,不读源码就会出现很多问题
所以我一直坚持应该读源码用UCOS,UCOS的代码量不大,对C语言也很有帮助
如果一个问题帮你解决了,你不读源码,下一个问题很快就来了
嵌入式,ucos,FPGA系统书籍作者
19#

Angel-bird

发表于 2014-5-29 15:42:24 | 只看该作者

亮点 发表于 2014-5-29 12:19
不是解决了吗?进入临界区和离开临界区要成对出现,不读源码就会出现很多问题
所以我一直坚持应该读源码 ...

哦,谢谢亮哥的指教,等以后有时间好好看看源代码,现在毕设把我搞得焦头难额
20#

诡异之云

发表于 2014-6-12 09:17:24 | 只看该作者

void  OS_CPU_SysTickHandler (void)
{
    OS_CPU_SR  cpu_sr;


    OS_ENTER_CRITICAL();                         /* Tell uC/OS-II that we are starting an ISR          */
    OSIntNesting++;
    OS_EXIT_CRITICAL();

    OSTimeTick();                                /* Call uC/OS-II's OSTimeTick()                       */

    OSIntExit();                                 /* Tell uC/OS-II that we are leaving the ISR          */
}
加一句也可以,原代码里是这样的
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条