前言
初稿:2023-6-30 16:58:07
終稿:2023-7-3 16:30:49
本專欄將于考試期間設置為付費
考試結束后關閉付費
時間為2023/7/7
以下內(nèi)容源自《【嵌入式系統(tǒng)】》
僅供學習交流使用
需要復習的pdf(包含書簽和高亮標注),可以私信我,無償提供
推薦
第一章 習題【嵌入式系統(tǒng)】
第二章 習題【嵌入式系統(tǒng)】
第三章 習題【嵌入式系統(tǒng)結構】
第二章 ARM 技術及體系結構【嵌入式系統(tǒng)】
第三章 ARM7指令系統(tǒng)【嵌入式系統(tǒng)】
第四章 基于ARM7系列的匯編語言程序設計【嵌入式系統(tǒng)】
Keil 5 安裝教程及簡單使用【嵌入式系統(tǒng)】
Keil 4 安裝教程及簡單使用【嵌入式系統(tǒng)】
ARM簡單程序設計【嵌入式系統(tǒng)】
ARM與C語言的混合編程【嵌入式系統(tǒng)】
ARM匯編第一次上機(順序、分支、單重循環(huán))【嵌入式系統(tǒng)】
匯編第二次上機實驗(續(xù)第一次,字符串比較及雙重循環(huán))【嵌入式系統(tǒng)】
GPIO實驗【嵌入式系統(tǒng)】
定時中斷實驗【嵌入式系統(tǒng)】
第六章 測驗【嵌入式系統(tǒng)】
期末綜合測試【嵌入式系統(tǒng)】
期末復習
推薦
西郵嵌入式系統(tǒng)復習
題型
A,B兩套試卷,基本涵蓋了這些題型:
填空、判斷、選擇、名詞解釋、簡答題,綜合分析與設計,大致這些題型。
全面認知30,理解與簡答應用40,綜合分析與設計30
押題
客觀題 填空 判斷 選擇 名詞解釋
主觀題 簡答題 綜合分析和設計
填空 判斷 選擇 名詞解釋
看測試習題
簡答題
看每章的問題和思考
綜合分析和設計
第四章
分支循環(huán)程序設計
常見數(shù)據(jù)搬家(復制)、求和、尋找最大數(shù)最小數(shù)、排序等等,書上例題,上機分析
第六章
GPIO 例6-4
外部中斷 例6-7
定時中斷 例6-8~6-11
復習
以下內(nèi)容,來源于復習PPT
總述
問題與思考:
該課程通過十六周的學習,學了哪些內(nèi)容?
課程包含軟硬件知識,軟硬件如何協(xié)同工作?
通過課程的學習,了解、理解、掌握了哪些知識點?自己的能力哪些方面得到提升?
教學內(nèi)容介紹
(1)基礎知識:第1章、第2章、第3章和第4章。這四章介紹了嵌入式系統(tǒng)的基本概念、ARM7的體系結構、編程模式、指令系統(tǒng)和匯編程序設計方法。
(2)硬件開發(fā)基礎:第5章、第6章和第7章。以NXP公司的LPC2000系列為例,介紹了嵌入式系統(tǒng)的硬件組成及工作原理。
(3)軟件開發(fā)基礎:第8章,介紹了嵌入式系統(tǒng)軟件組成、硬件適配層軟件功能、實現(xiàn)方法、系統(tǒng)軟件移植和軟件開發(fā)流程。
(4)嵌入式系統(tǒng)應用:第9章,以《停車場管理系統(tǒng)》,簡介系統(tǒng)總體設計、嵌入式Web設計、嵌入式SQLite數(shù)據(jù)開發(fā)、SNMP代理設計等。
問題與思考
內(nèi)容來源于zx,在此感謝
答案來源于chatGPT
什么是嵌入式系統(tǒng)?有什么特點?應用在哪些領域?
2023/7/6 17:06:47
嵌入式系統(tǒng)是一種專門設計用于控制特定任務的計算機系統(tǒng)。它通常被嵌入到其他設備或系統(tǒng)中,以執(zhí)行特定的功能。嵌入式系統(tǒng)具有以下特點:
實時性:嵌入式系統(tǒng)需要實時響應和處理輸入信號,以滿足特定任務的時間要求。
低功耗:嵌入式系統(tǒng)通常在電池供電或有限的能源供應下工作,因此需要具有低功耗的特性。
小型化:嵌入式系統(tǒng)通常需要嵌入到其他設備中,因此需要具有小型化的設計,以適應空間限制。
可靠性:嵌入式系統(tǒng)通常用于關鍵任務,因此需要具有高可靠性,以確保系統(tǒng)穩(wěn)定運行。
嵌入式系統(tǒng)應用廣泛,涵蓋了許多領域,包括但不限于:
汽車領域:嵌入式系統(tǒng)用于汽車控制單元、車載娛樂系統(tǒng)、安全系統(tǒng)等。
電子設備領域:嵌入式系統(tǒng)用于智能手機、平板電腦、數(shù)碼相機等電子設備的控制和功能實現(xiàn)。
工業(yè)自動化領域:嵌入式系統(tǒng)用于工業(yè)控制、機器人控制、自動化生產(chǎn)線等。
醫(yī)療設備領域:嵌入式系統(tǒng)用于醫(yī)療儀器、健康監(jiān)測設備、醫(yī)療影像處理等。
家電領域:嵌入式系統(tǒng)用于智能家居系統(tǒng)、家電控制、智能電視等。
航空航天領域:嵌入式系統(tǒng)用于航空航天器的導航、控制、通信等。
這些領域只是嵌入式系統(tǒng)應用的一部分,隨著技術的不斷進步,嵌入式系統(tǒng)在更多領域中得到應用。
2023/7/6 17:06:50
嵌入式系統(tǒng)組成?嵌入式處理器如何分類?典型的嵌入式處理器有哪些?
2023/7/6 17:07:14
嵌入式系統(tǒng)通常由以下幾個組成部分構成:
處理器(CPU):負責執(zhí)行指令和控制系統(tǒng)的核心部分。
存儲器:用于存儲程序代碼、數(shù)據(jù)和中間結果,包括閃存、RAM等。
輸入/輸出接口:用于與外部設備進行通信和數(shù)據(jù)交換,如串口、并口、USB等。
操作系統(tǒng):提供對硬件資源的管理和控制,以及運行應用程序的環(huán)境。
傳感器和執(zhí)行器:用于感知和控制外部環(huán)境,如溫度傳感器、光線傳感器、電機等。
嵌入式處理器根據(jù)其架構和特性可以進行不同的分類,以下是一些常見的分類方式:
指令集架構:根據(jù)指令集的不同,嵌入式處理器可以分為CISC(復雜指令集計算機)和RISC(精簡指令集計算機)處理器。
處理器核心數(shù)量:單核處理器和多核處理器。
功耗級別:根據(jù)功耗要求的不同,嵌入式處理器可以分為低功耗處理器、中功耗處理器和高功耗處理器。
性能級別:根據(jù)性能要求的不同,嵌入式處理器可以分為低性能處理器、中性能處理器和高性能處理器。
一些典型的嵌入式處理器包括:
ARM系列:ARM處理器是一種低功耗、高性能的RISC處理器,廣泛應用于移動設備、智能家居和工業(yè)控制等領域。
Intel Atom系列:Intel Atom處理器是一種低功耗、高集成度的嵌入式處理器,常用于智能手機、平板電腦和嵌入式系統(tǒng)。
MIPS系列:MIPS處理器是一種低功耗、高性能的RISC處理器,廣泛應用于網(wǎng)絡設備、數(shù)字電視和路由器等領域。
PowerPC系列:PowerPC處理器是一種高性能的RISC處理器,常用于嵌入式系統(tǒng)、游戲機和網(wǎng)絡設備等。
這些處理器都具有不同的特點和適用場景,根據(jù)具體需求選擇適合的嵌入式處理器。
2023/7/6 17:07:17
操作系統(tǒng)概念,什么是EOS?常用的EOS有哪些?
2023/7/6 17:07:32
操作系統(tǒng)(Operating System,簡稱OS)是一種管理計算機硬件和軟件資源的軟件系統(tǒng),它提供了對計算機系統(tǒng)的抽象和控制,使得用戶和應用程序能夠方便地使用計算機資源。
EOS(Embedded Operating System)是一種針對嵌入式系統(tǒng)設計和優(yōu)化的操作系統(tǒng)。與通用操作系統(tǒng)相比,EOS通常具有更小的內(nèi)存占用、更低的功耗和更高的實時性能,以適應嵌入式系統(tǒng)對資源和實時性的特殊要求。
常用的EOS包括:
FreeRTOS:FreeRTOS是一個開源的實時操作系統(tǒng),適用于小型嵌入式系統(tǒng)和微控制器。它具有小巧、可移植和可裁剪的特點。
μC/OS:μC/OS是一個商業(yè)化的實時操作系統(tǒng),支持多任務和多核處理器,并提供了豐富的通信和同步機制。
QNX:QNX是一個實時操作系統(tǒng),廣泛應用于汽車、醫(yī)療設備和工業(yè)自動化等領域。它具有高可靠性、實時性和安全性的特點。
VxWorks:VxWorks是一個實時操作系統(tǒng),常用于航空航天、國防和工業(yè)控制等領域。它具有高可靠性、實時性和可擴展性。
Embedded Linux:嵌入式Linux是一種基于Linux內(nèi)核的操作系統(tǒng),具有開源、可定制和豐富的軟件生態(tài)系統(tǒng)。它適用于各種嵌入式系統(tǒng),并廣泛應用于智能手機、路由器和物聯(lián)網(wǎng)設備等。
這些EOS都具有不同的特點和適用場景,根據(jù)具體需求選擇適合的EOS。
2023/7/6 17:07:56
嵌入式系統(tǒng)開發(fā)主要步驟和流程
2023/7/6 17:08:18
嵌入式系統(tǒng)開發(fā)的主要步驟和流程可以概括為以下幾個階段:
需求分析:明確嵌入式系統(tǒng)的功能需求和性能要求,包括硬件和軟件方面的要求。與客戶或項目團隊進行溝通,確保對需求有清晰的理解。
系統(tǒng)設計:基于需求分析的結果,進行系統(tǒng)設計。包括硬件設計和軟件設計。硬件設計涉及選擇和設計適合嵌入式系統(tǒng)的處理器、外設、電路等;軟件設計則包括操作系統(tǒng)選擇、算法設計、通信協(xié)議設計等。
開發(fā)和編碼:根據(jù)系統(tǒng)設計,進行軟硬件的開發(fā)和編碼。硬件開發(fā)包括電路設計、PCB設計和制造等;軟件開發(fā)則包括驅(qū)動程序開發(fā)、應用程序開發(fā)、算法實現(xiàn)等。
調(diào)試和測試:對開發(fā)完成的硬件和軟件進行調(diào)試和測試。包括單元測試、集成測試和系統(tǒng)測試等。通過測試,確保系統(tǒng)的功能和性能滿足需求。
部署和集成:將開發(fā)完成的硬件和軟件進行部署和集成。包括將軟件燒錄到硬件設備中,進行硬件與軟件的連接和配置。
驗收和發(fā)布:將集成完成的嵌入式系統(tǒng)交付給客戶或最終用戶進行驗收。根據(jù)驗收結果,進行必要的修改和優(yōu)化。最終發(fā)布嵌入式系統(tǒng),使其正式投入使用。
在整個開發(fā)過程中,需要進行不斷的溝通和協(xié)作,確保各個環(huán)節(jié)的順利進行。同時,也需要進行項目管理和風險管理,以確保項目按時交付和質(zhì)量可控。
2023/7/6 17:09:06
了解 ARM芯片及版本情況
2023/7/6 17:09:25
ARM(Advanced RISC Machines)是一種基于精簡指令集計算機(RISC)架構的處理器設計。ARM架構的處理器廣泛應用于移動設備、嵌入式系統(tǒng)和物聯(lián)網(wǎng)等領域。ARM處理器的特點包括低功耗、高性能和可定制性。
ARM架構的處理器有多個版本和系列,其中一些常見的版本包括:
ARMv6:這是一個較早的ARM架構版本,主要用于低功耗和成本敏感的應用。常見的ARMv6處理器包括ARM11系列。
ARMv7:這是一個中期的ARM架構版本,引入了一些新的特性和指令集擴展。常見的ARMv7處理器包括Cortex-A系列(如Cortex-A5、Cortex-A7、Cortex-A8、Cortex-A9)和Cortex-R系列(如Cortex-R4、Cortex-R5)。
ARMv8:這是一個較新的ARM架構版本,引入了64位指令集(AArch64)和虛擬化支持。常見的ARMv8處理器包括Cortex-A系列(如Cortex-A53、Cortex-A57、Cortex-A72)和Cortex-R系列(如Cortex-R8)。
除了以上版本外,ARM還推出了一些特定用途的處理器系列,如Cortex-M系列用于嵌入式系統(tǒng)和微控制器,Cortex-X系列用于高性能移動設備等。
需要注意的是,ARM是一種架構設計,而不是具體的芯片型號。具體的ARM芯片由不同的芯片廠商設計和生產(chǎn),如英特爾、高通、三星、華為等。每個芯片廠商都可以基于ARM架構設計自己的處理器,因此在市場上會有各種不同型號和規(guī)格的ARM芯片。
2023/7/6 17:09:38
ARM處理器技術,CISC&RISC及特點對比,哈佛結構&普林斯頓結構,三級流水線技術原理與實現(xiàn),指令執(zhí)行過程中PC指向位置?
2023/7/6 17:10:03
ARM處理器技術:
ARM處理器技術是一種基于精簡指令集計算機(RISC)架構的處理器設計。ARM處理器具有低功耗、高性能和可定制性等特點,廣泛應用于移動設備、嵌入式系統(tǒng)和物聯(lián)網(wǎng)等領域。
CISC與RISC及特點對比:
CISC(Complex Instruction Set Computer)和RISC(Reduced Instruction Set Computer)是兩種不同的處理器架構設計。
CISC處理器設計中,指令集較為復雜,包含多種復雜的指令和尋址模式,允許一條指令完成多個操作。CISC處理器的特點是指令豐富、靈活,可以減少程序的長度,但也導致了指令執(zhí)行的復雜性和功耗較高。
RISC處理器設計中,指令集較為簡化,指令的執(zhí)行時間相對均勻,每條指令只執(zhí)行一個操作。RISC處理器的特點是指令簡單、執(zhí)行速度快,但需要更多的指令來完成復雜的操作。
哈佛結構與普林斯頓結構:
哈佛結構和普林斯頓結構是指存儲器與處理器之間的連接方式。
哈佛結構中,指令存儲器和數(shù)據(jù)存儲器是分開的,分別使用不同的總線進行訪問。這種結構可以實現(xiàn)指令和數(shù)據(jù)的并行訪問,提高了效率。但同時也需要額外的硬件來實現(xiàn)指令和數(shù)據(jù)的分離。
普林斯頓結構中,指令存儲器和數(shù)據(jù)存儲器是共享的,使用同一條總線進行訪問。這種結構簡單且成本較低,但指令和數(shù)據(jù)的訪問會相互競爭,可能導致效率較低。
三級流水線技術原理與實現(xiàn):
三級流水線技術是一種將處理器的指令執(zhí)行過程劃分為多個階段,并同時執(zhí)行多條指令的技術。
三級流水線的三個階段分別是取指(Instruction Fetch)、譯碼(Instruction Decode)和執(zhí)行(Execution)。每個階段都負責不同的指令處理任務,通過并行執(zhí)行多個指令來提高處理器的效率。
指令執(zhí)行過程中PC指向位置:
在指令執(zhí)行過程中,PC(程序計數(shù)器)指向的是下一條將要執(zhí)行的指令的地址。當一條指令執(zhí)行完畢后,PC會自動遞增,指向下一條指令的地址,以便于進行下一條指令的取指和執(zhí)行。這樣就形成了連續(xù)的指令流水線,實現(xiàn)了指令的連續(xù)執(zhí)行。
2023/7/6 17:10:14
ARM7的工作狀態(tài)及模式,模式與37個寄存器如何對應?兩種狀態(tài)如何切換?兩種指令集SP/LR/PC/CPSR,CPSR狀態(tài)與控制位。
2023/7/6 17:10:32
ARM7的工作狀態(tài)及模式:
ARM7處理器有7種不同的工作狀態(tài),分別是用戶模式(User Mode)、系統(tǒng)模式(System Mode)、快速中斷模式(FIQ Mode)、中斷模式(IRQ Mode)、特權模式(Supervisor Mode)、中止模式(Abort Mode)和未定義模式(Undefined Mode)。
模式與37個寄存器的對應關系:
不同的工作模式下,ARM7處理器使用的寄存器集合不同。其中,用戶模式和系統(tǒng)模式共享一個寄存器集合,包含了37個寄存器。其他模式則有自己獨立的寄存器集合。
兩種狀態(tài)如何切換:
ARM7處理器的狀態(tài)切換是通過修改CPSR(Current Program Status Register)寄存器的模式位來實現(xiàn)的。通過修改CPSR的模式位,可以切換到不同的工作模式。
兩種指令集SP/LR/PC/CPSR:
ARM7處理器支持兩種指令集,分別是ARM指令集和Thumb指令集。
SP(Stack Pointer)寄存器用于存儲棧頂?shù)刂?,LR(Link Register)寄存器用于存儲函數(shù)調(diào)用的返回地址,PC(Program Counter)寄存器用于存儲當前指令的地址,CPSR(Current Program Status Register)寄存器用于存儲當前程序的狀態(tài)和控制位信息。
CPSR狀態(tài)與控制位:
CPSR寄存器中的狀態(tài)位用于表示當前程序的狀態(tài),如條件碼、中斷使能等??刂莆挥糜诳刂铺幚砥鞯男袨?,如模式切換、中斷使能等。CPSR寄存器的狀態(tài)和控制位可以通過指令進行讀取和修改,以控制和監(jiān)控處理器的運行狀態(tài)。
2023/7/6 17:10:36
ARM體系的異常處理,異常如何進入與退出?需要做哪些工作?異常處理與流水線如何對應?異常向量表的概念
2023/7/6 17:10:55
ARM體系的異常處理:
ARM體系結構中,異常是指處理器在執(zhí)行指令過程中發(fā)生的一些特殊情況,如中斷、系統(tǒng)調(diào)用、數(shù)據(jù)訪問錯誤等。異常處理是指處理器在遇到異常時的響應和處理過程。
異常如何進入與退出:
異常的進入是通過觸發(fā)異常的事件來引發(fā)的,如外部中斷、硬件錯誤等。當異常發(fā)生時,處理器會根據(jù)異常類型切換到相應的處理模式,并保存當前的上下文信息(包括寄存器值、程序計數(shù)器等)。異常的退出是通過異常處理程序的執(zhí)行完成或者通過特定的指令(如返回指令)來實現(xiàn)的。在退出異常之前,處理器會恢復之前保存的上下文信息。
需要做哪些工作:
在處理異常時,需要進行以下工作:
保存當前的上下文信息,包括寄存器值、程序計數(shù)器等。
切換到相應的異常處理模式。
執(zhí)行異常處理程序,對異常進行處理。
恢復之前保存的上下文信息。
退出異常,返回到原始的執(zhí)行狀態(tài)。
異常處理與流水線的對應:
在ARM處理器的流水線中,異常處理會打斷正常的指令流程,因此需要特殊的機制來處理異常。當異常發(fā)生時,處理器會停止當前的指令流水線,保存當前的上下文信息,并根據(jù)異常類型切換到相應的異常處理模式。在異常處理模式下,處理器會執(zhí)行異常處理程序,對異常進行處理。完成異常處理后,處理器會恢復之前保存的上下文信息,并繼續(xù)執(zhí)行原始的指令流水線。
異常向量表的概念:
異常向量表是一張?zhí)厥獾谋砀?,用于存儲不同異常類型的處理程序的入口地址。在ARM體系結構中,異常向量表通常位于固定的內(nèi)存地址,當異常發(fā)生時,處理器會根據(jù)異常類型從向量表中讀取相應的異常處理程序的入口地址,并跳轉(zhuǎn)到該地址執(zhí)行異常處理程序。異常向量表的存在可以提高異常處理的效率和可靠性。
2023/7/6 17:11:17
ARM體系的存儲方式,小端與大端模式存儲
2023/7/6 17:11:31
ARM體系的存儲方式:
ARM體系結構采用的是字節(jié)可尋址的存儲方式,即內(nèi)存中的每個字節(jié)都有唯一的地址。ARM處理器使用32位的尋址空間,可以尋址的字節(jié)范圍是0x00000000到0xFFFFFFFF。
小端與大端模式存儲:
小端模式(Little-Endian)是指在存儲多字節(jié)數(shù)據(jù)時,低位字節(jié)存儲在低地址,高位字節(jié)存儲在高地址。例如,對于一個32位整數(shù)0x12345678,小端模式存儲時,低位字節(jié)0x78存儲在低地址,高位字節(jié)0x12存儲在高地址。
大端模式(Big-Endian)是指在存儲多字節(jié)數(shù)據(jù)時,高位字節(jié)存儲在低地址,低位字節(jié)存儲在高地址。例如,對于一個32位整數(shù)0x12345678,大端模式存儲時,高位字節(jié)0x12存儲在低地址,低位字節(jié)0x78存儲在高地址。
ARM處理器支持同時使用小端和大端模式,可以通過配置寄存器來選擇使用哪種模式。默認情況下,ARM處理器使用小端模式。
2023/7/6 17:12:09
ARM指令的尋址方式,總結與具體判斷
2023/7/6 17:12:29
ARM指令的尋址方式可以總結為以下幾種:
立即數(shù)尋址(Immediate addressing):指令中直接包含了一個立即數(shù)作為操作數(shù),例如:MOV R0, #10。
寄存器尋址(Register addressing):指令中使用一個寄存器作為操作數(shù),例如:ADD R0, R1, R2。
寄存器間接尋址(Register indirect addressing):指令中使用一個寄存器的值作為地址,從該地址讀取或?qū)懭霐?shù)據(jù),例如:LDR R0, [R1]。
寄存器相對尋址(Register-relative addressing):指令中使用一個基址寄存器和一個偏移量來計算地址,例如:LDR R0, [R1, #4]。
基址加變址尋址(Base plus offset addressing):指令中使用一個基址寄存器和一個變址寄存器以及一個可選的偏移量來計算地址,例如:LDR R0, [R1, R2, LSL #2]。
堆棧尋址(Stack addressing):指令中使用堆棧指針寄存器(SP)和一個偏移量來訪問堆棧中的數(shù)據(jù),例如:LDR R0, [SP, #8]。
具體判斷ARM指令的尋址方式需要根據(jù)指令的操作數(shù)和尋址模式來分析。在ARM匯編語言中,指令的操作數(shù)通常以特定的符號表示,如#表示立即數(shù),[]表示寄存器間接尋址等。通過觀察指令的操作數(shù)和尋址模式,可以判斷出ARM指令的尋址方式。同時,還需要根據(jù)ARM體系結構的文檔和指令集手冊來確認每個指令的具體尋址方式。
2023/7/6 17:12:51
ARM指令格式及分類,匯編指令與C語言對比, 數(shù)據(jù)處理指令、分支指令、加載/存儲指令、交換指令、程序狀態(tài)寄存器(PSR)處理指令、協(xié)處理指令和SWI異常產(chǎn)生指令七大類,了解機器碼,指令的機器碼格式與匯編指令的分析。
2023/7/6 17:13:25
ARM指令格式及分類:
ARM指令由操作碼(Opcode)和操作數(shù)(Operand)組成,操作碼指定了指令的操作類型,操作數(shù)則提供了指令需要的數(shù)據(jù)或地址。ARM指令可以分為以下幾類:
數(shù)據(jù)處理指令(Data Processing Instructions):用于執(zhí)行算術、邏輯和移位等操作,例如ADD、SUB、AND等。
分支指令(Branch Instructions):用于實現(xiàn)程序的跳轉(zhuǎn)和循環(huán),例如B、BL、BX等。
加載/存儲指令(Load/Store Instructions):用于從內(nèi)存中加載數(shù)據(jù)到寄存器或?qū)?shù)據(jù)存儲到內(nèi)存中,例如LDR、STR等。
交換指令(Swap Instructions):用于實現(xiàn)原子操作,例如SWP、SWPB等。
程序狀態(tài)寄存器(PSR)處理指令(PSR Transfer Instructions):用于讀取和修改程序狀態(tài)寄存器的值,例如MRS、MSR等。
協(xié)處理指令(Coprocessor Instructions):用于與協(xié)處理器進行數(shù)據(jù)交互和協(xié)同處理,例如CDP、LDC、STC等。
SWI異常產(chǎn)生指令(Software Interrupt Instructions):用于觸發(fā)軟件中斷,例如SWI。
匯編指令與C語言對比:
匯編指令是直接操作處理器的底層指令,而C語言是一種高級編程語言。匯編指令與C語言對比如下:
可讀性:C語言相對于匯編指令更易讀、易理解,更接近人類語言,而匯編指令更加底層、抽象。
可移植性:C語言是一種高級語言,可以通過編譯器將其轉(zhuǎn)換為不同平臺的機器碼,從而實現(xiàn)跨平臺移植。而匯編指令是與特定處理器架構相關的,不具備跨平臺移植性。
開發(fā)效率:C語言相對于匯編指令具有更高的開發(fā)效率,能夠更快速地編寫和調(diào)試程序。
功能豐富性:C語言提供了豐富的庫函數(shù)和高級數(shù)據(jù)結構,使得開發(fā)更加方便。而匯編指令需要手動實現(xiàn)各種功能,開發(fā)相對繁瑣。
了解機器碼,指令的機器碼格式與匯編指令的分析:
機器碼是計算機能夠直接執(zhí)行的二進制指令。每個指令都有唯一的機器碼表示。機器碼格式由操作碼和操作數(shù)組成,操作碼指定了指令的操作類型,操作數(shù)提供了指令需要的數(shù)據(jù)或地址。
ARM指令的機器碼格式與匯編指令的分析是指將匯編指令轉(zhuǎn)換為對應的機器碼表示。ARM指令的機器碼格式通常由多個字段組成,每個字段對應不同的操作類型、操作數(shù)類型、尋址方式等。通過分析匯編指令的操作碼和操作數(shù),可以確定每個字段的取值,從而得到對應的機器碼表示。
例如,對于ADD指令,其匯編指令格式為"ADD Rd, Rn, Operand2",其中Rd和Rn是目標寄存器和源寄存器,Operand2是操作數(shù)。根據(jù)指令的機器碼格式,可以將Rd、Rn和Operand2的寄存器編號和操作數(shù)類型轉(zhuǎn)換為二進制表示,并將操作碼字段設置為ADD對應的二進制值,從而得到ADD指令的機器碼表示。
2023/7/6 17:13:43
指令的難點:存儲器訪問指令的理解與應用,多寄存器訪問指令含義與解析
2023/7/6 17:14:02
指令的難點:存儲器訪問指令的理解與應用,多寄存器訪問指令含義與解析
存儲器訪問指令的理解與應用: 存儲器訪問指令用于從內(nèi)存中加載數(shù)據(jù)到寄存器或?qū)?shù)據(jù)存儲到內(nèi)存中。理解和應用存儲器訪問指令的難點在于:
確定內(nèi)存地址:需要確定要訪問的內(nèi)存地址,可以是直接指定的地址、基于寄存器的地址或通過偏移量計算得到的地址。
確定數(shù)據(jù)大?。盒枰_定要訪問的數(shù)據(jù)的大小,例如字節(jié)、半字、字等。
確定訪問方式:需要確定是讀取數(shù)據(jù)還是存儲數(shù)據(jù),以及是按字節(jié)、半字、字等方式進行讀取或存儲。
處理對齊問題:某些處理器要求數(shù)據(jù)在內(nèi)存中的地址按照特定的對齊方式進行訪問,需要注意對齊問題。
多寄存器訪問指令含義與解析: 多寄存器訪問指令用于同時訪問多個寄存器,可以一次性進行多個寄存器的加載或存儲操作。這些指令通常用于處理數(shù)組、結構體等數(shù)據(jù)結構。理解和解析多寄存器訪問指令的難點在于:
確定寄存器列表:需要確定要訪問的寄存器的列表,可以是連續(xù)的一組寄存器或是不連續(xù)的多個寄存器。
確定寄存器的順序:需要確定寄存器在列表中的順序,以確保正確的數(shù)據(jù)對應關系。
確定數(shù)據(jù)大?。盒枰_定要訪問的數(shù)據(jù)的大小,例如字節(jié)、半字、字等。
確定訪問方式:需要確定是讀取數(shù)據(jù)還是存儲數(shù)據(jù),以及是按字節(jié)、半字、字等方式進行讀取或存儲。
通過理解和解析存儲器訪問指令和多寄存器訪問指令,可以正確地進行存儲器的讀取和存儲操作,并實現(xiàn)高效的數(shù)據(jù)訪問和處理。
2023/7/6 17:14:17
偽指令含義與應用,MOV,LDR 加載與LDR偽指令有何不同?
2023/7/6 17:14:37
偽指令含義與應用:
偽指令是一種在匯編語言中使用的特殊指令,它不會被轉(zhuǎn)化為機器碼執(zhí)行,而是在匯編階段被匯編器處理。偽指令用于提供一些匯編語言層面的功能和便利,例如定義常量、分配內(nèi)存空間、定義符號等。偽指令的應用范圍廣泛,可以用于編寫匯編程序中的各種數(shù)據(jù)和控制結構。
MOV指令:
MOV指令用于將一個數(shù)據(jù)從一個位置復制到另一個位置,可以是寄存器之間的復制,也可以是寄存器和內(nèi)存之間的復制。MOV指令的應用包括:
數(shù)據(jù)傳遞:將一個寄存器或內(nèi)存中的數(shù)據(jù)復制到另一個寄存器或內(nèi)存中。
數(shù)據(jù)加載:將一個立即數(shù)或內(nèi)存中的數(shù)據(jù)加載到寄存器中。
數(shù)據(jù)存儲:將寄存器中的數(shù)據(jù)存儲到內(nèi)存中。
LDR指令與LDR偽指令的區(qū)別:
LDR指令是一條真正的機器指令,用于從內(nèi)存中加載數(shù)據(jù)到寄存器中。它的使用方式是指定一個內(nèi)存地址,然后將該地址中的數(shù)據(jù)加載到寄存器中。LDR指令的應用包括:
加載變量:從內(nèi)存中加載變量的值到寄存器中進行計算或操作。
加載常量:將常量值加載到寄存器中進行計算或操作。
LDR偽指令是一種在匯編階段被匯編器處理的偽指令,用于生成LDR指令。它的使用方式是指定一個常量值和一個寄存器,然后匯編器會根據(jù)指定的常量值生成相應的LDR指令,將常量值加載到寄存器中。LDR偽指令的應用包括:
加載常量:將常量值加載到寄存器中進行計算或操作,但是常量值在匯編階段已經(jīng)確定,不需要在運行時再進行加載。
總結起來,LDR指令是一條真正的機器指令,用于從內(nèi)存中加載數(shù)據(jù)到寄存器中;而LDR偽指令是一種在匯編階段被匯編器處理的偽指令,用于生成LDR指令,將常量值加載到寄存器中。
2023/7/6 17:14:44
計算機語言,機器語言、匯編語言與高級語言各自特點
2023/7/6 17:15:06
計算機語言是一種用于編寫計算機程序的語言,可以分為機器語言、匯編語言和高級語言。
機器語言: 機器語言是計算機能夠直接執(zhí)行的語言,使用二進制代碼表示指令和數(shù)據(jù)。機器語言的特點包括:
低級別:機器語言是計算機硬件能夠理解和執(zhí)行的最底層語言,與硬件緊密相關。
二進制表示:機器語言使用二進制代碼表示指令和數(shù)據(jù),每個指令和數(shù)據(jù)都有對應的二進制編碼。
難以閱讀和編寫:機器語言的代碼通常非常長且晦澀,對人類來說很難理解和編寫。
匯編語言: 匯編語言是機器語言的一種符號表示形式,使用助記符(mnemonic)代替二進制代碼,更易于閱讀和編寫。匯編語言的特點包括:
低級別:匯編語言與機器語言相對應,也是較底層的語言。
符號表示:匯編語言使用助記符表示指令和數(shù)據(jù),使得代碼更易于理解和編寫。
直接映射:匯編語言的指令直接映射到機器語言的指令,一條匯編指令對應一條機器指令。
高級語言: 高級語言是相對于機器語言和匯編語言而言的,更接近人類自然語言的一種編程語言。高級語言的特點包括:
高級別:高級語言相對于機器語言和匯編語言而言,抽象程度更高,更接近人類思維。
可移植性:高級語言的代碼可以在不同的計算機平臺上運行,不需要針對特定硬件進行修改。
簡潔易讀:高級語言的代碼通常比機器語言和匯編語言更簡潔易讀,更易于理解和維護。
自動化:高級語言提供了許多內(nèi)置函數(shù)和庫,使得編程更加方便和高效。
總結起來,機器語言是計算機能夠直接執(zhí)行的二進制代碼,匯編語言是機器語言的符號表示形式,高級語言是更接近人類自然語言的一種編程語言。機器語言和匯編語言更底層,與硬件直接相關,而高級語言更高層,更易于理解和編寫。
2023/7/6 17:15:13
ARM7匯編語言程序中的符號,符號命名,變量、常亮如何定義及應用。數(shù)據(jù)如何定義?
2023/7/6 17:15:31
在ARM7匯編語言程序中,符號是用來表示地址或者標識某個特定的位置或值的名稱。符號命名可以根據(jù)需求自定義,但需要遵循一定的命名規(guī)則,如不能使用保留字、不能以數(shù)字開頭等。
變量和常量可以通過符號來定義和使用。變量是在程序執(zhí)行過程中可以改變其值的數(shù)據(jù),而常量是在程序執(zhí)行過程中不可改變的數(shù)據(jù)。
變量的定義可以使用 .data 或者 .bss 偽指令來聲明。例如:
.data
myVariable: .word 10
上述代碼定義了一個名為 myVariable 的變量,其初始值為 10。
常量的定義可以使用 .equ 偽指令來聲明。例如:
.equ myConstant, 20
上述代碼定義了一個名為 myConstant 的常量,其值為 20。
在程序中使用變量和常量時,可以通過符號名稱來引用。例如:
ldr r0, =myVariable ; 將 myVariable 的地址加載到寄存器 r0
ldr r1, =myConstant ; 將 myConstant 的值加載到寄存器 r1
數(shù)據(jù)的定義可以通過 .data 或者 .bss 偽指令來聲明。.data 用于定義初始化的數(shù)據(jù),.bss 用于定義未初始化的數(shù)據(jù)。例如:
.data
myData: .word 1, 2, 3 ; 初始化的數(shù)據(jù)
.bss
myBuffer: .space 100 ; 未初始化的數(shù)據(jù)
上述代碼定義了一個名為 myData 的數(shù)據(jù),其中包含了 1、2、3 三個初始值。同時,還定義了一個名為 myBuffer 的數(shù)據(jù),大小為 100 字節(jié),但未初始化。
在程序中使用數(shù)據(jù)時,可以通過符號名稱來引用。例如:
ldr r0, =myData ; 將 myData 的地址加載到寄存器 r0
ldr r1, [r0] ; 將 myData 中的值加載到寄存器 r1
總結起來,在ARM7匯編語言程序中,符號用于表示地址或者標識特定位置或值的名稱。變量和常量可以通過符號來定義和使用,數(shù)據(jù)可以通過 .data 或者 .bss 偽指令來聲明。
2023/7/6 17:15:37
ARM匯編語言程序的設計步驟,如何編輯、編譯、連接與調(diào)試程序,具體內(nèi)容?
2023/7/6 17:16:00
設計一個ARM匯編語言程序的一般步驟如下:
確定程序的目標和需求:明確程序的功能和要達到的目標。
編寫程序代碼:使用文本編輯器創(chuàng)建一個新文件,將程序代碼按照ARM匯編語言的語法規(guī)則編寫。
保存代碼文件:保存代碼文件,通常以 .s 作為文件擴展名。
編譯程序:使用ARM匯編器將匯編代碼轉(zhuǎn)換為機器碼??梢允褂肎NU工具鏈中的 as 命令進行編譯,例如:as -o output.o input.s。
連接程序:使用鏈接器將編譯生成的目標文件與其他必要的庫文件鏈接在一起,生成可執(zhí)行文件??梢允褂肎NU工具鏈中的 ld 命令進行連接,例如:ld -o output.elf output.o。
調(diào)試程序:使用調(diào)試器對程序進行調(diào)試,以檢查和修復程序中的錯誤和問題??梢允褂肎NU工具鏈中的 gdb 命令進行調(diào)試,例如:gdb output.elf。
具體內(nèi)容如下:
編輯器選擇:選擇一個適合的文本編輯器,如Visual Studio Code、Sublime Text等。
編寫代碼:使用ARM匯編語言編寫程序代碼,按照程序目標和需求進行邏輯設計和算法實現(xiàn)。
保存代碼文件:將編寫好的代碼保存為一個新文件,通常以 .s 作為文件擴展名。
編譯程序:使用ARM匯編器將匯編代碼轉(zhuǎn)換為機器碼??梢允褂肎NU工具鏈中的 as 命令進行編譯。使用命令行進入代碼文件所在目錄,執(zhí)行命令 as -o output.o input.s,其中 output.o 是編譯生成的目標文件,input.s 是源代碼文件。
連接程序:使用鏈接器將編譯生成的目標文件與其他必要的庫文件鏈接在一起,生成可執(zhí)行文件??梢允褂肎NU工具鏈中的 ld 命令進行連接。使用命令行執(zhí)行命令 ld -o output.elf output.o,其中 output.elf 是生成的可執(zhí)行文件,output.o 是編譯生成的目標文件。
調(diào)試程序:使用調(diào)試器對程序進行調(diào)試,以檢查和修復程序中的錯誤和問題??梢允褂肎NU工具鏈中的 gdb 命令進行調(diào)試。使用命令行執(zhí)行命令 gdb output.elf,進入調(diào)試器環(huán)境后,可以設置斷點、單步執(zhí)行、查看變量值等進行調(diào)試操作。
需要注意的是,具體的編輯、編譯、連接和調(diào)試步驟可能會因為使用的工具鏈和開發(fā)環(huán)境而有所不同。上述步驟是基于GNU工具鏈的常見做法,可以根據(jù)實際情況進行調(diào)整。
2023/7/6 17:16:03
ARM7匯編語言程序設計,順序、分支與循環(huán)程序結構與編程,子程序概念等。
2023/7/6 17:16:23
ARM7匯編語言程序設計涉及到順序、分支和循環(huán)程序結構以及子程序的概念。下面是對這些概念的詳細說明:
順序程序結構:順序程序結構是最簡單的程序結構,程序按照代碼的順序依次執(zhí)行。在ARM7匯編語言中,使用標簽(label)來標識代碼的位置,通過跳轉(zhuǎn)指令(如B、BL等)控制程序的流程。
分支程序結構:分支程序結構根據(jù)條件的不同選擇不同的執(zhí)行路徑。在ARM7匯編語言中,可以使用條件碼(condition code)來判斷條件,根據(jù)條件的成立與否來決定是否跳轉(zhuǎn)到指定的代碼位置。
循環(huán)程序結構:循環(huán)程序結構用于重復執(zhí)行一段代碼,直到滿足退出條件。在ARM7匯編語言中,可以使用循環(huán)指令(如CMP、BEQ、BNE等)結合標簽和分支指令實現(xiàn)循環(huán)結構。
子程序概念:子程序是一個獨立的代碼塊,可以在程序中被多次調(diào)用。在ARM7匯編語言中,可以使用BL指令(分支并鏈接)調(diào)用子程序,并使用BX指令(分支并切換狀態(tài))返回到調(diào)用子程序的位置。
在ARM7匯編語言程序設計中,可以使用這些程序結構和概念來實現(xiàn)各種功能和算法。編程時需要注意以下幾點:
使用合適的條件碼來判斷條件,控制程序的分支和循環(huán)。
合理使用標簽和跳轉(zhuǎn)指令來控制程序的流程。
使用子程序來封裝重復使用的代碼,提高代碼的可讀性和可維護性。
注意處理函數(shù)調(diào)用時的參數(shù)傳遞和返回值處理。
總之,ARM7匯編語言程序設計需要熟悉順序、分支和循環(huán)程序結構,掌握條件碼的使用,以及靈活運用子程序的概念來實現(xiàn)各種功能和算法。
2023/7/6 17:16:31
程序的分析、流程圖設計,功能總結等
2023/7/6 17:16:59
程序的分析、流程圖設計和功能總結是軟件開發(fā)過程中非常重要的步驟。下面是對這些步驟的詳細說明:
程序的分析:在程序的分析階段,需要明確程序的需求和目標。這包括確定程序要解決的問題,明確輸入和輸出的數(shù)據(jù),以及定義程序的功能和約束條件。在ARM7匯編語言中,程序的分析可以包括對寄存器和內(nèi)存的使用、算法和數(shù)據(jù)結構的設計等。
流程圖設計:在流程圖設計階段,需要將程序的邏輯流程可視化為圖形化表示。流程圖可以幫助開發(fā)者更清晰地理解程序的執(zhí)行流程,包括順序、分支和循環(huán)等。在ARM7匯編語言中,流程圖可以使用流程控制語句(如B、BL、CMP、BEQ等)來表示程序的流程。
功能總結:在功能總結階段,需要對程序的功能進行總結和歸納。這可以幫助開發(fā)者確認程序是否滿足需求,并且可以提供給用戶或其他開發(fā)者一個簡潔明了的概述。在ARM7匯編語言中,功能總結可以描述程序的輸入和輸出,以及程序?qū)崿F(xiàn)的主要功能和特點。
在進行分析、流程圖設計和功能總結時,需要注意以下幾點:
確保對程序需求的理解準確和完整,避免遺漏或誤解。
使用清晰簡潔的圖形化表示來展示程序的流程,使其易于理解和溝通。
對程序的功能進行詳細描述,包括輸入、輸出和主要功能。
根據(jù)需要對程序的性能、可靠性和可擴展性等進行評估和總結。
總之,程序的分析、流程圖設計和功能總結是軟件開發(fā)過程中不可或缺的步驟,它們有助于確保程序滿足需求,并提供一個清晰明了的概述。在ARM7匯編語言中,可以使用適當?shù)墓ぞ吆图夹g來進行這些步驟。
2023/7/6 17:17:03
常見數(shù)據(jù)搬家(復制)、求和、尋找最大數(shù)最小數(shù)、排序等等,書上例題,上機分析。
2023/7/6 17:17:30
常見的數(shù)據(jù)搬家(復制)、求和、尋找最大數(shù)最小數(shù)、排序等問題是程序設計中的基礎問題。下面是對這些問題的書上例題和上機分析的概述:
數(shù)據(jù)搬家(復制):這個問題通常涉及將一個數(shù)據(jù)集合中的元素復制到另一個集合中。例如,可以將一個數(shù)組的元素復制到另一個數(shù)組中。書上例題可能會給出具體的要求,如復制數(shù)組的前n個元素或復制滿足某個條件的元素。上機分析時,需要考慮如何遍歷原始數(shù)據(jù)集合并將元素復制到目標集合中。
求和:求和問題涉及將一個數(shù)據(jù)集合中的元素相加得到總和。例如,可以計算一個數(shù)組中所有元素的和。書上例題可能會給出具體的要求,如計算數(shù)組的前n個元素的和或計算滿足某個條件的元素的和。上機分析時,需要考慮如何遍歷原始數(shù)據(jù)集合并將元素相加得到總和。
尋找最大數(shù)最小數(shù):尋找最大數(shù)和最小數(shù)問題涉及在一個數(shù)據(jù)集合中找到最大和最小的元素。例如,可以找到一個數(shù)組中的最大和最小元素。書上例題可能會給出具體的要求,如找到數(shù)組的前n個元素中的最大和最小元素或找到滿足某個條件的元素的最大和最小元素。上機分析時,需要考慮如何遍歷原始數(shù)據(jù)集合并比較元素的大小以找到最大和最小元素。
排序:排序問題涉及對一個數(shù)據(jù)集合中的元素進行排序。例如,可以對一個數(shù)組中的元素進行升序或降序排序。書上例題可能會給出具體的要求,如對數(shù)組的前n個元素進行排序或?qū)M足某個條件的元素進行排序。上機分析時,需要考慮選擇合適的排序算法,并實現(xiàn)相應的排序邏輯。
在進行書上例題和上機分析時,需要注意以下幾點:
理解問題的具體要求,包括輸入和輸出的格式以及對數(shù)據(jù)集合的限制。
選擇合適的數(shù)據(jù)結構和算法來解決問題。例如,可以使用數(shù)組、鏈表或樹來存儲數(shù)據(jù)集合,并使用遍歷、比較和交換等操作來實現(xiàn)具體的功能。
考慮邊界情況和異常情況,并進行相應的處理。例如,當數(shù)據(jù)集合為空或只有一個元素時,需要特殊處理。
進行適當?shù)臏y試和調(diào)試,確保程序的正確性和性能。
總之,書上例題和上機分析是學習和實踐程序設計的重要環(huán)節(jié),通過解決這些問題可以提高對基本算法和數(shù)據(jù)結構的理解和應用能力。
2023/7/6 17:17:51
LPC2100、LPC2200等系列及特點
2023/7/6 17:18:35
LPC2100和LPC2200系列是恩智浦(NXP)公司推出的32位ARM微控制器系列。它們具有以下特點:
32位ARM內(nèi)核:LPC2100和LPC2200系列微控制器采用了32位ARM內(nèi)核,提供了高性能和高效的處理能力。ARM內(nèi)核是一種廣泛應用于嵌入式系統(tǒng)的處理器架構,具有良好的可擴展性和兼容性。
低功耗設計:LPC2100和LPC2200系列微控制器采用了低功耗設計,可以在低電壓和低功耗模式下運行。這使得它們適用于對電池壽命和功耗要求較高的應用,如便攜式設備和無線傳感器網(wǎng)絡。
豐富的外設:LPC2100和LPC2200系列微控制器集成了豐富的外設,包括通用輸入輸出(GPIO)引腳、串行通信接口(UART、SPI、I2C)、定時器、模擬到數(shù)字轉(zhuǎn)換器(ADC)等。這些外設提供了靈活的接口和功能,方便與其他設備進行通信和控制。
大容量閃存和RAM:LPC2100和LPC2200系列微控制器內(nèi)置了大容量的閃存和RAM,可以存儲程序代碼和數(shù)據(jù)。這使得它們適用于需要較大存儲空間的應用,如嵌入式系統(tǒng)和物聯(lián)網(wǎng)設備。
多種封裝和引腳配置:LPC2100和LPC2200系列微控制器提供了多種封裝和引腳配置選項,以滿足不同應用的需求。常見的封裝包括LQFP(低引腳數(shù)平面封裝)和TSSOP(薄型小外形封裝),并提供不同引腳數(shù)的選擇。
開發(fā)工具和支持:LPC2100和LPC2200系列微控制器配備了完整的開發(fā)工具鏈和支持生態(tài)系統(tǒng),包括編譯器、調(diào)試器、仿真器、開發(fā)板和軟件庫等。這些工具和資源使得開發(fā)者可以快速開始開發(fā)和調(diào)試應用程序。
總的來說,LPC2100和LPC2200系列微控制器具有高性能、低功耗、豐富的外設、大容量存儲和靈活的封裝等特點,適用于各種嵌入式應用領域。
2023/7/6 17:18:42
芯片內(nèi)部結構,局部總線、AHB總線、VPB總線與內(nèi)外連接關系
2023/7/6 17:19:02
LPC2100和LPC2200系列微控制器的內(nèi)部結構包括局部總線、AHB總線和VPB總線。它們之間的連接關系如下:
局部總線:局部總線是微控制器內(nèi)部各個模塊之間的連接通道。它包括系統(tǒng)總線(SYSBUS)、外設總線(APB)和高速總線(HSB)。系統(tǒng)總線用于連接處理器內(nèi)核、存儲器和中斷控制器等核心模塊。外設總線用于連接各種外設模塊,如UART、SPI、I2C等。高速總線用于連接高速外設模塊,如Ethernet MAC和USB接口。
AHB總線:AHB(Advanced High-performance Bus)總線是一種高性能、高帶寬的總線,用于連接處理器內(nèi)核和一些關鍵的高速外設模塊。在LPC2100和LPC2200系列微控制器中,AHB總線連接了處理器內(nèi)核、閃存控制器、DMA控制器和中斷控制器等模塊。
VPB總線:VPB(VLSI Peripheral Bus)總線是一種低速外設總線,用于連接一些低帶寬的外設模塊。在LPC2100和LPC2200系列微控制器中,VPB總線連接了一些低速外設模塊,如GPIO、UART、SPI、I2C等。
總的來說,局部總線用于內(nèi)部模塊之間的連接,AHB總線用于高速外設模塊的連接,而VPB總線用于低速外設模塊的連接。這種內(nèi)外連接關系有助于提高微控制器的性能和靈活性,使其能夠同時滿足高速和低速外設的需求。
2023/7/6 17:19:51
存儲器結構,映射含義,重映射引入、對象、解決問題?
2023/7/6 17:20:11
存儲器結構是指計算機系統(tǒng)中用于存儲數(shù)據(jù)和指令的各種存儲器的組織方式和連接方式。常見的存儲器包括主存儲器(RAM)、緩存存儲器、磁盤存儲器等。
映射(Mapping)是指將邏輯地址(也稱為虛擬地址)映射到物理地址的過程。在計算機系統(tǒng)中,邏輯地址是由處理器生成的,用于訪問存儲器中的數(shù)據(jù)和指令。而物理地址是實際的存儲器地址,用于在存儲器中定位數(shù)據(jù)和指令的位置。
重映射(Remapping)是指在運行時改變邏輯地址和物理地址的映射關系。重映射可以引入新的映射表,從而改變邏輯地址和物理地址之間的對應關系。重映射可以用于解決一些問題,如內(nèi)存保護、虛擬內(nèi)存和地址空間擴展等。
重映射引入了以下對象:
映射表(Mapping Table):映射表是一種數(shù)據(jù)結構,用于存儲邏輯地址和物理地址之間的映射關系。映射表可以是硬件實現(xiàn)的,也可以是操作系統(tǒng)中的數(shù)據(jù)結構。
地址轉(zhuǎn)換器(Address Translator):地址轉(zhuǎn)換器是一個硬件模塊,用于將邏輯地址轉(zhuǎn)換為物理地址。地址轉(zhuǎn)換器根據(jù)映射表中的映射關系來進行地址轉(zhuǎn)換。
重映射可以解決以下問題:
內(nèi)存保護:通過重映射,可以將邏輯地址映射到不同的物理地址空間,從而實現(xiàn)內(nèi)存保護。例如,可以將某些邏輯地址映射到只讀的物理地址空間,以防止對其進行寫操作。
虛擬內(nèi)存:通過重映射,可以將邏輯地址映射到不同的物理地址空間,從而實現(xiàn)虛擬內(nèi)存。虛擬內(nèi)存可以將物理內(nèi)存和磁盤存儲器結合起來,擴展可用的內(nèi)存空間。
地址空間擴展:通過重映射,可以將邏輯地址映射到不同的物理地址空間,從而擴展地址空間的大小。這可以使計算機系統(tǒng)能夠處理更大的內(nèi)存空間。
2023/7/6 17:20:16
系統(tǒng)控制部分,時鐘系統(tǒng)結構
2023/7/6 17:20:37
系統(tǒng)控制部分是計算機系統(tǒng)中的一個重要組成部分,負責管理和控制整個系統(tǒng)的各個組件和功能。它包括時鐘系統(tǒng)結構,用于提供系統(tǒng)的時序和同步。
時鐘系統(tǒng)結構是指計算機系統(tǒng)中用于生成和分配時鐘信號的硬件結構。時鐘信號是計算機系統(tǒng)中的基準信號,用于同步各個組件的操作和協(xié)調(diào)系統(tǒng)的時序。時鐘系統(tǒng)結構通常包括以下組件:
時鐘發(fā)生器(Clock Generator):時鐘發(fā)生器是一個硬件模塊,用于生成時鐘信號。它通常由一個晶振或者振蕩電路提供穩(wěn)定的基準信號,并通過頻率分頻電路產(chǎn)生系統(tǒng)所需的時鐘頻率。
時鐘分配器(Clock Distributor):時鐘分配器是一個硬件模塊,用于將時鐘信號分配給各個組件。它通常包括時鐘緩沖器和時鐘線路,用于將時鐘信號傳輸?shù)礁鱾€組件的時鐘輸入端。
時鐘控制器(Clock Controller):時鐘控制器是一個硬件模塊,用于控制時鐘信號的啟停和調(diào)整。它通常包括時鐘使能信號、相位調(diào)整信號和頻率調(diào)整信號等接口,用于控制時鐘信號的工作狀態(tài)和頻率。
時鐘系統(tǒng)結構的設計和實現(xiàn)需要考慮以下因素:
時鐘頻率:時鐘頻率決定了系統(tǒng)的工作速度和性能。較高的時鐘頻率可以提高系統(tǒng)的運行速度,但也會增加功耗和散熱問題。
時鐘精度:時鐘精度決定了系統(tǒng)各個組件之間的同步精度。較高的時鐘精度可以提高系統(tǒng)的可靠性和穩(wěn)定性,但也會增加設計和成本的復雜性。
時鐘分布:時鐘分布需要考慮時鐘信號的傳輸延遲和干擾問題。較長的時鐘線路會增加傳輸延遲和時序偏差,較短的時鐘線路可能會引入干擾和噪聲。
時鐘系統(tǒng)結構的設計需要綜合考慮系統(tǒng)的性能、可靠性和成本等因素,以滿足系統(tǒng)的需求和要求。
2023/7/6 17:20:40
中斷概念、過程、中斷優(yōu)先級判斷與處理,中斷控制部件VIC結構、作用與實際編程應用。向量中斷如何處理,程序如何跳轉(zhuǎn)?
2023/7/6 17:21:07
中斷是計算機系統(tǒng)中的一種重要機制,用于在程序執(zhí)行過程中暫停當前任務,轉(zhuǎn)而處理其他高優(yōu)先級的任務或者響應外部事件。中斷可以分為硬件中斷和軟件中斷兩種類型。
中斷的概念和過程如下:
概念:中斷是指在程序執(zhí)行過程中,由硬件或軟件發(fā)出的信號,用于暫停當前任務并轉(zhuǎn)而處理其他任務或響應外部事件。
過程:當發(fā)生中斷事件時,系統(tǒng)會暫停當前執(zhí)行的指令,保存當前的執(zhí)行狀態(tài)(如程序計數(shù)器、寄存器等),然后根據(jù)中斷類型跳轉(zhuǎn)到相應的中斷處理程序進行處理。處理完成后,系統(tǒng)會恢復之前保存的執(zhí)行狀態(tài),繼續(xù)執(zhí)行被中斷的任務。
中斷優(yōu)先級判斷與處理是指在多個中斷同時發(fā)生時,根據(jù)優(yōu)先級判斷和處理中斷的順序。具體的中斷優(yōu)先級判斷與處理方法可以根據(jù)系統(tǒng)的需求和設計進行定義,常見的方法有以下幾種:
固定優(yōu)先級:每個中斷都有一個固定的優(yōu)先級,系統(tǒng)按照優(yōu)先級的高低來處理中斷。當多個中斷同時發(fā)生時,系統(tǒng)會先處理優(yōu)先級最高的中斷,然后再處理下一個優(yōu)先級較高的中斷,依此類推。
屏蔽優(yōu)先級:每個中斷都有一個優(yōu)先級,并且可以設置屏蔽位來屏蔽低優(yōu)先級的中斷。當多個中斷同時發(fā)生時,系統(tǒng)會根據(jù)中斷的優(yōu)先級和屏蔽位來判斷是否處理該中斷。
中斷控制部件(VIC)是一個硬件模塊,用于管理和控制系統(tǒng)中的中斷。VIC通常包括以下功能和結構:
中斷優(yōu)先級判斷:VIC可以根據(jù)中斷的優(yōu)先級來判斷和排序中斷的處理順序。
中斷屏蔽:VIC可以根據(jù)中斷的屏蔽位來屏蔽低優(yōu)先級的中斷。
中斷向量表:VIC可以通過中斷向量表來查找和跳轉(zhuǎn)到相應的中斷處理程序。
中斷處理器:VIC可以包含一個或多個中斷處理器,用于執(zhí)行中斷處理程序。
在實際編程應用中,可以通過配置VIC的寄存器和設置中斷向量表來實現(xiàn)中斷的管理和控制。具體的配置和設置方法可以根據(jù)不同的硬件平臺和編程語言進行操作。
向量中斷的處理是指通過中斷向量表來查找和跳轉(zhuǎn)到相應的中斷處理程序。中斷向量表是一個存儲中斷處理程序地址的表格,每個中斷都對應一個唯一的地址。當發(fā)生中斷時,系統(tǒng)會根據(jù)中斷號在中斷向量表中查找對應的中斷處理程序地址,并跳轉(zhuǎn)到該地址執(zhí)行中斷處理程序。
程序如何跳轉(zhuǎn)取決于具體的處理器架構和編程語言。在大多數(shù)處理器架構中,跳轉(zhuǎn)可以通過修改程序計數(shù)器(PC)來實現(xiàn)。中斷處理程序的地址通常存儲在中斷向量表中,當發(fā)生中斷時,系統(tǒng)會將中斷號乘以一個固定的偏移量,然后加上中斷向量表的基地址,得到中斷處理程序的地址,最后將該地址寫入程序計數(shù)器,實現(xiàn)跳轉(zhuǎn)到中斷處理程序的執(zhí)行。
2023/7/6 17:21:09
為什么引入引腳連接模塊?解決什么問題?如何解決?硬件電路分析與軟件編程關系?
2023/7/6 17:21:32
引腳連接模塊(Pin Connection Module)是一種硬件模塊,用于管理和控制系統(tǒng)中的引腳連接。它在計算機系統(tǒng)中起到了連接外部設備和內(nèi)部電路的橋梁作用。
引腳連接模塊的引入解決了以下問題:
引腳資源管理:計算機系統(tǒng)中的引腳資源是有限的,而外部設備可能需要連接多個引腳。引腳連接模塊可以通過靈活配置和分配引腳資源,實現(xiàn)多個外部設備與內(nèi)部電路的連接。
引腳復用:在某些情況下,一個引腳可能需要同時連接多個設備或承擔多個功能。引腳連接模塊可以通過引腳復用的方式,實現(xiàn)單個引腳的多重功能。
引腳映射:外部設備和內(nèi)部電路的引腳定義和命名可能不一致,引腳連接模塊可以通過引腳映射的方式,將外部設備的引腳映射到內(nèi)部電路的引腳,實現(xiàn)正確的連接。
硬件電路分析與軟件編程之間存在緊密的關系:
硬件電路分析:在硬件電路設計階段,需要根據(jù)系統(tǒng)需求和外部設備的接口規(guī)范,分析和設計引腳連接模塊的硬件電路。這包括引腳資源的分配、引腳復用的實現(xiàn)、引腳映射的配置等。
軟件編程:在軟件編程階段,需要根據(jù)硬件電路的設計和引腳連接模塊的功能,編寫相應的軟件代碼來實現(xiàn)引腳的配置和控制。這包括配置引腳的輸入輸出模式、讀取和寫入引腳的狀態(tài)、處理引腳中斷等。
通過硬件電路分析和軟件編程的配合,可以實現(xiàn)引腳連接模塊的功能,確保外部設備和內(nèi)部電路之間的正確連接和通信。硬件電路的設計提供了硬件支持,而軟件編程則控制和管理硬件電路的操作,二者相互配合,共同完成引腳連接模塊的功能。
2023/7/6 17:21:41
設置管腳的兩種方式,簡單直接設置與“讀-修改-寫”方式 設置有何不同?針對有多個引腳功能設置,在應用中如何選擇?為什么?
2023/7/6 17:22:02
在設置管腳功能時,有兩種常見的方式:簡單直接設置和“讀-修改-寫”方式。
簡單直接設置:這種方式是直接將所需的功能或狀態(tài)值寫入管腳寄存器,即一次性設置完成。例如,將一個引腳設置為輸出模式,或者將一個引腳設置為高電平。
“讀-修改-寫”方式:這種方式是先讀取管腳寄存器的當前值,然后根據(jù)需要修改其中的某些位,最后再將修改后的值寫回寄存器。例如,將一個引腳設置為輸入模式,并保持其他位不變。
這兩種設置方式的不同之處在于對寄存器的操作方式。簡單直接設置方式更直接和簡單,適用于只需要設置某個具體功能或狀態(tài)的場景。而“讀-修改-寫”方式更靈活,可以在不影響其他位的情況下修改某個位的值,適用于需要同時設置多個引腳功能或狀態(tài)的場景。
在應用中選擇設置方式時,需要考慮以下因素:
功能和狀態(tài)的獨立性:如果需要設置的多個引腳功能或狀態(tài)之間相互獨立,不會相互影響,那么可以選擇簡單直接設置方式。這樣可以一次性設置完成,簡單方便。
功能和狀態(tài)的依賴性:如果需要設置的多個引腳功能或狀態(tài)之間存在依賴關系,修改其中一個可能會影響其他引腳,那么應該選擇“讀-修改-寫”方式。這樣可以先讀取當前值,再根據(jù)需要進行修改,確保不會影響其他引腳的功能或狀態(tài)。
性能要求:在性能要求較高的應用中,如果只需要設置某個具體功能或狀態(tài),并且不需要讀取當前值,那么簡單直接設置方式可能更高效。而“讀-修改-寫”方式會增加額外的讀取和寫入操作,可能會帶來一定的性能開銷。
綜合考慮以上因素,可以選擇適合應用需求的設置方式。如果多個引腳功能或狀態(tài)相互獨立,且性能要求較高,可以選擇簡單直接設置方式;如果多個引腳功能或狀態(tài)有依賴關系,或者需要讀取當前值進行修改,可以選擇“讀-修改-寫”方式。
2023/7/6 17:22:04
GPIO的綜合應用,通過管腳選擇、方向、輸出與輸入控制。GPIO應用中控制LED閃爍通過延時方式與定時中斷的區(qū)別。
2023/7/6 17:22:25
在GPIO的綜合應用中,可以通過管腳選擇、方向、輸出與輸入控制來實現(xiàn)各種功能,其中包括控制LED的閃爍。
管腳選擇:根據(jù)硬件設計和引腳分配,選擇一個可用的GPIO管腳作為控制LED的引腳。
方向控制:將選擇的GPIO管腳設置為輸出模式,以便控制LED的亮滅。
輸出控制:通過將GPIO管腳的輸出電平設置為高或低,控制LED的亮滅狀態(tài)。高電平表示LED亮,低電平表示LED滅。
輸入控制:在一些應用中,可能需要通過GPIO管腳的輸入狀態(tài)來控制LED的亮滅??梢詫PIO管腳設置為輸入模式,并根據(jù)輸入狀態(tài)的變化來控制LED的亮滅。
對于LED的閃爍控制,可以使用延時方式或定時中斷方式實現(xiàn)。
延時方式:通過在代碼中添加延時函數(shù),控制LED的亮滅時間間隔。例如,在LED亮起后延時一段時間,然后再滅掉,再延時一段時間,如此循環(huán)。這種方式簡單直接,適用于簡單的LED閃爍需求。
定時中斷方式:使用定時器中斷來控制LED的閃爍。通過設置定時器的計數(shù)值和中斷觸發(fā)時間,可以精確控制LED的亮滅時間間隔。當定時器中斷觸發(fā)時,改變LED的狀態(tài),實現(xiàn)閃爍效果。這種方式更靈活,適用于需要精確控制閃爍時間間隔或與其他功能同時運行的場景。
選擇延時方式還是定時中斷方式,取決于應用的需求和性能要求。如果只需要簡單的LED閃爍效果,延時方式足夠;如果需要精確控制閃爍時間間隔或與其他功能同時運行,定時中斷方式更適合。
2023/7/6 17:22:26
外部中斷概念、數(shù)量、種類與應用,結合VIC原理。對比GPIO輸入與外部中斷輸入方式,各有何特點?
2023/7/6 17:22:51
外部中斷是指來自外部設備或其他源的信號觸發(fā)的中斷。當外部中斷信號觸發(fā)時,CPU會立即停止當前任務的執(zhí)行,轉(zhuǎn)而執(zhí)行與中斷相關的處理程序。外部中斷可以用于處理各種事件,例如按鍵輸入、傳感器觸發(fā)、通信中斷等。
外部中斷的數(shù)量和種類取決于具體的硬件平臺和微控制器。一般來說,一個微控制器會提供多個外部中斷引腳,可以用于不同的外部中斷事件。例如,常見的STM32F系列微控制器提供了多個外部中斷線,可以配置為上升沿觸發(fā)、下降沿觸發(fā)或雙邊沿觸發(fā)。
外部中斷的應用非常廣泛。例如,可以將外部中斷用于處理按鍵輸入,當按鍵按下時觸發(fā)中斷,執(zhí)行相應的處理程序;可以將外部中斷用于處理傳感器的觸發(fā)信號,當傳感器檢測到某個事件時觸發(fā)中斷,執(zhí)行相應的處理程序;還可以將外部中斷用于處理通信中斷,當外部設備發(fā)送中斷信號時觸發(fā)中斷,執(zhí)行相應的處理程序。
在ARM微控制器中,外部中斷的處理通常與中斷控制器(VIC)相關。VIC是ARM微控制器中的一個模塊,用于管理中斷。當外部中斷信號觸發(fā)時,VIC會接收到中斷請求,并將其轉(zhuǎn)發(fā)給CPU進行處理。VIC可以根據(jù)中斷優(yōu)先級和中斷屏蔽狀態(tài)來確定中斷的處理順序和是否響應中斷。
與GPIO輸入相比,外部中斷輸入方式有以下特點:
實時性:外部中斷具有較高的實時性,當中斷信號觸發(fā)時,CPU會立即停止當前任務的執(zhí)行,轉(zhuǎn)而執(zhí)行與中斷相關的處理程序。而GPIO輸入方式需要通過輪詢的方式不斷檢測輸入狀態(tài),響應時間相對較長。
低功耗:外部中斷在等待中斷觸發(fā)時,CPU可以進入低功耗模式,以節(jié)省能量。而GPIO輸入方式需要不斷輪詢輸入狀態(tài),CPU無法進入低功耗模式。
靈活性:外部中斷可以配置為不同的觸發(fā)方式(上升沿觸發(fā)、下降沿觸發(fā)、雙邊沿觸發(fā)),適應不同的應用需求。GPIO輸入方式只能通過輪詢方式檢測輸入狀態(tài),靈活性較差。
綜上所述,外部中斷輸入方式適用于對實時性要求較高、需要低功耗和靈活配置的應用場景;而GPIO輸入方式適用于對實時性要求不高、對功耗要求不嚴格、簡單的輸入檢測場景。
2023/7/6 17:23:01
處理器與外設交互數(shù)據(jù)主要方式、特點及應用場景
2023/7/6 17:23:19
處理器與外設交互數(shù)據(jù)的主要方式有以下幾種:
I/O端口讀寫:處理器通過讀寫I/O端口與外設進行數(shù)據(jù)交互。通過向特定的I/O端口寫入數(shù)據(jù)或從特定的I/O端口讀取數(shù)據(jù),處理器可以與外設進行通信。這種方式通常用于簡單的輸入輸出設備,如LED、按鍵、數(shù)碼管等。
存儲映射I/O:處理器將外設的寄存器映射到內(nèi)存地址空間中,通過讀寫內(nèi)存地址的方式與外設進行數(shù)據(jù)交互。處理器可以直接讀寫這些內(nèi)存地址,實現(xiàn)與外設的通信。這種方式通常用于復雜的外設,如串口、網(wǎng)絡接口、圖形顯示等。
DMA(直接存儲器訪問):處理器通過配置DMA控制器,使其直接從外設讀取數(shù)據(jù)或?qū)?shù)據(jù)寫入外設,而不需要處理器的干預。DMA控制器可以在處理器的空閑時間內(nèi)進行數(shù)據(jù)傳輸,提高數(shù)據(jù)傳輸?shù)男?。這種方式通常用于高速數(shù)據(jù)傳輸,如音頻、視頻等。
這些方式各有特點和適用場景:
I/O端口讀寫方式簡單直接,適用于簡單的輸入輸出設備,但效率相對較低。
存儲映射I/O方式可以通過讀寫內(nèi)存地址的方式與外設進行通信,靈活性較高,適用于復雜的外設。
DMA方式適用于高速數(shù)據(jù)傳輸,可以減輕處理器的負擔,提高數(shù)據(jù)傳輸效率。
根據(jù)具體的應用場景和需求,可以選擇適合的方式與外設進行數(shù)據(jù)交互。
2023/7/6 17:23:46
嵌入式系統(tǒng)最小系統(tǒng)構成
2023/7/6 17:24:04
嵌入式系統(tǒng)的最小系統(tǒng)構成通常包括以下幾個核心組件:
處理器(CPU):處理器是嵌入式系統(tǒng)的核心組件,負責執(zhí)行程序指令和控制系統(tǒng)的運行。常見的嵌入式處理器包括ARM、MIPS、PowerPC等。處理器的選擇應根據(jù)系統(tǒng)的需求和性能要求進行。
存儲器:存儲器用于存儲程序代碼、數(shù)據(jù)和臨時變量等信息。常見的存儲器包括閃存、RAM和EEPROM。閃存用于存儲程序代碼和數(shù)據(jù),RAM用于存儲臨時數(shù)據(jù)和堆棧,EEPROM用于存儲配置信息和非易失性數(shù)據(jù)。
外設接口:外設接口用于連接和控制外部設備,例如串口、網(wǎng)絡接口、USB接口等。外設接口可以通過I/O端口、存儲映射I/O或者DMA等方式與處理器進行數(shù)據(jù)交互。
時鐘和定時器:時鐘和定時器用于提供系統(tǒng)的時序和定時功能。時鐘用于同步處理器和其他組件的操作,定時器用于生成定時中斷和計時功能。
電源管理:電源管理模塊用于提供系統(tǒng)的電源管理功能,包括電源開關、電源管理策略和電源狀態(tài)監(jiān)測等。
除了以上核心組件,嵌入式系統(tǒng)可能還包括其他組件,如輸入輸出設備(例如鍵盤、顯示器、傳感器等)、通信接口(例如以太網(wǎng)、無線通信等)、中斷控制器、系統(tǒng)總線等,具體取決于系統(tǒng)的需求和應用場景。
最小系統(tǒng)構成的選擇應根據(jù)具體的應用需求、性能要求和成本等因素進行權衡,以滿足系統(tǒng)的功能和性能要求。
2023/7/6 17:25:00
存儲器電路的分類及作用
2023/7/6 17:25:54
存儲器電路可以根據(jù)不同的分類標準進行分類,以下是常見的存儲器電路分類及其作用:
隨機存取存儲器(Random Access Memory, RAM):
靜態(tài)隨機存取存儲器(Static RAM, SRAM):SRAM使用觸發(fā)器來存儲數(shù)據(jù),具有快速的讀寫速度和數(shù)據(jù)保持能力,但占用較大的面積和功耗較高。
動態(tài)隨機存取存儲器(Dynamic RAM, DRAM):DRAM使用電容來存儲數(shù)據(jù),具有較高的存儲密度,但需要定期刷新以保持數(shù)據(jù),讀寫速度較慢。
RAM的主要作用是存儲程序代碼、數(shù)據(jù)和臨時變量等信息,可以隨機訪問任意位置的數(shù)據(jù)。
只讀存儲器(Read-Only Memory, ROM):
可編程只讀存儲器(Programmable ROM, PROM):PROM可以通過編程操作一次性地存儲數(shù)據(jù),數(shù)據(jù)內(nèi)容不可更改。
可擦除可編程只讀存儲器(Erasable Programmable ROM, EPROM):EPROM可以通過特殊的擦除操作將數(shù)據(jù)擦除,然后重新編程。
電可擦除可編程只讀存儲器(Electrically Erasable Programmable ROM, EEPROM):EEPROM可以通過電子擦除操作將數(shù)據(jù)擦除,然后重新編程。
閃存存儲器(Flash Memory):閃存是一種非易失性存儲器,可以通過塊擦除和編程操作來存儲和更新數(shù)據(jù)。
ROM的主要作用是存儲固定的程序代碼和數(shù)據(jù),不可修改。
高速緩存存儲器(Cache Memory):
一級緩存(Level 1 Cache, L1 Cache):位于處理器內(nèi)部,用于存儲最常用的數(shù)據(jù)和指令,加速處理器的訪問速度。
二級緩存(Level 2 Cache, L2 Cache):位于處理器外部,容量較大,用于存儲次常用的數(shù)據(jù)和指令。
緩存存儲器的主要作用是提高處理器對數(shù)據(jù)和指令的訪問速度,減少對主存的訪問次數(shù)。
寄存器(Register):
通用寄存器(General Purpose Register):用于存儲臨時數(shù)據(jù)和計算結果。
狀態(tài)寄存器(Status Register):用于存儲處理器的狀態(tài)信息,如標志位、中斷使能等。
寄存器的主要作用是提供高速的數(shù)據(jù)存儲和處理功能,用于處理器的運算和控制。
不同類型的存儲器電路在存儲容量、讀寫速度、功耗、可擦除性等方面有所差異,根據(jù)具體的應用需求和性能要求,可以選擇適合的存儲器電路。
2023/7/6 17:26:16
輸入/輸出模塊,通信模塊作用
2023/7/6 17:26:34
輸入/輸出模塊(Input/Output Module)和通信模塊在計算機系統(tǒng)中具有以下作用:
輸入/輸出模塊:
數(shù)據(jù)輸入:輸入模塊用于將外部設備(如鍵盤、鼠標、傳感器等)的數(shù)據(jù)傳輸?shù)接嬎銠C系統(tǒng)中,供處理和存儲使用。
數(shù)據(jù)輸出:輸出模塊用于將計算機系統(tǒng)中的數(shù)據(jù)傳輸?shù)酵獠吭O備(如顯示器、打印機、繼電器等),實現(xiàn)數(shù)據(jù)的顯示、打印、控制等功能。
數(shù)據(jù)格式轉(zhuǎn)換:輸入/輸出模塊可以對數(shù)據(jù)進行格式轉(zhuǎn)換,將外部設備的數(shù)據(jù)轉(zhuǎn)換為計算機系統(tǒng)可處理的格式,或?qū)⒂嬎銠C系統(tǒng)的數(shù)據(jù)轉(zhuǎn)換為外部設備可接受的格式。
通信模塊:
數(shù)據(jù)傳輸:通信模塊用于在計算機系統(tǒng)內(nèi)部或不同計算機系統(tǒng)之間傳輸數(shù)據(jù)。它可以通過各種通信協(xié)議(如以太網(wǎng)、串口、USB等)實現(xiàn)數(shù)據(jù)的傳輸和交換。
遠程訪問:通信模塊可以實現(xiàn)計算機系統(tǒng)與遠程設備或遠程服務器之間的通信,實現(xiàn)遠程訪問、遠程控制和遠程管理等功能。
網(wǎng)絡連接:通信模塊可以連接計算機系統(tǒng)到局域網(wǎng)、廣域網(wǎng)或互聯(lián)網(wǎng),實現(xiàn)計算機系統(tǒng)的網(wǎng)絡通信和資源共享。
輸入/輸出模塊和通信模塊是計算機系統(tǒng)中與外部設備和其他計算機系統(tǒng)進行數(shù)據(jù)交互的關鍵組件。它們通過提供輸入和輸出功能以及數(shù)據(jù)傳輸和通信功能,實現(xiàn)了計算機系統(tǒng)與外部環(huán)境的交互和連接,為計算機系統(tǒng)的應用提供了更廣泛的功能和靈活性。
第1章 嵌入式系統(tǒng)基礎
問題與思考
問題
- 什么是嵌入式系統(tǒng)?有什么特點?應用在哪些領域?
- 嵌入式系統(tǒng)組成?嵌入式處理器如何分類?典型的嵌入式處理器有哪些?
- 操作系統(tǒng)概念,什么是EOS?常用的EOS有哪些?
- 嵌入式系統(tǒng)開發(fā)主要步驟和流程
思考
請看以下高亮內(nèi)容
1.1 引言
1.2 嵌入式系統(tǒng)的概述
1.2.1嵌入式系統(tǒng)的定義
比較認同的嵌入式系統(tǒng)概念
嵌入式系統(tǒng)是以應用為中心,以計算機技術為基礎,并且軟硬件可裁剪,適用于應用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統(tǒng)。(北航 何立民教授總結,業(yè)界認可)
(1)專用性:是專為目標對象設計定制的,與應用對象緊密結合,是面向用戶 。
(2)嵌入性:是目標對象系統(tǒng)的組成部分,系統(tǒng)的軟、硬件都嵌入到目標對象體系結構中,形成一個以計算技術、電子技術和特定的工程應用相結合的綜合體。
(3)計算機系統(tǒng): 是以計算機為基礎,軟、硬件可裁剪的專用計算機系統(tǒng)。
在日常生活中,早已存在許多嵌入式系統(tǒng)的應用,如每天使用的手機,MP3 隨身聽,個人助理(PDA),外出旅游用的照相機、攝像機,汽車里的控制系統(tǒng),銀行里的 ATM 機等等,它們的內(nèi)部都嵌入了一個專用的計算機系統(tǒng)。
嵌入式系統(tǒng)在應用數(shù)量上遠遠超過了各種通用計算機,一臺計算機的外部設備中就包含了 5~10 個嵌入式微處理器,例如,鍵盤、顯示器、打印機、掃描儀、圖像捕捉卡、集線器、路由器等,均由嵌入式處理器進行控制的,在工業(yè)制造、過程控制、通信、儀器、儀表、汽車、輪船、航空、航天、軍事裝備、消費類產(chǎn)品、物聯(lián)網(wǎng)、機器人等領域,都有它們的存在。
1.2.2嵌入式系統(tǒng)組成
嵌入式系統(tǒng)通常由嵌入式處理器、外圍設備、嵌入式操作系統(tǒng)和應用軟件等幾大部分組
成。在一個嵌入式系統(tǒng)裝置中一般都由嵌入式計算機系統(tǒng)和執(zhí)行裝置構成,如圖 1.1 所示,
嵌入式計算機系統(tǒng)是整個嵌入式系統(tǒng)的核心,由硬件層、中間層、軟件層和功能層組成。
1.硬件層
硬件層包含:嵌入式微處理器、存儲器(SDRAM、ROM、Flash等)、通用設備接口和I/O接口(A/D、D/A、I/O等)
處理器 :ARM、MIPS、 X86、 PowerPC和SH等 。
主存儲器 :
ROM類 NOR Flash、EPROM和PROM等。
RAM類 SRAM、DRAM和SDRAM等 。
接口:A/D、D/A、RS-232、Ethernet、USB、IIS(音頻 接口)、I2C、CAN、SPI和IrDA(紅外線接口)
2. 中間層-硬件適配層
在硬件層與軟件層之間,也稱為硬件抽象層(Hardware Abstract Layer,HAL)或板級支持包(Board Support Package,BSP)。
任務:相關底層硬件的初始化及配置,設備驅(qū)動程序 。
特點:
① 硬件相關性,直接操作底層硬件。
② 操作系統(tǒng)相關性: 為操作系統(tǒng)提供所需要的硬件操作接口。
3. 系統(tǒng)軟件層
系統(tǒng)軟件層由嵌入式操作系統(tǒng)(EOS) 、文件系統(tǒng)、圖形用戶接口(GUI)、網(wǎng)絡系統(tǒng)及通用組件模塊等組成。
4. 功能層
基于操作系統(tǒng)開發(fā)的應用程序組成,用來完成對被控對象的控制功能 。
1.2.3嵌入式系統(tǒng)的特點
1.2.4嵌入式系統(tǒng)應用
1.3 嵌入式處理器
1.3.1 嵌入式處理器的組成
1.3.2 嵌入式處理器的分類
1. 嵌入式微處理器(Micro Processor Unit,MPU)
2. 嵌入式微控制器(Microcontroller Unit, MCU)
3. 嵌入式 DSP 處理器(Embedded Digital Signal Processor, EDSP)
4. SoC(system on chip)片上系統(tǒng)
1.3.3 典型的嵌入式處理器
1. MCS51 單片機
2. ARM 處理器
3. MIPS 處理器
4. PowerPC 處理器
5. MC68000 處理器
6. X86 處理器
來源:
第一章 測驗【嵌入式系統(tǒng)】
1.3.4 嵌入式處理器的性能指標
1.4 嵌入式操作系統(tǒng)
1.4.1嵌入式操作系統(tǒng)簡介
基本概念——操作系統(tǒng)
操作系統(tǒng)是計算機中最基本的程序。
操作系統(tǒng)負責計算機系統(tǒng)中全部軟硬資源的分配與回收、控制與協(xié)調(diào)等并發(fā)的活動,提高資源利用率;
操作系統(tǒng)提供用戶接口,方便用戶使用;
操作系統(tǒng)為用戶擴展新的系統(tǒng)功能提供軟件平臺。
操作系統(tǒng)是對系統(tǒng)資源進行管理的軟件,
主要管理功能:
進程與處理機管理、作業(yè)管理、存儲管理、設備管理、文件管理。
嵌入式操作系統(tǒng)(EOS, Embedded Operating System)
是一種支持嵌入式系統(tǒng)應用的操作系統(tǒng)軟件,
包括:
與硬件相關的底層驅(qū)動軟件、系統(tǒng)內(nèi)核、設備驅(qū)動接口、通信協(xié)議、圖形界面、標準化瀏覽器等。
補充:
1.4.2 嵌入式操作系統(tǒng)的種類
1.4.3 實時操作系統(tǒng)的相關概念
1.4.4 幾種典型的嵌入式操作系統(tǒng)
-
Linux :是一個完全符合GNU/GPL(通用公共許可協(xié)議 )公約的操作系統(tǒng),完全開放代碼 。uClinux從Linux 2.0/2.4內(nèi)核派生而來,沿襲了主流Linux的絕大部分特性,是專門針對沒有MMU的CPU設計。
Linux的優(yōu)點:穩(wěn)定、良好的移植性、優(yōu)秀的網(wǎng)絡功能、完備的對各種文件系統(tǒng)的支持、以及標準豐富的API等。 -
μC/OS-II:是一個典型的實時操作系統(tǒng), 源代碼公開,代碼結構清晰明了,注釋詳細,組織有條理,可移植性好,可裁剪,可固化,內(nèi)核屬于搶占式,最多可以管理60 個任務。系統(tǒng)絕大部分源碼是用ANSI C寫的。
-
Windows CE :是微軟公司的產(chǎn)品 ,采用模塊化設計,基本內(nèi)核需要200KB 以上,是精簡的Windows 95 ,以使用Windows 95/98上的編程工具 。
-
VxWorks:是WindRiver(風河)公司專門為實時嵌入式系統(tǒng)設計開發(fā)的操作系統(tǒng)軟件,提供了高效的實時任務調(diào)度、 中斷管理、 實時的系統(tǒng)資源以及實時的任務間通信。現(xiàn)被Intel所收購。
-
Android:是Google基于Linux平臺開發(fā)的手機操作系統(tǒng)平臺,由操作系統(tǒng)、中間件、用戶界面和應用軟件組成。
-
PalmOS:是一種32位的嵌入式操作系統(tǒng),由3Com公司開發(fā),主要用于掌上電腦。
-
QNX :是一款實時操作系統(tǒng),由加拿大QNX公司開發(fā),廣泛應用于自動化、控制、機器人科學、電信、數(shù)據(jù)通信、航空航天、POS機、零售機等應用領域。
1.5 嵌入式系統(tǒng)開發(fā)
1.5.1 嵌入式系統(tǒng)開發(fā)過程
- 常用的設計流程模型
- 開發(fā)環(huán)境及調(diào)試方法
嵌入式系統(tǒng)的開發(fā)過程可以分為需求分析、體系結構設計、軟硬件設計(軟件設計、硬件設計)、系統(tǒng)集成和系統(tǒng)優(yōu)化與測試等階段。
1.需求分析
(1)需求:包括功能和非功能兩部分 ,非功能信息包括性能、功耗、成本、系統(tǒng)尺寸和重量等 。
(2)確認需求:建立一個模型,使用已存數(shù)據(jù)來模擬功能,確認需求的合理性。
(3)需求分析表格
(4)設計規(guī)格說明書,按照需求撰寫 。
2. 體系結構設計
3.軟/硬件構件設計
4.系統(tǒng)集成
5. 系統(tǒng)測試
1.5.2 常用的設計流程模型
1.5.3 嵌入式系統(tǒng)的開發(fā)環(huán)境及調(diào)試方法
第2章ARM技術及體系結構
查看:
第二章 ARM 技術及體系結構【嵌入式系統(tǒng)】
問題與思考
問題
- 了解 ARM芯片及版本情況
- ARM處理器技術,CISC&RISC及特點對比,哈佛結構&普林斯頓結構,三級流水線技術原理與實現(xiàn),指令執(zhí)行過程中PC指向位置?
- ARM7的工作狀態(tài)及模式,模式與37個寄存器如何對應?兩種狀態(tài)如何切換?兩種指令集SP/LR/PC/CPSR,CPSR狀態(tài)與控制位。
- ARM體系的異常處理,異常如何進入與退出?需要做哪些工作?異常處理與流水線如何對應?異常向量表的概念。
- ARM體系的存儲方式,小端與大端模式存儲
思考
查看:高亮標注
第二章 ARM 技術及體系結構【嵌入式系統(tǒng)】
2.1 嵌入式ARM處理器概況
2.1.1 ARM體系的版本說明
ARM公司簡介
ARM 即Advanced RISC Machines的縮寫 ,作為:①公司的名字 ,②一類微處理器的通稱,③ 一種技術的名稱 。
1985年4月26日,第一個ARM原型在英國劍橋的Acorn計算機有限公司誕生。1991 年 ARM 公司成立于英國劍橋,主要出售芯片設計技術的授權。
ARM公司設計了大量高性能、廉價、耗能低的RISC 處理器。目前已經(jīng)成為市場上主流的處理器。
2.1.2 ARM內(nèi)核的命名
2.1.3 常用ARM處理器系列介紹
2.2 ARM處理器技術
2.2.1 RISC技術
CISC:復雜指令集(Complex Instruction Set Computer)
具有大量的指令和尋址方式
8/2原則:80%的程序只使用20%的指令
大多數(shù)程序只使用少量的指令就能夠運行。
RISC:精簡指令集(Reduced Instruction Set Computer)
在通道中只包含最有用的指令
確保數(shù)據(jù)通道快速執(zhí)行每一條指令
使CPU硬件結構設計變得更為簡單
RISC的結構的特點如下:
簡化指令集,只保留常用的基本指令;
設計大量的通用存儲器,減少訪存的次數(shù);
采用裝載/保存(load-store)結構,支持流水線技術,使每個周期時間相等;
采用簡單的指令格式、規(guī)整的指令字長和簡單的尋址方式。
單機器周期指令,即大多數(shù)的指令都可以在一個機器周期內(nèi)完成。
除以上特點之外, ARM增加:數(shù)據(jù)處理指令可同時包含ALU運算和移位處理功能;地址自增和自減功能;裝載/保存指令中具有數(shù)據(jù)的批量傳輸;大多數(shù)指令提供條件執(zhí)行 。
2.2.2 流水線技術
CPU中的流水線技術是一種將指令分解為多步,并讓不同指令的各步操作重疊執(zhí)行,從而實現(xiàn)幾條指令并行處理,以加速程序運行過程的技術。
ARM7采用三級流水線、ARM9采用五級流水線,ARM10采用六級流水線、ARM11采用八級流水線。
以ARM7三級流水線為例,由三個獨立的部件分別執(zhí)行:
- 取指,從存儲器中裝載一條指令到CPU中;
- 解碼,識別并解釋將要被執(zhí)行的指令;
- 執(zhí)行,將解碼識別的指令進行計算處理并將結果寫回寄存器。
2.2.3 哈佛結構
- 哈佛結構是一種將程序中指令和數(shù)據(jù)分開存儲的存儲器結構。它是一種并行存儲體系結構,程序存儲器和數(shù)據(jù)存儲器采用不同的總線,從而提供了較大的存儲器帶寬 。
- 馮·諾伊曼結構也稱普林斯頓結構,是一種將程序指令存儲器和數(shù)據(jù)存儲器合并在一起的存儲器結構。程序指令存儲地址和數(shù)據(jù)存儲地址指向同一個存儲器的不同物理位置。
- ARM7采用了普林斯頓結構,在隨后的ARM9、ARM10、ARM11、ARM Cortex等處理器采用了哈佛結構,
2.2.4 AMBA總線技術
2.2.5 ARM處理器的調(diào)試跟蹤技術
2.3 ARM7處理器結構
2.4 ARM7TDMI的工作狀態(tài)及模式
2.4.1 ARM7處理器工作狀態(tài)
ARM7工作狀態(tài)
ARM7TDMI處理器內(nèi)核包含2套指令系統(tǒng),分別為ARM指令集和Thumb指令,并且各自對應1種處理器的狀態(tài):
- ARM狀態(tài):32位,處理器執(zhí)行字方式的ARM指令,處理器默認為此狀態(tài);
- Thumb狀態(tài):16位,處理器執(zhí)行半字方式的Thumb指令。
注意:兩個狀態(tài)之間的切換并不影響處理器模式或寄存器內(nèi)容。
2.4.2 ARM7處理器模式
2.5 ARM7內(nèi)部寄存器
2.5.3 程序狀態(tài)寄存器
2.6 ARM體系的異常處理
異常的進入
當一個異常導致模式切換時,內(nèi)核自動的做如下處理:
- 將異常處理程序的返回地址(加固定的偏移量)保存到相應異常模式下的LR;
- 將CPSR的當前值保存到相應異常模式下的SPSR;
- 設置CPSR為相應的異常模式;
- 設置PC為相應異常處理程序的中斷入口向量地址,跳轉(zhuǎn)到相應的異常中斷處理程序執(zhí)行;
異常的退出
2.7 ARM體系的存儲方式
第3章ARM7TDMI指令系統(tǒng)
查看:
第三章 ARM7指令系統(tǒng)【嵌入式系統(tǒng)】
問題與思考
問題
- ARM指令的尋址方式,總結與具體判斷
- ARM指令格式及分類,匯編指令與C語言對比, 數(shù)據(jù)處理指令、分支指令、加載/存儲指令、交換指令、程序狀態(tài)寄存器(PSR)處理指令、協(xié)處理指令和SWI異常產(chǎn)生指令七大類,了解機器碼,指令的機器碼格式與匯編指令的分析。
- 指令的難點:存儲器訪問指令的理解與應用,多寄存器訪問指令含義與解析。
- 偽指令含義與應用,MOV,LDR 加載與LDR偽指令有何不同?例題與作業(yè)題
思考
查看:高亮標注
第三章 ARM7指令系統(tǒng)【嵌入式系統(tǒng)】
第4章 基于ARM7系列的匯編語言程序設計
查看:
第四章 基于ARM7系列的匯編語言程序設計【嵌入式系統(tǒng)】
問題與思考
問題
- 計算機語言,機器語言、匯編語言與高級語言各自特點。
- ARM7匯編語言程序中的符號,符號命名,變量、常亮如何定義及應用。數(shù)據(jù)如何定義?
- ARM匯編語言程序的設計步驟,如何編輯、編譯、連接與調(diào)試程序,具體內(nèi)容?
- ARM7匯編語言程序設計,順序、分支與循環(huán)程序結構與編程,子程序概念等。
- 程序的分析、流程圖設計,功能總結等。
- 常見數(shù)據(jù)搬家(復制)、求和、尋找最大數(shù)最小數(shù)、排序等等,書上例題,上機分析。
思考
查看:高亮標注
第四章 基于ARM7系列的匯編語言程序設計【嵌入式系統(tǒng)】
第5章 LPC2000系列微處理器組成與中斷技術
問題與思考
問題
- LPC2100、LPC2200等系列及特點
- 芯片內(nèi)部結構,局部總線、AHB總線、VPB總線與內(nèi)外連接關系。
- 存儲器結構,映射含義,重映射引入、對象、解決問題?
- 系統(tǒng)控制部分,時鐘系統(tǒng)結構
- 中斷概念、過程、中斷優(yōu)先級判斷與處理,中斷控制部件VIC結構、作用與實際編程應用。向量中斷如何處理,程序如何跳轉(zhuǎn)?
思考
請看以下高亮內(nèi)容
5.1 LPC2000系列簡介
5.1.1 LPC2100 系列芯片
5.1.2 LPC2200 系列芯片
5.2 芯片內(nèi)部結構
AHB(先進的高性能總線)和 VPB(VLSI 外設總線)
5.3 存儲器結構
5.3.1 存儲器映射
5.3.2 片內(nèi)存儲器
5.3.3 片外存儲器
5.3.4 存儲器的重映射
5.3.5 系統(tǒng)啟動代碼簡介
5.4 系統(tǒng)控制模塊
5.4.1 時鐘系統(tǒng)
5.4.2 功率控制
5.4.3 復位
5.5 中斷技術
5.5.1 中斷概念
什么是中斷,計算機在執(zhí)行正常程序過程中,當出現(xiàn)某種異常事件或某種外部請求時,
處理器就暫停執(zhí)行當前的程序,而轉(zhuǎn)去執(zhí)行對異常事件或某種外部請求的處理操作。當處理
完畢后,CPU 再返回到被暫停執(zhí)行的程序,繼續(xù)執(zhí)行,這個過程稱為中斷。主程序被打斷
的地方稱其為斷點,在計算機系統(tǒng)中,實現(xiàn)中斷處理過程打的技術就稱為中斷技術,實現(xiàn)該
技術包含的軟件、硬件的總體稱為中斷系統(tǒng)。
5.5.2 中斷源及管理
5.5.3 中斷處理過程
5.6 向量中斷控制器
5.6.1 向量中斷分類
5.6.2 向量中斷結構
5.6.3 向量中斷寄存器
5.6.4 向量中斷的處理過程
5.6.5 向量中斷的示例
第6章 LPC2000系列微處理器片上外設接口
問題與思考
問題
- 為什么引入引腳連接模塊?解決什么問題?如何解決?硬件電路分析與軟件編程關系?
- 設置管腳的兩種方式,簡單直接設置與“讀-修改-寫”方式 設置有何不同?針對有多個引腳功能設置,在應用中如何選擇?為什么?
- GPIO的綜合應用,通過管腳選擇、方向、輸出與輸入控制。GPIO應用中控制LED閃爍通過延時方式與定時中斷的區(qū)別。
- 外部中斷概念、數(shù)量、種類與應用,結合VIC原理。對比GPIO輸入與外部中斷輸入方式,各有何特點?
- 處理器與外設交互數(shù)據(jù)主要方式、特點及應用場景
思考
請看以下高亮內(nèi)容
6.1 引腳連接模塊
6.1.1 管腳功能選擇寄存器 PINSEL0 和 PINSEL1
6.1.2 引腳連接控制寄存器管腳功能選擇寄存器 2(PINSEL2 – 0xE002C014)
6.2 GPIO原理及應用
LPC2114/2124微控制器具有兩個端口——P0和P1,可以作為GPIO使用的引腳數(shù)為46個。
6.2.1 GPIO 相關寄存器
PINSElx設置對應位,讓其功能為GPIO模式,00
讓后設置IODIR:(direction方向):輸出方向1,還是輸入方向0
輸出方向:設置IOxSET輸出高電平,設置IOxCLR輸出低電平
輸入方向:讀去IOxPIN的值
6.2.2 GPIO 應用
6.3 外部中斷輸入
6.3.1 概述
6.3.2 ARM 的外中斷----相關寄存器與設置
6.3.3 ARM 的外中斷應用
6.4 定時計數(shù)電路
6.4.1 分頻與計數(shù)模塊
定時器的計時頻率=Fpclk/(PR+1)
6.4.2 匹配功能
6.4.3 捕獲控制模塊
定時器的計時頻率=Fpclk/(PR+1)
6.4.4 定時器中斷
6.4.5 定時器/計數(shù)器應用
6.5 UART串行接口
6.5.1 串行通信概述
6.5.2 LPC2000 器件 UART 特性、結構與組成
6.5.3 UART 寄存器描述
6.5.4 UART 應用
6.6 片上一些其它常用接口(SPI、I2C、A/D、WDT、PWM及RTC)
6.6.1 SPI 接口
四條連線分別是:
- 1 MOSI:SPI 接口為主機時作為輸出,為從機時作為輸入
- 2 MISO:SPI 接口為主機時作為輸入,為從機時作為輸出
- 3 SCLK:時鐘信號,由主機設備產(chǎn)生
- 4 SSEL:SPI 接口為主機時接一個 10kΩ 的上拉電阻,為從機時接收主機設備發(fā)出的
從設備選通信號。
2. SPI 應用
第六章 測驗【嵌入式系統(tǒng)】
6.6.2 I2C 接口
I2C 總線的傳輸方向由 (R/W)狀態(tài)位確定,存在以下兩種類型的數(shù)據(jù)傳輸:
(1)主發(fā)送,主發(fā)送器向從接收器發(fā)送數(shù)據(jù),主機發(fā)送的第一個字節(jié)是從機地址,接
下來是數(shù)據(jù)字節(jié)流。從機每接收一個字節(jié)返回一個應答位。
(2)主接收,從發(fā)送器向主接收器發(fā)送數(shù)據(jù),第一個字節(jié)(從地址)由主機發(fā)送,然
后從機返回一個應答位,接下來從機向主機發(fā)送數(shù)據(jù)字節(jié)。主機每接收一個字節(jié)返回一個應
答位,接收完最后一個字節(jié),主機返回一個“非應答位”。
第六章 測驗【嵌入式系統(tǒng)】
第7章 ARM7系列芯片的外圍電路設計
問題與思考:
問題
1、嵌入式系統(tǒng)最小系統(tǒng)構成
2、存儲器電路的分類及作用
3、輸入/輸出模塊,通信模塊作用
思考
請看以下高亮內(nèi)容
7.1. 嵌入式硬件系統(tǒng)模塊
嵌入式微控制器是整個系統(tǒng)的核心,負責整個系統(tǒng)的運作,但是它不能獨立工作,必須配置額外的外圍電路為其提供必要的基本條件。
7.1.1 最小系統(tǒng)結構
所謂最小系統(tǒng)結構,是指在嵌入式微控制器外部增加盡可能少的電路模塊,達到一個可以讓嵌入式微控制器獨立工作的狀態(tài)。
7.1.2 電源電路
7.1.3 時鐘電路
7.1.4 復位電路
7.1.5 存儲器系統(tǒng)
7.2. 存儲器電路與設計
7.2.1 嵌入式系統(tǒng)中存儲器的分類
1. RAM(隨機訪問存儲器)
RAM 存儲單元中的內(nèi)容在機器運行期間可按需隨意讀/寫,根據(jù)存儲信息原理的不同,
RAM 又可以分為 SRAM(Static RAM)、SDRAM(Synchronous Dynamic RAM)和 PSRAM
(Pseudo Static RAM)。
SRAM 為靜態(tài)隨機存儲器,通過總線與 ARM 處理器直接連接相連,不需要刷新電路,
集成度較低,是目前常用的存儲器。DRAM 保留數(shù)據(jù)的時間很短,需要每隔一段時間,固
定進行一次刷新充電,否則內(nèi)部的數(shù)據(jù)即會消失,DRAM 集成度高,性價比高。
SDRAM 為同步的動態(tài)隨機存儲器,數(shù)據(jù)的讀寫需要時鐘來同步,從理論上說,與 CPU
頻率同步,共享一個時鐘周期;但是需要不斷的刷新電路來保證數(shù)據(jù)的不丟失,另外其中的
數(shù)據(jù)不是線性存儲的,而是自由指定地址進行讀寫。
PSRAM 是偽靜態(tài)隨機存儲器,其內(nèi)部結構與 SDRAM 相似,而外部的接口與 SRAM 相
似。使用時不需要 SDRAM 那樣復雜的控制器和刷新機制。PSRAM 速度支持突發(fā)模式,價
格上比相同容量的 SDRAM 稍貴,卻比 SRAM 便宜很多;與 SDRAM 相比較,PSRAM 的
功耗要低很多;所以 PSRAM 對于有一定緩存容量要求的便攜式產(chǎn)品是一個理想的選擇,例
如目前手機中的內(nèi)存多用 PSRAM。
2. ROM(只讀存儲器)
ROM 是一種只能讀出預先存儲數(shù)據(jù)的固態(tài)半導體存儲器,其特性是 ROM 所存的數(shù)據(jù)
穩(wěn)定,斷電后數(shù)據(jù)不會改變;其結構較簡單,讀出較方便,因而常用于存儲各種固定程序和
數(shù)據(jù)。ROM 可分為掩膜式 ROM、PROM、EPROM 及 EEPROM。掩膜式 ROM,用戶不可
對其編程,其內(nèi)容已由廠家設定好,不能更改;PROM,可編程 ROM(Programmable ROM),
用戶只能對其進行一次編程,寫入后不能更改;EPROM,可擦除的 PROM(Erasable PROM),
其內(nèi)容可用紫外線擦除,用戶可對其進行多次編程;EEPROM 或 E2PROM,電擦除的
PROM(Electrically Erasable PROM),能以字節(jié)為單位擦除和改寫。
3. FLASH
FLASH 是在 EPROM 和 E2
PROM 基礎上發(fā)展起來的,兼有 RAM 和 ROM 兩者的優(yōu)點,
是一種可在系統(tǒng)(In-System)進行電擦寫,掉電后信息不丟失的存儲器。其具有高集成度、
大容量、高速度、低成本的特點,使得 FLASH 成為嵌入式存儲設備的主流,與 DRAM 和
SRAM 一起成為存儲器市場的三大產(chǎn)品。
與 EPROM 相比較,F(xiàn)LASH 具有明顯的優(yōu)勢——在系統(tǒng)可電擦除和可重復編程,而不
需要特殊的高電壓;與 E2
PROM 相比較,F(xiàn)LASH 具有編程速度快,成本低、密度大的特點。
FLASH 以其集成度高、制造成本低、使用方便等諸多優(yōu)點廣泛地應用于辦公設備、通信設
備、醫(yī)療設備、家用電器等領域。
FLASH 存儲器根據(jù)其應用場合以及實現(xiàn)技術的不同,目前市場上主要有兩種類型:
①1 NOR 型 FLASH:Intel 公司在 1988 年開發(fā)出的 FLASH 技術,其芯片內(nèi)儲存的數(shù)據(jù)
可以直接讀取,因而速度比較快,但是價格較高,目前以 Intel 和 AMD 為代表。
②2 NAND 型 FLASH:東芝公司在 1989 年發(fā)布的,其強調(diào)降低每比特的成本,更高的
性能,并且像磁盤一樣可以通過接口輕松升級,所以也稱為固態(tài)硬盤。NAND 型最顯著的
特點是共用芯片的地址線和數(shù)據(jù)線。目前 NAND 型被廣泛應用于移動存儲、數(shù)碼相機、MP3
播放器、掌上電腦等新興數(shù)字設備中,以美國的 SanDisk、東芝公司和三星公司為代表。
7.2.7 存儲器與 ARM 的連接
在構建 ARM 的嵌入式存儲器系統(tǒng)時,存儲器通過數(shù)據(jù)總線、地址總線和控制總線與
ARM MCU 進行互連。
7.3. 鍵盤輸入模塊
7.4. 顯示輸出模塊
7.5. 串行通信模塊
另外
最后
初稿:2023-6-30 17:34:30
終稿:2023-7-3 21:40:31
最后:2023-7-4 00:22:23
你對我百般注視,
并不能構成萬分之一的我,
卻是一覽無余的你。文章來源:http://www.zghlxwxcb.cn/news/detail-517590.html
祝大家逢考必過
點贊收藏關注哦文章來源地址http://www.zghlxwxcb.cn/news/detail-517590.html
到了這里,關于期末復習【嵌入式系統(tǒng)】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!