嵌入式学习硬件(一)ARM体系架构

目录

      1.SOC

        2.内核架构的分类

        3.冯诺依曼架构和哈佛架构

        4.kernel

        5.指令集

        6.ARM处理器产品分类

        7.编译的四个步骤​编辑

        8.RAM和ROM​编辑

        9.ARM处理器工作模式

        10.异常处理

        11.CPSR程序状态寄存器


      1.SOC

        system on chip 片上系统,可以运行操作系统的一种高端的功能强大的芯片。

        ps  图中arm指的是arm的kernel

        2.内核架构的分类

        (1)ARM公司的ARM架构(收费)     该公司不生产芯片,只设计芯片,卖给别人授权

        (2)x86架构(收费)     主机电脑

        (3)MIPS

        (4)RISC V

        3.冯诺依曼架构和哈佛架构

        (1)冯诺依曼架构中将数据与指令存放在同一存储器中

        (2)哈佛架构是将数据与指令存放在不同的存储器中。ARM采用的是哈佛架构

        4.kernel

        

        ALU:arithmetic logic unit算数逻辑单元。作用 算数。

        R0-R15  通用寄存器     装那些计算需要用的数。 

        R13(SP) 栈指针寄存器   操作栈需要一个指针,该指针也存放在此寄存器中。  

        R14(LR)  链接寄存器   函数跳转时将将来要回来的地址装到LR中。

        R15(PC) 程序计数器,指向当前执行的指令的下一个指令地址。

        cache 高速缓存

        i cache  (instructinon cache) 指令cache

        d cache (data cache) 数据cache

        MMU:memory management unit 内存管理单元,把虚拟内存映射为RAM中的物理内存。从物理内存写回到虚拟内存时,还要把物理内存映射为虚拟内存。

        CPSR current program status register  当前程序状态寄存器,存放当前的程序状态

        SPSR saved program status register 是CPSR的备份,方便程序返回之前CPSR的状态

        5.指令集CISC RISC

        CISC:complex instruction set computer复杂指令集计算机;性能强大、功能丰富但成本高、不利于便携使用,如x86

        RISC:reduced instruction set computer精简指令集计算机;体积小,成本低,如ARM

        

        AHB:先进高速总线,连接高速设备,RAM,网口,USB

        APB:   先进外设总线,连接低速设备,UART,GPIO,TIMER

        ps  Kernel与外设连线称为总线:

        若只有一根称为单总线结构;

        若有两根及以上称为多总线结构;

        

        6.ARM处理器产品分类

ARM Cortex A(application)(应用于消费类电子产品)

                    R(realtime embeded)(应用于实时性方向,如军事,通信) 

                    M(MCU&FPGA)(应用于微控制器MAU方向,如STM32)

                     

        7.编译的四个步骤

        (1)预处理  文件包含,条件包含,宏定义那些操作

        (2)编译  把c语言代码转换为助记符的写法

        (3)汇编   助记符换为二进制机器指令

        (4)链接  多个.c .o文件,确定彼此之间函数调用关系

        8.RAM和ROM

         nor flash 可被寻址   nand flash 不可寻址

        

        9.ARM处理器工作模式

                ARM有7个基本工作模式:
                User:非特权模式,大部分任务执行在这种模式
                FIQ:当一个高优先级(fast)中断产生时将会进入这种模式
                IRQ:当一个低优先级(normal)中断产生时将会进入这种模式
                Supervisor:当复位或软中断指令执行时将会进入这种模式
                Abort:当存取异常时将会进入这种模式
                Undef:当执行未定义指令时会进入这种模式
                System:使用和User模式相同寄存器集的特权模式

        10.异常处理

        

注意:

中断的本质也是一种异常;
异常向量表:用于存储不同类型异常发生时,处理器跳转到特定的异常处理程序的地址;————用于存储不同类型异常发生时处理器跳转地址的特定内存区域,就是由操作系统初始化并设置基址寄存器指向的异常向量表(EVT)。这个表的每个条目都存储着对应异常处理程序的起始地址。
在同一种中断中,同一模式下的中断不能被再次被直接打断

FIQ中断

IRQ中断

(保留)

Data Abort(数据存储异常)————对RAM的访问发生错误

Prefetch Abort(预取失败异常)————指令预取阶段内存访问失败触发

Software Interrupt(软中断异常)————软件中断(任务切换),多任务的并发靠底层的软中断实现

Undefined Instruction(未定义指令异常)

