ARM笔记-嵌入式系统基础

第一章 嵌入式系统基础

1.1嵌入式系统简介

1.1.1嵌入式系统定义

  • 嵌入式系统定义
    • 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可剪裁,对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统 ------Any device that includes a computer!

1.1.2嵌入式系统的组成

  • 嵌入式系统由硬件软件两大部分组成

    • 硬件:整个系统的物理基础,它提供软件运行平台和通信接口;
    • 软件:实际控制系统的运行
  • 两种嵌入式系统结构模型

    • 应用程序(Application)
      标准接口函数(API)
      操作系统(OS)
      硬件抽象层(HAL)、BSP、驱动
      底层硬件
    • 应用(Application)
      设备驱动程序
      底层硬件
一、硬件部分
  • 组成

    • 核心处理器

      • 硬件层的核心

      • 体系结构:采用冯诺伊曼体系结构哈佛体系结构

        • 冯诺伊曼体系结构:将程序指令存储器和数据存储器合并在一起的存储器结构(eg.ARM7)
          • 单次取指令长度和取数据的长度相同

        • 哈佛体系结构:将程序指令存储和数据存储分开的存储器结构(eg.ARM9的内核)

          • 指令和数据有不同的数据宽度
          • 分离的程序总线和数据总线可允许在一个机器周期内同时获得指令字和操作数,从而提高执行速度,也提高了数据吞吐率

      • 指令系统:RISC和CISC

        • CISC(Complex Instruction Set Computer)

          • 具有大量的指令和寻址方式
          • 大多数程序只使用少量的指令就能运行
        • RISC(Reduced Instruction Set Computer)

          • 8/2原则:80%的程序只使用20%的指令。
          • 只包含最有用的指令。
          • 确保数据通道快速执行每一条指令。
          • 使CPU硬件结构设计变得更为简单。
        • 二者的主要区别

          • 指标RISCCISC
            指令集一个周期执行一条指令,通过简单指令的组合实现复杂操作,指令长度固定。指令长度不固定,执行需要多个周期。
            流水线流水线每周期前进一步指令的执行需要调用一段微程序
            寄存器更多通用寄存器用于特定目的的专用寄存器
            Load/Store结构独立的Load/Store指令完成数据在寄存器 外部存储器 之间的传输处理器能够直接处理存储器中的数据
          • RISC执行特殊功能效率低,但可以利用流水技术和超标量技术加以改进和弥补。

          • CISC处理特殊任务效率较高

    • 外围电路

      • 组成:存储器、I/O端口、复位电路、模数转换器/数模转换器(ADC/DAC)、电源
    • 外部设备

      • 嵌入式系统与真实环境交互的各种设备

二、软件部分
  • 组成:嵌入式操作系统嵌入式应用软件
    • 嵌入式系统软件一般包含四个层面:应用程序应用程序接口API实时操作系统RTOS硬件抽象层(HAL)。有的版本将应用程序接口 API 归属于 OS 层,就是按照三层来划分的。

1.1.3 嵌入式系统的特点

  • 嵌入式系统同通用计算机系统相比有以下特点:

    • 专用性强
    • 强调实时性
    • 具备可裁剪性
    • 可靠性要求高
    • 功耗低
    • 嵌入式系统开发需要开发工具和开发环境
  • 嵌入式微处理器的特点

    • 实时多任务有很强的支持能力。
    • 具有功能很强的存储区保护功能–不同进程之间无法互相访问其存储空间
    • 可扩展的处理器结构。
    • 嵌入式微处理器功耗低。

1.1.4嵌入式系统的分类

  • 处理器位数
    • 4位嵌入式系统
    • 8位嵌入式系统
    • 16位嵌入式系统
    • 32位嵌入式系统
    • 64位嵌入式系统
  • 实时性
    • 非实时系统(PDA)
    • 软实时系统(电子消费类产品)
    • 硬实时系统(数控、航空航天等工业和军工系统)
  • 软件结构:(important)
    • 循环轮询系统
    • 前后台系统
    • 单处理器多任务系统
    • 多处理器多任务系统
  • 应用场景
    • 通信类
    • 信息家电类
    • 移动终端类
    • 汽车电子类
    • 工业控制类

