IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> ARM初识 -> 正文阅读

[嵌入式]ARM初识

1 导学~

本节内容都是哔站视频学习整理的,原视频链接在这里~~跳转

1.1 嵌入式系统分层

操作系统的作用:向下管理硬件、向上提供接口:
应用开发:使用系统提供的接口(API),做上层应用程序的开发
底层开发:做操作系统本身的开发
在这里插入图片描述
■Linux子系统
1.进程管理:管理进程的创建、调度、销毁等
2.内存管理:管理内存的申请、释放、映射等
3.文件系统:管理和访问磁盘中的文件
4.设备管理:硬件设备及驱动的管理
5.网络协议:通过网络协议栈(TCP、 IP…)进行通信
在这里插入图片描述

2 ARM体系结构与接口技术课程导学

在这里插入图片描述

现在关注的:是CPU的原理,
程序在CPU里面是怎么运行的。
CPU如何控制硬件,通过各种模块。硬件模块不是基于操作系统的!
接口是为了驱动做准备~ 驱动是在操作系统下的。
在这里插入图片描述

3 计算机基础知识

在这里插入图片描述
在这里插入图片描述

3.1 计算机的组成

在这里插入图片描述
输入设备:把光学信号转换成电信号
输出设备:把CPU处理完的数据(电信号)转换成其他信号
存储器:存储程序和数据(变量)
CPU:运算器+控制器——>执行程序。控制器控制运算流程,运算器进行运算if while。

■输入设备
把其他信号转换成计算机能识别和处理的信号并送入计算机中。如键盘、鼠标、摄像头等
■输出设备
把运算结果以人或其他设备所能接受的形式送出计算机外。如显示器、音响、打印机等
■存储器
存储器是用来存储程序和数据的部件,是实现"存储程序控制"的基础。如内存、硬盘等

3.2 总线

  • 总线
    总线是计算机中各个部件之间传送信息的公共通信干线,在物理上就是一束导线。按照其传递信息的类型可以分为数据总线、地址总线、控制总线
  • DMA总线
    DMA(DirectMemoryAccess)即直接存储器访问,使用DMA总线可以不通过CPU直接在存储器之间进行数据传递。
    在这里插入图片描述

4 多级存储结构与地址空间

4.1 三级存储结构

在这里插入图片描述
在这里插入图片描述

4.2 地址空间

在这里插入图片描述
在这里插入图片描述

5 CPU工作原理

在这里插入图片描述
任何运算都是在电路里面完成的——数字电路基础
数字电路用二极管搭门电路——>与或非——>加法器
运算器里面就是各种各样的运算电路。

  • 寄存器:像内存一样存东西。
    指令寄存器PC——32位的
    指令寄存器IR——32位的
    指令译码器

CPU执行流程:

在这里插入图片描述
CPU执行一条指令过程:
1)取指
2)译码
3)执行
执行之后下一步:
PC的值会自动+1(0x08——>0x0C),然后继续执行这条指令,然后循环,

5.1 指令的执行过程

■一条指令的执行分为三个阶段

  • 1.取址:
    CPU将PC寄存器中的地址发送给内存,内存将其地址中对应的指令返回到CPU中的指令寄存器(IR)

  • 2.译码:
    译码器对IR中的指令进行识别,将指令(机器码)解析成具体的运算

  • 3.执行:

控制器控制运算器中对应的运算单元进行运算,运算结果写入寄存器

■每执行一条指令后PC的值会自动增加指向下一条指令

在这里插入图片描述

6 ARM处理器概述

6.1ARM公司概述

  • ARM的含义
    ARM (Advanced RISC Machines) 有三种含义:一个公司的名称、一类处理器的通称、一种技术
  • ARM公司
    成立于1990年11月,前身为Acorn计算机公司;(ARM->Acorn RISC Machines)
    主要设计ARM系列RISC处理器内核;
    授权ARM内核给生产和销售半导体的合作伙伴,ARM公司并不生产芯片;(ARM7是最经典的处理器ARM7之后开始被全世界广泛使用,后来的ARM9、ARM11都是很经典的)2004年的时候不在用ARM+数字来命名,之后是用ARM cortex 系列来命名cortex 包括3个系列A/R/M。
    在这里插入图片描述

在这里插入图片描述

6.2 RISC处理器和CISC处理器

■RISC处理器
只保留常用的的简单指令,硬件结构简单,复杂操作一般通过简单指令的组合实现,一般指令长度固定,且多为单周期指令。
RISC处理器在功耗、体积、价格等方面有很大优势,所以在嵌入式移动终端领域应用极为广泛
在这里插入图片描述