Reset(复位异常)

        11.CPSR程序状态寄存器

1、N,V,C,Z位
注:汇编指令的s后缀,几乎所有的汇编指令都可以在指令后面加上s后缀,s后缀的含义是在指令执行过程中会更新cpsr寄存器的N,V,C,Z位

N:在结果是有符号的二进制补码情况下,如果结果为负数,则N=1;如果结果为非负数,则N=0

Z:如果结果为0,则Z=1;如果结果为非零,否则Z=0

C:是针对无符号数最高有效位向更高位进位时C=1;减法中运算结果的最高有效位从更高位借位时C=0

V:该位是针对有符号数的操作,会在下面两种情形变为1,两个最高有效位均为0的数相加,得到的结果最高有效位为1;两个最高有效位均为1的数相加,得到的结果最高有效位为0;除了这两种情况以外V位为0

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

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

相关文章

OpenAI推出开源GPT-oss-120b与GPT-oss-20b突破性大模型,支持商用与灵活部署!

模型介绍OpenAI再次推出开源模型,发布了两款突破性的GPT-oss系列大模型,即GPT-oss-120b和GPT-oss-20b,为AI领域带来了巨大的创新和发展潜力。这两款模型不仅在性能上与现有的闭源模型媲美,而且在硬件适配性上具有明显优势&#xf…

【Unity Plugins】使用ULipSync插件实现人物唇形模拟

一、下载插件ULipSync: 1. 进入Github网址:https://github.com/hecomi/uLipSync/releases/tag/v3.1.4 2. 点击下载下方的unitypackage 3. 安装使用ULipSync的相关的插件 发行者也提到了,在使用的时候需要在Package Manager里安装Unity.B…

基于 Transformer-BiGRU GlobalAttention-CrossAttention 的并行预测模型

1 背景与动机 在高频、多尺度且非平稳的时序场景(如新能源产能预测、金融行情、用户行为流分析)中,单一网络分支 往往难以同时捕获 长程依赖(Transformer 长距离建模优势) 局部细粒信息(循环网络对短期波动敏感) 将 Transformer 与 双向 GRU(BiGRU) 以并行支路组合…

大模型与Spring AI的无缝对接:从原理到实践

摘要:本文系统梳理了大模型知识,以及与Spring AI的集成方案,涵盖本地部署、云服务、API调用三种模式的技术选型对比。通过DeepSeek官方API示例详解Spring AI的四种开发范式(纯Prompt/Agent/RAG/微调),并提供…

linux下实现System V消息队列实现任意结构体传输

以下是一个实现&#xff0c;可以发送和接收任意类型的结构体消息&#xff0c;而不仅限于特定的CustomMsg类型&#xff1a;#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/ipc.h> #include <sys/msg.h> #include <…

TCP的三次握手和四次挥手实现过程。以及为什么需要三次握手?四次挥手?

三次握手和四次挥手的实现原理&#xff0c;以及为什么要这样设计&#xff1f;三次握手的实现三次握手的核心角色与参数三次握手的具体步骤第一步&#xff1a;客户端 → 服务器&#xff08;发送 SYN 报文&#xff09;第二步&#xff1a;服务器 → 客户端&#xff08;发送 SYNACK…

Java开发时出现的问题---架构与工程实践缺陷

除语言和并发层面&#xff0c;代码设计、工程规范的缺陷更易导致系统扩展性差、维护成本高&#xff0c;甚至引发线上故障。1. 面向对象设计的常见误区过度继承与脆弱基类&#xff1a;通过继承复用代码&#xff08;如class A extends B&#xff09;&#xff0c;会导致子类与父类…

项目评审管理系统(源码+文档+讲解+演示)

引言 在当今快速发展的商业环境中&#xff0c;项目评审和管理是确保项目成功的关键环节。项目评审管理系统作为一种创新的数字化工具&#xff0c;通过数字化手段优化项目评审和管理的全流程&#xff0c;提高项目管理效率&#xff0c;降低风险&#xff0c;提升项目成功率。本文将…

ComfyUI 安装WanVideoWrapper

目录 方法2&#xff1a;通过 ComfyUI-Manager 安装 方法3&#xff1a;手动下载并解压 测试代码&#xff1a; WanVideoWrapper 方法2&#xff1a;通过 ComfyUI-Manager 安装 在 ComfyUI 界面顶部找到 Manager&#xff08;管理器&#xff09;选项。 进入 Install Custom Nod…

react合成事件大全,如onClick,onDrag

