搜索
bottom↓
回复: 125

自引导IAP(boot load)的应用设计--armok转贴

[复制链接]

出0入0汤圆

发表于 2005-3-7 17:05:34 | 显示全部楼层
大家有没有注意到BOOT区不能放常量?



C编译的常量都定义在BOOT区以外,如果绝对地址寻址BOOT,则得到结果都0xFF!

出0入0汤圆

发表于 2005-3-8 09:15:16 | 显示全部楼层
我使用ICC 6.30,使用绝对寻址。

代码:unsigned int  crc= *((const unsigned int *)(0xf189));

读出的是0xffff。看汇编代码

+0000F175:   E8E9        LDI     R30,0x89         Load immediate

+0000F176:   EFF1        LDI     R31,0xF1         Load immediate

+0000F177:   90A7        ELPM    R10,Z+           Extended load program memory

而且RAMPZ 是0x01。

别外我设了一个全局常量,结果常量被放在BOOT区外。

const unsigned int kkkk=0x1911;

unsigned int crc = kkkk;

编译后:

+0000F169:   EAEC        LDI     R30,0xAC         Load immediate

+0000F16A:   EEF0        LDI     R31,0xE0         Load immediate

+0000F16B:   90A7        ELPM    R10,Z+           Extended load program memory and postincrement

+0000F16C:   90B6        ELPM    R11,Z            Extended load program memory

常量被放在了0xe0ac。虽然不在BOOT区了,我的BOOT区是4k,是从0xf000开始。

出0入0汤圆

发表于 2005-3-8 09:20:25 | 显示全部楼层
+0000F187:   EC88        LDI     R24,0xC8         Load immediate

+0000F188:   1582        CP      R24,R2           Compare

+0000F189:   F408        BRCC    +0x01            Branch if carry cleared

+0000F18A:   DF9A        RCALL   -0x0066          Relative call subroutine

+0000F18B:   B786        IN      R24,0x36         In from I/O location



0xf189地址是代码。应该不会读出0xffff。

出0入0汤圆

发表于 2005-3-8 17:27:59 | 显示全部楼层
应该ICC的问题,我用IAR就没问题,不过IAR也有上64K地址分配出错问题

出0入0汤圆

发表于 2005-3-9 11:48:54 | 显示全部楼层
问题找到,MEG128的datasheet都是用0000-FFFF来描述程度空间,单位是字。

在ICC,IAR中常量的访问都是以字节地址来定址的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-7 03:46

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表