ARM1.(ARM體系結構)

1.基本概念

????????嵌入式:以應用為心,以計算機技術為礎,軟便件可被的專用計算機系統。

????????計算機系統的軟件基本組成:? ?系統軟件、應用軟件。

? ? ? ? 計算機系統的硬件基本組成:運算器、控制器、存諸器、輸入設備、輸出設備

日常生活中遇到的專業術語:

? ? ? ? CPU中央處理器(Center Processing Unit):一種通用的強大處理器。

? ? ? ? GPU圖形處理器(Graphics Processing Unit):處理圖像的處理器

? ? ? ? FPU浮點型運算單元(Float Processing Unit)

在嵌入式行業里:

? ? ? ? MPU(Mico Processing Unit):微處理器,偏向處理,強調通用

? ? ? ? MCU(Mico Contral Unit):微控制器,偏向控制,強調集成度

? ? ? ? 單片機:單片微型計算機

? ? ? ? DSP(Digital Signal Processing):數字信號處理器,高強度數學計算的專用芯片

? ? ? ? SOC(System On Chip):片上系統,SOC是一個設計和集成的概念,把MPU,MCU,

GPU,DSP,modam(調制解調器)規劃在一起形成功能完善的藍圖。

? ? ?RAM(隨機存儲器)(Random Access Memory):價格貴,地址總線鏈接,每一個字節都可以被處理器直接尋址,運行速度較ROM快,掉電數據丟失

? ? ?ROM(只讀存儲器)(Read-only Memory)(塊設備):價格便宜,運行速度滿,掉電數據不丟失。

本次我們學習ARM使用的開發板是正點原子的IMAX6ULL

CISC:復雜指令集架構(體積大,功耗大,適用于電腦)

SISC:精簡指令集架構(體積小,功耗小,適合應用于小型移動設備)

ARM

核心架構版本:ARM1-ARM11,11之后ARM分為A(CortexA-app應用),R(CortexR-realtime實時),M(CortexM-mcu單片機)

指令集版本:v1-v9

ALU算數邏輯單元:位于內核,如int a = 1,int b = 2, int c = a + b ,RAM將數據發送到位于內核的通用寄存器,通過ALU計算得出結果。由于通用寄存器不能被指針地址訪問,因此無法通過c語言進行操作,需要用匯編語言對通用寄存器進行操作。而外設寄存器下掛在地址總線,需要通過總線(指針)進行訪問。

存儲器分類:RAM(內存),ROM(外存),register(寄存器),Cache(高速緩存)其分為數據Cache和指令Cache,其與MMU類似,使用那部分就打開那部分,將不使用的部分關閉,避免地址映射錯誤,使用Cache可以避免例如for循環中對變量的重復讀取和修改,提高了運行效率。

?棧(頂)背靠內核,向下生長,避免向上生長數據越界到內核空間導致系統崩潰。

CPSR(current program status register):當前程序狀態寄存器

SPSR(saved program status register):備份程序狀態寄存器

寄存器組示意圖:

sp(stack point):棧指針寄存器,用來記錄棧頂位置。?

lr(link regist):鏈接寄存器,保存程序跳轉前的下一行程序地址,方便程序執行完后返回繼續執行。

pc(program conter):程序計數器 ,指向要執行的下一行代碼,每執行一行代碼會自加一次,向后偏移,當執行函數調用時,pc跳轉到要執行的函數地址,在函數執行完后返回lr寄存器保存的跳轉前的下一行程序位置繼續執行 。

那么問題來了,lr只有一個,當進行函數嵌套的時候,lr多次保存會導致地址覆蓋,那函數是怎么精準的返回的呢?

? ? ? ? 答案是lr在被覆蓋前會將先前的地址放入棧中,雖然lr只能存放一個地址,但是相對棧來說棧的空間無限大且連續,壓棧和彈棧的順序都是固定的,因此通過lr和棧配合下程序可以做到準確返回。

面向應用的ARM最小系統:

存儲器的結構層次:

單總線結構和多總線結構

RAM和ROM的分類:

馮諾依曼架構(普林斯頓架構):其核心是共享存儲,分時訪問。代碼和數據公用一個內存空間和總線,取數據和取指令串行交替執行。

哈佛架構:其核心是分離存儲,并行訪問。指令和數據存儲在兩個獨立的物理內存模塊中,并且使用兩條獨立的總線進行訪問。我們所學的ARM就是采用的改進型哈佛架構,即在芯片內部采用哈佛架構,在芯片外部采用馮諾依曼架構。

ARM工作模式:

每種模式的棧是獨立的,sp指向的空間不同。? ? ? ??

cpsr(程序狀態寄存器):

N:程序執行后最高位的數值(運算符號1負0正)

Z:記錄操作結果是否為0。如果結果為0,則?Z = 1。如果結果不為0,則?Z = 0

