980 likes | 1.19k Views
嵌入式系统教案. 武汉创维特信息技术有限公司. 2014/9/10. 第六章 嵌入式软件系统设计. 提纲. 1. 嵌入式软件开发过程. ARM 软件开发工具- ADT IDE 简介. 2. 3. ARM 软件设计与代码分析. 4. 5. 6. 7. 嵌入式软件开发过程. 嵌入式系统软件开发流程. 软件需求分析:确定设计任务和目标,并提炼出设计规格说明书,作为正式设计指导和验收的标准。. 概要设计:描述系统如何实现所述的需求,包括软件模块的划分、系统的软件开发工具选择以及关键问题的论证等。.
E N D
嵌入式系统教案 武汉创维特信息技术有限公司 2014/9/10
第六章 嵌入式软件系统设计 提纲 1 嵌入式软件开发过程 ARM软件开发工具-ADT IDE简介 2 3 ARM软件设计与代码分析 4 5 6 7
嵌入式软件开发过程 嵌入式系统软件开发流程 • 软件需求分析:确定设计任务和目标,并提炼出设计规格说明书,作为正式设计指导和验收的标准。 • 概要设计:描述系统如何实现所述的需求,包括软件模块的划分、系统的软件开发工具选择以及关键问题的论证等。 • 详细设计:详细描述各个模块的实现方法与过程,模块间接口等问题,以作为编码人员的编码准则。 • 编码
嵌入式软件开发过程 嵌入式系统的开发流程 • 单元调试:编码完成后,对各个模块进行单元调试,以保证模块正常工作。 • 集成调试
ARM软件开发工具-ADT IDE简介 ARM主流开发工具 • Windows操作系统 • ARM ADS/SDT + 调试器 • GNU + Cygwin + 调试器 • ARM SDT + 简易电缆 • Linux操作系统 • GNU + GDB
ARM软件开发工具-ADT IDE简介 常用调试方法 • 软件仿真 • 驻留监控程序 • 硬件要求高,一般在硬件稳定之后进行 • 需要占用目标板上的一部分资源 • 不能对程序的全速运行进行完全仿真 • JTAG仿真器 • 完全非插入式调试,不使用片上资源,无需目标存储器,不占用目标系统的任何端口 • 仿真效果更加接近于目标硬件 • 在线仿真器
ARM软件开发工具-ADT IDE简介 ADT for ARM集成开发系统
ARM软件开发工具-ADT IDE简介 ADT 1000 Emulator for ARM
ARM软件开发工具-ADT IDE简介 ADT 1000 Emulator for ARM • ADT Emulator for ARM是连接主机核目标机之间的硬件设备,它实现ADT IDE for ARM与目标机之间的连接。 • 它具有如下特征: • 支持ARM核CPU • 非插入式调试,无需目标存储器,不占用目标系统的任何端口 • 2.5V/3.3V/5V兼容电平接口 • 支持标准的14/20针JTAG接口 • 运行状态指示 • 与主机之间通过并口连接 • 下载速度达到25Kbytes/S
ARM软件开发工具-ADT IDE简介 ADT IDE for ARM
ARM软件开发工具-ADT IDE简介 ADT IDE for ARM主要特征 - 可视化编程环境 • 支持ARM7、ARM9、SecurCore等。 • 运行于Windows98 、NT、2000、XP等平台。 • 中文、英文版本支持 • 可视化的源码编辑和工程管理功能 • 界面友好,使用方便:类似MS Visual Studio的用户界面,支持打印功能,支持文件内查找功能和Find in Files功能
ARM软件开发工具-ADT IDE简介 ADT IDE for ARM主要特征 - 可视化编程环境 • 工程管理器:ADT IDE提供图形化的工程管理工具,实现文件级、文件目录级、工程级的多级编译连接选项管理以及工程级的调试参数管理 • 源码编辑器:支持标准的文本编辑功能,支持C语言、汇编语言语法高亮显示 • 辅助编辑工具:提供一系列辅助编辑工具,方便开发人员。包括:多剪贴板工具、代码模板工具、头文件和源文件切换工具、注释工具、符号配对书写工具等多种辅助编辑工具。
ARM软件开发工具-ADT IDE简介 ADT IDE for ARM主要特征 - 交叉编译功能 • 支持开发语言:ANSI C;Embedded C++;汇编语言 • 编译工具:使用著名优秀自由软件GNU的GCC交叉编译工具,并经过优化和严格测试,支持C语言、汇编语言等 • 编译参数设置:完全图形界面方式的编译参数设置,提供可视化的设置功能。支持工程级、文件目录级、文件级编译参数设置
ARM软件开发工具-ADT IDE简介 ADT IDE for ARM主要特征 - 调试功能 • 同时提供了图形和命令行两种调试方式 • 程序的单步执行 • 程序下载 • 存储区下载和上载功能。 • 工程级调试参数管理 • 支持源程序、反汇编程序和混合窗口显示,支持ARM/THUMB方式显示 • 具有与MS Visual Studio类似的调试菜单功能:Go,Stop,Reset,Restart,Step into,Step over,Step out,Run to Cursor等 • 丰富的示例程序
ARM软件开发工具-ADT IDE简介 ADT IDE for ARM主要特征 - 调试功能 • 断点功能:支持软件断点和硬件断点,实现断点设置、断点屏蔽、断点取消、断点列表等功能 • 变量监视功能:随程序运行同步更新变量,即时修改变量值,可设置自动/手动刷新方式、十进制/十六进制显示 • ARM各种模式的寄存器即时查看与修改,当前模式指示,寄存器值修改时红色突显 • 存储器查看与修改,可设置自动/手动刷新方式、字节/双字节/四字节显示、大/小端方式显示,存储器值修改时红色突显
ARM软件开发工具-ADT IDE简介 ADT IDE for ARM主要特征 - 调试功能 • 函数堆栈显示,可设置自动/手动刷新方式、十进制/十六进制显示、参数值显示,参数类型显示 • 板上寄存器(On Board Register)的查看和修改,可以查看支持CPU的所有板上寄存器的具体意义、当前值、各个位的意义,可设置自动/手动刷新方式、二进制/十进制/十六进制显示、大/小端方式显示,支持十进制/十六进制方式修改寄存器值,寄存器值修改时红色突显。 • flash在线编程器,支持对多种flash芯片的空白检查、擦除、编程、校验等操作,支持单一操作和自动操作两种操作方式,支持8/16/32位flash访问宽度,支持多片flash同时编程,编程速度达15Kbytes/s。提供统一的flash编程接口,可以方便地添加flash编程方案。
ARM软件开发工具-ADT IDE简介 ADT IDE for ARM ADT IDE (Arm7Lpt、Arm9Lpt、SoftSim、Arm7Simple) 用户手册、编程指南 丰富例程
ARM7版本 简易仿真版本 软件仿真版本 ARM9版本 ARM软件开发工具-ADT IDE简介 多版本支持
工程 当前活动工程 ARM软件开发工具-ADT IDE简介 多工程管理
语法高亮编辑器 编辑菜单 辅助编辑工具条 书签 ARM软件开发工具-ADT IDE简介 可视化编辑器
编译菜单 编译工具条 编译结果输出 错误定位 ARM软件开发工具-ADT IDE简介 GCC交叉编译
多参数配置 多配置管理 多工程设管理 ARM软件开发工具-ADT IDE简介 编译器设置
多参数配置 多配置管理 多工程设管理 ARM软件开发工具-ADT IDE简介 汇编器设置
多参数配置 多配置管理 多工程设管理 ARM软件开发工具-ADT IDE简介 连接器设置
调试菜单 调试工具条 命令行调试窗口 ARM软件开发工具-ADT IDE简介 调试功能
源码模式 混合模式 汇编模式 ARM软件开发工具-ADT IDE简介 多种调试模式
断点列表 断点 ARM软件开发工具-ADT IDE简介 断点
半字模式 修改凸显标记 字模式 字节模式 ARM软件开发工具-ADT IDE简介 存储器窗口
存储区上载 存储区下载 ARM软件开发工具-ADT IDE简介 存储区上载下载功能
多模式寄存器显示 修改凸显标记 ARM软件开发工具-ADT IDE简介 寄存器观察窗口
函数调用栈 ARM软件开发工具-ADT IDE简介 函数调用栈窗口
局部变量 全局变量 多个观察窗口 ARM软件开发工具-ADT IDE简介 变量观察窗口
ARM软件开发工具-ADT IDE简介 命令窗口
ARM软件开发工具-ADT IDE简介 单步调试 - STEP INTO
ARM软件开发工具-ADT IDE简介 单步调试 - STEP OVER
ARM软件开发工具-ADT IDE简介 单步调试 - STEP OUT
ARM软件开发工具-ADT IDE简介 单步调试 - RUN TO CURSOR
寄存器组 寄存器 寄存器位域 热点描述信息 修改凸显标记 ARM软件开发工具-ADT IDE简介 板上寄存器
ARM软件开发工具-ADT IDE简介 板上寄存器
ARM软件开发工具-ADT IDE简介 FLASH在线编程器
可自定制 ARM软件开发工具-ADT IDE简介 工具菜单
ARM软件开发工具-ADT IDE简介 在线帮助
ARM软件设计与代码分析 嵌入式软件开发 • 无操作系统的软件开发 • 启动代码 • 应用程序 • 基于操作系统的软件开发 • bootloader • 操作系统移植 • BSP板级支持包 • 应用程序开发
ARM软件设计与代码分析 启动代码 • 程序流程 • 设置中断、异常入口 • 关中断 • 硬件寄存器初始化(GPIO配置、总线配置、PLL时钟) • 初始化栈指针 • 数据区初始化 • C入口函数调用 BL Main • 功能 • 硬件初始化 • 引导C代码 • 特征 • 通常用汇编语言编写 • 程序复位运行入口点 • 代码量非常小
ARM软件设计与代码分析 应用程序(无操作系统) • 功能 • 硬件驱动 • 应用 • 特征 • 通常用C语言或者嵌入式汇编语言编写 • 程序较复杂,代码量较大
ARM软件设计与代码分析 bootloader • 功能 • 硬件初始化 • 引导操作系统 • 下载程序(串口、网口、USB) • 烧写flash • 特征 • 程序复位运行入口点 • 通常用汇编语言+C语言编写 • 代码量较小
ARM软件设计与代码分析 嵌入式操作系统移植 • Linux • Windows CE • uC/OS II • uClinux • Nucleus
ARM软件设计与代码分析 BSP板级支持包 • 功能 • 为应用程序提供统一的硬件操作接口 • 特征 • 高度硬件相关 • 高度依赖于具体硬件平台 • 各种操作系统各异
ARM软件设计与代码分析 应用程序开发(操作系统) • 功能 • GUI图形、人机交互 • 控制 • 算法 • 特征 • 硬件依赖程度小 • 部分可仿真调试 • 各种操作系统各异
ARM软件设计与代码分析 嵌入式软件设计和调试流程 • 调试 • 连接调试器 • 下载程序 • 运行、调试 • 固化 • 通过仿真器烧写flash • 专用或通用的编程器 • 通过bootloader烧写flash • 编辑 • 创建工程 • 添加文件、编写程序 • 汇编语言加C语言 • 编译 • 配置编译、汇编和连接参数 • 编写连接脚本文件 • 编译