自己整理的笔记自用,抄录老师给的课件,只是看没有印象,所以我就敲出来了,不算原创也不算翻译,考试复习用的,有需要的伙伴可以看看,个人觉得还是有逻辑的。
• 1.1 嵌入式系统简介
1.1.1 嵌入式系统历史与现状
嵌入式系统的前身是单片机(20世纪70年代)
嵌入式系统发展的四个阶段:
- 无操作系统阶段
- 简单操作系统阶段
- 实时操作系统阶段(实时多任务操作系统)
- 面向Internet阶段(嵌入式设备与Internet紧密结合)
1.1.2 嵌入式系统体系结构
(一)嵌入式系统的定义
(1)嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。
(2)嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
(二)嵌入式系统的体系结构/组成
(1)嵌入式硬件平台
-嵌入式处理器(CPU)
-嵌入式外围设备(存储器+I/O)
(2)嵌入式操作系统(Linux、Android)
(3)嵌入式应用软件
(三)嵌入式系统与通用计算机(PC)的区别
- 嵌入式系统通常是面向特定应用的;
- 嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物;
- 嵌入式系统的硬件和软件都必须高效地设计,量体裁衣,去除冗余;
- 嵌入式系统和具体应用有机结合在一起,它的升级换代也是和具体产品同步进行;
- 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固定在存储器芯片或单片机本身中,而不是存储于硬盘等载体中;
- 嵌入式系统本身不具备自主开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。
1.1.3 应用领域和发展方向
-后PC时代:嵌入式产品
-嵌入式系统的应用领域
-嵌入式系统的发展方向
- 硬件平台多样性和应用个性化;
- 强大的网络和多媒体处理能力;
- 易用的界面和丰富的应用功能;
- 运用无线网络通信技术。
• 1.2 嵌入式处理器
1.2.1 嵌入式处理器简介
• 嵌入式处理器的分类(记住一些缩写)
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.4.2 硬件设计平台的选择
处理器的选择(选择处理器时需要考虑的主要因素):
- 处理性能
- 技术指标
- 功耗
- 软件支持工具
- 是否内置调试工具
- 供应商是否提供调试板
硬件选择的其他因素
- 生产规模
- 市场目标
- 软件对硬件的依赖性
- 尽量选择普通(通用)的硬件
1.4.3 软件设计平台的选择
嵌入式软件的开发流程
- 代码编写
- 交叉编译
- 交叉链接
- 下载到目标板
- 调试
选择操作系统
- 低端无MMU的处理器,选择μCLinux操作系统
- 高端有MMU的处理器,选择标准的Linux操作系统
嵌入式操作系统选择需要考虑的因素
- 操作系统提供的开发工具
- 操作系统向硬件接口移植的难度
- 操作系统对内存的要求
- 开发人员是否熟悉此操作系统及其提供的API
- 操作系统是否提供硬件的驱动程序
- 操作系统的可裁剪性
- 操作系统的实时性能
编程语言的选择需要考虑的因素
- 通用性
- 可移植性程度
- 执行效率
- 可维护性
集成开发环境(IDE)选择需要考虑的因素
- 系统调试器的功能,包括远程调试工具
- 支持库调试,尽量采用标准化的glibc
- 编译器开发商是否持续升级编译器
- 链接程序是否支持所有的文件格式和符号格式
1.4.4 嵌入式应用软件开发
交叉开发
宿主机/目标机模式
-宿主机:PC机(x86环境)
-目标机:可以是实际的运行环境,也可以用仿真系统替代实际的运行环境(如ARM环境)
交叉开发环境包括
- 交叉编译器
- 交叉调试器
- 系统仿真器
交叉开发环境的类型
- 开放的:如GNU工具链
- 商业的:如Microsoft Visual Studio等
交叉调试
– PC机软件开发过程的调试方法
调试器和被调试的程序运行在同一个平台(PC机,x86环境)上, 调试器是一个单独运行着的进程,它通过操作系统提供的调试接口控制被调试的进程。
– 嵌入式软件开发过程的调试方法(交叉调试、远程调试)
调试器运行在宿主机(PC机,x86环境)的通用操作系统之上,被 调试的进程却是运行在基于特定硬件平台(目标板,如ARM环境) 的嵌入式操作系统中,调试器和被调试的进程通过串口(或网络) 进行通信,调试器可以控制、访问被调试的进程,读取被调试进 程的当前状态,并能够改变被调试进程的运行状态。
– 远程调试
允许调试器以某种方式控制目标机上被调试进程的运行方式,并具有查看、修改目标机上内存单元、寄存器以及被调试进程中变量值等各种调试功能。
– 远程调试的特点
- 调试器运行在宿主机(PC机)上,被调试的进程运行在目标板上(如ARM平台)
- 调试器通过串口、并口、网络、DBM、JTAG等与被调试进程建立联系
- 目标机上一般会具有某种形式的调试代理,它负责与调试器共同完成对目标机上被调试进程的调试,调试代理可以是硬件设备(如DBI 2000),也可以是调试软件(如gdbserver)
- 目标机可以是系统仿真器(用仿真软件来代替目标机)
1.4.5 测试和优化
基于目标机(ARM平台)的测试需要消耗较多的时间和经费;
基于宿主机(PC机)的测试虽然代价较小,但是毕竟在仿真环境中进行,因此难以完全反应软件运行的实际情况。
标签:操作系统,系统,嵌入式,概述,处理器,Linux,ARM,调试 From: https://blog.csdn.net/m0_74313796/article/details/144567393