欢迎来到天天文库
浏览记录
ID:36433102
大小:433.10 KB
页数:25页
时间:2019-05-09
《ARM嵌入式开发模式和基本开发流程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第2章ARM嵌入式开发模式和基本流程内容2.1ARM嵌入式开发模式2.2ARM嵌入式开发流程2.3ARM嵌入式系统控制界面2.1ARM嵌入式开发模式目标机/宿主机开发模式宿主机需要运行一些软件进行程序编辑、编译和调试等功能,这些软件通常称为集成开发环境(IDE)。集成开发环境1、针对处理器的集成开发环境:传统的单片机程序开发环境一样,是针对特定处理器的,而不是针对特定程序或者操作系统的。主要采用在线仿真模式进行调试,主要用于调试无操作系统的程序和没有指定编译环境和集成开发环境的操作系统(如uC/OS-II、N
2、ucleus)。如ARMADS、ADTIDE等。2、针对操作系统的集成开发环境:不是针对某一种处理器,而是针对某一种操作系统,并支持多种不同的处理器。主要采用驻留监控模式进行调试。如开发VxWorks的Tornado和WorkBench、开发WindowsCE的PlatformBuilder、开发Linux的GNU工具链等。调试模式1、在线仿真模式2、驻留监控模式在线仿真模式JTAG边界扫描即IEEE1149.1标准,这个标准定义了可用于完成功能和互连测试以及内建自测过程的各种指令。仿真器在调试时不额外占用目
3、标板的资源,包括RAM、GPIO端口等。宿主机ADS1.2或ADTIDE在线仿真器Multi-ICE或ADT1000A嵌入式系统并口JTAG接口驻留监控模式驻留监控程序是一个特殊应用的程序,开发者先将驻留监控程序调试好并在目标机上运行,驻留监控程序通过特定的通信方式(如以太网、USB等)和运行于宿主机的集成开发环境进行通信实现程序下载、调试等功能。这种模式下载速度快,和集成开发环境连接紧密,但该程序运行需要占用一些目标板资源。调试驻留监控程序通常采用在线仿真模式进行。驻留监控程序有:VxWorks操作系统的b
4、ootrom、Linux操作系统的u-boot、WindowsCE的Eboot等。2.2ARM嵌入式开发流程需求分析1硬件需求分析处理性能技术指标和成本功耗操作系统和软件支持工具的选择2软件需求分析实时性系统的功能开发的难度成本系统移植这个阶段根据不同的软件设计方案可能不同。对于无操作系统的应用该阶段的主要目的是设计启动代码。对于有操作系统的应用则包括bootloader的移植和操作系统的移植。启动代码由于ARM软件编程一般采用高级语言,如C语言,因此在系统启动后必须有一段程序能够将CPU带入到能够运行C语言
5、的状态,这段程序就是启动代码。启动代码通常用汇编语言完成,并在系统复位入口点(ARM系统中为0地址)运行。在嵌入式系统中系统复位入口点所在的硬件通常是Flash等芯片,存储在这些芯片中的数据即使掉电也能够保存,而且这个地方的硬件的访问宽度是由硬件设计决定,软件不能更改,这样就能保证上电后该地址的数据有效。ARM代码结构ARM程序编译后得到的二进制代码通常包含:代码段(text段或code段):编译后的代码,只读读写数据段(data段):可读写的全局变量,读写只读数据段(rodata段):只读数据,如const
6、类型的全局变量BSS段:需要清0的数据这些段在链接(link)过程中产生,并且在链接过程中都应该设置各段的起始地址。程序必须从代码段指定的起始位置处运行。根据代码段运行所在地址的硬件介质不同可以将程序分为在RAM运行的程序和在ROM运行的程序。在RAM运行程序结构图在ROM运行程序结构图启动代码主要功能(1)1、建立异常向量表2、初始化硬件:初始化RAM、关闭中断、关闭看门狗等3、初始化堆栈4、初始化读写数据段、BSS段:在ROM中运行的程序必须将数据段从ROM中拷贝到RAM中,并将BSS段清零;在RAM中运
7、行的程序则需要将BSS段清零,然后将整个代码段、只读数据段、读写数据段和BSS段从ROM拷贝到RAM。启动代码主要功能(2)5、重定向位置无关的代码是指该代码不用在编译指定的地址运行也能保证程序的执行流程和执行逻辑不会改变。位置相关代码运行的地址必须和编译时的地址一致,否则将导致程序运行流程改变。在初始化程序区、数据区之后需要一条跳转指令将PC跳转到编译时指定的运行地址接着运行。LDR指令及之前的指令都在ROM中运行,而startram标号之后的代码则跳转到编译时指定的地址(RAM或者ROM中)中运行了,因为
8、startram标号表示的地址是由编译时就确定的。这个过程就是重定向。LDRPC,=startramstartram:…重定向之前运行的代码必须是位置无关的代码。启动代码主要功能(3)6、跳转到C代码LDRPC,=MainBootloader在操作系统内核运行之前运行于非易失性存储介质的一段小程序。在BootLoader中主机和目标机之间都通过串口建立连接,BootLoader程序在执行时通常会通过
此文档下载收益归作者所有