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

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

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

我用的是HCS08系列的QG4,一共是256字节的RAM(从0X60到0X015F)。


全局变量0X60到0XB6,从0X0100开始放了两个数组,堆栈放中间。


按理说中间从0XB7到0XFF有0X48个字节可用做堆栈,可设置堆栈大小时却最多只能到0XEF,否则仿真时就出错。而且是堆栈用到0XF0是,就会报“attemp to use invalid or uninitialized memory at  location 0X00F3”


搞了几天了都没找出原因,郁闷了。


请大家指点一下啊

你的堆栈大小设置为多少?看看MAP文件里的地址分配是怎样的。
海纳百川  有容乃大

谢谢斑竹

我的堆栈本来设置为0X30,但发现程序有跑飞的现象。
于是把堆栈设置为0X40,编译时都不会报错,仿真时就报错。试了一下。发现堆栈最多能设置为0X39。

查看MAP文件的地址分配,从0XB7到0XFF的空间确实是空的,应该能作为堆栈。

刚才又试了一下把堆栈设置成0X48(即从地址0XOOB7到地址0X00FE),这个时候的MAP文件里也像一切正常一样,把地址0XOOB7到地址0X00FE的空间分配给了堆栈。但仿真时其实报出错信息为“Attempt to write to a read-only location.——At location 1804”

[此贴子已经被作者于2006-10-27 15:02:55编辑过]

你对地址0x1840进行操作了吗?
海纳百川  有容乃大
用了,是MC9SQG4.h里的

extern volatile PTAPESTR _PTAPE @0x00001840

那和OX1804有什么关系吗
错误提示是你试图写0x1840这个地址。查查看你的程序中是否有这个操作。
海纳百川  有容乃大
谢谢斑竹了

是有这个操作。
那是PA口上拉使能的寄存器,DATA SHEET上说是可以读写的啊。
而且刚才我把对那寄存器的操作删除了,还是会报那样的错误的。

还要请教斑竹一个问题————应该把那个错误提示信息中提到的地址的后两个数对换位置来读的吗?
应该是有别的什么问题。把你的project上传贴出来看看吧。
海纳百川  有容乃大
我也觉得应该是别的问题,但还没找出来。

我现在只是暂时设置了一个合适的堆栈————就是大小够用,又不用到从0XF0到0XFF的空间。
但根本的原因还是没找到,心里是虚的。

我把我的project传上来了,麻烦斑竹帮我看看,多谢了
没有看到你上传的文件。
海纳百川  有容乃大
看来没传上来

不是直接上传就行吗

我明天再试试
看来没传上来

不是直接上传就行吗

我明天再试试

 

这次终于传上来了。麻烦斑竹帮我看看,多谢了

[此贴子已经被作者于2006-11-1 12:34:10编辑过]

[此贴子已经被作者于2006-11-1 16:55:36编辑过]

Strongchen版主,

由于文件不方便在网上公开贴出来,放在我给你的留言里了。

麻烦你看看。非常感谢!
我没有看到。发到我的信箱吧:strongchen_free@yahoo.com.cn。
海纳百川  有容乃大
返回列表