1.2嵌入式处理器

1.2.1嵌入式处理器分类

  • 嵌入式微处理器(MPU–Microprocessor Unit)

    • 嵌入式微处理器是由通用计算机中的CPU演变而来的。 -----用来处理高性能计算(eg.服务器,手机等)
    • 嵌入式微处理器的特征:
      • 具有较高的性能,但价格也较高。
      • 嵌入式微处理器做的控制机具有体积小、重量轻、成本低、可靠性高的优点。
  • 嵌入式微控制器(MCU–Microcontroller Unit)

    • 嵌入式微控制器的典型代表就是单片机。
    • MCU是一种集成化的芯片,将处理器核心、**存储器(如Flash、RAM)外围设备(如GPIO、ADC、UART等)**集成在一个芯片上。-----(eg.家电、工业控制、传感器节点等)
    • 占嵌入式系统70%的市场份额
  • 嵌入式DSP处理器(DSP–Digital Signal Processor)

    • DSP 处理器是专门用于信号处理方面的处理器。
    • 其在系统的结构指令算法方面进行了特殊的设计。
  • SOC片上系统(System on a Chip)

    • 一个芯片就是一个系统,或将一个系统放在一个芯片中。
    • SOC最大特点是实现了软/硬件的无缝结合,直接在处理器芯片内部嵌入操作系统代码模块。

1.3嵌入式系统开发环境

  • 开发工具的选择:硬件开发工具&软件开发工具
    • 硬件开发工具:在线实时仿真器和其他检测工具,如示波器等
    • 软件开发工具:编辑、交叉编译、链接、定位软件和调试软件等
  • 硬件调试工具的选择
    • 实时在线仿真器(ICE)
    • 逻辑分析仪
    • ROM仿真器
  • 软件组件的选择
  • 开发环境
    • 交叉开发工具
    • 指令模拟器
    • 电路开发板

1.4 嵌入式操作系统

1.4.1嵌入式操作系统

  • 嵌入式操作系统EOS(Embedded Operating System)是支持嵌入式系统应用的操作系统,是软、硬件资源的控制中心
  • EOS 是相对于一般操作系统而言的,它除具备了一般操作系统最基本的功能如:
    • 任务调度同步机制中断处理文件功能等外,
    • 还有以下特点:
      • 可装卸性;
      • 强实时性;
      • 强稳定性,弱交互性;
      • 固化代码;
      • 更好的硬件适应性,也就是良好的移植性。
  • 嵌入式操作系统可分为:实时操作系统(RTOS)非实时操作系统

1.4.2 实时操作系统

  • 实时操作系统是指——能在确定的时间内执行其功能并对外部的异步事件做出响应的计算机系统。其操作的正确性不仅依赖于逻辑设计的正确程度,而且与这些操作进行的时间有关。
一、RTOS的重要概念
  1. 系统响应时间
    • 系统收到处理要求到系统给出应答信号的时间。
  2. 任务换道时间
    • 任务之间切换使用的时间
  3. 中断延迟
    • 计算机接收到中断信号到操作系统作出响应,并完成换道转入中断服务程序的时间。
  4. 任务(即线程)的四个状态
    • 运行:获得 CPU 的控制权
    • 就绪:进入任务就绪(等待)队列,等待通过调度转为运行状态
    • 挂起:任务发生阻塞,移出任务就绪队列,等待系统实时事件的发生而唤醒,从而转为就绪或运行
    • 冬眠:任务因为完成或错误等原因被清除的任务,也可以认为是系统中不存在的任务
二、实时操作系统的分类
  • 按实时性要求
    • 软实时系统
    • 硬实时系统
  • 按任务是否可被抢占
    • 可抢占系统–严格按照优先级执行(如:uC/OS-II)
    • 不可抢占系统

1.4.3常见的EOS(了解)

