首页 > 其他分享 >嵌入式系统第一讲 嵌入式系统概述

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

时间:2024-12-21 22:27:01浏览次数:7  
标签:操作系统 系统 嵌入式 概述 处理器 Linux ARM 调试

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

• 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机)的测试虽然代价较小,但是毕竟在仿真环境中进行,因此难以完全反应软件运行的实际情况。

标签:操作系统,系统,嵌入式,概述,处理器,Linux,ARM,调试
From: https://blog.csdn.net/m0_74313796/article/details/144567393

相关文章

  • 【设计与实现】基于springboot的网上点餐系统
    第一章绪论1.1背景及意义1.2国内外研究概况1.3研究的内容第三章系统分析3.1系统设计目标3.2系统可行性分析3.3 系统功能分析和描述3.4系统UML用例分析3.4.1管理员用例第五章系统实现5.1用户功能模块参考文献第一章绪论1.1背景及意义对于网上点餐系统......
  • 高校宣讲会管理系统-毕业设计-附源码
    文末获取源码和万字论文,制作不易,感谢点赞支持。摘 要传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装高校宣讲会管理系统软件来发挥其高效地信息处理的作用,可以规范信息管理......
  • 基于SpringBoot+Vue的电商应用系统的设计与实现-毕业设计-附源码
    文末获取源码和万字论文,制作不易,感谢点赞支持。摘 要现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本电商应用系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,......
  • node.js毕设基于和vue的直播带货系统后端 论文+程序
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于直播带货系统的研究,现有研究多集中在其商业运营模式和市场发展趋势方面3。在技术实现层面,虽有部分涉及,但专门针对基于SpringBoot和Vue构建直播带货......
  • node.js毕设宏泰购物广场停车场管理系统小程序端 论文+程序
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于停车场管理系统的研究,现有研究主要以大型公共场所(如机场、火车站等)为主,专门针对购物广场停车场管理系统的研究较少。在国内外,大型公共场所停车场管......
  • springboot毕设 在线家教预约系统 程序+论文
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,教育资源的共享与优化配置已成为教育领域的重要议题。传统的家教服务受限于地域、信息不对称等问题,难以高效匹配家长与教师......
  • //需求//某系统的数字密码(大于0),比如1983,采用加密方式进行传输;//规则如下:先得到每位数
    //需求//某系统的数字密码(大于0),比如1983,采用加密方式进行传输;//规则如下:先得到每位数,然后每位数都加上5,再对10求余,最后将所有数字反转,得到一串新数;importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){//1.通过输入......
  • flask毕设学习资源分享系统的设计与实现(程序+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景随着信息技术的飞速发展和互联网的广泛普及,学习资源分享已成为教育领域的一大热点。现有研究主要集中在在线教育平台的设计、学习资源的管......
  • 《操作系统真相还原》实验记录1.2——print.S打印函数
    一、print.S文件说明put_char函数(每次只打印一个字符)是各种打印函数的核心1.1功能说明put_char函数的处理流程备份寄存器现场;获取光标坐标值,光标坐标值是下一个可打印字符的位置;为了在光标处打印字符,需要读取光标坐标寄存器,获取光标坐标值。获取待打印的字符;......
  • flask毕设学生作业管理系统(程序+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景学生作业管理系统作为教育领域信息化建设的重要组成部分,其研究与应用日益受到重视。现有研究主要集中在教育信息化平台的整体构建、教学资......