打印
[AVR单片机]

ATMEGA64换成ATMEGA128的困惑

[复制链接]
4868|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liulx14|  楼主 | 2013-5-28 14:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,我现在用的是ATMEGA64的片子,程序已经到了62K了,所以想换成ATMEGA128的片子,程序中有这样一条语句让我困惑,__root unsigned long __flash g_ulGuid @ 0xfffc = 0xffffffff;意思好像是地址0xfffc处开始的值为0xff 0xff 0xff 0xff,我在ATMEGA128中想改写成
,__root unsigned long __flash g_ulGuid @ 0x1fffc = 0xffffffff;为何提示不能访问到这个空间,我改怎么办,谢谢,用的开发环境是IAR

相关帖子

沙发
huangxz| | 2013-5-28 17:57 | 只看该作者
没用过IAR,帮顶一个了:lol

使用特权

评论回复
板凳
gdxizhilang| | 2013-5-29 08:08 | 只看该作者
貌似atmega64和128的程序可以移植,如你所说的0xfffc的数值还未到64K,可以先烧录进去试试,访问64K以上的程序和访问64k以下的程序处理方式不同。

使用特权

评论回复
评分
参与人数 1威望 +6 收起 理由
qin552011373 + 6 很给力!
地板
gdxizhilang| | 2013-5-29 08:14 | 只看该作者
以上个人看法。

使用特权

评论回复
5
liulx14|  楼主 | 2013-5-29 14:37 | 只看该作者
谢谢楼上给我的帮助,只是问题依然得不到实质性的解决

使用特权

评论回复
6
liulx14|  楼主 | 2013-6-3 17:24 | 只看该作者
请问用过IAR 的朋友能看看这个问题吗,小弟有些急,呵呵

使用特权

评论回复
7
liulx14|  楼主 | 2013-6-6 11:06 | 只看该作者
Error[Ta038]: Location out of range for an '__flash' declared variable (0x00 .. 0xFFFF).提示这样的错误,可是128K的地址空间是0X0000 - 0XFFFF

使用特权

评论回复
8
gdxizhilang| | 2013-6-7 10:03 | 只看该作者
上面的帖子中我说过,atmega64是64K的flash,16位的地址线寻址0x0000-0xFFFF是没有问题的,但是atmega128使用16位地址线只能到0xFFFF,也就是低64K,要寻址高64K,就要换页,也就是RAMPZ寄存器要置1才可以,也就是先Z寄存器归零后,再将RAMPZ寄存器置1,这时将从flash的高64K的0x0000开始执行程序。

使用特权

评论回复
9
gdxizhilang| | 2013-6-7 10:05 | 只看该作者
我对GCC比较熟,IAR不熟悉,但原理是一样的,楼主可以根据我所说的改一改,应该就可以了。

使用特权

评论回复
10
528388812| | 2013-6-7 11:11 | 只看该作者
ATMEGA64换成ATMEGA128的困惑

使用特权

评论回复
11
liulx14|  楼主 | 2013-6-14 11:06 | 只看该作者
gdxizhilang大哥你好,还是先谢谢你,我试过,可是这个是静止编译都不能通过,你说的改寄存器方式在IAR里行不通

使用特权

评论回复
12
lion1899| | 2013-6-17 19:35 | 只看该作者
不明白 帮忙顶!

使用特权

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

本版积分规则

17

主题

294

帖子

0

粉丝