嵌入式软件开发流程1_第1页
嵌入式软件开发流程1_第2页
嵌入式软件开发流程1_第3页
嵌入式软件开发流程1_第4页
嵌入式软件开发流程1_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式开发实例 软件开发流程 软件开发流程 Softwaredevelopmentprocess 软件设计思路和方法的一般过程 包括设计软件的功能和实现的算法和方法 软件的总体结构设计和模块设计 编程和调试 程序联调和测试以及编写 提交程序 需求调研分析 关系统分析员和用户初步了解需求 然后用WORD列出要开发的系统的大功能模块 每个大功能模块有哪些小功能模块 对于有些需求比较明确相关的界面时 在这一步里面可以初步定义好少量的界面 2系统分析员深入了解和分析需求 根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档 这次的文档会清楚例用系统大致的大功能模块 大功能模块有哪些小功能模块 并且还例出相关的界面和界面功能 3系统分析员和用户再次确认需求 设计开发 系统分析员根据确认的需求文档所例用的界面和功能需求 用迭代的方式对每个界面或功能做系统的概要设计 2系统分析员把写好的概要设计文档给程序员 程序员根据所例出的功能一个一个的编写 测试 测试编写好的系统 交给用户使用 用户使用后一个一个的确认每个功能 嵌入式系统的结构 嵌入式系统的硬件架构如下图所示 为嵌入式系统硬件模型结构 此系统主要由微处理器MPU 外围电路 以及外设组成 微处理器为ARM嵌入式处理芯片 如ARM7TMDI系列及ARM9系列微处理器 MPU为整个嵌入式系统硬件的核心 决定了整个系统功能和应用领域 外围电路根据微处理器不同而略有不同 主要由电源管理模型 时钟模块 闪存FIASH 随机存储器RAM 以及只读存储器ROM组成 这些设备是一个微处理器正常工作所必须的设备 外部设备将根据需要而各不相同 如通用通信接口USB RS 232 RJ 45等 输入输出设备 如键盘 LCD等 外部设备将根据需要定制 嵌入式系统的软件结构 嵌入式系统与传统的单片机在软件方面最大的不同就是可以移植操作系统 从而使软件设计层次化 传统的单片机在软件设计时将应用程序与系统 驱动等全部混在一起编译 系统的可扩展性 可维护性不高 上升到操作系统后 这一切变得很简单可行 嵌入式操作系统在软件上呈现明显的层次化 从与硬件相关的BSP到实时操作系统内核RTOS 到上层文件系统 GUI界面 以及用户层的应用软件 各部分可以清晰地划分开来 如下图所示 当然 在某些时候这种划分也不完全符合应用要求 需要程序设计人员根据特定的需要来设计自己的软件 板级支持包 BoardSupportPacket 主要用来完成底层硬件相关的信息 如驱动程序 加载实时操作系统等功能 实时操作系统层主要就是常见的嵌入式操作系统 设计者根据自己特定的需要来设计移植自己的操作系统 即添加删除部分组件 添加相应的硬件驱动程序 为上层应用提供系统调用 嵌入式开发模式与流程 嵌入式系统开发模式嵌入式系统开发分为软件开发部分和硬件开发部分 嵌入式系统在开发过程一般都采用如图5 3所示的 宿主机 目标板 开发模式 即利用宿主机 PC机 上丰富的软硬件资源及良好的开发环境和调试工具来开发目标板上的软件 然后通过交叉编译环境生成目标代码和可执行文件 通过串口 USB 以太网等方式下载到目标板上 利用交叉调试器在监控程序运行 实时分析 最后 将程序下载固化到目标机上 完成整个开发过程 整个开发流程包括以下步骤 1 源代码编写 编写源C C 及汇编程序 2 程序编译 通过专用编译器编译程序 3 软件仿真调试 在SDK中仿真软件运行情况 4 程序下载 通过JTAG USB UART方式下载到目标板上 5 软硬件测试 调试 通过JTAG等方式联合调试程序 6 下载固化 程序无误 下载到产品上生产 嵌入式处理系统主要包括嵌入式微处理器 存储设备 模拟电路及电源电路 通信接口 以及外设电路 嵌入式软件开发流程 当前 嵌入式开发已经逐步规范化 在遵循一般工程开发流程的基础上 嵌入式开发有其自身的一些特点 如下图所示为嵌入式系统开发的一般流程 主要包括系统需求分析 要求有严格规范的技术要求 体系结构设计 软硬件及机械系统设计 系统集成 系统测试 最终得到最终产品 6 建立应用程序的FLASH磁盘分区 一般使用JFFS2或YAFFS文件系统 这需要在内核中提供这些文件系统的驱动 有的系统使用一个线性FLASH NOR型 512KB 32MB 有的系统使用非线性FLASH NAND型 8MB 512MB 有的两个同时使用 需要根据应用规划FLASH的分区方案 7 开发应用程序 可以放入根文件系统中 也可以放入YAFFS JFFS2文件系统中 有的应用不使用根文件系统 直接将应用程序和内核设计在一起 这有点类似于 C OS II的方式 8 烧写内核 根文件系统和应用程序 发布产品 4 下载已经移植好的Linux操作系统 如MCLiunx ARM Linux PPC Linux等 如果有专门针对所使用的CPU移植好的Linux操作系统那是再好不过 下载后再添加特定硬件的驱动程序 然后进行调试修改 对于带MMU的CPU可以使用模块方式调试驱动 而对于MCLiunx这样的系统只能编译内核进行调试 5 建立根文件系统 可以从http 下载使用BUSYBOX软件进行功能裁减 产生一个最基本的根文件系统 再根据自己的应用需要添加其他的程序 由于默认的启动脚本一般都不会符合应用的需要 所以就要修改根文件系统中的启动脚本 它的存放位置位于 etc目录下 包括 etc init d rc S etc profile etc profile等 自动挂装文件系统的配置文件 etc fstab 具体情况会随系统不同而不同 根文件系统在嵌入式系统中一般设为只读 需要使用mkcramfsgenromfs等工具产生烧写映像文件 3 建立引导装载程序BOOTLOADER 从网络上下载一些公开源代码的BOOTLOADER 如U BOOT BLOB VIVI LILO ARM BOOT RED BOOT等 根据具体芯片进行移植修改 有些芯片没有内置引导装载程序 比如 三星的ARV17 ARM9系列芯片 这样就需要编写开发板上FLASH的烧写程序 读者可以在网上下载相应的烧写程序 也有Linux下的公开源代码的J FLASH程序 如果不能烧写自己的开发板 就需要根据自己的具体电路进行源代码修改 这是让系统可以正常运行的第一步 如果用户购买了厂家的仿真器比较容易烧写FLASH 虽然无法了解其中的核心技术 但对于需要迅速开发自己的应用的人来说可以极大提高开发速度 5 系统测试 对设计好的系统进行测试 看其是否满足规格说明书中给定的功能要求 嵌入式系统开发模式最大特点是软件 硬件综合开发 这是因为嵌入式产品是软硬件的结合体 软件针对硬件开发 固化 不可修改 如果在一个嵌入式系统中使用Linux技术开发 根据应用需求的不同有不同的配置开发方法 但是 一般情况下都需要经过如下的过程 1 建立开发环境 操作系统一般使用RedhatLinux 选择定制安装或全部安装 通过网络下载相应的GCC交叉编译器进行安装 比如 arm 1inux gcc arnl uclibc gcc 或者安装产品厂家提供的相关交叉编译器 2 配置开发主机 配置MINICOM 一般的参数为波特率115200Baud s 数据位8位 停止位为1 9 无奇偶校验 软件硬件流控设为无 在Windows下的超级终端的配置也是这样 MINICOM软件的作用是作为调试嵌入式开发板的信息输出的监视器和键盘输入的工具 配置网络主要是配置NFS网络文件系统 需要关闭防火墙 简化嵌入式网络调试环境设置过程 1 系统需求分析 确定设计任务和设计目标 并提炼出设计规格说明书 作为正式设计指导和验收的标准 系统的需求一般分功能性需求和非功能性需求两方面 功能性需求是系统的基本功能 如输入输出信号 操作方式等 非功能需求包括系统性能 成本 功耗 体积 重量等因素 2 体系结构设计 描述系统如何实现所述的功能和非功能需求 包括对硬件 软件和执行装置的功能划分 以及系统的软件 硬件选型等 一个好的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论