嵌入式系统软件开发基础课件.pptx
《嵌入式系统软件开发基础课件.pptx》由会员分享,可在线阅读,更多相关《嵌入式系统软件开发基础课件.pptx(77页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 嵌入式系统软件开发基础3.1 嵌入式系统软件组成3.2 嵌入式系统软件开发方法3.3 嵌入式系统软件开发主要内容3.4 嵌入式系统软件调试方法.3.5 嵌入式软件集成开发环境3.6 嵌入式软件开发语言第3章 嵌入式系统的设计方法2典型嵌入式系统组成处理器处理器MMUGPIOUSBLCDCANDMA以太网以太网LCD/触摸屏触摸屏/鼠标鼠标FlashSDRAMSRAM看门狗看门狗复位电路复位电路电源管理电源管理驱动层驱动层OS应用应用BSP/driver/HALLinux、u/COS、Wince文件系统文件系统/GUI/API软件软件硬件硬件输入输入输出输出第3章 嵌入式系统的设计方法3
2、3.1 嵌入式软件组成nBSPnBootloadern操作系统内核n文件系统n库,应用软件第3章 嵌入式系统的设计方法43.2 嵌入式系统软件开发方法 采用宿主机/目标机交叉开发方式嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的。嵌入式软件以宿主机/目标机模式开发,所需要的开发环境称为交叉开发环境,分为宿主机部分和目标机部分,两者以统一的通信协议进行通信,宿主机向目标机发送命令,目标机接收、执行命令并将结果返回宿主机,从而实现两机之间的交互控制。第3章 嵌入式系统的设计方法53.3 嵌入式系统软件设计和调试流程n编辑q创建工程q添加文件、编写程序q
3、汇编语言加C语言n编译q配置编译、汇编和连接参数q编写连接脚本文件q编译第3章 嵌入式系统的设计方法6n调试q连接调试器q下载程序q运行、调试n固化q通过仿真器烧写flashq专用或通用的编程器q通过bootloader烧写flash第3章 嵌入式系统的设计方法73.4 嵌入式软件开发主要内容n无操作系统的软件开发主要包括两部分q启动代码q应用程序n基于操作系统的软件开发包括:qBootloader开发q操作系统开发移植qBSP板级支持包开发移植q应用程发开发移植第3章 嵌入式系统的设计方法8无操作系统软件开发-启动代码开发启动代码功能和特征n功能q硬件初始化q引导C代码n特征q通常用汇编语言
4、编写q程序复位运行入口点q代码量非常小第3章 嵌入式系统的设计方法9无操作系统软件开发-启动代码n启动代码程序流程q设置中断、异常入口q关中断q硬件寄存器初始化(GPIO配置、总线配置、PLL时钟)q初始化栈指针q数据区初始化qC入口函数调用 BL Main第3章 嵌入式系统的设计方法10无操作系统软件开发-应用软件开发应用软件功能和特征n功能q硬件驱动q应用n特征q通常用C语言或者嵌入式汇编语言编写q程序较复杂,代码量较大第3章 嵌入式系统的设计方法11基于操作系统的软件开发-bootloader开发Bootloader功能和特征n功能q硬件初始化q引导操作系统q下载程序(串口、网口、USB
5、)q烧写flashn特征q程序复位运行入口点q通常用汇编语言+C语言编写q代码量较小(相对)第3章 嵌入式系统的设计方法12基于操作系统的软件开发-嵌入式操作系统移植nLinuxnWindows CE nuC/OS IInuClinuxnNucleus第3章 嵌入式系统的设计方法13基于操作系统的软件开发-BSP设计nBSP功能和特征n功能q为应用程序提供统一的硬件操作接口n特征q高度硬件相关q高度依赖于具体硬件平台q各种操作系统各异第3章 嵌入式系统的设计方法14基于操作系统的软件开发-应用程序设计应用程序功能n功能qGUI图形、人机交互q控制q算法n特征q硬件依赖程度小q部分可仿真调试q各
6、种操作系统各异第3章 嵌入式系统的设计方法153.5 嵌入式软件调试技术n1模拟器方式 n2在线仿真器方式n3.监控器方式n4.在线调试器方式第3章 嵌入式系统的设计方法161模拟器方式n调试工具和待调试的嵌入式软件都在主机上运行,通过软件手段模拟执行为某种嵌入式处理器编写的源程序。简单的模拟器可以通过指令解释方式逐条执行源程序,分配虚拟存储空间和外设,进行语法和逻辑上的调试。第3章 嵌入式系统的设计方法172在线仿真器方式n在线仿真器ICE是一种完全仿造调试目标CPU设计的仪器,目标系统对用户来说是完全透明的、可控的。仿真器与目标板通过仿真头连接,与主机有串口、并口、以太网口或USB口等连接
7、方式。该仿真器可以真正地运行所有的CPU动作,并且可以在其使用的内存中设置非常多的硬件中断点,可以实时查看所有需要的数据,从而给调试过程带来很多便利。由于仿真器自成体系,调试时可以连接目标板,也可以不接目标板。使用ICE同使用一般的目标硬件一样,只是在ICE上完成调试后,需要把调试好的程序重新下载到目标系统上而已。由于ICE价格昂贵,而且每种CPU都需要一种与之对应的ICE,使得开发成本非常高。 第3章 嵌入式系统的设计方法18主机和目标板通过某种接口(通常是串口)连接,主机上提供调试界面,被调试程序下载到目标板上运行监控程序是一段运行于目标机上的可执行程序,主要负责监控目标机上被调试程序的运
8、行情况,与宿主机端的调试器一起完成对应用程序的调试。监控程序包含基本功能的启动代码,并完成必要的硬件初始化,等待宿主机的命令。被调试程序通过监控程序下载到目标机,就可以开始进行调试。监控器方式操作简单易行,功能强大,不需要专门的调试硬件,适用面广,能提高调试的效率,缩短产品的开发周期,降低开发成本。正因为以上原因,监控器方式才能够广泛应用于嵌入式系统的开发之中。监控器调试主要用于调试运行在目标机操作系统上的应用程序,不适宜用来调试目标操作系统。有的微处理器需要在目标板工作正常的前提下,事先烧制监控程序,而且功能有限,特别是硬件调试能力较差。3.监控器方式第3章 嵌入式系统的设计方法194.在线
9、调试器方式 使用ICD和目标板的调试端口连接,发送调试命令和接收调试信息,可以完成必要的调试功能。一般情况下,在ARM芯片的开发板上采用JTAG边界扫描口进行调试。摩托罗拉公司采用专用的BDM调试接口。使用合适的开发工具可以利用这些接口。例如,ARM开发板,可以将JTAG调试器接在开发板的JTAG口上,通过JTAG口与ARM处理器核进行通信。由于JTAG调试的目标程序是在目标板上执行,仿真更接近于目标硬件,因此许多接口问题,如高频操作限制、电线长度的限制等被最小化了。该方式是目前采用最多的一种调试方式。 第3章 嵌入式系统的设计方法203.6 嵌入式系统软件开发工具nWindows操作系统qA
10、RM ADS/SDT + 调试器qGNU + Cygwin + 调试器qARM SDT + 简易电缆nLinux操作系统qGNU + GDB第3章 嵌入式系统的设计方法21开发环境的作用第3章 嵌入式系统的设计方法22ADS IDE(集成开发环境)n ARM应用软件的开发工具根据功能的不同,可以分为编辑软件、编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统、函数库、评估板,JTAG仿真器以及在线仿真器等。n目前有多家公司可以提供以上不同类型的开发工具,用户采用ARM处理器进行嵌入式系统开发时,选择合适的开发工具可以加快开发进度,节省开发成本。第3章 嵌入式系统的设计方法23ADS工具
11、包的组成 nADS是ARM公司推出的集成开发工具包,是专门用于ARM相关应用开发和调试的综合性软件。目前常用的版本是1.2,在功能和易用性上比早期的SDT都有提高,是一款功能强大又易于使用的开发工具。nARM ADS包含有编译器、链接器、CodeWarrior IDE、调试器、指令集模拟器、ARM开发包和应用库等部分,可以用ADS来开发、编译、调试采用包括C、C+和ARM汇编语言编写的程序。 第3章 嵌入式系统的设计方法24ADS开发工具集 n1.1.命令行开发工具命令行开发工具ANSI C 编译器 - armcc and tccISO / Embedded C+ 编译器 - armcpp a
12、nd tcppARM / Thumb 汇编器 armsLinker - armlink 第3章 嵌入式系统的设计方法25n2.2.图形开发工具:图形开发工具:Windows 集成开发环境 CodeWarriorDebugger AXD (ARM eXtended Debugger)narmsd ARM(符号调试器)可向前兼容n3.3.库文件:库文件:C and C+ 库n4.4.辅助工具辅助工具/ /支持软件:支持软件:格式转换器 - fromelf 指令级仿真 ARMulator库管理器 armar第3章 嵌入式系统的设计方法26nfromELFfromELF:ARM映像文件转换工具该命令将
13、ELF格式的文件作为输入文件,将该格式转换为各种输出格式的文件,包括plain binary(BIN格式映像文件), Motorola 32-bit S-record format(Motorola 32位S格式映像文件), Intel Hex 32 format(Intel 32位格式映像文件),和 Verilog-like hex format(Verilog 16进制文件) 第3章 嵌入式系统的设计方法27nArmarArmar:ARM库函数生成器将一系列ELF格式的目标文件以库函数的形式集合在一起,用户可以把一个库传递给一个链接器以代替几个ELF文件。nFlash downloader
14、Flash downloader:用于把二进制映像文件下载到ARM开发板上的Flash存储器的工具nARMulatorARMulator: ARM指令集仿真器,集成在ARM的调试器AXD中,它提供对ARM处理器的指令集的仿真,为ARM和Thumb提供精确的模拟,用户可以在硬件尚未做好的情况下,开发程序代码。第3章 嵌入式系统的设计方法28名称描述使用方式代码生成工具ARM汇编器ARM C/C+编译器Thumb C/C+编译器ARM 链接器由Code Warrior调用 集成开发环境Code Warrior工程管理,编译链接调试器AXD/ADW/ADU/armsd仿真调试指令模拟器ARMulat
15、or由AXD调用ARM开发包一些底层的例程,实用程序(如fromELF)由Code Warrior调用ARM应用库C/C+等函数库用户程序调用工具调用及流程工具调用及流程第3章 嵌入式系统的设计方法29集成开发环境CodeWarrior使用n CodeWarrior集成开发环境为管理和开发项目提供了简单、多样化的图形用户界面。n用户可以使用ADS的CodeWarrior IDE为ARM处理器开发用C,C+,或ARM汇编语言的程序代码 。n全面的项目管理功能。n 可以在CodeWarrior IDE为ARM配置以上所介绍的各种命令工具,实现对工程代码的编译,汇编和链接。第3章 嵌入式系统的设计方
16、法30C/C+Browser C/C+SensitiveEditorProjectManager第3章 嵌入式系统的设计方法31建立工程建立工程第3章 嵌入式系统的设计方法32第3章 嵌入式系统的设计方法33uARM Executable Image:用于由ARM指令的代码生成一个 ELF格式的可执行映像文件。uARM Object Library:用于由ARM指令的代码生成一个 armar 格式的目标文件库。uEmpty Project:用于创建一个不包含任何库或源文件的工程。第3章 嵌入式系统的设计方法34uMakefile Importer Wizard: 用于将 Visual C 的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统软件 开发 基础 课件
限制150内