[ZLG-ARM] uc/os中,全局变量占用的是哪个任务的堆栈?

[复制链接]
3873|3
 楼主| arzhiy 发表于 2007-3-13 16:00 | 显示全部楼层 |阅读模式
uc/os中,全局变量占用的是哪个任务的堆栈?<br />需不需要给其指定特定的堆栈?
zlgARM 发表于 2007-3-13 16:28 | 显示全部楼层

RE

全局变量怎么会占用堆栈?跟堆栈没关系。
high 发表于 2007-3-14 10:03 | 显示全部楼层

介绍点深入的东西

首先从逻辑上说,全局变量一般是任何系统都需要的,对于非ucos的前后台系统,全局变量岂不是没处可放置?<br /><br /><br />我的认识:全局变量(包括静态变量)是放置在独立的一块数据区里面的。一个二进制程序分3个部分<br />RO&nbsp;--&nbsp;代码<br />RW&nbsp;--&nbsp;数据<br />ZI&nbsp;--&nbsp;没有初始化的数据<br /><br />全局变量就放在RW和ZI.启动后由系统程序将数据拷贝到指定地址的内存中,从而成为全局变量。这部分任务在main()函数被系统调用前完成。<br />------------------------------------------<br />在ucos这个例子中,任务使用的栈是用全局静态数组,也就是全局变量了,这样的好处是,栈空间作为全局变量由编译器自动来分配,访问起来也方便(访问数组当然容易了)
zlgARM 发表于 2007-3-14 13:35 | 显示全部楼层

RE

楼上的说得很好。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

64

帖子

1

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