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

[求助]请教——关于HCS08的堆栈问题

好的

已经发了

老大你查收一下。
你的project里为什么没有mcp文件?看一下你的project的文件管理、路径是否有问题。应该把一个project的所有文件都放在同一个文件夹中。
海纳百川  有容乃大
不好意思,贴附件是贴错了。

我一会重新发给你

还是发到油箱吧
我看过你的project了,好像有很多问题。我重新创建了一个QG4的project,把你的源文件和prm文件拷进去。编译后可以看到,你的程序代码已经超过了4K。我又用QG8做了一个project,这时你的源程序就能编译通过而且正常运行了。我把这两个project都发给你参考。
海纳百川  有容乃大
另外,既然你没有用PE生成代码,在创建project的时候就不要开启PE功能。如果开启了PE,很多文件就不能自己随便创建了,如PRM文件。
海纳百川  有容乃大
呵呵,问题不辩不清啊,我们继续。。。
版主,我看了你回发给我的两个project。你的memory模式选的是small,我用的tiny模式,这个是编译后代码量不同的原因。。谢谢你帮我修改了config.h文件,我在里面定义了变量:)

另外我打开PE功能,只是想看看它的功能,并没有用到它生成的文件,我想应该不影响编译结果。版主说如果开启了PE,很多文件就不能自己随便创建了,如prm文件。但是我分别新建了两个工程,一个打开PE,但没用;另一个没有打开PE,都是用我修改后的prm文件。结果一样。。
呵呵,最后再次感谢版主对问题的跟踪与答复!
我很想知道tiny与small的区别。按字面理解,tiny应该是把默认变量放入Z_RAM区,small应该放入非Z_RAM区。但是编译后,查看map文件,两者变量默认的还是都放入了Z_RAM区。
有志青年!
Tiny: 默认的变量放在Z_RAM区,栈也放在Z_RAM区;
Small:默认变量和栈都放在0x0100地址以上的RAM,除非用#pragma另行指定。

----------------- Once upon a time in Beijing
我试过了

只有在建project的时候选为small,编译后才会默认地把变量和堆栈放在0x0100以后的RAM空间。

如果是建project是选为tiny,后来在改为small,编译后变量和堆栈还是在Z_RAM的,和tiny一样的。
返回列表