學習嵌入式之硬件——ARM體系

一、ARM內核基礎知識

1.ALU:算術邏輯單元;完成運算的電路

2.通用寄存器:R0~R15

  • R13(SP):棧指針寄存器:指向棧頂的位置;并在函數調用、中斷處理等場景中自動更新。
  • R14(LR):鏈接寄存器:保存PC要回來的位置,在PC調用完了,把地址給PC
  • R15(PC)program counter 程序計數器;保存當前指令要執行的下一條指令的地址
  • R0~12:隨便存

3.cache:高速緩存;RAM和內核速度不匹配;

  • ? ? ? ? I cache:指令高速緩存? ? instruction
  • ? ? ? ? d cache:數據高速緩存? ?data

4.MMU:memory management unit?

????????內存管理單元;映射虛擬內存和物理內存:提高內存的使用效率

5.CPSR:current program status register

????????當前程序狀態寄存器,有一位可調整大小端,默認小端

6.SPSR:saved?program status register

? ? ? ? 用于保存程序狀態寄存器(CPSR)的值

7.CISC:complex instruction set computer

????????復雜指令計算機;體積大功耗大成本高,不適合便捷;在80%情況下,只能用20%功能

8.RISC:reduce? instruction set computer

????????精簡指令集計算機,容易集成在便攜式設備上

9.cortex 系列:(從ARM 11)

  • ????????cortex? A:應用,消費類電子,便攜類設備;A7系列
  • ????????cortex R:實時性高,高端,軍工、衛星;
  • ????????cortex M:單片機系列

A:arm? 32位? 指令

T:sam?16位

10.哈佛結構和馮諾依曼

(1)哈佛架構

  • 程序存儲和數據存儲分離:哈佛架構使用獨立的存儲器和總線來分別存儲程序和數據。程序存儲器專門用于存儲指令,數據存儲器用于存儲變量和數據。

(2)馮·諾伊曼架構

  • 程序存儲和數據存儲統一:馮·諾伊曼架構使用同一套存儲器和總線來存儲程序和數據。程序和數據存儲在同一個存儲空間中,通過地址來區分指令和數據。

11.總線(bus)

  • ????????AHB:先進的高速總線,連接高速設備,USB、RAM(早期叫北橋)
  • ? ? ? ? APB:先進外設總線,連接低速設備串口、GPIO,定時器(早期叫南橋)

? PCI:插顯卡
(1)多總線結構

  • ????????可選擇的DMA總線:直接內存訪問

(2)單總線結構:

DSP:數字圖像處理

12.編譯器

(1)匯編

  • ????????對內核進行一些操作,比如關閉MMU,打開SP,打開I cache,關閉d cache?
  • ????????arm-gcc:交叉編譯工具鏈。編譯出來的程序,電腦運行不了。只能運行在ARM板上,問題:編譯出來的代碼無法在主機運行,只能在目標機上運行

13.最小系統

封裝方式:BGA封裝、TSOP封裝、COB封裝

二、RAM&&ROM

1.RAM

(1)sram(static ram)
用晶體管存儲0、1;

? ? ? ? 速度快,成本高,存儲密度低;

? ? ? ? 應用于單片機。

(2)dram(dynamic ram)動態存儲
用電容充放電存儲0,1;

? ? ? ? 功耗大,需要外接(外接刷新電路,電路復雜(定期向存儲1的補充電荷)),讀寫速度低于sram,成本低,存儲密度大;

? ? ? ? 多應用與高端Soc。

(3)sdram(synchronous dram)
增加了同步電路,提高dram的數據讀寫速度(dram升級版)。

(4)ddr ram(ddr sdramldouble data rate sdram)
為sdram的下一代;雙倍速(雙數據速率)

(5)iram(internal ram)
注意iram并非是真正意義上的某種ram,通常iram就是 sram,它通常存在于Soc內部,所以被稱為iram(Soc內部直接封裝好在芯片內部的sram)

2、ROM

(1)rom非易失性存儲器
最早的rom在出場時寫入數據,之后無法更改。

(2)prom(programmable rom)可編程rom
出場后能夠讓用戶寫入一次數據,例如cdrom。

(3)eprom(erasable prom)可擦寫prom
出場后可以擦除數據再次寫入, 但需要特殊的設備,如紫外光等。

(4)eeprom(electically eprom)電可擦寫可編程rom
無需專用設備就可以擦寫,編程。

(4)flash閃存,新一代非易失性存儲器
1)nor flash(或非falsh)
可直接被CPU尋址(每個字節都有獨一無二的地址)

????????2)nand flash(與非falsh)
不可被COU尋址,每個字節不可被尋址(用flash控制器可以訪問)