C:記錄無符號數運算的進位或借位。對于加法(ADD, ADC):如果加法產生了進位(結果小于任意一個加數),則?C = 1,否則為0。對于減法(SUB, SBC, CMP):如果減法沒有發生借位,則?C = 1;如果發生了借位,則?C = 0。這一點容易混淆,可以理解為:C = 1?表示無符號減法結果有效(被減數 >= 減數),C = 0?則表示下溢(被減數 < 減數)。

V:記錄有符號數運算是否發生了溢出。如果操作導致溢出(結果超出了有符號數所能表示的范圍),則?V = 1。否則,V = 0

M位(0-4bit):負責記錄處理器模式。

SPSR保存的程序狀態寄存器):它的唯一目的就是:當異常(或中斷)發生時,自動地、硬件地保存當前模式下的 CPSR 狀態。

異常向量表:CPU硬件設計中的一個關鍵機制,它決定了當發生異常或中斷時,CPU應該去哪里找到處理這個事件的代碼。存放著異常處理程序的入口地址。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/921988.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/921988.shtml
英文地址,請注明出處:http://en.pswp.cn/news/921988.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Django全棧班v1.01 Python簡介與特點 20250910

從零開始的Python編程之旅 “人生苦短&#xff0c;我用Python。”這不僅僅是Python程序員的口頭禪&#xff0c;更是對Python強大能力的最好詮釋&#xff01;&#xff01;&#xff01; 為什么全世界有超過1500萬開發者選擇Python&#xff1f; 為什么Python連續多年蟬聯最受歡…

【WebApi】什么情況開啟如何開啟緩存

在 ASP.NET Core WebAPI 中開啟緩存是優化性能、減少服務器負載和提升用戶體驗的非常重要的手段。但并非所有情況都適合開啟緩存。 下面我將從 “什么情況下開啟” 和 “如何開啟” 兩個方面為你詳細解釋。 一、什么情況下應該開啟緩存? 總的來說,緩存適用于 “變化不頻繁但…

Go語言類型斷言全解析

類型斷言的基本概念類型斷言(Type Assertion)是Go語言中用于檢查接口值底層具體類型的機制。它本質上是一種運行時類型檢查的操作&#xff0c;允許程序在運行時判斷接口變量是否持有特定的類型值&#xff0c;并提取該類型的值。這是Go語言類型系統中的一個重要特性&#xff0c;…

大模型在題目生成中的安全研究:攻擊方法與防御機制

大模型在題目生成中的安全研究&#xff1a;攻擊方法與防御機制 文章目錄大模型在題目生成中的安全研究&#xff1a;攻擊方法與防御機制一、引言二、大模型在題目生成中的安全漏洞與攻擊方法2.1 大模型在題目生成中的安全漏洞分析2.1.1 訓練數據相關漏洞2.1.2 模型架構與特性相關…

跟做springboot尚品甄選項目(二)

登錄功能的書寫 后端接口的書寫 &#xff08;1&#xff09;創建配置文件 粘貼這兩個文件&#xff08;E:\project\AllProJect\Shangpin Selection\項目材料素材\資料\資料\03-配置文件&#xff09; 在spzx-manager服務的src/resources目錄下創建application.yml、application-…

前后端接口調試提效:Postman + Mock Server 的工作流

前后端接口調試提效&#xff1a;Postman Mock Server 的工作流 &#x1f31f; Hello&#xff0c;我是摘星&#xff01; &#x1f308; 在彩虹般絢爛的技術棧中&#xff0c;我是那個永不停歇的色彩收集者。 &#x1f98b; 每一個優化都是我培育的花朵&#xff0c;每一個特性都是…

大帶寬香港云服務器在數據傳輸速度上有何優勢?

為方便站長快速部署網站、優化用戶訪問體驗&#xff0c;當下眾多實力強勁的香港數據中心&#xff0c;均推出了大帶寬云服務器產品。不過&#xff0c;市面上不少數據中心雖宣稱提供 “專屬大帶寬”&#xff0c;但其線路配置中&#xff0c;國際線路占比高、繞行鏈路多&#xff0c…

HT862 智能音頻功率放大器:為便攜音頻設備打造高效穩定的音質解決方案

在藍牙音箱、智能手機、便攜式游戲機等設備的設計中&#xff0c;音頻功率放大器是決定音質表現、續航能力與使用穩定性的關鍵部件。一款優質的音頻功放&#xff0c;不僅需要輸出足夠的功率以滿足清晰響亮的聽覺需求&#xff0c;還需在能效、溫控、適配性上達到平衡&#xff0c;…

HarmonyOS-ArkUI Web控件基礎鋪墊7-HTTP SSL認證圖解 及 Charles抓包原理 及您為什么配置對了也抓不到數據

HarmonyOS-ArkUI Web控件基礎鋪墊6--TCP協議- 流量控制算法與擁塞控制算法 HarmonyOS-ArkUI Web控件基礎鋪墊5--TCP協議- 動畫展示超時重傳&#xff0c;滑動窗口&#xff0c;快速重傳 HarmonyOS-ArkUI Web控件基礎鋪墊4--TCP協議- 斷聯-四次揮手解析 HarmonyOS-ArkUI Web控件…

