关于uCOS-II中OSISRStkPtr

[复制链接]
 楼主| soicer 发表于 2010-1-4 19:06 | 显示全部楼层 |阅读模式
我在官方下载的MSP430F5438的PORT.内核是2.86版uCOS-II.

在Tick ISR中, 有个变量叫做OSISRStkPtr. 我理解这应该是独立中断堆栈的指针,但是在uCOS-II中,其他堆栈都是有大小的,或者说是有范围的,而OSISRStkPtr则没有明确构建中断堆栈.

在os_cpu.h中,有如下代码:
  1. /*
  2. ************************************************************
  3. * GLOBAL VARIABLES
  4. *************************************************************/

  5. OS_CPU_EXT OS_STK *OSISRStkPtr;   /* Pointer to top-of ISR stack */


然后汇编里就直接使用这个变量了. 其他的堆栈不都是构建一个数组吗?这样使用OSISRStkPtr会不会造成堆栈溢出啊. 有没有高人指点一二:D
 楼主| soicer 发表于 2010-1-4 20:35 | 显示全部楼层
自回.
OSISRStkPtr只保存指向堆栈的指针,而不指向堆栈. 因为在各任务堆栈之外,IAR会自动生成一个堆栈CSTACK,用前后台方式编程时, 中断和调用使用的堆栈就是这个. OSISRStkPtr指向的就是此堆栈. 这个堆栈的大小可以在IAR项目中设置.

自己拿分走人:lol
 楼主| soicer 发表于 2010-1-4 20:39 | 显示全部楼层
唉,自己不能给自己分啊;P

下面回复的前4名兄弟,每人5分,来拿啊
desert_hawk 发表于 2010-1-4 23:09 | 显示全部楼层
这个堆栈是不是只在中断里使用? 中断的堆栈和任务堆栈分开好一些,能节省点RAM。等楼主送分,呵呵。
 楼主| soicer 发表于 2010-1-5 20:42 | 显示全部楼层
大伙都很谈定,20分都给你吧:D
desert_hawk 发表于 2010-1-5 21:14 | 显示全部楼层
thank you very much.:D
郁海难填 发表于 2011-9-11 10:43 | 显示全部楼层
1# soicer

楼主,我在网上下载的一个能运行的5438的ucos-ii 2.86的工程,可惜没有发现有中断管理的那一部分。。。哎,这个UCos感觉好怪。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

50

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

13

主题

50

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部