擴:eMMc(電多媒體卡)
本質就是nand,也就是SD卡,不同之處:SD卡可拔可插,eMMc可直接焊在板子上。

3、存儲系統的速度和價格對比

CPU可以直接訪問主存存儲器;

CPU有硬盤控制器(sd卡):ROM通過RAM再到CPU

TTL:

RA232:三根線,RDX、TDX、GND

DB9:2、3、9有用,對應收、發、地;其他是流控制;

三、ARM七種工作模式

Cortex——A:有九種

每種狀態都有自己獨立的棧區空間

ARM9 :37個寄存器

cortex A-7有40個寄存器

四、異常向量表(事件)

1.偏移量與異常向量表

? ? ????偏移量:異常函數處理的入口地址;

? ? ? ??異常向量表:用于存儲不同類型異常發生時,處理器跳轉到特定的異常處理程序的地址;

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

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

相關文章

微信小程序中使用TensorFlowJS從環境搭建到模型訓練及推理模型得到預測結果

1、小程序端環境準備app.json"plugins": {"tfjsPlugin": {"version": "0.2.0","provider": "wx6afed118d9e81df9"}}package.json"dependencies": {"tensorflow-models/posenet": "^2.2.…

深入剖析通用目標跟蹤:一項綜述

摘要 通用目標跟蹤仍是計算機視覺領域一項重要且具有挑戰性的任務,其難點在于復雜的時空動態變化,尤其在存在遮擋、相似干擾物和外觀變化的情況下。過去二十年間,為應對這些挑戰,研究者提出了多種跟蹤范式,包括基于孿生網絡的跟蹤器、判別式跟蹤器以及近期突出的基于Tran…

Next.js 鏈接與導航:頁面間無縫切換

鏈接與導航&#xff1a;頁面間無縫切換 關鍵要點 Next.js 提供了 <Link> 組件和程序化導航方法&#xff0c;實現頁面間高效、無縫的切換。<Link> 組件利用客戶端導航和預加載技術&#xff0c;優化用戶體驗和性能。程序化導航通過 useRouter 鉤子&#xff08;Page…

根據經緯度(從nc格式環境數據文件中)提取環境因子

根據經緯度&#xff08;從nc格式環境數據文件中&#xff09;提取環境因子 文章目錄前言一、準備所需文件二、代碼分享總結前言 本文主要利用nc格式環境數據文件和物種經緯度分布文件&#xff0c;根據經緯度&#xff08;從nc格式環境數據文件中&#xff09;提取環境因子 一、準…

Uniapp 自定義 Tabbar 實現教程

Uniapp 自定義 Tabbar 實現教程1. 簡介2. 實現步驟2.1 創建自定義 Tabbar 組件2.2 配置 pages.json3.1 路由映射3.2 樣式設計3.3 圖標處理4. 常見問題及解決方案4.1 頁面跳轉問題4.2 樣式適配問題4.3 性能優化5. 擴展功能5.1 添加徽標5.2 添加動畫效果6. 總結1. 簡介 在 Uniap…

JuiceFS存儲

因語雀與csdn markdown 格式有區別&#xff0c;請查看原文&#xff1a; https://www.yuque.com/dycloud/pss8ys 一、JuiceFS 介紹 1.1 JuiceFS 是什么 JuiceFS 是一款面向云環境設計的高性能 POSIX 文件系統&#xff0c;核心能力是將對象存儲轉化為全功能文件系統。它采用獨…

【HarmonyOS Next之旅】DevEco Studio使用指南(三十八) -> 構建HAR

目錄 1 -> 前言 2 -> 使用約束 3 -> 創建模塊 4 -> 構建HAR 4.1 -> 以debug模式構建HAR 4.2 -> 以release模式構建HAR 4.3 -> 構建字節碼格式的HAR 4.4 -> 對HAR進行簽名 1 -> 前言 構建模式&#xff1a;DevEco Studio默認提供debug和rele…

93、【OS】【Nuttx】【構建】cmake menuconfig 目標

【聲明】本博客所有內容均為個人業余時間創作&#xff0c;所述技術案例均來自公開開源項目&#xff08;如Github&#xff0c;Apache基金會&#xff09;&#xff0c;不涉及任何企業機密或未公開技術&#xff0c;如有侵權請聯系刪除 背景 接之前 blog 【OS】【Nuttx】【構建】cm…

React 表單處理:移動端輸入場景下的卡頓問題與防抖優化方案

文章目錄每日一句正能量前言一、問題場景與表現二、技術攻堅過程三、優化效果與經驗沉淀每日一句正能量 山再高&#xff0c;往上攀&#xff0c;總能登頂&#xff1b;路再長&#xff0c;走下去&#xff0c;終將到達。每日一勵&#xff0c;勇往直前。 前言 在移動端 React 項目開…

數據安全防護所需要的關鍵要素

數據安全防護是一個覆蓋數據全生命周期&#xff08;采集、存儲、傳輸、處理、銷毀&#xff09;、融合技術、管理、流程與人員的系統性工程。其核心目標是保障數據的??保密性&#xff08;Confidentiality&#xff09;、完整性&#xff08;Integrity&#xff09;、可用性&#…

【JavaEE】(8) 網絡原理 HTTP/HTTPS

一、什么是 HTTP 協議 上節說到&#xff0c;應用層的協議需要約定通信的內容和數據格式。我們可以自定義應用層協議&#xff0c;也可以基于現成的應用層協議進行開發。協議的種類很多&#xff0c;最常見的之一就是 HTTP&#xff0c;廣泛用于網站和手機 App。準確來說&#xff0…

C語言的數組與字符串練習題4

C語言的數組與字符串練習題4 16. 數組元素去重 題目描述: 編寫一個C程序,輸入一組整數存儲在數組中,去除數組中的重復元素,并輸出去重后的數組。 解題思路: 遍歷數組,對于每個元素,檢查它之前是否已經存在相同的元素。如果不存在,則將其保留;否則,跳過。可以使用一…

Transformers簡單介紹 - 來源于huggingface

Transformers介紹 - 來源于huggingface 文章目錄Transformers介紹 - 來源于huggingfaceTransformers能做什么pipeline()函數零樣本分類推理API完形填空命名實體識別問答摘要提取翻譯transformers是如何工作的transformers的具體組成注意力層機制transformers原始結構architectu…

template<typename R = void> 意義

在 C 中&#xff0c;template<typename R void> 表示定義一個模板參數 R&#xff0c;其默認類型為 void。這意味著&#xff1a;如果用戶沒有顯式指定 R&#xff0c;則 R 默認為 void。如果用戶顯式指定了 R&#xff08;如 template<typename R void> 后面跟著 &l…

國產3D大型裝配設計新突破①:圖紙打開設計雙加速 | 中望3D 2026

本文為CAD芯智庫整理&#xff0c;未經允許請勿復制、轉載&#xff01;在中望3D 2026的新版中&#xff0c;不僅在設計效率上進行了重大優化&#xff0c;更是在裝配方面實現了突破性的改進&#xff0c;讓每一個項目都能快速、精確地從概念變為現實。 中望3D2026亮點速遞裝配篇將…

游戲開發狀態機與行為樹的優缺點

在游戲開發中&#xff0c;狀態機&#xff08;Finite State Machine, FSM&#xff09; 和行為樹&#xff08;Behavior Tree, BT&#xff09; 是兩種常用的 AI 邏輯控制框架&#xff0c;分別適用于不同場景&#xff0c;其優缺點對比可從靈活性、維護成本、適用場景等多個維度分析…

Linux下ELF文件的介紹

目錄 1.溫故知新 2.ELF文件介紹 3.ELF文件組成 4.ELF文件形成到加載 5.連接過程 1.溫故知新 上一篇博客&#xff0c;我們介紹了我們的動靜態&#xff0c;知道了我們的庫其實也是文件&#xff0c;如果我們想寫一個庫也是可以的&#xff0c;我們的把我們的庫文件編譯成.o文件…

人工智能領域、圖歐科技、IMYAI智能助手2025年6月更新月報

2025年6月AI領域重要模型更新與平臺優化匯總 摘要&#xff1a; 本文匯總了2025年6月期間AI領域發布的多項重要模型更新及平臺功能優化信息&#xff0c;涵蓋Google Gemini、阿里通義萬相、字節豆包、百度文心一言、MiniMax海螺02、Google Veo3、快手可靈2.1、FLUX Kontext等模型…

從零開始學Express,理解服務器,路由于中間件

當我們初學前端時&#xff0c;常常只關注頁面效果和交互&#xff0c;但隨著項目復雜度提升&#xff0c;我們遲早會遇到“服務端”的問題&#xff1a;如何讓一個頁面的數據是從數據庫來的&#xff1f;怎么讓不同的用戶看到不同的內容&#xff1f;這時候&#xff0c;我們就需要一…

Codeforces Round 987 (Div. 2)

ABC 略D預處理出每個位置的前綴最大和后綴最小。從后向前枚舉&#xff0c;如果一個數無法后移&#xff0c;那么答案就是最大前綴&#xff0c;否則答案要不是前綴最大&#xff0c;要不就是這個數先移到前綴最大位置再移到能移到的最大的位置此處的答案。用線段樹維護#include<…