ucos-ii 很不不稳定,总是陷入硬件中断,或压根不能启动
TA的每日心情 | 开心 2014-9-23 05:09 |
|---|
签到天数: 113 天 连续签到: 1 天 [LV.6]常住居民II
翰林
- 积分
- 20181
|
11#
feel-123
发表于 2014-5-27 06:15:05
|
只看该作者
|
|
|
|
|
|
|
|
TA的每日心情 | 开心 2014-7-6 08:47 |
|---|
签到天数: 43 天 连续签到: 1 天 [LV.5]常住居民I
举人
- 积分
- 514
|
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 ![]()
非常关注,帮顶
感谢!!!! |
|
|
|
|
|
|
|
|
TA的每日心情 | 开心 2018-1-8 15:51 |
|---|
签到天数: 22 天 连续签到: 1 天 [LV.4]偶尔看看III
版主
- 积分
- 11544
   

|
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的汇编我也看不懂,该怎么改呢? |
|
|
|
|
|
|
|
|
TA的每日心情 | 开心 2018-1-8 15:51 |
|---|
签到天数: 22 天 连续签到: 1 天 [LV.4]偶尔看看III
版主
- 积分
- 11544
   

|
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 ![]()
不是解决了吗?进入临界区和离开临界区要成对出现,不读源码就会出现很多问题
所以我一直坚持应该读源码 ...
哦,谢谢亮哥的指教,等以后有时间好好看看源代码,现在毕设把我搞得焦头难额 |
|
|
|
|
|
|
|
|
TA的每日心情 | 奋斗 2020-10-19 14:43 |
|---|
签到天数: 681 天 连续签到: 1 天 [LV.9]以坛为家II
状元
- 积分
- 3260
  

|
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 */
}
加一句也可以,原代码里是这样的 |
|
|
|
|
|
|
|
|