首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

start08.c里面初始化了sp,请问如何修改“__SEG_END_SSTACK”和长度

SP的首地址可以在用户主程序的初始化部分设置。
海纳百川  有容乃大
RAM分成零页和非零页两块。如果不加说明,CodeWarrior的编译器会把全局变量都放入非零页中,因为它是DEFAULT_RAM(见PRM文件中)。堆栈也是放在非零页中的,紧跟在最后一个变量地址之后。如果要将变量放入零页地址,可以加上这样一句声明:

#pragma DATA_SEG MY_ZEROPAGE

其中MY_ZEROPAGE也是在PRM文件中定义的零页地址区。你可以看我上传的例子,在这个例子中,Ram_01放在零页中,而Ram_02放在非零页中。而且堆栈的大小也改为了0x60。

http://bbs.chinaecnet.com/uploadImages/gp32test.rar
海纳百川  有容乃大
SP的首地址是必须初时化的,因为复位缺省值可能并不是你所要的值。设置SP的长度可以让编译器知道你需要多大的SP空间,是否有足够的空间。
海纳百川  有容乃大
返回列表