■CISC处理器
不仅包含了常用指令,还包含了很多不常用的特殊指令,硬件结构复杂,指令条数较多,一-般指令长度和周期都不固定。
CISC处理器在性能上有很大优势,多用于PC及服务器等领域.
在这里插入图片描述

7 ARM指令集概述

■ 指令
能够指示处理器执行某种运算的命令称为指令人(如加、减、乘…)
指令在内存中以机器码(二进制)的方式存在
每一条指令都对应一条汇编
程序是指令的有序集合

■ 指令集
处理器能识别的指令的集合称为指令集
不同架构的处理器指令集不同
指令集是处理器对开发者提供的接口

7.2 ARM指令集

大多数ARM处理器都支持两种指令集:
■ARM指令集
所有指令(机器码)都占用32bit存储空间
代码灵活度高、简化了解码复杂度
执行ARM指令集时PC值每次自增4

Thumb指令集
所有指令(机器码)都占用16bit存储空间
代码密度高、节省存储空间
执行Thumb指令集时PC值每次自增2
在这里插入图片描述
编译原理
■机器码(二进制)是处理器能直接识别的语言,不同的机器码代
表不同的运算指令,处理器能够识别哪些机器码是由处理器的硬件设
计所决定的,不同的处理器机器码不同,所以机器码不可移植

汇编语言是机器码的符号化,即汇编就是用一个符号来代替一条
机器码,所以不同的处理器汇编也不一样,即汇编语言也不可移植
■C语言在编译时我们可以使用不同的编译器将C源码编译成不同架
构处理器的汇编,所以C语言可以移植

8 ARM存储类型

8.1 ARM数据类型

■ARM采用32位架构,基本数据类型有以下三种
Byte 8bits
Ha | fword 16bits
Word 32bits
■数据存储
Word型数据在内存的起始地址必须是4的整数倍
Word
Halfword型数据在内存的起始地址必须是2的整数倍
注:即数据本身是多少位在内存存储时就应该多少位对齐

8.2 字节序

在这里插入图片描述
举例查看自己ubuntu是大端还是小端对齐
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
取出来的是78 说明ubuntu是小段对齐的~ 因为78放在了首地址 ~说明低地址存的是低位

8.3 ARM指令存储

■处理器处于ARM状态时
所有指令在内存的起始地址必须是4的整数倍
PC值由其[31:2]决定,[1:0]位未定义
■处理器处于Thumb状态时
所有指令在内存的起始地址必须是2的整数倍
PC值由其[31:1]决定,[0]位未定义
注:即指令本身是多少位在内存存储时就应该多少位对齐

9 ARM工作模式

  • ARM工作模式

ARM有8个基本的工作模式
User非特权模式,一般在执行上层的应用程序时ARM处于该模式
FIQ当一个高优先级中断产生后ARM将进入这种模式
IRQ当一个低优先级中断产生后ARM将进入这种模式
SVC当复位或执行软中断指令后ARM将进入这种模式
Abort当产生存取异常时ARM将进入这种模式
Undef当执行未定义的指令时ARM将进入这种模式
System,使用和User模式相同寄存器集的特权模式
Monitor为了安全而扩展出的用于执行安全监控代码的模式
在这里插入图片描述
在这里插入图片描述

10 ARM寄存器组织

10.1 概念

寄存器是处理器内部的存储器,没有地址

  • 作用
    一般用于暂时存放参与运算的数据和运算结果
  • 分类
    包括通用寄存器、专用寄存器、控制寄存器

10.2 ARM寄存器

在这里插入图片描述
注:
在某个特定模式下只能使用当前模式下的寄存器,一个模式下特有的寄存器其他模式下不可使用

10.2.1 专用寄存器

■R15 (PC, Progr am Counter)程序计数器,用于存储当前取址指令的地址
■R14 (LR,L ink Register)链接寄存器,一般有以下两种用途:
1、执行跳转指令(BL/BLX)时, LR会自动保存跳转指令,下一条指令的地址程序需要返回时将LR的值复制到PC即可实现。
2、产生异常时,对应异常模式下的LR会自动保存被异常打断的指令f一条指令的地址,异常处理结束后将LR的值复制到PC可实现程序
■R13 (SP, Stack Pointer)栈指针,用于存储当前模式下的栈顶地址

10.2.2 CPSR寄存器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 12:53:52  更:2022-05-09 12:56:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:32:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码