嵌入式产品的设计与开发

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

统设计中,面向对象模型引入了可重用性、可维护性及较高的生产力。
对象就是用于对系统特定部分进行描述或建模的实体(entity).
3.1.3软硬件协同设计
选择模型 模型用来对系统特征进行捕获和描述。 模型是包含对象与组成规则的正式系统。 根据需求规格说明书选择合适的模型以实现系统设计。
3.1.3软硬件协同设计
交叉编译
在Windows PC上,利用ADS(ARM 开发环 境),使用armcc编译器,则可编译出针对 ARM CPU的可执行代码。 在Linux PC上,利用arm-linux-gcc编译器, 可编译出针对Linux ARM平台的可执行代码。 在Windows PC上,利用cygwin环境,运行 arm-elf-gcc编译器,可编译出针对ARM CPU 的可执行代码。
(2)用gcc或g++生成目标文件
arm-linux-gcc –c -O2 -o init.o init.s arm-linux-gcc –c -O2 -o xmrecever.o xmrecever.c arm-linux-gcc –c -O2 -o flash.o flash.c
-c命令表示只生成目标代码,不进行连接; -o命令指明目标文件的名称; -O2表示采用二级优化,采用优化后可使生成的代 码更短,运行速度更快。 如果项目包含很多文件,则需要编写makefile文件
PCB设计
1.1 PCB(Print circuit Board):印刷电路板。 1.2 原理图:电路原理图,用原理图设计工 具绘制的、表达硬件电路中各种器件之间 的连接关系的图。 1.3 网络表:由原理图设计工具自动生成的、 表达元器件电气连接关系的文本文件,一 般包含元器件封装、网络列表和属性定义 等组成部分。 1.4 布局:PCB 设计过程中,按照设计要求, 把元器件放置到板上的过程。 1.5 仿真:在器件的IBIS MODEL 或SPICE MODEL 支持下,利用EDA 设计工具对PCB 的布局、布线效果进行仿真分析,从而在 单板的物理实现之前发现设计中存在的EMC 问题、时序问题和信号完整性问题,并找 出适当的解决方案。
(4)用连接器生成最终目标文件
arm-linux-ld -nostdlib -o bootstrap.elf -T link.lds init.o xmrecever.o flash.o
-nostdlib表示不连接系统的运行库,而是直接 从begin入口 -o指明目标文件的名称; -T指明采用的连接脚本文件; 最后是需要连接的目标文件列表。
对于Linux内核的调试,可以采用kgdb工具
4
嵌入式系统开发套件
arduino
• • • • • • • Wiring Arduino IDE Boards Modules Shields Accessories Kits
Seeed studio
成立于2008年,是一家致力于促进开 源硬件发展的服务型企业。…通过提供 模块化的快速开发工具,使设计者能 根据创意,简单快速地开发出产品原 型。…提供从研发辅助、采购生产到渠 道分销的一站式配套服务,帮助设计 者实现从创意到产品的转换。
(5)生成二进制代码
arm-linux-objcopy –O binary bootstrap.elf bootstrap.bin
-O binary指定生成为二进制格式文件
调试工具
gdb和gdbserver可完成对目标板上Linux下应 用程序的远程调试。
gdbserver是一个很小的应用程序,运行于 目标板上,可监控被调试进程的运行,并 通过串口与上位机上的gdb通信
Cadence EDA工具分类
Concept HDL原理图设计输入工具 Check Plus HDL原理图设计规则检查工具
SPECTRA Quest Engineer PCB板图布局规划工具
Allegro Expert专家级PCB版图编辑工具 SPECTRA Expert AutoRouter专家级PCB自动布线工具 SigNoise信噪分析工具 EMControl电磁兼容性检查工具
(1)编写C、C++语言或汇编源程序
汇编源程序用于系统最基本的初始化
初始化堆栈指针 设置页表 操作ARM的协处理器等。 初始化完成后就可以跳转到C代码执行
GNU的汇编器遵循AT&T的汇编语法 (www.gnu.org)。 汇编程序的缺省入口是 start标号,用户也可以 在连接脚本文件中用ENTRY标志指明其它入口 点
3.1.2计算模型
数据流程图DFG 数据驱动,重点强调数据和数据 处理操作
适用于计算任务较多而且是数据
驱动的嵌入式应用程序
3.1.2计算模型
控制数据流程图模型CDFG 用于对包含条件程序执行的应用程
序进行建模
包括数据操作和控制操作,使用数
据流程图作为元素,使用条件作为
判决单元
3.1.3计算模型
3.1.3计算模型
顺序程序模型
功能需求或处理需求是顺序执行的,程 序指令是有条件迭代执行的,并通过一 系列操作完成所需的数据处理。
汽车安全带报警系统
3.1.2计算模型
并发处理模型/通信处理模型
用于对并发执行的任务或进程进行建模。
面向对象模型
对系统需求进行建ቤተ መጻሕፍቲ ባይዱ的时候,面向对象模型就是基于对象的模型。在系
状态机模型
对于基于反馈或事件驱动的嵌入式系统常使用状态机模型进行建模,其处 理行为取决于状态转移。控制与工业应用中使用的嵌入式系统是典型的基 于事件驱动的系统。 状态机模型描述了系统行为,包括状态(State,表示当前情况)、事件 (Event,是状态的输入)、行为(Action,状态机执行的操作)、转移 (Transition,从一个状态转移到另一个状态)。 有限状态机模型中状态的数量是有限的。
3
嵌入式产品的设计与开发
3.1嵌入式系统的建模、设计与分析 3.2嵌入式硬件的设计与开发 3.3嵌入式软件的设计与开发
3.1建模、设计、分析
在不停止心脏跳动的情况下实施心脏手术
建模
设计 分析
• 微分方程 • 积分方程
离散动态
• FSM • 扩展状态机
• 时基 • 分层
连续动态
混成系统
没有规格的设计无法判断对或错,只能让人吃惊!
(3)编写连接脚本文件
ENTRY(begin) SECTION { .=0x00300000; .text : { *(.text) } .data: { *(.data) } .bss: { *(.bss) } }
ENTRY(begin)指明程序的入口点为begin标号 .=0x00300000指明目标代码的起始地址为0x00300000,这一段地址为MX1 的片内RAM; .text : { *(.text) }表示从0x00300000开始放置所有目标文件的代码段,随后 的.data: { *(.data) }表示数据段从代码段的末尾开始,再后是.bss段。
PCB
• 单边PCB • 双边PCB • 多层PCB • 插件子板 • 柔性PCB
WECC PCB production
中国印制电路行业排行
中国印制电路行业协会 www.cpca.org.cn
电装、电测与试验
电装
电测
老化
三防
力学
热循 环、 热冲 击
EMI
抗辐 照

