[精选]05 嵌入式系统结构及软件开发模式--资料
嵌入式系统开发

嵌入式系统开发嵌入式系统是指内嵌在其他设备或系统中,实现特定功能的计算机系统。
它通常集成了硬件和软件,通过专门的开发平台进行开发和编程。
嵌入式系统广泛应用于各个领域,如汽车、家电、医疗设备、通信设备等。
本文将围绕嵌入式系统开发展开,介绍嵌入式系统的基本原理、开发流程以及相关技术。
一、嵌入式系统的基本原理嵌入式系统的基本原理是将处理器、存储器、输入输出设备等硬件组件集成在一起,通过操作系统和应用程序实现特定的功能需求。
常见的嵌入式系统采用单片机或微处理器作为核心处理器,具有较小的体积和功耗。
嵌入式系统的设计需要考虑硬件平台的选择、外设的接口设计、系统调度和任务管理等方面。
同时,软件开发也是嵌入式系统的重要组成部分,包括操作系统的移植、设备驱动程序的编写以及应用程序的开发。
二、嵌入式系统开发流程嵌入式系统的开发流程包括需求分析、硬件设计、软件开发、集成测试和发布等环节。
下面将逐一介绍各个环节的内容。
1. 需求分析在嵌入式系统开发之前,需要明确系统的功能需求和性能要求。
通过与用户沟通和需求分析,确定硬件平台、输入输出设备和外部接口等方面的需求。
2. 硬件设计硬件设计是指基于嵌入式系统的功能需求,选择合适的处理器、存储器、外设等硬件组件,并进行相应的电路设计和PCB布局。
硬件设计需要考虑系统的稳定性、扩展性和功耗等因素。
3. 软件开发软件开发是嵌入式系统开发的关键环节。
首先,根据硬件平台的选择,进行操作系统的移植和配置。
然后,编写设备驱动程序,实现对外设的控制和数据交换。
最后,根据系统需求,开发应用程序,实现特定功能。
4. 集成测试集成测试是将硬件和软件进行整合,测试系统的功能和性能是否满足需求。
通过功能测试、性能测试和稳定性测试,发现并修复系统中的缺陷和问题。
5. 发布在集成测试通过后,将嵌入式系统制作成最终产品,进行出厂测试和质量控制。
然后,将产品发布给客户或上线市场。
三、嵌入式系统开发的相关技术嵌入式系统开发涉及到多个技术领域,下面将介绍几个重要的技术。
最新嵌入式系统简介嵌入式系统的组成嵌入式系统开发流程ppt课件PPT课件

• ROM仿真器 • JTAG仿真器 • 逻辑分析器
• 需求管理工具
• 示波器
• DSP开发工具
• 器件驱动器开发工具
• 软硬件协同验证工具
9.3 嵌入式系统开发流程
1 嵌入式软件开发的特点
▪ 嵌入式系统与通用计算机系统的差别:
– 人机交互界面 – 有限的功能
– 时间关键性和稳定性
▪ 嵌入式软件开发的特点:
嵌入式微控制器EMCU
• 嵌入式微控制器又称为单片机,它将CPU、存 储器(少量的RAM、ROM或两者都有)和其 它外设接口封装在同一片集成电路里。
• 嵌入式微控制器制造商:摩托罗拉、英特尔、 英飞凌科技、 Atmel、日立、NEC、三菱、 东芝、松下、Microchip、富士、飞利浦、德 州仪器、三星、三洋、索尼、Oki、凌阳科技 等。
9.1 嵌入式系统简介
• 广义上讲,凡是带有微处理器的专用软硬 件系统都可称为嵌入式系统。如各类单片
机和DSP系统。这些系统在完成较为单一 的专业功能时具有简洁高效的特点。但由 于他们没有操作系统,管理系统硬件和软 件的能力有限,在实现复杂多任务功能时, 往往困难重重,甚至无法实现 • 从狭义上讲,那些使用嵌入式微处理器构 成独立系统,具有自己操作系统,具有特 定功能,用于特定场合的专用软硬件系统 称为嵌入式系统。
▪ 嵌入式软件开发的特点:
–引入任务设计方法 –需要固化程序 –软件开发难度大
➢ 嵌入式应用软件对实时性、稳定性、可靠性、 抗干扰性等性能的要求都比通用软件的要求 更为严格和苛刻。
2.2 嵌入式系统开发的流程
嵌入式软件的开发流程与通用软件的开发流程 大同小异,但开发所使用的设计方法具有嵌入式 开发的特点。整个开发流程可分为:
嵌入式软件开发流程知识讲解

