- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARM 学习报告001 杜云海 duyunhai@
ARM 映象文件及执行机理
ARM学习报告001 2004-5-7
这几天为了弄清楚ARM系统是如何运行相应的可执行程序可谓费尽心机,整个五一假期
都没有休息,其中由于烧写flash的软件出了些问题,使得理解ARM映象文件及执行机理更
加曲折,不过还好在自己的努力和论坛上兄弟的帮助下,终于还是成功了。作为进入 ARM
系统设计的重要一步,我觉得这个过程是应该写下来的,既是为了自己的总结,也为了后来
进入ARM的人可以少走些弯路。
我的开发板配置如下:
l CPU: S3C4510B芯片(ARM7TDMI核)
l FLASH:1 片 16×1M 位数据宽度的FLASH,共2M 字节Flash (MX29LV160BTC),
速度70/90ns; 16位模式。
l 内存SDRAM:2片4M ×16 位数据宽度的SDRAM (HY57V651620B TC- 10S)构成,
共 16M 字节SDRAM 。2 片 16 位拼做32 位使用,共用一个片选。
l 简易JTAG调试,两个串口,一个以太网口
从我个人的学习经过认为,初学者最难突破的应该是以下三个方面。所以,本文基本上
从这三个方面来阐述。
l ARM映象文件(包括axf文件和bin文件)的生成和组成
l 映象文件下在flash中的状态和运行时的状态(加载域和运行时域)
l 地址重映射remap
本文基本围绕附录给出的那个串口发送程序MySComm4510b002.mcp而展开的。这个程序
的 初 始 化 和 地 址 重 映 射 部 分 参 考 了 twentyone的 程 序
( ),串口发送部分参
考了sofa的程序(那我自己写了什么呢?J)。
首先我们应该建立这样一种概念,对于一个裸机(Flash里什么都没有)来说,所有的
细节都得自己设置,不要指望芯片或开发工具可以为你做些什么!所以从第一条指令开始,
你就必须负责所有的工作。对于S3C4510B,上电或复位后从0始执行指令,而
硬件上我们把Flash接在了CPU的ROMCON0处,所以CPU就是从Flash的0开
始取指令,那么我们就必须保证CPU一开始可以取到正确的指令。
小插曲:
我前几天就是被我的flash下载程序害死了,由于下载程序的时序问题,开始的40多
个字节里不能正常烧写,结果老是为 0xff,而我刚刚开始也不懂得ARM映象文件的内涵,
结果以为 axf文件就是可执行文件,将其烧入 flash,所以程序真正的第一条指令在0x34
开始,不能正确烧写的部分正好是axf文件的头,没有影响到真正的指令。程序有时也可以
执行(因为0xff相当于空指令一样,程序也可以执行到真正的第一条指令),所以串口输出
的都是不对的乱码或字母。
一 ARM的映象文件
1.1初步认识 axf和 bin文件
- 1 - www .
ARM 学习报告001 杜云海 duyunhai@
这里我先谈谈ARM的映象文件(即可执行文件)的概念。我们生成的ARM的映象文件有
axf格式和bin格式两种,有时容易被二者混淆。其实bin文件是真正的可执行文件,而 axf
文件是ARM特有的调试文件,里面除了包含bin文件的内容之外,还附加了许多其他调试信
息。首先让我们来看看axf和bin的区别,图1~图4是用ultraedit打开的axf文件和bin
文件的头部和尾部。这两个文件都是MyScomm4510b002.mcp用ADS1.2生成的(选中target
setting中的post-linker:fromelf和ARM Fromelf中的output format:plain binary这
两个选项,就可以同时生成相应的axf和bin文件)。
在生成这两个映象文件时
文档评论(0)