2022年ARM学习报告---ARM映象文件及执行机理[整 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年ARM学习报告---ARM映象文件及执行机理[整 .pdf》由会员分享,可在线阅读,更多相关《2022年ARM学习报告---ARM映象文件及执行机理[整 .pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、ARM 学习报告 001 杜云海 - 1 - ARM 映象文件及执行机理学习报告这几天为了弄清楚系统是如何运行相应的可执行程序可谓费尽心机,整个五一假期都没有休息,其中由于烧写的软件出了些问题,使得理解映象文件及执行机理更加曲折,不过还好在自己的努力和论坛上兄弟的帮助下,终于还是成功了。作为进入系统设计的重要一步,我觉得这个过程是应该写下来的,既是为了自己的总结,也为了后来进入 的人可以少走些弯路。我的开发板配置如下:l :芯片(核)l :1 片 161M 位数据宽度的FLASH , 共 2M 字节 Flash (MX29LV160BTC ) ,速度 70/90ns ;位模式。l 内存 : 片
2、 4M 16 位数据宽度的SDRAM( HY57V651620B TC-10S )构成,共 16M 字节 SDRAM 。2 片 16 位拼做 32 位使用,共用一个片选。l 简易 调试,两个串口,一个以太网口从我个人的学习经过认为,初学者最难突破的应该是以下三个方面。所以,本文基本上从这三个方面来阐述。l 映象文件(包括 文件和 文件)的生成和组成l 映象文件下在中的状态和运行时的状态(加载域和运行时域)l 地址重映射本文基本围绕附录给出的那个串口发送程序而展开的。这个程序的初始化和地址重映射部分参考了的程序(:?) ,串口发送部分参考了 的程序(那我自己写了什么呢?J ) 。首先我们应该建立
3、这样一种概念,对于一个裸机( 里什么都没有)来说,所有的细节都得自己设置,不要指望芯片或开发工具可以为你做些什么!所以从第一条指令开始,你就必须负责所有的工作。对于,上电或复位后从开始执行指令,而硬件上我们把接在了 的 处,所以 就是从 的 处开始取指令,那么我们就必须保证一开始可以取到正确的指令。小插曲:我前几天就是被我的下载程序害死了,由于下载程序的时序问题,开始的 多个字节里不能正常烧写,结果老是为,而我刚刚开始也不懂得映象文件的内涵,结果以为文件就是可执行文件,将其烧入,所以程序真正的第一条指令在开始,不能正确烧写的部分正好是文件的头,没有影响到真正的指令。程序有时也可以执行(因为相当
4、于空指令一样,程序也可以执行到真正的第一条指令),所以串口输出的都是不对的乱码或字母。一的映象文件初步认识 和 文件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - ARM 学习报告 001 杜云海 - 2 - 这里我先谈谈的映象文件(即可执行文件)的概念。我们生成的的映象文件有格式和 格式两种,有时容易被二者混淆。其实 文件是真正的可执行文件,而文件是 特有的调试文件,里面除了包含文件的内容之外,还附加了许多其他调试信息。 首
5、先让我们来看看和 的区别,图 图是用 打开的 文件和 文件的头部和尾部。这两个文件都是用 生成的(选中中的 :和 中的 :这两个选项,就可以同时生成相应的和 文件) 。在生成这两个映象文件时,请设置的选项:设为 ,设为 ,作用将在本文后面解释。图 是 文件,其中反显处才是真正的第一条指令,开始的 个字节都是文件头,而图 的 文件从 就是真正的第一条指令(所以为什么说文件才是真正的可执行文件) 。关键是从第一条指令开始的二个文件的比较了,哦,竟然是完全相同的,一直到 文件的尾部, 见图 和图 。即 文件就是文件的 。不过,二者的相应指令或数据的地址就不一样了,先记住这一点伏笔。文件结束(图反显处
6、),但 文件还没有结束(图中反显指示文件相应结束部分) ,其后还有很多相关的调试信息,这些调试信息可以用在或 的 的调试中。由于我们的烧写工具是原封不动地将映象文件烧入中,所以, 文件是不可以烧入的,否则的 处就不是真正的第一条指令,而是头部分。我们应该将 文件烧入,保证的 处是第一条指令。我个人猜测, 文件应该可以通过“中的下载功能”下载到中运行,在下载的过程中可能经过相应的内部处理而导致真正烧入中的还是文件。到现在为止,我们只能感性认识一下映象文件:文件和 文件的不同,也就是说,文件是 文件的一部分,最精华的一部分,那么到底哪部分是最精华的呢?文件中包含了哪些内容呢?指令和数据到底放在映象
7、文件的什么地方呢?下面接着分析。图 中打开的 文件二进制形式(头部部分)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - ARM 学习报告 001 杜云海 - 3 - 图 中打开的 文件二进制形式(头部部分)图 中打开的 文件二进制形式(中间部分)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 -
8、 - - - - - - - - ARM 学习报告 001 杜云海 - 4 - 图 中打开的 文件二进制形式(尾部部分) 映象文件的内容讨论到映象文件的内容,就应该打开源程序并理解源程序的内容了,这个程序比较简单,我们这里讲解的都是初级知识,给大家一个入门的启示,复杂的以后可以再慢慢学。所以大家看到这篇文章不要老是想到复杂的情况,那样本文有些阐述可能就不太对头了:)首先我们可以先不看程序具体做了什么,我们总应该可以看出这个简单程序分为两个部分,一个是部分,即指令代码部分;另一部分是部分,即数据部分。, (代码部分 ), (数据部分) , 书上说,映象文件一般由域组成,域由最多三个输出段(,)组
9、成,输出段又由输入段组成。 那么我们来看看生成的映象文件到底怎么符合书上的概念,又怎么和上面源程序的代码和数据部分对应起来的。先来看看图吧,我觉得实物最可以给人以说服力。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - ARM 学习报告 001 杜云海 - 5 - 图 中打开的格式映象文件二进制形式(大部分)大家看到了吧,蓝色反显的前部其实就是源程序对应的指令代码部分,反显后对应的就是源程序的数据部分。反显处就是指令部分 和数据
10、部分 的分界处。大家仔细看看,反显开始的地方往后其实就是要从串口输出的字符数据(由于屏幕关系,没有完全显示出,大家可以自己用打开看看);而从 开始至 处是程序中的指令编码(编译好的二进制编码)。所以,可以这么说,l 域:整个 映象文件,也就是说这个简单程序的映象文件只有一个域(加载域),其实大部分程序都是只有一个加载域l 输出段:有两个输出段, 和 ,没有 。这个我们从源程序和图 也可以看出。l 输入段:两个输入段,即源程序的部分和 部分。部分是 ,属于 输出段,部分是 ,属于 输出段。所以,域、输出段和输入段的关系如下图:名师资料总结 - - -精品资料欢迎下载 - - - - - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年ARM学习报告-ARM映象文件及执行机理整 2022 ARM 学习 报告 映象 文件 执行 机理
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内