大工13秋《嵌入式原理与开发》辅导资料十
大工13秋《嵌入式原理与开发》辅导资料十主 题:第四章基于ARM的硬件系统结构设计(第1节)
内 容:
这周我们将学习第四章基于ARM的硬件系统结构设计,第一节嵌入式系统的基本内容,下面整理出的理念框架供同学们学习。
4.1概述
4.1.1 嵌入式系统的设计原则和步骤
嵌入式系统设计的重要特点是技术多样化,即实现同一个嵌入式系统可以有许多不同的设计方案选择,而不同的设计方案就意味使用不同的设计和生产技术。
嵌入式系统设计一般步骤:
1)需求分析 2)体系结构设计
3)硬件/软件设计4)系统集成和系统测试
注意:各个阶段之间往往要求不断的反复和修改,直至完成最终设计目标。
1.需求分析阶段包括
① 分析用户的需求
② 确定硬件软件
③ 检查需求分析的结果
④ 确定项目的约束条件
⑤ 概要设计
需求分析-罗列用户的需求
(1)系统用于什么任务?
(2)系统接收什么输入和输出什么信号?
(3)用户需要如何同系统打交道?
(4)系统的重量和体积如何?
(5)系统需要连接何种外设?
(6)系统是否需要运行某些现存的软件?
(7)系统处理哪种类型的数据?
(8)系统是否要与别的系统通讯?
(9)系统是单机还是网络系统?
需求分析-罗列用户的需求
(10)系统的响应时间是多少?
(11)需要什么安全措施?在什么样的环境下运行?
(12)外部存储媒介和内存需要多大?
(13)系统可拆装性,可靠性,牢固性的期望值是什么?
(14)如何给系统供电?
(15)系统如何向用户通报故障?
(16)是否需要任何手动或机械代用装置?
(17)系统是否将具有远程诊断或更正问题的功能?
(18)其他问题
2.体系结构设计
设计目的—描述系统的功能如何实现。
决定因素—
①系统是硬实时系统还是软实时系统;
②操作系统是否需要嵌入;
③物理系统的成本、尺寸和耗电量是否是产品成功的关键因素;
④选择处理器和相关硬件;
⑤其他。
3.硬件/软件设计
(1)设计目的:决定哪些用硬件实现,哪些用软件实现。
例如:
浮点运算;网络通信控制器实现的功能;软调制解调器/硬调制解调器;软件压缩解压/硬件压缩解压图像。
(2)硬件设计:
①设计硬件子系统(top-down方法)分成模块;设计框图。
例如:CPU子系统、存储器子系统等。
②定义硬件接口
I/O端口;硬件寄存器;共享内存;硬件中断;存储器空间分配;处理器的运行速度。
(3)软件设计
设计软件子系统:软件总体设计、模块设计。
定义软件接口:模块接口、函数接口。
(4)检查设计
小项目:自己审查设计文档
中等项目:拿给同事朋友并向他们解释你的设计
大型项目-审查会:设计者应作一个更正式的报告。由于这是一个设计审查会,召集一群人,主要由工程师组成,并尽可能包括一些对项目有不同看法角度的成员,如做市场的人员、最终用户。
4.系统集成与测试
系统集成
把系统的软件、硬件和执行装置集成在一起,进行调试,发现并改进设计过程中的错误。
系统测试
对设计好的系统进行测试,看其是否满足给定的要求。
5.嵌入式操作系统选型原则
当进行设计信息电器、数字医疗设备等嵌入式产品时,嵌入式操作系统的选择至关重要。一般而言,在选择嵌入式操作系统时,可以遵循以下原则:
就是“做加法还是做减法”的问题。
6.嵌入式软件开发工具
“工欲善其事,必先利其器”
嵌入式软件开发工具的集成度和可用性将直接关系到嵌入式系统的开发效率。ARM的开发工具包括有编译器、、汇编器、连接器、调试器、操作系统、函数库、评估板、JTAG调试器、在线仿真器等。目前世界上约有40多家公司提供不同类型的产品。
在Windows环境下,其代表产品是ARM公司的软件开发工具包SDT和ADS。
在Linux环境中,主要使用GNU开发工具。
开发工具的分类
根据不同的阶段,嵌入式软件开发工具可以分为:
需求分析工具(Requirement Analysis Tools)
软件设计工具(Software Design Tools)
编码、调试工具(Coding Tools)
测试工具(Testing Tools)
配置管理工具、维护工具等
嵌入式软件的开发可以分为以下几种 :
编写简单的板级测试软件,主要是辅助硬件的调试
开发基本的驱动程序
开发特定嵌入式操作系统的驱动程序(板级支持包)
开发嵌入式系统软件,如:嵌入式操作系统等
开发应用软件
7.嵌入式系统开发环境和开发过程
建立交叉开发环境是进行嵌入式软件开发的第一步,主要功能是把在宿主机上编写的高级语言程序编译成可以在目标机上运行的二进制代码。
目前常用的交叉开发环境主要有开放和商业两种类型。
开放的交叉开发环境的典型代表是GNU工具链、目前已经能够支持x86、ARM、MIPS、PowerPC等多种处理器。
商业的交叉开发环境则主要有Metrowerks CodeWarrior、ARMSoftware Development Toolkit、Embedded Visual C++等。
1)嵌入式软件的交叉开发环境
交叉开发环境是指用于嵌入式软件开发的所有工具软件的集合,一般包括:
文本编辑器
交叉编译器
交叉调试器
仿真器
下载器等
交叉开发环境由宿主机和目标机组成,宿主机与目标机之间在物理连接的基础上建立起逻辑连接。
交叉开发环境的连接
主要分为物理连接和逻辑连接:
物理连接是指宿主机与目标机通过物理线路连接在一起,连接方式主要有三种:
• 串行通信口
• 局部以太网口
• OCD(On Chip Debug)方式,如JTAG、BDM等
2)嵌入式软件实现阶段的开发过程
嵌入式软件的开发进入实现阶段,可分为三个步骤:生成、调试和固化运行。
软件的生成主要是在宿主机上进行,利用各种工具完成对应用程序的编辑、交叉编译和链接工作,生成可供调试或固化的目标程序。
调试是通过交叉调试器完成软件的调试工作。调试完成后还需进行必要的测试工作。
固化运行是先用一定的工具将应用程序固化到目标机上,然后启动目标机,在没有任何工具干预的情况下应用程序能自动地启动运行。
嵌入式软件的调试
在嵌入式软件开发中,调试--采用的是在宿主机和目标机之间进行的远程调试(Remote Debug) 。
调试器仍然运行在宿主机的通用操作系统之上,但被调试的进程却是运行在基于特定硬件平台的嵌入式系统中。
调试器和被调试进程通过串口或者网络进行通信。
远程调试器的功能
调试器的功能:
可以控制、访问被调试的进程,
读取被调试进程的当前状态,并能够改变被调试进程的运行状态。
查看和修改目标机上内存单元、寄存器以及被调试进程中的变量值等各种调试功能
嵌入式软件的固化运行
Boot模块:当应用程序在真实的目标环境下运行时将首先执行该程序。
主要功能:初始化CPU环境,使目标机硬件到已知的状态
初始化芯片的引脚
初始化系统外部控制寄存器
初始化基本输入输出设备
初始化MMU,包括片选控制寄存器等
执行数据拷贝
8.嵌入式系统设计人员的3个层次
第1层次以CAD软件和ICE为主要工具的设计方法。
第2层次以EDA工具软件和EOS为开发平台的设计方法。
第3层次以IP内核库为设计基础,用软硬件协同设计技术的设计方法。
9.嵌入式系统开发经验
掌握嵌入式系统的应用开发需要一个过程。
需要掌握数字电路和模拟电路方面的知识、单片机原理、硬件结构、扩展接口和编程语言。
硬件设计方面的积累;软件设计方面的积累;设计经验方面的积累。
硬件开发是嵌入式系统开发的基础,软件的开发是建立在硬件之上,软、硬件结合设计是项目开发质量保证的关键。
本节习题
1,嵌入式系统设计一般步骤包括那几个方面?
1)需求分析
2)体系结构设计
3)硬件/软件设计
4)系统集成和系统测试
2,根据不同的阶段,嵌入式软件开发工具可以分为:
需求分析工具(Requirement Analysis Tools)
软件设计工具(Software Design Tools)
编码、调试工具(Coding Tools)
测试工具(Testing Tools)
配置管理工具、维护工具等
3,列举嵌入式系统设计人员的3个层次
第1层次以CAD软件和ICE为主要工具的设计方法。
第2层次以EDA工具软件和EOS为开发平台的设计方法。
第3层次以IP内核库为设计基础,用软硬件协同设计技术的设计方法。
转载请注明奥鹏作业答案网www.op5n.com
页:
[1]