如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
基于ARM的嵌入式系统软件设计北京微芯力科技有限公司主要内容嵌入式软件开发关键技术“ARM”软件设计基础“ARM”软件调试与运行嵌入式软件开发关键技术嵌入式软件的启动代码嵌入式实时操作系统程序的链接定位软件调试技术启动代码说明启动代码是用来初始化电路以及用来为高级语言写的软件做好运行前准备的一小段汇编语言是任何处理器上电复位时的程序运行入口点¾功能初始化电路为高级语言编写的软件运行做准备¾特征汇编语言处理器上电复位的程序运行入口点启动代码常见形式实时操作系统的板基支持包——BSP计算机主板的BIOS启动代码最小流程全局寄存器初始化存储区配置初始化堆栈高级语言入口函数调用Main()Rtos_Init()MyRoot()……启动代码典型流程中断向量设置全局寄存器初始化看门狗设置外围电路初始化中断禁止存储区设置自检初始化堆栈数据区清零允许中断高级语言入口函数调用程序的链接定位链接定位是系统级软件开发过程中必不可少的一部分嵌入式软件开发均属于系统级开发链接定位过程一般由链接器根据链接定位文件完成比较简单的系统可以通过设置链接器开关选项取代链接定位文件链接定位的关键是链接定位文件的编写常见链接程序段以下程序段存在于各个目标文件中*.obj*.o链接定位后按段的类别收集在一起同时指定在存储区中的位置text:代码段所有代码块部分rodata:已初始化的全局只读数据data:已初始化的全局数据bss:未初始化的全局变量简单链接定位文件SECTIONS{.=0x10000.text:{*(.text)}.=0x8000000.data:{*(.data)}.bss:{*(.bss)}}典型链接定位文件SECTIONS{.=0x02000000;.text:{*(.text)}Image_RO_Limit=.;Image_RW_Base=.;.data:{*(.data)}.rodata:{*(.rodata)}.bss:{*(.bss)}PROVIDE(__stack=.);end=.;_end=.;.debug_info0:{*(.debug_info)}.debug_line0:{*(.debug_line)}.debug_abbrev0:{*(.debug_abbrev)}.debug_frame0:{*(.debug_frame)}}调试技术在应用程序的编辑编译工作完成后开发人员需要借助一些调试设备或调试模块对应用程序进行调试发现程序设计中的缺陷常用的调试设备或调试模块有以下几种指令集模拟器驻留监控软件JTAG仿真器在线仿真器指令集模拟器PC而且运行速度调试驻留监控软件驻留监控软件ResidentMonitors是一段运行在目标板上的程序集成开发环境中的调试模块通过以太网口并行端口或者串行端口等通讯端口与驻留监控软件进行交互由调试模块发送命令通知驻留监控软件控制程序的执行读写存储器读写寄存器设置断点等驻留监控软件是一种比较低廉有效的调试方式不需要任何其他的硬件调试和仿真设备ARM公司的Angel就是该类软件大部分嵌入式实时操作系统也是采用该类软件进行调试不同的是在嵌入式实时操作系统中驻留监控软件是作为操作系统的一个任务存在的驻留监控软件的不便之处在于它对硬件设备的要求比较高一般在硬件稳定之后才能进行应用软件的开发同时它占用目标板上的一部分资源而且不能对程序的全速运行进行完全仿真所以对一些要求严格的情况不是很适合JTAG仿真器JTAG仿真器也称为JTAG调试器是通过ARM芯片的JTAG边界扫描口进行调试的设备JTAG仿真器比较便宜连接比较方便通过现有的JTAG边界扫描口与ARMCPU核通信属于完全非插入式(即不使用片上资源)调试它无需目标存储器不占用目标系统的任何端口而这些是驻留监控软件所必需的另外由于JTAG调试的目标程序是在目标板上执行仿真更接近于目标硬件因此许多接口问题如高频操作限制AC和DC参数不匹配电线长度的限制等被最小化了使用集成开发环境配合JTAG仿真器进行开发是目前采用最多的一种调试方