12
返回列表 发新帖
楼主: Angel-bird

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

[复制链接]
  • TA的每日心情
    开心
    2014-9-23 05:09
  • 签到天数: 113 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2014-5-27 06:15:05 | 显示全部楼层
    分享到:
    非常关注,帮顶
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-7-6 08:47
  • 签到天数: 43 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2014-5-27 10:42:52 | 显示全部楼层
    必须顶啊!!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 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任务的延时函数前随便加个语句,任务又能正常进行任务切换。我就不明白了,一个随便的语句怎么可以起作用。请亮哥指导
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2014-5-27 11:55:27 | 显示全部楼层
    735054479 发表于 2014-5-27 10:42
    必须顶啊!!!!

    感谢!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2014-5-27 11:57:32 | 显示全部楼层
    heelary 发表于 2014-5-27 06:15
    非常关注,帮顶

    感谢!!!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-1-8 15:51
  • 签到天数: 22 天

    连续签到: 1 天

    [LV.4]偶尔看看III

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

    关中断是问题核心所在,望研究一下移植代码的汇编文件即清楚了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2014-5-29 11:31:33 | 显示全部楼层
    亮点 发表于 2014-5-28 10:31
    关中断是问题核心所在,望研究一下移植代码的汇编文件即清楚了

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

    使用道具 举报

  • TA的每日心情
    开心
    2018-1-8 15:51
  • 签到天数: 22 天

    连续签到: 1 天

    [LV.4]偶尔看看III

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

    不是解决了吗?进入临界区和离开临界区要成对出现,不读源码就会出现很多问题
    所以我一直坚持应该读源码用UCOS,UCOS的代码量不大,对C语言也很有帮助
    如果一个问题帮你解决了,你不读源码,下一个问题很快就来了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

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

    哦,谢谢亮哥的指教,等以后有时间好好看看源代码,现在毕设把我搞得焦头难额
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-10-19 14:43
  • 签到天数: 681 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 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          */
    }
    加一句也可以,原代码里是这样的
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-12-25 21:34 , Processed in 0.200761 second(s), 32 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.