嵌入式软件开发流程嵌入式软件开发流程一、嵌入式软件开发流程1.1 嵌入式系统开发概述由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。
嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。
图1.1 嵌入式系统开发流程图在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。
另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。
往往通过硬件实现会增加产品的成品,但能大大提高产品的性能和可靠性。
再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。
这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。
本书在4.1.5节对各种不同的嵌入式操作系统进行了比较,读者可以以此为依据进行相关的选择。
比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。
由于本书主要讨论嵌入式软件的应用开发,因此对硬件开发不做详细讲解,而主要讨论嵌入式软件开发的流程。
1.2 嵌入式软件开发概述嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。
其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。
由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。
嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS的一个工具)等,在调试阶段所用的Multi-ICE等。
同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。
第五章嵌入式系统软件体系结构汇总

北京博创兴业科技有限公司
BEIJNG UNIVERSAL PIONEERING TECHNOLOGY Co . , LTD
© 2005 博创科技
主要内容
5.1嵌入式系统软件体系结构 5.2设备驱动程序 5.3嵌入式操作系统 5.4 嵌入式中间件 5.5 进程、线程和任务 5.6 嵌入式系统的应用软件开发
这种实体就是:线程(Thread)
(2)线程定义
Thread: • A sequential execution stream within
a process; • A thread of execution; • 进程当中的一条执行流程。
从两个方面来理解进程:
从资源组合的角度:进程把一组相关的 资源组合起来,构成了一个资源平台 (环境),包括地址空间(代码段、数据 段)、打开的文件等各种资源;
WWW 浏览器
中间件 嵌入式
层
CORBA
MP3 播放器
嵌入式 JAVA
…
嵌入式 DCOM
电子 邮件
面向领域 的中间件
操作 系统层
TCP/IP 网络系统
设备 驱动层
板级 初始化
文件 系统
以太网 驱动
内核
嵌入式 GUI
串口 驱动
LCD 驱动
键盘 驱动
硬件
第2节 设备驱动程序
5.2 设备驱动程序
为什么要有设备驱动程序? 嵌入式硬件设备本身无法工作,需要软件来 驱动,如初始化、控制、数据读写等。
后台也可以叫做任务级,前台也叫中断级。
前后台系统(后台循环、前台中断)
后台
前台
ISR
时间
ISR
ISR
例如,很多基于微处理器的产品采用 前后台系统设计,如微波炉、电话机、 玩具等。从省电的角度出发,平时微 处理器处在停机状态,所有的事都靠 中断服务来完成。
嵌入式系统结构及软件开发模式分解

板级支持包(BSP) 硬件层
固件
2020/2/29
北京大学出版社出版 杨宗德编著
4
嵌入式ARM系统原理与实例开发
通用计算机系统与嵌入式系统对比
2020/2/29
北京大学出版社出版 杨宗德编著
5
嵌入式ARM系统原理与实例开发
第5章 嵌入式系统结构及软件开发模式
1
嵌入式系统软硬件结构
2
嵌入式软件开发工具及开发模式
• 所谓交叉是指在一种CPU及其环境上开发另一种CPU及其环境 上运行的程序。
2020/2/29
北京大学出版社出版 杨宗德编著
8
嵌入式软件开发环境
嵌入式ARM系统原理与实例开发
• 2)软件模拟环境
• 软件模拟环境也称为指令集模拟器ISS(Instruction Set Simulator)
• 软件模拟不可能完全代替真正的硬件环境,这种模拟调试只能 作为一种初步调试,主要是用作用户程序的模拟运行,用来检 查语法、程序的结构等简单错误,用户最终还必须在真实的硬 件环境中实际运行调试,完成整个应用的开发。
嵌入式ARM系统原理与实例开发
嵌入式ARM系统原理与实例开发
北京大学出版社 出版 杨宗德 编著 2007年7月
嵌入式ARM系统原理与实例开发
第5章 嵌入式系统结构及软件开发模式
1
嵌入式系统软硬件结构
2
嵌入式软件开发工具及开发模式
嵌入式硬件最小系统结构
嵌入式ARM系统原理与实例开发
FLASH
ROM
共享目标文件 (*.o,*.a)
可执行映象 (*.elf,*.coff)
链接映射文件 (*.map) 设备程序员
源
嵌入式系统简介嵌入式系统的组成嵌入式系统开发流程

