嵌入式學習硬件(一)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
英文地址,請注明出處:http://en.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;我們一般會把多臺機器組…