在复习的时候可以看看ppt

  • Linux
  • uCLinux
  • Android
  • Windows CE
  • VxWorks
  • uC/OS-II
  • pSOSystem
  • Nucleus、eCos

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/82557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大语言模型(LLM)入门项目推荐

推荐大语言模型(LLM)的入门项目 TiaoYu-1。 https://github.com/tiaoyu1122/TiaoYu-1 项目优点: 几乎每一行代码(一些重复的代码除外)都添加了注释,详细介绍了代码的作用,方便阅读与理解。基本上覆盖了常见 LLM 模型的全部训练流程&#x…

Linux里more 和 less的区别

在 Linux/Unix 系统中,more 和 less 都是用于分页查看文本文件的命令,但 less 是 more 的增强版,功能更强大。以下是它们的核心区别和用法对比: 1. 基础功能对比 特性moreless(更强大)向前翻页❌ 仅支持向…

基于PDF流式渲染的Word文档在线预览技术

一、背景介绍 在系统开发中,实现在线文档预览与编辑功能是许多项目的核心需求,但在实际的开发过程中,我们经常会面临以下难点: 1)格式兼容性问题:浏览器原生不支持解析Word二进制格式,直接渲染会…

ai学习--python部分-1.变量名及命名空间的存储

初学代码时总有一个问题困扰我:a 10 # a指向地址0x1234(存储10) 变量a的值10存储在0x1234,那么变量a需要存储吗?a又存储在什么地址呢 目录 1. ​​命名空间的本质​​ 2. ​​命名空间的内存占用​​ 3. ​​…

Leetcode 3563. Lexicographically Smallest String After Adjacent Removals

Leetcode 3563. Lexicographically Smallest String After Adjacent Removals 1. 解题思路2. 代码实现 题目链接:3563. Lexicographically Smallest String After Adjacent Removals 1. 解题思路 这次的最后一题同样没有自力搞定,简直了…… 这道题还…

微信小程序之Promise-Promise初始用

我们来尝试使用Promise。 1、需求&#xff0c;做个抽奖的按钮&#xff0c; 抽奖规则&#xff1a; 30%的几率中奖&#xff0c;中奖会提示恭喜恭喜&#xff0c;奖品为10万 RMB 劳斯莱斯优惠券&#xff0c;没中奖会提示再接再厉。 2、先搭界面&#xff1a; <view class&qu…

spring-boot-starter-data-redis应用详解

一、依赖引入与基础配置 添加依赖 在 pom.xml 中引入 Spring Data Redis 的 Starter 依赖&#xff0c;默认使用 Lettuce 客户端&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis<…

全能邮箱全能邮箱:实现邮件管理的自动化!

全能邮箱全能邮箱&#xff1a;实现邮件管理的自动化&#xff01; 全能邮箱全能邮箱的配置教程&#xff1f;如何注册烽火域名邮箱&#xff1f; 全能邮箱全能邮箱作为一种创新的邮件管理解决方案&#xff0c;正逐渐改变我们处理邮件的方式。蜂邮EDM将围绕全能邮箱全能邮箱&…

Real2Render2Real:无需动力学仿真或机器人硬件即可扩展机器人数据

25年5月来自UC Berkeley 和 TRI 的论文“Real2Render2Real: Scaling Robot Data Without Dynamics Simulation or Robot Hardware”。 扩展机器人学习需要大量且多样化的数据集。然而&#xff0c;现行的数据收集范式——人类遥操作——仍然成本高昂&#xff0c;且受到手动操作…

Cadence学习笔记之---PCB的布线与铺铜

目录 01 | 引 言 02 | 环境描述 03 | 布 线 04 | 铺 铜 05 | 总 结 01 | 引 言 在上一篇文章中介绍了Cadence元件放置和布局相关的操作方法和步骤&#xff0c;当完成全部的器件布局后&#xff0c;就可以进行下一步&#xff1b; 本篇文章主要介绍Cadence中布线和铺铜相关的…

redis-7.4.2 通过 systemd管理,rpmbuild spec文件参考