嵌入式微处理器分类
嵌入式微控制器 (MCU)
嵌入式处理器
嵌入式DSP处理器 (DSP)
嵌入式微处理器 (MPU)
嵌入式片上可编程系统 (SOPC)
嵌入式系统硬件核心
• 嵌入式系统硬件核心是嵌入式处理器。 • 嵌入式处理器可以分为四类:
嵌入式微处理器EMPU (Embedded Microprocessor Unit)
第9章 嵌入式系统概述
• 嵌入式系统简介 • 嵌入式系统的组成 • 嵌入式系统开发流程
9.1 嵌入式系统简介
• 广义上讲,凡是带有微处理器的专用软硬 件系统都可称为嵌入式系统。如各类单片
机和DSP系统。这些系统在完成较为单一 的专业功能时具有简洁高效的特点。但由 于他们没有操作系统,管理系统硬件和软 件的能力有限,在实现复杂多任务功能时 ,往往困难重重,甚至无法实现 • 从狭义上讲,那些使用嵌入式微处理器构 成独立系统,具有自己操作系统,具有特 定功能,用于特定场合的专用软硬件系统 称为嵌入式系统。
嵌入式系统的几个重要特征
1.系统内核小:
由于嵌入式系统一般是应用于小型电子装 置的,系统资源相对有限,所以内核较之 传统的操作系统要小得多。
2.专用性强:
嵌入式系统的个性化很强,其中的软件系 统和硬件的结合非常紧密,一般要针对硬 件进行系统的移植。
即使在同一品牌、同一系列的产品中也需 要根据系统硬件的变化和增减不断进行修 改。
• DSP正在大量进入嵌入式市场,目前广 泛应用的是TI产品TMS320C2000 /C5000系列,另外Intel和Siemens也 有相应的产品。
嵌入式片上系统ESoC
• ESoC:在一个硅片上实现一个更为复杂的系 统。
• 各种通用处理器内核将作为SoC设计公司的标 准库,成为 VLSI设计中一种标准的器件,用 标准的VHDL等语言描述。
嵌入式系统设计与开发
嵌入式系统设计与开发嵌入式系统是一种特殊的计算机系统,其主要目的是为了控制和执行特定任务。
它通常被用于各种各样的设备中,比如家电、汽车、医疗设备、工业控制系统等等。
嵌入式系统设计与开发是一个复杂而多样化的领域,需要深入理解硬件和软件之间的交互关系,以及对系统需求的准确分析和合理设计。
本文将从嵌入式系统设计的基础概念入手,介绍其主要组成部分、开发流程和常见的设计方法。
1. 嵌入式系统的组成部分嵌入式系统由硬件和软件两部分组成。
硬件部分包括处理器、存储器、输入输出设备等,而软件部分则是指运行在硬件上的程序。
嵌入式系统的成功与否取决于硬件和软件的协同工作。
在硬件方面,合适的处理器选择和外设设计是至关重要的。
而在软件方面,嵌入式系统的开发需要针对具体应用场景编写驱动程序和应用软件。
2. 嵌入式系统的开发流程嵌入式系统的开发流程通常分为需求分析、系统设计、实现和测试等几个阶段。
首先,需求分析阶段要明确系统的功能和性能要求,以及对应的硬件资源和接口需求。
其次,系统设计阶段需要根据需求分析结果选择适当的硬件平台和软件架构,并进行详细的模块设计和接口定义。
然后,在实现阶段,开发人员需要编写底层驱动程序和中间件,以及上层应用程序。
最后,在测试阶段,对嵌入式系统进行全面的功能和性能验证,确保系统的稳定性和可靠性。
3. 嵌入式系统的设计方法嵌入式系统的设计方法有很多种,下面介绍几种常见的设计方法。
(1)自上而下设计方法:这种方法强调从整体系统的角度进行设计,首先确定系统的总体结构和功能,然后再逐步细化到模块级别的设计。
这样做可以确保系统的各个部分之间的协调和一致性。
(2)自下而上设计方法:与自上而下设计方法相反,自下而上设计方法强调从底层模块开始逐步构建整个系统。
这种方法适合于处理那些复杂而独立的子系统,可以提高设计的灵活性和可扩展性。
(3)面向对象设计方法:面向对象设计方法将软件系统看作是一组相互协作的对象的集合。
第5章嵌入式系统软件结构与操作系统
第5章嵌入式系统软件结构与操作系统内容嵌入式系统典型的软件结构 嵌入式系统的引导技术嵌入式操作系统概述嵌入式操作系统的移植与裁剪常见的嵌入式操作系统Moblin系列操作系统5.1 嵌入式系统典型的软件结构 嵌入式软件的体系结构是高度灵活的简单的嵌入式软件可能只有几千行代码,实现简单的输入输出功能(例如一些电子玩具、计算器等),而复杂的嵌入式系统(如智能手机、机器人等)则几乎具备了通用桌面计算机和服务器计算机所拥有的复杂软件体系结构。
简单的嵌入式软件,适合于处理能力低的芯片硬件,但其提供的功能有限,在基础上的用户开发工作繁琐,而复杂的嵌入式系统提供的功能更为,给用户开发的接口和界面更为便利,但是需要处理能力高的硬件来支持。
随着硬件集成度的提高,处理能力的增强,硬件能力的瓶颈制约逐渐淡化甚至消失,因此嵌入式系统的软件趋于功能完备、丰富的方向发展。
5.1 嵌入式系统典型的软件结构 功能完备的典型嵌入式系统软件结构此仅为一个典型代表而已,具体系统会根据实际情况有所变化。
例如有些嵌入式系统没有操作系统,没有HAL 等典型的嵌入式软件结构(回忆第一章所述嵌入式系统的组成)操作系统(内核)操作系统负责组织和管理计算机的软硬件资源,合理地组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得用户能灵活、方便、有效地使用计算机。
操作系统主要功能包括处理器管理(又称进程管理或任务调度)、同步、内存管理和文件系统等。
从层次结构来看,操作系统使得硬件对用户透明。
例如用户不必关心外部存储器的形式(硬盘还是flash),可以以统一的文件系统来存取。
嵌入式操作系统一般要求是实时的。
操作系统(内核)完整的操作系统一般包含很多库用户可以通过系统调用或硬件中断来使用操作系统内核的服务,但为了更方便应用使用(特别是由高级程序设计语言书写的应用)操作系统内核服务,操作系统提供一些库来供应用使用。
库一般包括系统库和应用库两个层次,系统库包括如C库、Internet连接库等。
嵌入式系统的软件架构与模块设计指南
嵌入式系统的软件架构与模块设计指南嵌入式系统是一种特殊的计算机系统,被嵌入到其他设备中,以实现特定的功能。
嵌入式系统的软件架构和模块设计是其成功开发与运行的关键。
本文将详细介绍嵌入式系统的软件架构和模块设计的指南,以帮助开发人员更好地理解和应用。
1. 软件架构设计:1.1 系统需求分析:首先,开发人员需要全面了解用户的需求和系统的功能。
通过详细分析需求,定义系统的功能模块,并确定系统的整体结构。
1.2 分层架构设计:嵌入式系统的软件架构通常采用分层设计,将系统划分为不同的层次,每个层次负责不同的功能。
常见的分层结构包括硬件抽象层、驱动层、操作系统层和应用层等。
每个层次都有自己的职责和接口,便于开发人员进行模块化设计和开发。
1.3 模块化设计:模块化是嵌入式系统设计中的一个重要概念。
通过将功能划分为不同的模块,每个模块负责一个特定的功能,开发人员可以更好地组织和管理代码。
模块之间的接口应该明确定义,遵循标准化的通信方式,以确保模块之间的协作顺利进行。
1.4 可扩展性考虑:嵌入式系统通常需要满足不同的应用需求。
为了实现系统的可扩展性,开发人员应该设计一个灵活的软件架构,可以根据需求添加或移除模块。
此外,采用标准化的接口和协议,使得系统可以和其他设备进行无缝集成。
2. 模块设计指南:2.1 模块划分:在进行模块设计之前,需对系统的功能进行全面的分析和规划。
根据系统需求,将功能划分为合适的模块,每个模块负责一个特定的任务。
模块的划分应该遵循单一职责原则,每个模块只负责一个功能,使得代码更易于理解和维护。
2.2 模块接口设计:模块之间的通信通过接口进行。
设计良好的模块接口能够提高模块的独立性和可扩展性。
模块之间的接口应该明确定义输入和输出,并遵循标准化的协议和格式。
接口设计应该考虑到系统的性能和资源消耗,尽量减少通信开销。
2.3 模块实现方式选择:在进行模块实现时,开发人员需要根据系统需求和硬件资源选择合适的实现方式。
嵌入式系统的组成结构
存储器按存储信息的功能 可分为只读存储器ROM (Read Only Memory) 和随机存储器RAM (Random Access Memor硬y)件单元
软件
嵌入式系统中的输入形式一 般按包键括和触虚中负包摸拟央责括屏键处控微理制、盘处器整语等理是个音器嵌系输、入 统入微式 的、系 执控统 行制的 。器核、心,
单芯片方式(Single Chip) 芯片组方式(Chip Set):由微处理器主芯片和一些从芯片组成
19
嵌入式微处理器的集成度
➢ 嵌入式微处理器是面向应用的,其片内所包含的组件的数 目和种类是由它的市场定位决定的。
➢ 在最普通的情况下,嵌入式微处理器包括:
片内存储器:部分嵌入式微处理器 外部存储器的控制器,外设接口(串口,并口) LCD控制器:面向终端类应用的嵌入式微处理器 中断控制器,DMA控制器,协处理器 定时器,A/D、D/A转换器 多媒体加速器:当高级图形功能需要时 总线 其他标准接口或外设
上电复位后完成板级初始化工作。 板级初始化程序具有完全的硬件特性,一般采用汇编
语言实现。不同的嵌入式系统,板级初始化要完成的 工作不同,但以下工作一般是必须完成的:
➢CPU中堆栈指针寄存器的初始化。 ➢BSS段(Block Storage Space,未被初始化的数据
)的初始化。 ➢CPU芯片级的初始化:中断控制器、内存等的初始
人机交互接口LCD/触摸屏、键盘、鼠标
软件
硬件
输 入 输 出 接 口
工作原理:系统运行后即图启2-动1 典看型门的狗嵌,入式开系始统自组动成 计数,如果到一定时间未清 看门狗,看门狗就会溢出从而引起看门狗中断,造成系统复位。
5
软件系统
➢ 软件(software)是计算机系统中与硬件(hardware)相互 依 存 的 另 一 部 分 , 它 包 括 程 序 (program) 、 相 关 数 据 (data)及其说明文档(document)。 其中:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2019/4/27
北京大学出版社出版 杨宗德编著
9
嵌入式软件开发环境
嵌入式ARM系统原理与实例开发
• 3)评估电路板
• 一般用来作为开发者使用的开发平台、学习板、实验板,它们 可以作为应用目标板出来之前的软件测试、硬件调试的电路板
2019/4/27
北京大学出版社出版 杨宗德编著
10
嵌入式ARM系统原理与实例开发
共享目标文件 (*.o,*.a)
可执行映象 (*.elf,*.coff)
链接映射文件 (*.map) 设备程序员
源
阶 段
代 码 编
辑
源文件 编译 阶段
与 重链 定接 位
调试与 下载 阶段
2019/4/27
北京大学出版社出版 杨宗德编著
12
嵌入式ARM系统原理与实例开发
嵌入式软件开发的可移植性和可重用性
• (4)通过交叉调用器终端访问目标板的交叉调试服务器,将 该程序的运行结果反馈到宿主出版 杨宗德编著
25
嵌入式ARM系统原理与实例开发
带BootLoader系统软件开发实例验
• 见教材5.2节。
2019/4/27
北京大学出版社出版 杨宗德编著
嵌入式ARM系统原理与实例开发
嵌入式ARM系统原理与实例开发
北京大学出版社 出版 杨宗德 编著 2007年7月
嵌入式ARM系统原理与实例开发
第5章 嵌入式系统结构及软件开发模式
1
嵌入式系统软硬件结构
2
嵌入式软件开发工具及开发模式
嵌入式硬件最小系统结构
嵌入式ARM系统原理与实例开发
FLASH
ROM
• Symbian应用程序开发:如果开发Symbian手机应用程序,则 Symbian应用程序开发选择的是Symbian的C/C++集成开发环 境。
• Linux应用程序开发:如果开发的是Linux应用程序,则选择的 开发工具是Linux程序开发工具(GCC/G++/GDB/Makefile)。
2019/4/27
SDRAM POWER
ARM 处 理 器
GPIO RTC
USB
RS232
RJ45
Key
2019/4/27
北京大学出版社出版 杨宗德编著
3
嵌入式软件系统基本模型
嵌入式ARM系统原理与实例开发
应用程序层(Application) FS文件系统 图形界面GUI 系统管理接口
实时操作系统内核系统(RTOS)
• 在确保软件的正确性、实时性的前提下,必须关注软件的可移 植性和可重用性。
• 嵌入式软件与通用软件的不同在于嵌入式应用软件高度依赖于 目标应用的软硬件环境,软件的部分任务功能函数由和处理器 密切相关的汇编语言完成,可移植性差。
• 一个运行良好的嵌入式软件或其中的部分子程序可能在今后的 开发中被应用于类似的应用领域。原有的代码已被反复应用和 维护,具有更好的稳定性。在原有的代码上进行移植将会减少 开发的周期、提高开发效率、节约开发成本
11
嵌入式ARM系统原理与实例开发
嵌入式应用软件开发的基本流程
头文件 (*.h,*.hpp)
源文件列表
C/C++源代码
汇编源代码
编译预处理
编译器
汇编器
头文件 (*.h,*.hpp)
源文件列表
Archive工具
库文件 (*.a,*.lib)
可重定位 目标文件
链接器和定位器
链接器 命令文件
重定位文件表 (*.o,*.a) 目标开发系统
北京大学出版社出版 杨宗德编著
23
嵌入式ARM系统原理与实例开发
Linux交叉编译调试环境开发程序过程
2019/4/27
北京大学出版社出版 杨宗德编著
24
嵌入式ARM系统原理与实例开发
Linux交叉编译调试环境开发程序过程
• (1)程序首先在宿主机(安装与应用目标板同样内核的Linux 操作系统)编辑编译,生成可执行文件。
2019/4/27
北京大学出版社出版 杨宗德编著
18
元 器 件 选 择
2019/4/27
系统定义与需求分析
嵌入式ARM系统原理与实例开发
系统设计初步说明文档
系统初步设计方案与设计描述文档
系 统 总 体 设 计
软系 硬统 件功 协能 同划 设分 计与
本处 接理 口器 器选 件择 选与 择基
操 作 系 统 选 择
嵌入式ARM系统原理与实例开发
嵌入式软件开发的特点和技术挑战
• 嵌入式软件开发需要软硬件开发环境和工具 • 嵌入式软硬件必须协同设计 • 需要新的任务设计方法 • 开发过程完成后,系统应用程序代码需要固化到系统中并进行
功能、性能和可靠性测试 • 技术挑战:软件的要求更高,开发工作量和难度更大,需要较
大的知识集合
2019/4/27
北京大学出版社出版 杨宗德编著
7
嵌入式软件开发环境
嵌入式ARM系统原理与实例开发
• 1)交叉开发环境
• 交叉开发软件一般为一个整合编辑、编译、汇编、链接、调试、 工程管理及函数库等功能模块的集成开发环境IDE (Intergrated Development Environment)。
板级支持包(BSP) 硬件层
固件
2019/4/27
北京大学出版社出版 杨宗德编著
4
嵌入式ARM系统原理与实例开发
通用计算机系统与嵌入式系统对比
2019/4/27
北京大学出版社出版 杨宗德编著
5
嵌入式ARM系统原理与实例开发
第5章 嵌入式系统结构及软件开发模式
1
嵌入式系统软硬件结构
2
嵌入式软件开发工具及开发模式
嵌入式应用软件开发的基本流程
• 基于交叉开发环境的嵌人式应用软件开发主要分如下几个步骤: 开发环境的建立、源代码编辑阶段、交叉编译和链接、重定位 和下载、联机调试几个基本阶段。 – 开发环境建立 – 源文件编辑阶段 – 编译 – 链接 – 下载 – 调试
2019/4/27
北京大学出版社出版 杨宗德编著
26
14
嵌入式开发的考虑要素
• 复杂计算与资源紧缺 • 用户界面的选择 • 实时性 • 多任务多速率 • 制造成本 • 功耗 • 成品的体积
嵌入式ARM系统原理与实例开发
2019/4/27
北京大学出版社出版 杨宗德编著
15
软硬件协同设计
嵌入式ARM系统原理与实例开发
• 嵌入式系统设计是使用一组物理硬件和软件来完成所需功能的 过程。系统是指任何由硬件、软件或者两者的结合来构成的功 能设备。
2019/4/27
北京大学出版社出版 杨宗德编著
16
软硬件协同设计
嵌入式ARM系统原理与实例开发
2019/4/27
北京大学出版社出版 杨宗德编著
17
嵌入式ARM系统原理与实例开发
嵌入式开发的基本流程
• 系统定义与需求分析 • 系统设计方案的初步确立 • 初步设计方案性价比评估与方案评审论证 • 完善初步方案、初步方案实施 • 软硬件集成测试 • 系统功能性能测试及可靠性测试
• (2)通过网络共享方式将该程序共享给目标板,因为此处是 开发Linux应用程序,目标板已经移植了Linux操作系统,因此, 可以充分利用Linux操作系统强大的网络功能,通过共享的方 式的原因一方面是减少下载程序的时间,另一方面也是因为目 标板资源有很,尽可能少占用目标板资源的考虑。
• (3)通过Linux操作系统远程登陆方式登陆到目标板Linux, 并在目标板上运行交叉调试服务器,然后在目标板上运行共享 到目标板的Linux应用程序。
2019/4/27
北京大学出版社出版 杨宗德编著
13
嵌入式ARM系统原理与实例开发
嵌入式软件开发的可移植性和可重用性
• 采用下面的方法可以提高应用软件的可移植性和可重用性。
– 多用高级语言少用或者不用汇编语言 – 将不可移植部分局域化 – 提高代码的可重用性(标准化接口)
2019/4/27
北京大学出版社出版 杨宗德编著
下载
串口 USB RJ45
串口、 USB、RJ45
串口、 USB、RJ45
超级终端 监控程序运
行
串口 RS232
串口
ARM处理器
2019/4/27
北京大学出版社出版 杨宗德编著
21
嵌入式操作系统开发
• GCC系列工具
嵌入式ARM系统原理与实例开发
• 嵌入式操作系统多用C/C++开发,因此,要编译操作系统内容, 一般都使用GCC系列工具。
N 满足要求
Y 样机
开发流程图
北京大学出版社出版 杨宗德编著
19
嵌入式ARM系统原理与实例开发
常用嵌入式系统软件开发工具
• 面向硬件的开发工具 – 如ADS
• 嵌入式操作系统开发 – 如GCC
• 面向特定操作系统的应用开发工具
2019/4/27
北京大学出版社出版 杨宗德编著
20
嵌入式ARM系统原理与实例开发
• 由于嵌入式系统是一个专用的系统,所以嵌入式产品的设计过 程中,软件设计和硬件设计是紧密结合、相互协调的。这就产 生了一种全新的发展中的设计理论软硬件协同设计
• 这种方法的特点是在设计时,从系统功能的实现考虑,把实现 时的软硬件同时考虑进去,硬件设计包括芯片级“功能定制” 设计。既可以最大限度的利用有效资源、缩短开发周期,又能 取得更好的设计效果。
• 所谓交叉是指在一种CPU及其环境上开发另一种CPU及其环境 上运行的程序。
2019/4/27
北京大学出版社出版 杨宗德编著