-
这几天为了弄清楚 ARM 系统是如何运行相应的可执行程序可谓费尽心机,整个五一假期都没有休息,其中由于烧写 flash 的软件出了些问题,使得理解 ARM 映象文件及执行机理更加曲折,不过还好在自己的努力和论坛上兄弟的帮助下,终于还是成功了。作为进入 ARM系统设计的重要一步,我觉得这个过程是应该写下来的,既是为了自己的总结,也为了后来进入 ARM 的人可以少走些弯路。
我的开发板配置如下:- CPU: S3C4510B 芯片(ARM7TDMI 核)
- FLASH:1 片 16×1M 位数据宽度的 FLASH,共 2M 字节 Flash(MX29LV160BTC),速度 70/90ns; 16 位模式。
- 内存 SDRAM:2片 4M ×16 位数据宽度的 SDRAM(HY57V651620B TC-10S)构成,共 16M 字节 SDRAM。2 片 16 位拼做 32 位使用,共用一个片选。
- 简易 JTAG 调试,两个串口,一个以太网口
从我个人的学习经过认为,初学者最难突破的应该是以下三个方面。所以,本文基本上从这三个方面来阐述。
- ARM 映象文件(包括 axf 文件和 bin 文件)的生成和组成
- 映象文件下在 flash 中的状态和运行时的状态(加载域和运行时域)
- 地址重映射 remap