电子设计自动化工具
1、板级电路设计系统工具
3.2.1设计与生产 3.2.2EDA工具
3.2.1嵌入式硬件的设计与生产
电原 理设 计
PCB 设计
PCB 生产
电装
电测
试验
从阅读器件手册开始…
电原理设计
原理图:电路原理 图,用原理图设计 工具绘制的、表达 硬件电路中各种器 件之间的连接关系 的图。
网络表
网络表:由 原理图设计 工具自动生 成的、表达 元器件电气 连接关系的 文本文件, 一般包含元 器件封装、 网络列表和 属性定义等 组成部分。
系统需求的软硬件划分
从实现的角度来看,设计者可以在硬件中也可以在软件中实现系统 需求。需要考虑各软硬件折中方案,从而最终决定软硬件任务划分。
3.1.4软硬件权衡
软件与硬件的功能需求、性能需求
系统处理速度和性能 系统修改的频率 可靠性 批量、批次 工时
成本
3.2
嵌入式硬件的设计与开发
文档清单
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. …… GNU Autoconf - Creating Automatic Configuration Scripts GNU Automake GCC the GNU Compiler Collection GDB The GNU Project Debugger The GNU C Reference Manual GNU Make Manual The GNU C Library GNU Libtool - Portable Dynamic Shared Object Management The C Preprocessor The GNU Portability Library GNU M4 - GNU macro processor
硬件平台
面向ARM处理器的GNU工具
arm-linux-as arm-linux-gcc arm-linux-g++ arm -linux-ld arm-linux-objcopy 编写C、C++语言或汇编源程序,用gcc或g++生 成目标文件,编写连接脚本文件,用连接器生 成最终目标文件(elf格式),用二进制转换工具 生成可下载的二进制代码
Affirma NC VHDL仿真器
VeriSure代码覆盖率检查工具 Envisia Build Gates综合工具
Spetra
Virtuoso Layout Synthesizer Assura Dracula Diva
3.3
嵌入式软件的设计与开发
嵌入式软件开发语言
嵌入式软件开发GNU工具链
GNU/LINUX GNU C Library: glibc/uclibc/newlib GNU Compiler Collection: as gcc g++ ld objcopy Binutils: objdump readelf strip ar nm ldd ngprof gcov GNU Remote Debugger (GDB) GNU make kgdb vi, emacs, vim etc. GNU autotools: autoconfig,automake,libtool
3.1.1统一建模语言
Unified Modeling Language
UML是系统分析人员和设计人员之间、软件从业人员与客 户之间所应遵循的一种通讯协议。
UML并不仅仅是软件系统的“专利”,非软件行业同样可 以使用UML进行建模 。
UML的各个元素有着自己的语义,元素的组织形式遵循着 一定的语法规则。
选择系统架构 架构指明了系统实现的方法,包括系统中各元件的数量 与类型,以及元件之间的连接关系。控制器架构、数据 通路架构、复杂指令集、精简指令集、超长指令集、单
指令多数据、多指令多数据等都是常用的架构。
3.1.3软硬件协同设计
选择编程语言
使用合适的编程语言将计算模型其映射到系统架构 中。
嵌入式软件开发语言
汇编(与体系结构相关) C语言(最常用语言) C++语言(面向对象,C语言的扩展) JAVA(面向对象,可移植性强)
脚本语言(不需要编译)
嵌入式软件开发工具
文本编辑器 交叉编译工具
操作系统 静态库 动态库 各种各样的IDE——tarnado、workbench、 eclipse、…
2、逻辑设计与验证工具
Verilog-xl仿真器
Leapfrog VHDL仿真器 Affirma NC Verilog仿真器
3、全定制IC设计工具
Virtuos Schematic Composer
Analog Degign Environment Virtuos Layout Editor
相关文档
最新文档