嵌入式系统第一讲 嵌入式系统概述

自己整理的笔记自用,抄录老师给的课件,只是看没有印象,所以我就敲出来了,不算原创也不算翻译,考试复习用的,有需要的伙伴可以看看,个人觉得还是有逻辑的。

• 1.1 嵌入式系统简介

1.1.1 嵌入式系统历史与现状

嵌入式系统的前身是单片机(20世纪70年代)

嵌入式系统发展的四个阶段

  1. 无操作系统阶段
  2. 简单操作系统阶段
  3. 实时操作系统阶段(实时多任务操作系统)
  4. 面向Internet阶段(嵌入式设备与Internet紧密结合)

1.1.2 嵌入式系统体系结构

(一)嵌入式系统的定义

(1)嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。

(2)嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。

(二)嵌入式系统的体系结构/组成

(1)嵌入式硬件平台

-嵌入式处理器(CPU)

-嵌入式外围设备(存储器+I/O)

(2)嵌入式操作系统(Linux、Android)

(3)嵌入式应用软件

(三)嵌入式系统与通用计算机(PC)的区别

  1. 嵌入式系统通常是面向特定应用的;
  2. 嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物;
  3. 嵌入式系统的硬件和软件都必须高效地设计,量体裁衣,去除冗余;
  4. 嵌入式系统和具体应用有机结合在一起,它的升级换代也是和具体产品同步进行;
  5. 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固定在存储器芯片或单片机本身中,而不是存储于硬盘等载体中;
  6. 嵌入式系统本身不具备自主开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。

1.1.3 应用领域和发展方向

-后PC时代:嵌入式产品

-嵌入式系统的应用领域

  1. 信息电器(智能家电等);
  2. 移动计算设备(手机、PDA等);
  3. 网络设备(路由器、交换机、网络接入设备等);
  4. 工控、仿真、医疗仪器等。

-嵌入式系统的发展方向

  1. 硬件平台多样性和应用个性化;
  2. 强大的网络和多媒体处理能力;
  3. 易用的界面和丰富的应用功能;
  4. 运用无线网络通信技术。

• 1.2 嵌入式处理器

1.2.1 嵌入式处理器简介

