武汉创维特ARM教学系统08嵌入式软件系统设计.ppt
《武汉创维特ARM教学系统08嵌入式软件系统设计.ppt》由会员分享,可在线阅读,更多相关《武汉创维特ARM教学系统08嵌入式软件系统设计.ppt(98页珍藏版)》请在三一办公上搜索。
1、嵌入式系统教案,武汉创维特信息技术有限公司,2023/8/13,2,提纲,1,3,2,4,5,嵌入式软件开发过程,ARM软件设计与代码分析,ARM软件开发工具ADT IDE简介,6,7,第六章 嵌入式软件系统设计,3,嵌入式系统软件开发流程,软件需求分析:确定设计任务和目标,并提炼出设计规格说明书,作为正式设计指导和验收的标准。,嵌入式软件开发过程,概要设计:描述系统如何实现所述的需求,包括软件模块的划分、系统的软件开发工具选择以及关键问题的论证等。,详细设计:详细描述各个模块的实现方法与过程,模块间接口等问题,以作为编码人员的编码准则。,编码,4,嵌入式系统的开发流程,单元调试:编码完成后,
2、对各个模块进行单元调试,以保证模块正常工作。,嵌入式软件开发过程,集成调试,5,ARM主流开发工具,Windows操作系统ARM ADS/SDT+调试器GNU+Cygwin+调试器ARM SDT+简易电缆Linux操作系统GNU+GDB,ARM软件开发工具ADT IDE简介,6,常用调试方法,软件仿真驻留监控程序硬件要求高,一般在硬件稳定之后进行需要占用目标板上的一部分资源不能对程序的全速运行进行完全仿真JTAG仿真器完全非插入式调试,不使用片上资源,无需目标存储器,不占用目标系统的任何端口仿真效果更加接近于目标硬件在线仿真器,ARM软件开发工具ADT IDE简介,7,ADT for ARM集
3、成开发系统,ARM软件开发工具ADT IDE简介,8,ADT 1000 Emulator for ARM,ARM软件开发工具ADT IDE简介,9,ADT 1000 Emulator for ARM,ARM软件开发工具ADT IDE简介,ADT Emulator for ARM是连接主机核目标机之间的硬件设备,它实现ADT IDE for ARM与目标机之间的连接。,它具有如下特征:,支持ARM核CPU,非插入式调试,无需目标存储器,不占用目标系统的任何端口,2.5V/3.3V/5V兼容电平接口,支持标准的14/20针JTAG接口,运行状态指示,与主机之间通过并口连接,下载速度达到25Kbyt
4、es/S,10,ADT IDE for ARM,ARM软件开发工具ADT IDE简介,11,ADT IDE for ARM主要特征 可视化编程环境,ARM软件开发工具ADT IDE简介,支持ARM7、ARM9、SecurCore等。,运行于Windows98、NT、2000、XP等平台。,中文、英文版本支持,可视化的源码编辑和工程管理功能,界面友好,使用方便:类似MS Visual Studio的用户界面,支持打印功能,支持文件内查找功能和Find in Files功能,12,ADT IDE for ARM主要特征 可视化编程环境,ARM软件开发工具ADT IDE简介,工程管理器:ADT ID
5、E提供图形化的工程管理工具,实现文件级、文件目录级、工程级的多级编译连接选项管理以及工程级的调试参数管理,源码编辑器:支持标准的文本编辑功能,支持C语言、汇编语言语法高亮显示,辅助编辑工具:提供一系列辅助编辑工具,方便开发人员。包括:多剪贴板工具、代码模板工具、头文件和源文件切换工具、注释工具、符号配对书写工具等多种辅助编辑工具。,13,ADT IDE for ARM主要特征 交叉编译功能,ARM软件开发工具ADT IDE简介,支持开发语言:ANSI C;Embedded C+;汇编语言,编译工具:使用著名优秀自由软件GNU的GCC交叉编译工具,并经过优化和严格测试,支持C语言、汇编语言等,编
6、译参数设置:完全图形界面方式的编译参数设置,提供可视化的设置功能。支持工程级、文件目录级、文件级编译参数设置,14,ADT IDE for ARM主要特征 调试功能,ARM软件开发工具ADT IDE简介,同时提供了图形和命令行两种调试方式,程序的单步执行,程序下载,存储区下载和上载功能。,工程级调试参数管理,支持源程序、反汇编程序和混合窗口显示,支持ARM/THUMB方式显示,具有与MS Visual Studio类似的调试菜单功能:Go,Stop,Reset,Restart,Step into,Step over,Step out,Run to Cursor等,丰富的示例程序,15,ADT
7、IDE for ARM主要特征 调试功能,ARM软件开发工具ADT IDE简介,断点功能:支持软件断点和硬件断点,实现断点设置、断点屏蔽、断点取消、断点列表等功能,变量监视功能:随程序运行同步更新变量,即时修改变量值,可设置自动/手动刷新方式、十进制/十六进制显示,ARM各种模式的寄存器即时查看与修改,当前模式指示,寄存器值修改时红色突显,存储器查看与修改,可设置自动/手动刷新方式、字节/双字节/四字节显示、大/小端方式显示,存储器值修改时红色突显,16,ADT IDE for ARM主要特征 调试功能,ARM软件开发工具ADT IDE简介,函数堆栈显示,可设置自动/手动刷新方式、十进制/十六
8、进制显示、参数值显示,参数类型显示,板上寄存器(On Board Register)的查看和修改,可以查看支持CPU的所有板上寄存器的具体意义、当前值、各个位的意义,可设置自动/手动刷新方式、二进制/十进制/十六进制显示、大/小端方式显示,支持十进制/十六进制方式修改寄存器值,寄存器值修改时红色突显。,flash在线编程器,支持对多种flash芯片的空白检查、擦除、编程、校验等操作,支持单一操作和自动操作两种操作方式,支持8/16/32位flash访问宽度,支持多片flash同时编程,编程速度达15Kbytes/s。提供统一的flash编程接口,可以方便地添加flash编程方案。,17,ADT
9、 IDE for ARM,ARM软件开发工具ADT IDE简介,ADT IDE(Arm7Lpt、Arm9Lpt、SoftSim、Arm7Simple),用户手册、编程指南,丰富例程,18,多版本支持,ARM软件开发工具ADT IDE简介,19,多工程管理,ARM软件开发工具ADT IDE简介,20,可视化编辑器,ARM软件开发工具ADT IDE简介,21,GCC交叉编译,ARM软件开发工具ADT IDE简介,22,编译器设置,ARM软件开发工具ADT IDE简介,23,汇编器设置,ARM软件开发工具ADT IDE简介,24,连接器设置,ARM软件开发工具ADT IDE简介,25,调试功能,AR
10、M软件开发工具ADT IDE简介,26,多种调试模式,ARM软件开发工具ADT IDE简介,27,断点,ARM软件开发工具ADT IDE简介,28,存储器窗口,ARM软件开发工具ADT IDE简介,29,存储区上载下载功能,ARM软件开发工具ADT IDE简介,30,寄存器观察窗口,ARM软件开发工具ADT IDE简介,31,函数调用栈窗口,ARM软件开发工具ADT IDE简介,32,变量观察窗口,ARM软件开发工具ADT IDE简介,33,命令窗口,ARM软件开发工具ADT IDE简介,34,单步调试 STEP INTO,ARM软件开发工具ADT IDE简介,35,单步调试 STEP OVE
11、R,ARM软件开发工具ADT IDE简介,36,单步调试 STEP OUT,ARM软件开发工具ADT IDE简介,37,单步调试 RUN TO CURSOR,ARM软件开发工具ADT IDE简介,38,板上寄存器,ARM软件开发工具ADT IDE简介,39,板上寄存器,ARM软件开发工具ADT IDE简介,40,FLASH在线编程器,ARM软件开发工具ADT IDE简介,41,工具菜单,ARM软件开发工具ADT IDE简介,42,在线帮助,ARM软件开发工具ADT IDE简介,43,嵌入式软件开发,无操作系统的软件开发启动代码应用程序基于操作系统的软件开发bootloader操作系统移植BSP
12、板级支持包应用程序开发,ARM软件设计与代码分析,44,启动代码,功能硬件初始化引导C代码特征通常用汇编语言编写程序复位运行入口点代码量非常小,程序流程设置中断、异常入口关中断硬件寄存器初始化(GPIO配置、总线配置、PLL时钟)初始化栈指针数据区初始化C入口函数调用 BL Main,ARM软件设计与代码分析,45,应用程序(无操作系统),功能硬件驱动应用特征通常用C语言或者嵌入式汇编语言编写程序较复杂,代码量较大,ARM软件设计与代码分析,46,bootloader,功能硬件初始化引导操作系统下载程序(串口、网口、USB)烧写flash特征程序复位运行入口点通常用汇编语言+C语言编写代码量较
13、小,ARM软件设计与代码分析,47,嵌入式操作系统移植,LinuxWindows CE uC/OS IIuClinuxNucleus,ARM软件设计与代码分析,48,BSP板级支持包,功能为应用程序提供统一的硬件操作接口特征高度硬件相关高度依赖于具体硬件平台各种操作系统各异,ARM软件设计与代码分析,49,应用程序开发(操作系统),功能GUI图形、人机交互控制算法特征硬件依赖程度小部分可仿真调试各种操作系统各异,ARM软件设计与代码分析,50,嵌入式软件设计和调试流程,编辑创建工程添加文件、编写程序汇编语言加C语言编译配置编译、汇编和连接参数编写连接脚本文件编译,调试连接调试器下载程序运行、调
14、试固化通过仿真器烧写flash专用或通用的编程器通过bootloader烧写flash,ARM软件设计与代码分析,51,交叉编译,GNU交叉编译编译.c arm-elf-gcc汇编.S arm-elf-gas连接.o arm-elf-ld操作文件汇编文件.SC文件.c链接脚本文件ldscript库文件.o.lib.a,生成调试格式文件.elfDWARF-1DWARF-2生成bin文件elf2binarm-elf-objcopy,ARM软件设计与代码分析,52,链接脚本,段Text段rodata段data段bss段符号Image_RO_Limit Image_RW_BaseImage_ZI_Ba
15、seImage_ZI_Limit,GCC库专用调试信息,ARM软件设计与代码分析,53,链接脚本示例,程序在SDRAM中运行,程序在FLASH中运行,ARM软件设计与代码分析,54,GCC库,GCC库标准C函数库lib.a-lc标准数学函数库libm.a-lm标准函数库的支持库libg.a-lgGCC的支持库libgcc.a-lgcc链接排列顺序-lm lc lgcc-lg,ARM软件设计与代码分析,55,JX44B0启动代码分析,ARM软件设计与代码分析,在基于ARM7TDMI core的嵌入式系统中,系统在上电或复位时都从地址0 x00000000开始执行,因此在这个地址处安排的通常就是系
16、统的启动代码。它通常也是BootLoader程序的一部分,可以在启动代码基础上编写BootLoader。用汇编语言编写。启动代码是在复位后运行其它程序之前运行的一段小程序。通过它,初始化硬件设备、建立内存空间的映射图(JX44B0不需要),从而将系统的软硬件环境带到一个合适的状态,以便为最终调用C函数准备好正确的环境。,56,启动代码的移植和修改,ARM软件设计与代码分析,启动代码除了依赖于 CPU 的体系结构外,实际上也依赖于具体的嵌入式板级设备的配置,比如板卡的硬件地址分配,RAM芯片的类型,其他外设的类型等。对于两块不同的嵌入式板而言,即使它们是基于同一种 CPU而构建的,如果他们的硬件
17、资源和配置不一致的话,要想让运行在一块板子上的启动代码也能运行在另一块板子上,也还是需要作一些必要的修改。,57,启动代码流程图,启动代码的功能:RAM初始化,设置各个部件的时钟和片选,将BootLoader拷贝到RAM中,设置堆栈,调用C函数。注意:在本阶段,特别是在堆栈设置之前,进行函数调用(也有些汇编子程序不需要使用堆栈)或者使用堆栈保存数据将产生不可预知的结果;,ARM软件设计与代码分析,58,设置中断向量表,该段向量表除了复位异常外,只有位于0地址处有效,也就是必须将该段代码烧写到FLASH中。复位异常直接跳转到ResetHandler处,它是相对跳转,位置无关。其余的异常将跳转到0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 武汉 创维特 ARM 教学 系统 08 嵌入式 软件 设计
链接地址:https://www.31ppt.com/p-5717793.html