嵌入式学习笔记

article/2025/10/23 3:37:00

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、零个或多个不包含初始化数据的数据段,数据段的属性为可读写

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

在这里插入图片描述

在这里插入图片描述

内核目录

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


http://chatgpt.dhexx.cn/article/sGZefHtA.shtml

相关文章

嵌入式之学习路线

入门必看:https://www.xianjichina.com/news/details_69907.html IC设计,FPGA,射频,EMC,电气工程 ******嵌入式开发的相关硬件基础:对于软件工程专业的学生,从事嵌入式软件开发,像…

嵌入式学习路线,强烈推荐!!!

最近有小伙伴在微信私信我,如何学习嵌入式。一直想写一篇学习路线的文章,由于各种原因拖到了现在。 下面就如何学习嵌入式说下我个人的看法。 01 什么是嵌入式? 嵌入式即嵌入式系统,IEEE(美国电气和电子工程师协会&am…

嵌入式学习笔记——概述

嵌入式系统概述 前言“嵌入式系统”概念1.是个啥?2.可以干啥?3.有哪些入坑方向?4.入坑后可以有多少薪资? 单片机1.什么是单片机?2.架构简介3.基于ARM架构的单片机结构简介 总结M4系列目录 前言 断更很长时间了&#x…

【超全面】Linux嵌入式干货学习系列教程

文章目录 一、前言二、Linux基础篇三、数据结构与算法基础三、Linux应用篇四、Linux网络篇五、ARM篇六、Linux系统移植篇七、Linux驱动篇八、Linux特别篇九、Linux项目篇 一、前言 博主学习Linux也有几个月了,在这里为广大朋友整理出嵌入式linux的学习知识&#xff…

嵌入式软件学习路线(入门)

大家不要只收藏不关注啊,哪怕点个赞都行哇。😭 嵌入式学习路线 嵌入式体系框架C语言的入门学习C语言的进阶学习单片机的入门学习linux的入门学习VxWorks的入门学习上位机的入门学习 刚工作两年,推荐的学习路线只做一家之言,如果…

嵌入式学习基础路线

博主来填坑了 博主终于硕士毕业拿到双证去公司报道了,趁空闲的时间来更新下嵌入式软件开发的学习路线。 嵌入式的学习 嵌入式总的来说就分两条路线:1)走MCU的软件开发的路线;2)走Linux的软件开发路线。 当然除了软…

嵌入式操作系统(嵌入式学习)

嵌入式操作系统 嵌入式操作系统是什么?嵌入式操作系统有哪些?常用的嵌入式操作系统及其特点对初学者的建议 嵌入式操作系统是什么? 嵌入式操作系统是一种专门设计和优化用于嵌入式系统的操作系统。它是在资源受限的嵌入式设备上运行的操作系…

嵌入式入门学习的必要步骤

很多新手在入门嵌入式的时候,经常会有很多问题,这也都是想要多多去了解嵌入式,也害怕自己浪费了时间还没有学会嵌入式,掌握到好方法学习嵌入式,那么就会事半功倍,下面一起来看看嵌入式入门学习的必要步骤是…

嵌入式系统学习

Lecture11-12 主要学习 ➢ 总线基础 ➢ UART协议 ➢ I2C协议 ➢ SPI协议 1.总线的基础 protocol 协议 总线只是一组导线的集合,在嵌入式板上的所有其他主要组件(包括I/O子系统、内存子系统和主处理器)之间传输各种数据信号、地址和控制…

嵌入式要学习哪些内容?

嵌入式要学习哪些内容? 嵌入式概括一下就是写程序,用软件控制硬件。嵌入式的学习应该是自上而下的。 1.语言先行 首先是写代码,写用户的应用程序。每种语言的使用目的是不同的,我们嵌入式选择的语言是C语言。 所以首先要学习C语言…

【嵌入式】超详细的嵌入式路径学习精选合集,建议收藏

超详细的嵌入式路径学习精选合集,纯干货,建议收藏! 本合集归类汇总了嵌入式开发技术相关的学习路径、知识与经验总结,以及一些源码、资料分享等。将其分类列出目录,一来为了避免有些知识长时间不用,会很容…

【毕业季|进击的技术er】作为一名职场人,精心总结的嵌入式学习路线图

活动地址:毕业季进击的技术er 文章目录 0、作者介绍1、前言2、嵌入式基础必备知识2.1、学习内容2.2、学习建议2.3、学习资料 3、嵌入式入门篇——51单片机3.1、学习内容3.2、学习建议3.3、学习资料 4、STM32进阶篇4.1、学习内容4.2、学习建议4.3、学习资料 5、小而美…

【单片机/嵌入式】最完整学习路线

一.什么是单片机?什么是嵌入式?它们之间的区别与联系。 关于这个问题我在网上寻找到了相关文章解释得很详细,不了解的同学可以参考一下这篇文章:到底什么是嵌入式?什么是单片机? - 知乎 二.学习路线 一个人…

STM32理论 —— 看门狗

文章目录 1. 简述2. 独立看门狗 IWDG2.1 IWDG 相关寄存器2.1.1 键值寄存器IWDG_KR2.1.2 预分频寄存器IWDG_PR与重装载寄存器IWDG_RLR 2.2 核心代码 1. 简述 STM32 内部自带了 2 个看门狗:独立看门狗(IWDG)和窗口看门狗(WWDG&#…

STM32看门狗配置说明

系统时钟: The WWDG clock is prescaled from the APB clock and has a configurable time-window that can be programmed to detect abnormally late or early application behavior. /** defgroup WWDG_Prescaler WWDG Prescaler* {*/ #define WWDG_PRESCALER_1…

看门狗要素以及stm32看门狗

阅读看门狗资料,要把握以下部分 原理图复位CPU条件使能以及关闭看门狗喂狗(方式 时间)寄存器Debug模式下是否使能stm32包括2个看门狗,拥有不同的时钟 内置 low-speed clock (LSI 40KHZ) ,用于 Independent watchdog …

STM32 CubeMX 看门狗

文章目录 看门狗STM32的内置看门狗WWDG-窗口看门狗CubeMX操作步骤1)使能 WWDG时钟2)设置窗口值 ,分频数 和计数器初始值3)开启 WWDG4)使能中断通道并配置优先级(如果开启了 WWDG中断)5) 编写中断…

关于我对stm32看门狗的一些理解(基于正点原子)

咕咕咕之后想更会儿stm32哈哈哈,但是其实是之前自己写的笔记,想着以后就写在一起吧,我自己也更好去找到自己写的玩意~毕竟总所周知,博客都是写给自己的。 (虽然好像现在自己都看不懂了我的天哪) 一.什么是…

stm32看门狗的定义与分类

stm32看门狗 一、定义 由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料…

STM32看门狗超时时间计算

独立看门狗 公式 超时时间的公式为 :超时时间 :IWDG_PR寄存器中位2:0的十进制值 :重装载寄存器IWDG_RLR所对应的重装载数值 公式解读 首先,我们要明白: 独立看门狗内部是一个递减计数器。如果寄存器中的装载数值…