• 嵌入式处理器的分类(记住一些缩写)

  1. 嵌入式微处理器EMPU(Embedded MicroProcessor Unit),如ARM系列嵌入式微处理器(RK3399
  2. 嵌入式微控制器MCU(MicroController Unit),如8051单片机(STM32)
  3. 嵌入式DSP处理器EDSP(Embedded Digital Signal Proccessor Unit),数字信号处理器DSP
  4. 嵌入式片上系统SoC(System on Chip),将整个嵌入式系统硬件(嵌入式处理器+嵌入式外围设备)集成在一个芯片上

1.2.2 ARM处理器的应用领域及一般特点(重点)

• ARM:Advanced RISC Machines

• ARM公司:1991年成立于英国剑桥,32位嵌入式RISC微处理器业界的领先IP核供应商,ARM公司本身不生产芯片,而是通过转让设计方案由合作伙伴生产各具特色的芯片。

IP(Intellectual Property)核就是知识产权核或知识产权模块的意思。分为软IP、固IP、硬IP

软IP是用Verilog/VHDL等硬件描述语言描述的功能块,不涉及具体电路元件实现这些功能;

固IP是完成了综合的功能块;

硬IP提供设计的最终阶段产品——掩膜。

• RISC:Reduced Instruction Set Computer精简指令集计算机

-RISC构架的指令格式和长度通常是固定的(如ARM是32位的指令)、且指令和寻址方式少而简单、大多数指令在一个周期内就可以执行完毕

• CISC:Complex Instruction Set Computer复杂 指令集计算机

通过存放在只读存储器中的微码(microcode)来控制整个处理器的运行

• ARM处理器的应用领域

工业控制领域;

无线通信领域;

网络应用;

消费类电子产品;

成像和安全产品。

• 采用RISC架构的ARM处理器的特点

① 体积小、低功耗、低成本、高性能;

② 支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件(外围设备器件);

③ 大量使用寄存器,指令执行速度更快;

④ 大多数数据操作都在寄存器中完成;

⑤ 寻址方式灵活简单,执行效率高;

⑥ 指令长度固定。

1.2.3 ARM处理器系列

• 32位RISC处理器、64位RISC处理器

• ARM系列处理器的家族:– ARM1、ARM2、ARM3、…、ARM11、ARM Cortex

• ARM系列处理器的架构(体系结构版本):– v1、v2、……、v7

• ARM系列处理器的内核(核心):– ARM1、ARM2、……、ARM7TDMI、…、ARM920T、…、 ARM Cortex-A、ARM Cortex-R、ARM Cortex-M、Cortex-X

·典型产品

• Cortex-A系列又称“高性能处理器”(Highest Performance),它是面向移动计算如智能手机、平板电脑和服务器市场定制的高端处理器内核,支持了包括Linux、Android、Windows和iOS等系统必须的内存管理单元(MMU)

• Cortex-M 系列针对成本和功耗敏感(Lowest Power, Lower Cost)的MCU和终端应用(如智能测量、人机接口设备、 汽车和工业控制系统、大型家用电器、消费性产品和医疗 器械)的混合信号设备进行过优化。

• 1.3 嵌入式操作系统

1.3.1 嵌入式操作系统简介

1.3.2 嵌入式Linux

操作系统的必要性

① 操作系统可以有效的管理越来越复杂的系统资源;

② 操作系统可以把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来;

③ 操作系统可以提供库函数、驱动程序、工具集以及应用程序

常见的嵌入式操作系统:

嵌入式Linux ② VxWorks ③ μC/OS-II ④ Windows CE ⑤ Sysbian ⑥ Android ⑦ iOS ⑧ 其它:QNX,Palm OS,LynxOS,NucleusPLUS, ThreadX,eCos

• 嵌入式Linux 是对标准Linux进行裁剪后,能够固化在容量只有几KB或者几MB的存储器芯片中 ,目前大约有一半的嵌入式操作系统是使用嵌入式Linux

• 嵌入式Linux的特点

① 广泛的硬件支持:Linux甚至可以在没有MMU(存储管理单元)的处理器上运行;

内核高效稳定Linux内核包括进程调度、内存管理、进程间通信、虚拟文件系统和网络接口等5大部分;独特的模块机制可以实时地将模块插入到内核,或从内核中移走;

开放源码,软件丰富:在Linux上开发嵌入式应用软件, 一般不必从头做起,可以选择一个类似的自由软件作为原型,在其上进行二次开发;

④ 优秀的开发工具:传统的嵌入式(单片机)开发调试工具 是在线仿真器(ICE);嵌入式Linux使用GNU gcc作为编译 器,用gdb、kgdb、xgdb作为调试工具;

⑤ 完善的网络通信文件管理机制:支持ext2、fat16、fat32、 romfs等文件系统。

1.3.3 VxWorks

-目前使用最广泛、市场占有率最高的实时嵌入式 操作系统

• VxWorks的特点:

① 高度可靠性; ② 高实时性; ③ 可裁剪性好。

• VxWorks支持多种处理器

1.3.4 μC/OS-II

• 是一种免费公开源代码、结构小巧、具有可剥夺实时内核实时操作系统,之前的版本是μC/OS

• μC/OS-II的特点:

① 专门为嵌入式应用设计,绝大部分代码是用C 语言编写的;

② 执行效率高、占用空间小、实时性能优良和可扩展性强;

③ 仅包含任务调度、任务管理、时间管理、内存 管理、任务间的通信和同步等基本功能,没有提供输入输出管理、文件系统、网络等额外的服务。

1.3.5 Windows CE

-是一个开放的、可升级的32 bit嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统

• 主要应用领域:PDA、Pocket PC、手机等

• Windows CE的SDK(集成开发环境):Embedded Visual Basic(EVB)、 Embedded Visual C++(EVC)、Visual Studio,利用它们进行应用软件的开发

1.3.6 Symbian

• 塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统

1.3.7 Android

• Google公司基于Linux平台的开源手机操作系统,是一个对第三方软件完全开放的平台

• Android平台包括:操作系统、中间件、用户界面、 应用软件

• Android包括:

① 经过裁剪和调优的Linux Kernel(内核)

② 经过修改的Java虚拟机Dalvik

③ 大量的类库和应用软件,如浏览器WebKit、数 据库SQLite

④ 大量现成的应用软件

⑤ 基于Eclipse的开发环境、模拟器、文档、帮助、 示例等

1.3.8 iOS

• iOS的创新设计是能使用多点触控直接操作

• 1.4 嵌入式系统设计

1.4.1 嵌入式系统设计过程

三个阶段:

分析->设计->实现

开发流程:

  1. 选择嵌入式处理器(硬件平台)
  2. 选择嵌入式操作系统(软件平台)
  3. 开发嵌入式应用软件
  4. 系统测试

1.4.2 硬件设计平台的选择

处理器的选择(选择处理器时需要考虑的主要因素):

  1. 处理性能
  2. 技术指标
  3. 功耗
  4. 软件支持工具
  5. 是否内置调试工具
  6. 供应商是否提供调试板

硬件选择的其他因素

  • 生产规模
  • 市场目标
  • 软件对硬件的依赖性
  • 尽量选择普通(通用)的硬件

1.4.3 软件设计平台的选择

嵌入式软件的开发流程

  1. 代码编写
  2. 交叉编译
  3. 交叉链接
  4. 下载到目标板
  5. 调试

选择操作系统

  1. 低端无MMU的处理器,选择μCLinux操作系统
  2. 高端有MMU的处理器,选择标准的Linux操作系统

嵌入式操作系统选择需要考虑的因素

  1. 操作系统提供的开发工具
  2. 操作系统向硬件接口移植的难度
  3. 操作系统对内存的要求
  4. 开发人员是否熟悉此操作系统及其提供的API
  5. 操作系统是否提供硬件的驱动程序
  6. 操作系统的可裁剪性
  7. 操作系统的实时性能

编程语言的选择需要考虑的因素

  1. 通用性
  2. 可移植性程度
  3. 执行效率
  4. 可维护性

集成开发环境(IDE)选择需要考虑的因素

  1. 系统调试器的功能,包括远程调试工具
  2. 支持库调试,尽量采用标准化的glibc
  3. 编译器开发商是否持续升级编译器
  4. 链接程序是否支持所有的文件格式和符号格式

1.4.4 嵌入式应用软件开发

交叉开发

宿主机/目标机模式

-宿主机:PC机(x86环境)

-目标机:可以是实际的运行环境,也可以用仿真系统替代实际的运行环境(如ARM环境)

交叉开发环境包括
  1. 交叉编译器
  2. 交叉调试器
  3. 系统仿真器
交叉开发环境的类型
  1. 开放的:如GNU工具链
  2. 商业的:如Microsoft Visual Studio等

交叉调试

– PC机软件开发过程的调试方法

调试器和被调试的程序运行在同一个平台(PC机,x86环境)上, 调试器是一个单独运行着的进程,它通过操作系统提供的调试接口控制被调试的进程。

– 嵌入式软件开发过程的调试方法(交叉调试、远程调试)

调试器运行在宿主机(PC机,x86环境)的通用操作系统之上,被 调试的进程却是运行在基于特定硬件平台(目标板,如ARM环境) 的嵌入式操作系统中,调试器和被调试的进程通过串口(或网络) 进行通信,调试器可以控制、访问被调试的进程,读取被调试进 程的当前状态,并能够改变被调试进程的运行状态。

– 远程调试

允许调试器以某种方式控制目标机上被调试进程的运行方式,并具有查看、修改目标机上内存单元、寄存器以及被调试进程中变量值等各种调试功能。

– 远程调试的特点
  1. 调试器运行在宿主机(PC机)上,被调试的进程运行在目标板上(如ARM平台)
  2. 调试器通过串口、并口、网络、DBM、JTAG等与被调试进程建立联系
  3. 目标机上一般会具有某种形式的调试代理,它负责与调试器共同完成对目标机上被调试进程的调试,调试代理可以是硬件设备(如DBI 2000),也可以是调试软件(如gdbserver)
  4. 目标机可以是系统仿真器(用仿真软件来代替目标机)

1.4.5 测试和优化

基于目标机(ARM平台)的测试需要消耗较多的时间和经费;

基于宿主机(PC机)的测试虽然代价较小,但是毕竟在仿真环境中进行,因此难以完全反应软件运行的实际情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个没有天赋的软工大学生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值