redis-7 和 redis 5 版本在配置为systemd 方式管理时&#xff0c;配置关于有些许区别&#xff0c;否则会报systemctl status redis 如下错误&#xff1a; redis.service: control process exited, codeexited status1 Failed to start Redis persistent key-value database. Un…

2025-05-26 什么是“AI 全栈”

AI全栈&#xff1a;模型 表示学习 向量库 API UI 一句话定义&#xff1a; ​ AI 全栈开发&#xff0c;是指开发者从原始文本/语音/图像开始&#xff0c;结合大模型能力&#xff0c;构建完整应用闭环的技术能力栈。 AI全栈应用的过程 AI应用 ≠ 一个GPT接口&#xff0c;…

康师傅的“价值战”答卷:一碗面的创新与担当

低价策略、口味雷同、营销跟风……方便面行业曾长期陷于同质化竞争的泥潭&#xff0c;不过近年来&#xff0c;行业竞争逻辑已悄然改变。 一方面来源于宏观环境的变化&#xff0c;想要在缩量市场下保住大盘&#xff0c;一定要保持逆向思维的能力&#xff0c;另一方面&#xff0…

高性能管线式HTTP请求

高性能管线式HTTP请求:原理、实现与实践 目录 高性能管线式HTTP请求:原理、实现与实践 1. HTTP管线化的原理与优势 1.1 HTTP管线化的基本概念 关键特性: 1.2 管线化的优势 1.3 管线化的挑战 2. 高性能管线式HTTP请求的实现方案 2.1 技术选型与工具 2.2 Java实现:…

传输线上的信号速度与阻抗无关,主要由频率决定

阻抗与传播速度无关 通过计算我们可以知道&#xff0c;导体流过电流时&#xff0c;电子实际上的速度只有1cm/s。是很慢的。 导线的电阻对传输线上信号的传播速度几乎没有任何影响。只在一些极端的情况下&#xff0c;互连的电阻才会影响信号的传播速度&#xff0c;并且这个影响…

YOLOv1 详解:单阶段目标检测算法的里程碑

在目标检测领域&#xff0c;YOLO&#xff08;You Only Look Once&#xff09;系列算法凭借其高效性和实用性&#xff0c;成为了行业内的明星算法。其中&#xff0c;YOLOv1 作为 YOLO 系列的开山之作&#xff0c;首次提出了单阶段目标检测的思想&#xff0c;彻底改变了目标检测算…

免费开源 PDF 阅读器 自带虚拟打印机功能 多格式兼容

各位办公小能手们&#xff0c;今天咱来聊聊一款超厉害的PDF工具——PDFLite&#xff01; 这PDFLite啊&#xff0c;那可是轻量级、免费又开源的好东西。它能干啥呢&#xff1f;主要就是能读PDF文件&#xff0c;还能转换文件格式&#xff0c;做基础的文档管理。下面咱就说说它的…

Mac Python 安装依赖出错 error: externally-managed-environment

Mac Python 使用 ip3 install -r requirements.txt 出错 This environment is externally managed ╰─> To install Python packages system-wide, try brew installxyz, where xyz is the package you are trying toinstall.If you wish to install a Python library th…

Windows11+WSL2+Ubuntu22 安装

1.首先要获得管理员权限 2.直接在电脑搜索栏搜索 “Turn Windows features on or off”, 勾选下面两个条目&#xff1a; Virtual Machine Platform 和 Windows Subsystem for Linux 3.重启电脑 4.电脑搜索栏搜索“Windows PowerShell”&#xff0c;运行下面命令设置WSL2为默…

解决 iTerm2 中 nvm 不生效的问题(Mac 环境)

解决 iTerm2 中 nvm 不生效的问题&#xff08;Mac 环境&#xff09; 标题 《为什么 iTerm2 无法使用 nvm&#xff1f;—— 解决 Mac 终端环境变量冲突指南》 问题描述 许多开发者在 Mac 上使用 nvm 管理 Node.js 版本时&#xff0c;发现&#xff1a; 原生终端&#xff1a;n…