爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1083|回复: 6
收起左侧

[求助] 初学做补丁有几个疑问请教SPGC的前辈

[复制链接]
发表于 2006-4-30 11:49:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册会员 微信登录

x
向学做补丁,在这个板块潜了几周的水,前辈们的帖子也拜读了好多,可还是有几个疑问搞不清楚,请SPGC的前辈帮忙解答一下:
1。MrJewes前辈的《西门子6688Flash修改入门的入门》中说道小八16m的存储空间中低位被RAM占用,ROM起始位置从0x00a00000开始占用高位6m空间,低位10m空间ram并未完全占用,那么ROM和RAM中间空余的空间可不可以用作我们补丁的存储空间呢?我看到一些前辈度不定的起始地址有些是2afdBE,好像就是占用的RAM和ROM中间的空余空间,但是我只是猜测不敢肯定,请前辈们指点。
2。高位6mROM空间中的空间是不是也可以用作存储补丁程序呢?我用ida打开小八的bin文件后发现有些程序全部由FFFFFFF组成,以学过单片机51,单片中没有存储程序的ROM部分通常都是FFFFFF,在小八中是不是FFFFFF部分就可以理解为每有存储程序的空白ROM呢?
2003123113385467581.jpg
发表于 2006-4-30 13:18:17 | 显示全部楼层
MS楼主没看完或者没看清楚文章?

要在地址上加10M空间的啊,2afdBE=cafdbe

只是要FFFFFF就是空白未用的空间!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-30 14:48:01 | 显示全部楼层
文章当然看完了,不然也不有疑问的,文章中这样说道:“在程序设计的时候,仍然是按照16M的地址来使用的,比如访问ROM的第一个单元里面的数据的时候,仍然是按照用A00000地址来访问的,因此我们在反汇编6M的FullFLash的时候,要先把16M的地址空间添满,这样程序在执行跳转指令的时候才不会出错”,因此按照MrJewes的意思即便是我们单独研究6M的flah时也不应该以000000地址为开始而要以a00000为起始地址,那么这样的话程序段中出现的2afdBE,肯定就是绝对地址,就是rom前面的地址了。
按你的理解应该是2afdBE属于偏移量,相对于a00000的偏移是吗?绝对地址应该是cafdbe,是这个意思吧?
我也不知道谁的理解对,还是等高手来了回答一下吧!
回复 支持 反对

使用道具 举报

发表于 2006-5-2 06:27:34 | 显示全部楼层
2AFBDE是你命令参数没用好造成的,程序都在A00000地址以上,加电后机器会出现低位地址的ROM区,是机器的BIOS调用,其它A00000以下地址的没实际程序地址。你说的第二条正确。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-2 09:49:36 | 显示全部楼层
谢谢wwssff和西门之客的解答,可我还是不太明白,实际程序中出现的2AFBDE地址和不和法啊?
以前好像看过类似的文章中介绍,16m的内存中加电后后6m的rom会映射到前10m中去,具体的运作过程还是不太明白,能不能具体解说一下啊?
回复 支持 反对

使用道具 举报

发表于 2006-5-2 18:40:27 | 显示全部楼层
我没注意有映射代码,一般都是看到加了A00000,另外有程序运行时使用的20h和37h部分的RAM区在代码里是按 page:poff这样表示的,换算在具体地址也很小的,达不到2XXXXX以上。反汇编的时候出现AXXXXX以下的代号没关系,只是个相对跳的代号,看的时候再加上AXXXXX,如2XXXXX为CXXXXX。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-2 22:08:53 | 显示全部楼层
谢谢wwssff,明白了,西门之客一开始解答是对的,谢谢西门之客,请问一下论坛SPGC组又没有群啊,这样有问题请教会方便一点!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员 微信登录

本版积分规则

小黑屋|Archiver|手机版|爱技术 ( 沪ICP备08115260号-3 )

GMT+8, 2024-6-10 16:20

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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