1. 鼠标事件onClick - 点击事件onContextMenu - 右键菜单事件onDoubleClick - 双击事件onDrag - 拖拽事件onDragEnd - 拖拽结束事件onDragEnter - 拖拽进入目标区域事件onDragExit - 拖拽离开目标区域事件onDragLeave - 拖拽离开事件onDragOver - 拖拽悬停事件onDragStart - 拖…

从《中国开源年度报告》看中国开源力量的十年变迁中,Apache SeaTunnel 的跃迁

如果把开源世界比作一条奔涌的大河&#xff0c;过去十年里&#xff0c;中国开发者已经从“岸边试水”变成了“中流击水”。在最近落下帷幕的 Community Over Code Asia 2025&#xff0c;华东师范大学教授王伟老师基于《中国开源年度报告》进行的一场分享&#xff0c;用一组数字…

JAVA 程序员cursor 和idea 结合编程

cursor 是基于vscode改良而来的&#xff0c;外加上Claude大语言模型而产生的AI编辑器&#xff0c;市面上也有阿里的灵码qianwen3-coder大语言模型。我个人电脑还是喜欢用idea集成灵码插件开发。但是也稍微介绍下习惯idea的人只是使用cursor代码生成的话&#xff0c;这有个小妙招…

查看部署在K8S服务的资源使用情况

要查看 Pod中 server 的资源使用情况&#xff08;CPU 和内存&#xff09;&#xff0c;你需要使用 Kubernetes 的监控工具。最常用的是 kubectl top 命令。✅ 方法一&#xff1a;使用 kubectl top&#xff08;推荐&#xff09; 1. 查看 Pod 的 CPU 和内存使用 kubectl top pod s…

uni-app vue3 小程序接入 aliyun-rtc-wx-sdk

安装依赖&#xff1a; npm install aliyun-rtc-wx-sdk crypto-jsuni-app&#xff0c;新建一个页面&#xff0c;粘贴以下代码 在阿里云实时音视频补充appId、appKey即可&#xff0c; <template><view class"container"><!-- 用户输入区域 --><vi…

Java技术栈/面试题合集(3)-Java并发篇

场景 Java入门、进阶、强化、扩展、知识体系完善等知识点学习、性能优化、源码分析专栏分享: Java入门、进阶、强化、扩展、知识体系完善等知识点学习、性能优化、源码分析专栏分享_java高级进阶-CSDN博客 通过对面试题进行系统的复习可以对Java体系的知识点进行查漏补缺。…

[AI 生成] Spark 面试题

spark 基础问题面试题以下是 Spark 基础面试题的全面梳理&#xff0c;涵盖核心概念、架构原理和编程模型&#xff0c;帮助快速掌握高频考点&#xff1a;一、核心概念1. Spark 核心组件组件作用Driver执行 main() 方法&#xff0c;调度任务&#xff0c;管理集群资源Executor在 W…

MySQL的DML增删改操作:

目录 添加数据&#xff1a; 方式1&#xff1a;一条一条添加数据&#xff1a; 方式2&#xff1a;将查询结果插入到表中&#xff1a; 更新数据&#xff1a; 删除数据&#xff1a; MySQL8的新特性&#xff1a;计算列&#xff1a; 本文介绍了MySQL数据库操作语言(DML)的基本使…

MySQL运维常用语法速查

&#x1f5c3;️ 一、数据库操作 CREATE DATABASE db_name; USE db_name; DROP DATABASE db_name; SHOW DATABASES;&#x1f517; 官方文档 &#x1f4ca; 二、表操作 表创建示例 CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50) NOT NULL,email V…

汽车以太网通信协议——SOME/IP

1. 背景 SOME/IP是一种汽车中间件解决方案&#xff0c;其全称是Scalable Service-Oriented Middleware over IP&#xff0c;即位于 IP 协议层以上的一种面向服务的可扩展的中间件。 中间件&#xff1a;该术语起源于复杂的软件系统开发&#xff0c;用以实现软件组件之间的数据交…

什么是负载均衡,有哪些常见算法?

文章目录1.什么是负载均衡2.负载均衡的分类2.1 二层负载均衡2.2 三层负载均衡2.3 四层负载均衡2.4 七层负载均衡3.负载均衡工具3.1 LVS3.2 Nginx3.3 HAProxy4.常见负载均衡算法5.面试回答模板1.什么是负载均衡 为了提升web应用的各方面能力&#xff0c;我们一般会把多台机器组…