打印

关于uCOS-II中OSISRStkPtr

[复制链接]
3026|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
soicer|  楼主 | 2010-1-4 19:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在官方下载的MSP430F5438的PORT.内核是2.86版uCOS-II.

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

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

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。等楼主送分,呵呵。

使用特权

评论回复
5
soicer|  楼主 | 2010-1-5 20:42 | 只看该作者
大伙都很谈定,20分都给你吧:D

使用特权

评论回复
6
desert_hawk| | 2010-1-5 21:14 | 只看该作者
thank you very much.:D

使用特权

评论回复
7
郁海难填| | 2011-9-11 10:43 | 只看该作者
1# soicer

楼主,我在网上下载的一个能运行的5438的ucos-ii 2.86的工程,可惜没有发现有中断管理的那一部分。。。哎,这个UCos感觉好怪。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

50

帖子

0

粉丝