嵌入式学习笔记

ARM :Advanced RISC Machine
RISC:精简指令集

EMCU:Embedded Micro Controller Unit 嵌入式微控制器
EMPU :Embedded Micro Processor Unit 嵌入式微处理器
EDSP :Embedded Digital SIgnal Process 嵌入式数字信号处理器
ESOC:Embedded System On Chip 嵌入式片上系统 ESOC

嵌入式系统的组成

一般由嵌入式计算机和执行部分组成。
嵌入式计算机包括:硬件层、中间层、系统软件层、应用软件层。

硬件层

包含嵌入式系统中必要的硬件设备:
嵌入式微处理器、协处理器、存储器、i/o接口等
嵌入式微处理器是嵌入式系统硬件层的核心,主要负责对信息的运算处理

存储器用来存储数据和代码

中间层

也称为硬件抽象层Hardware Abstract Layer HAL
或者Board Support Package BSP

系统软件层

由多任务操作系统Real-time Operator System RTOS、文件系统、图形用户界面接口 Graphic User Interface GUI 、网络系统及通用组件模块组成

linux 基础知识

五个子系统

  • 进程调度
  • 内存管理
  • 虚拟文件系统
  • 网络接口
  • 进程间通信

ARM 硬件架构

ARM 微处理器采用RISC架构

2022年11月13日13:32:07
在这里插入图片描述

例:ARM920T 的CPU内核架构,使用的是ARMv4的架构
在这里插入图片描述

ARM芯片内核一般包括

  1. ARM9TDMI (32位RISC)处理器
  2. 数据缓存器Data Cache
  3. 指令缓存器Instruction Cache
  4. 指令存储管理单元 Instruction MMU
  5. 数据存储管理单元 Data MMU
  6. 写缓冲Write Buffer
  7. 回写存储单元 WriteBack PATAG RAM

这些不见通过AMBA总线相互传输数据以实现指令和数据的并行处理。

还包括四个与外界进行数据交换的接口:

  1. 总线结构AMBA Bus Interface
  2. 扩展协处理器接口 External Coprocessor Interface
  3. 跟踪接口 Trace Interface
  4. JTAG

他们可以连接DMA控制器、UART、USB、中断控制器和电源管理器

ARM 微处理器模式

运行模式分为七种

  1. 用户模式 User,usr :正常程序执行时,ARM处理器所处的状态。
  2. 快速中断模式FIQ,fiq:用于快速的数据传输和通道处理。
  3. 外部中断模式IRQ,irq:通常的中断处理
  4. 特权模式Supervisor ,sve:供操作系统使用的一种保护模式
  5. 数据访问中止模式Abort,abt:当数据或指令预期终止时进入该模式,用于虚拟存储及存储保护
  6. 未定义指令终止模式Undefined ,und :用于支持硬件协处理器软件仿真。
  7. 系统模式System ,sys:用户运行特权级的操作系统任务。

ARM寄存器

ARM 处理器共有37个寄存器
31个是通用寄存器
6个状态寄存器
都是32位

在这里插入图片描述

每一个模式下,都会使用自己的一组寄存器
通常包括R0-R14 ,一个或两个状态寄存器及程序计数器

程序状态寄存器
用来保存程序执行时的各种状态值,
包括标志位、中断禁止位、当前处理模式标志和其他一些位

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

MMU

很多ARM微处理器内核中,都使用虚拟内存映射机制,
整个内存由内存管理单元MMU进行管理,
整个系统使用虚拟地址,
再由MMC将其映射为实际的物理地址。

在这里插入图片描述

ARM 指令集

在这里插入图片描述

ARM 指令的寻址方式

1、立即寻址
操作数本身就在指令中给出,是要取出指令也就取到操作数,
这个操作数被称为立即数,对应的寻址方式,也就叫做立即寻址。

2、寄存器寻址
寄存器寻址就是利用寄存器中的数值作为操作数,
这种寻址方式是各类微处理器经常采用的一种方式,
也是执行效率较高的一种寻址方式。

3、寄存器间接寻址

寄存器间接寻址就是以寄存器中的值作为操作数的地址,
而操作数本身存放在存储器中。

4、基址变址寻址

将某寄存器中的值作为基址的内容与指令中给出的操作数相加,
从而得到一个有效地址。

变址寻址方式常用于一段代码内经常访问的某地址附近的地址单元,
比如访问某外围模块的多个寄存器,它们的地址往往靠的很近。

5、多寄存器寻址

用在连续地址的内容拷贝中,一条指令就可以完成多个寄存器值得传送。

6、相对寻址
与基址变址寻址方式类似,相对寻址以程序计数器PC的当前值为基地址,
指令中的地址标号作为偏移量,将两者相加之后得到操作数的有效地址。

7、堆栈寻址
满递增堆栈
满递减堆栈
空递增堆栈
空递减堆栈

ARM 常用指令和条件后缀

ARM微处理的所有指令都是加载/存储型的,
意味着ARM指令仅能处理寄存器中的数据,
而且处理结果要放回寄存器中,
对系统存储器的访问需要通过专门的加载/存储指令来完成

分为六类:

  • 跳转指令
  • 数据处理指令
  • 程序状态寄存器PSR处理指令
  • 加载/存储指令
  • 协处理器指令
  • 异常中断产生指令
    在这里插入图片描述
    在这里插入图片描述

嵌入式编程

ARM汇编语言中程序结构,
以程序段的形式呈现的,
程序段有两大类型:代码段、数据段

代码段主要内容为执行代码,
数据段则存放代码运行时需要用到的数据

通过程序编译连接最终形成一个可执行的影响文件

一个可执行映像文件组成:
1、一个或多个代码段,代码段的属性为只读
2、零个或多个包含初始化数据的数据段,数据段的属性为可读写
3、零个或多个不包含初始化数据的数据段,数据段的属性为可读写

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

在这里插入图片描述

在这里插入图片描述

内核目录

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

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值