【qt】通過TCP傳輸json,json里包含圖像

主要是使用協議頭 發送方connect(m_pDetectWorker, &DetectionWorker::sig_detectImg, this, [](const QJsonObject &json){// 轉換為JSON數據QJsonDocument doc(json);QByteArray jsonData doc.toJson(QJsonDocument::Compact);// 構建增強協議頭struct EnhancedHead…

四,基礎開發工具(下)

4.5自動構建make/Makefile4.5.1基本使用1示例2進一步解釋3實踐4最佳實踐4.6練習&#xff1a;進度條4.6.1倒計時4.6.2進度條version14.6.2進度條version24.7版本控制器Git4.7.1git操作1操作一次&#xff0c;以后不愁2經典"三件套"3常用4版本回退4.7.2小結4.5自動構建m…

C++基本數據類型的范圍

文章目錄不同位數的系統下各個類型所占字節數如何存儲的我發現我能搜到的相關文章都只講了這些數據類型的范圍是這樣的&#xff0c;不說實際的存儲情況&#xff0c;當你了解了類型實際是如何存儲的&#xff0c;再去記憶這些范圍就簡單了&#xff0c;所以就有了這篇文章不同位數…

基于社交媒體數據的公眾情緒指數構建與重大事件影響分析

一、引言在信息爆炸的時代&#xff0c;社交媒體&#xff08;如微博、Twitter&#xff09;已成為公眾表達情緒、討論熱點事件的主要平臺。通過分析社交媒體數據&#xff0c;可以構建公眾情緒指數&#xff0c;并進一步研究其與股市波動、政策發布等重大事件的關聯性。本文將介紹如…

OpenLayers數據源集成 -- 章節七:高德地圖集成詳解

前言在前面的文章中&#xff0c;我們學習了OpenLayers的瓦片調試&#xff08;VectorTileDebug&#xff09;技術。本文將深入探討OpenLayers中高德地圖的集成方法&#xff0c;這是WebGIS開發中接入商業地圖服務的重要技術。高德地圖作為國內領先的地圖服務提供商&#xff0c;提供…

海外代理IP平臺Top3評測:LoongProxy、神龍動態IP、IPIPGO哪家更適合你?

在當今互聯網環境中&#xff0c;代理IP服務已成為許多企業和個人用戶的剛需。無論是數據采集、市場調研還是賬號管理&#xff0c;優質的代理IP都能大幅提升工作效率。本文將針對LoongProxy、神龍海外動態IP和IPIPGO這三家主流代理IP服務商進行橫向評測&#xff0c;幫助你根據自…

對瀏覽器事件機制的理解

瀏覽器事件是什么&#xff1a; 事件是用戶操作網頁時發生的交互動作&#xff0c;比如 click/move&#xff0c; 事件除了用戶觸發的動作外&#xff0c;還可以是文檔加載&#xff0c;窗口滾動和大小調整。事件被封裝成一個 event 對象&#xff0c;包含了該事件發生時的所有相關信…

XCVP1902-2MSEVSVA6865 AMD 賽靈思 XilinxVersal Premium FPGA

XCVP1902-2MSEVSVA6865 是 AMD 賽靈思&#xff08;Xilinx&#xff09;Versal Premium FPGA 系列中的高端自適應系統級芯片&#xff08;Adaptive SoC&#xff09;變體&#xff0c;面向需要極高邏輯密度、海量 I/O 與超高速收發能力的數據中心互聯、原型驗證與高性能網絡加速等應…

kotlin - 2個Fragment實現左右顯示,左邊列表,右邊詳情,平板橫、豎屏切換(一)

kotlin - 2個Fragment實現左右顯示&#xff0c;左邊列表&#xff0c;右邊詳情&#xff0c;平板橫、豎屏切換(要使用平板測試)平板橫屏&#xff1a;左右fragment實現分屏效果&#xff0c;平板豎屏&#xff1a;只顯示左邊的fragment&#xff0c;點擊才顯示右邊fragment屏幕旋轉&a…

推薦系統中的AB測試:從設計到分析全流程

推薦系統中的AB測試:從設計到分析全流程 關鍵詞:推薦系統、AB測試、實驗設計、數據分析、效果評估、統計顯著性、用戶體驗 摘要:本文將深入探討推薦系統中AB測試的全流程,從實驗設計到結果分析。我們將用通俗易懂的方式解釋AB測試的核心概念,展示如何科學地評估推薦算法改…

【go語言 | 第1篇】Go環境安裝+go語言特性

文章目錄go開發環境1. 下載安裝包2. 配置環境變量3. GOPROXYgo語言特性1. go的優勢2. go適合做什么3. go缺點編寫一個go程序注&#xff1a;在VSCode中補全go代碼go開發環境 我這里是windows操作系統的環境安裝&#xff0c;其他系統可以查看菜鳥教程&#xff1a;Go 語言環境安裝…