国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

西郵嵌入式系統(tǒng)復(fù)習(xí)

這篇具有很好參考價(jià)值的文章主要介紹了西郵嵌入式系統(tǒng)復(fù)習(xí)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

可以私聊我獲取pdf版本!


前言

提示:這里可以添加本文要記錄的大概內(nèi)容:

期末復(fù)習(xí)知識(shí)點(diǎn)總結(jié) 第一次整理


提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

第一章 嵌入式系統(tǒng)基礎(chǔ)

1、嵌入式系統(tǒng)概述

1.1.0 嵌入式系統(tǒng)發(fā)展

(選擇 4個(gè)階段)
無(wú)操作系統(tǒng)的單片機(jī)階段–>以微控制器為基礎(chǔ)、以簡(jiǎn)單操 作系統(tǒng)為核心的嵌入式系統(tǒng)階段–>以通用的嵌入式操作系 統(tǒng)和系統(tǒng)級(jí)芯片為標(biāo)志的嵌入式系統(tǒng)階段–>面向Internet 的應(yīng)用階段

1.1.1 嵌入式系統(tǒng)的定義(簡(jiǎn)答)

嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),并且軟 硬件可裁剪。適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體 積、功耗有嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。 特點(diǎn)(3大特點(diǎn)):專(zhuān)用性,嵌入性,計(jì)算機(jī)系統(tǒng)。(選 擇)

1.1.2 嵌入式系統(tǒng)的組成(簡(jiǎn)答)

按模塊劃分:微處理器、外圍硬件、嵌入式操作系統(tǒng)、應(yīng)用 程序、開(kāi)發(fā)環(huán)境;
按層次劃分:硬件層、中間層–軟件適配層、系統(tǒng)軟件層 (軟件層)、功能層;(選擇)

1.1.3 嵌入式系統(tǒng)的特點(diǎn)(7大特點(diǎn))

1、技術(shù)先進(jìn)
2、系統(tǒng)內(nèi)核小
3、專(zhuān)用性強(qiáng)
4、系統(tǒng)精簡(jiǎn)
5、系統(tǒng)軟件要求具有高時(shí)效性
6、嵌入式軟件開(kāi)發(fā)走向標(biāo)準(zhǔn)化
7、開(kāi)發(fā)工具和環(huán)境完善

1.1.4 嵌入式系統(tǒng)應(yīng)用(了解)

工業(yè)控制、交通管理、信息家電、智能家居、電子商務(wù)等等

2、嵌入式處理器

2.2.0 嵌入式處理器分類(lèi)(4大類(lèi))

1、嵌入式微處理器(EMPU)MPU
2、嵌入式微控制器(MCU)
3、嵌入式片上系統(tǒng)(SOC)
4、嵌入式DSP處理器

2.2.1 典型的嵌入式處理器

1、MCS51
2、ARM處理器
3、MIPS處理器
4、PowerPC處理器

3、嵌入式操作系統(tǒng)

3.3.0 嵌入式操作系統(tǒng)簡(jiǎn)介(簡(jiǎn)答)

操作系統(tǒng)是計(jì)算機(jī)中最基本的程序,負(fù)責(zé)計(jì)算機(jī)系統(tǒng)中全部 軟硬資源的分配與回收,提高資源利用率,是對(duì)系統(tǒng)資源進(jìn) 行管理的軟件 嵌入式操作系統(tǒng)(EOS)是一種支持嵌入式系統(tǒng)應(yīng)用的操作 系統(tǒng)軟件

3.3.1 嵌入式系統(tǒng)的主要特點(diǎn)(8大特點(diǎn))

1、可裝卸性、開(kāi)放性、可伸縮性的體系結(jié)構(gòu)
2、強(qiáng)時(shí)效性
3、統(tǒng)一的接口
4、操作方便、簡(jiǎn)單
5、提供強(qiáng)大的網(wǎng)絡(luò)功能
6、強(qiáng)穩(wěn)定性、弱互交性
7、固化代碼
8、良好的移植性

3.3.2 幾種典型的EOS(選擇)

沒(méi)有windows10 Linux、uc/OS-II、Windows CE、VxWorks、Android、 PalmOS、QNS

4、嵌入式系統(tǒng)開(kāi)發(fā)

4.4.0 嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程(選擇)
需求分析–>體系結(jié)構(gòu)設(shè)計(jì)–>軟硬件結(jié)構(gòu)設(shè)計(jì)–>系統(tǒng)集成- ->系統(tǒng)測(cè)試與優(yōu)化

習(xí)題中總結(jié)問(wèn)題

1、嵌入式處理器保存程序采用的是硬盤(pán);
2、3C是指Computer,Communication, ConsumerElectronic;
3、ARM處理器能直接識(shí)別的是機(jī)器語(yǔ)言

第二章 嵌入式系統(tǒng)體系結(jié)構(gòu)

1、嵌入式ARM處理器概況

1.1.0 ARM體系的版本說(shuō)明

ARM公司,主要負(fù)責(zé)出售芯片設(shè)計(jì)技術(shù)的授權(quán),不負(fù)責(zé)生產(chǎn) 芯片,同時(shí)設(shè)計(jì)了大量的高性能、廉價(jià)、耗能低的RISC處理器,成為了市場(chǎng)上的主流。
ARM版本主要采用VII:V7架構(gòu),可以分為三類(lèi):Cortex-A系 列,Cortex-M系列,Cortex-R系列。(選擇) ARM處理器系列:主要使用的有6個(gè),即ARM7,ARM9,ARM10E,ARM11,SecurCore,Cortex

1.1.1 常用ARM處理器介紹(選擇、判斷)

ARM7系列:低功耗32位核,馮諾依曼結(jié)構(gòu),三級(jí)流水線
ARM9系列:高性能,低功耗,哈佛結(jié)構(gòu),五級(jí)流水線
ARM10系類(lèi):全性能,低功耗,哈佛結(jié)構(gòu),六級(jí)流水線 11-八級(jí)流水線

2、ARM處理器技術(shù)

2.2.0 RISC技術(shù)(簡(jiǎn)答)

1、CISC:復(fù)雜指令集 特點(diǎn):具有大量的指令和尋址方式;8/2原則:80%的程序只 使用20%的指令;大多數(shù)的程序只使用少量的指令就能運(yùn) 行。指令的格式是可變化的,不是固定的。
2、RISC:精簡(jiǎn)指令集 特點(diǎn):在通道中只包含最有用的指令;確保數(shù)據(jù)通道中能快 速執(zhí)行每一條指令;使cpu的結(jié)構(gòu)設(shè)計(jì)變得更為簡(jiǎn)單。 3、RISC的結(jié)構(gòu)的特點(diǎn)(5大特點(diǎn)) 簡(jiǎn)化指令集; 設(shè)計(jì)大量的通用寄存器; 采用裝載/保存結(jié)構(gòu)(load-store); 采用簡(jiǎn)單的指令格式; 單機(jī)器周期指令;

2.2.1 流水線技術(shù)(簡(jiǎn)答)

概念:將一種指令分解為多步,并讓不同指令的各步操作重 疊執(zhí)行,從而實(shí)現(xiàn)幾條指令并行處理,加速程序運(yùn)行。 以ARM7三級(jí)流水線為例: 取指:從存儲(chǔ)器裝載一條指令到cpu 解碼:識(shí)別并解釋將要被執(zhí)行的命令 執(zhí)行:將識(shí)別的指令進(jìn)行計(jì)算處理并將結(jié)果寫(xiě)回寄存器

2.2.2 哈佛結(jié)構(gòu)

哈佛結(jié)構(gòu):將程序中指令和數(shù)據(jù)分開(kāi)存儲(chǔ)的存儲(chǔ)器結(jié)構(gòu),程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器采用了不同的總線,提供了較大的存 儲(chǔ)器帶寬
普林斯頓結(jié)構(gòu)(馮諾依曼結(jié)構(gòu)):將程序中指令和數(shù)據(jù)存放 在一起的存儲(chǔ)器結(jié)構(gòu)

2.2.3 AMBA總線技術(shù)(涉及到第五章內(nèi)容,在此僅 作了解)

AHB:連接高性能和高時(shí)鐘頻率的系統(tǒng)模塊;
ASB:連接高性能的系統(tǒng)模塊;
APB:連接低功耗的外部設(shè)備模塊;

3、ARM7處理器結(jié)構(gòu)

了解內(nèi)部構(gòu)成、內(nèi)核結(jié)構(gòu)、處理器模塊接口信號(hào)以及模塊功 能圖(略);

4、ARM7工作狀態(tài)及模式

4.4.0 ARM7處理器工作狀態(tài)

ARM7處理器內(nèi)核包含2套指令系統(tǒng):ARM指令集,Thumb指令 集
1、ARM狀態(tài):32位,處理器執(zhí)行字方式的ARM指令,默認(rèn)為 此狀態(tài);
2、Thumb狀態(tài):16位,處理器執(zhí)行半字方式的Thumb指令。 狀態(tài)之間的切換并不影響處理器模式或寄存器內(nèi)容

4.4.1 ARM7處理器模式

ARM體系結(jié)構(gòu)支持7種處理器模式: 用戶(hù)模式(權(quán)限最?。?,快中斷模式,中斷模式,管理模 式,中止模式,未定義模式,系統(tǒng)模式——6種特權(quán)模式
模式切換的方法(2種):主動(dòng)切換,被動(dòng)切換(發(fā)送異 常、中斷)

4.4.2 處理器模式說(shuō)明

1、用戶(hù)模式為正常運(yùn)行的模式,不能直接從用戶(hù)模式切換到其他模式
2、特權(quán)模式可以自由地切換到其他模式
3、除上述兩種模式,其余5種為異常模式,進(jìn)入各個(gè)異常模 式的條件如下:

快中斷模式(fiq):FIQ異常響應(yīng),進(jìn)入;
中斷模式(irq):IRQ異常響應(yīng),進(jìn)入;
管理模式(svc):系統(tǒng)復(fù)位、軟件中斷響應(yīng),進(jìn)入;
中止模式(abt):無(wú)多大用處。處理器訪問(wèn)數(shù)據(jù)失敗, 進(jìn)入;
未定義模式(und):未定義指令異常響應(yīng),進(jìn)入;
4、用戶(hù)模式和系統(tǒng)模式不能由異常進(jìn)入,想要進(jìn)入必須修 改CPSR

5、ARM7內(nèi)部寄存器

5.5.0 簡(jiǎn)介

在ARM處理器內(nèi)部,一共有37個(gè)用戶(hù)可以訪問(wèn)的寄存器,分 別為31個(gè)通用的32位寄存器和6個(gè)狀態(tài)寄存器
5.5.1 ARM狀態(tài)各模式下的寄存器
用戶(hù)模式:17個(gè)可訪問(wèn)寄存器–>R0~R15、CPSR;
系統(tǒng)模式:17個(gè)可訪問(wèn)寄存器–>R0~R15、CPSR;
管理模式:18個(gè)可訪問(wèn)的寄存器–>R0~R15、CPSR、 SPSR_svc;
中止模式:18個(gè)可訪問(wèn)的寄存器–>R0~R15、CPSR、 SPSR_abt;
未定義模式:18個(gè)可訪問(wèn)的寄存器–>R0~R15、CPSR、 SPSR_und;
中斷模式:18個(gè)可訪問(wèn)的寄存器–>R0~R15、CPSR、 SPSR_irq;
快中斷模式:18個(gè)可訪問(wèn)的寄存器–>R0~R15、CPSR、 SPSR_fiq; 特有的:R8~R14寄存器

說(shuō)明
寄存器R0~R7為未分組的通用寄存器,任何模式下都 對(duì)應(yīng)32位的物理寄存器
寄存器R8~R12有兩個(gè)分組的物理寄存器,一個(gè)用于 FIQ模式,另一個(gè)用于除FIQ的其余所有模式
寄存器R13~R14有六個(gè)分組的物理寄存器,一個(gè)用于用戶(hù)模式和系統(tǒng)模式,另外5個(gè)對(duì)應(yīng)5種異常模式
R13為堆棧指針SP,用于保存待使用的寄存器的內(nèi)容
R14為鏈接寄存器LR
CPSR為當(dāng)前程序狀態(tài)寄存器
SPSR為程序狀態(tài)保存器,進(jìn)入異常時(shí)保存當(dāng)前CPSR的 當(dāng)前值,異常退出時(shí)用于恢復(fù)CPSR

西郵嵌入式系統(tǒng)復(fù)習(xí),單片機(jī),網(wǎng)絡(luò),嵌入式硬件
5.5.2 Thumb狀態(tài)下的寄存器組織

在Thumb狀態(tài)下,程序員可以直接訪問(wèn)的寄存器有: 8個(gè)通用寄存器R0~R7 程序計(jì)數(shù)器PC 堆棧指針SP 鏈接寄存器LR 當(dāng)前程序狀態(tài)寄存器CPSR西郵嵌入式系統(tǒng)復(fù)習(xí),單片機(jī),網(wǎng)絡(luò),嵌入式硬件5.5.3 兩種狀態(tài)的相互切換

1、系統(tǒng)復(fù)位后,自動(dòng)進(jìn)入ARM狀態(tài);
2、通過(guò)BX和BXL指令改變當(dāng)前處理器模式,進(jìn)入Thumb狀態(tài);
3、在Thumb狀態(tài)下再次通過(guò)BX和BLX指令改變當(dāng)前處理器模式,進(jìn)入ARM狀 態(tài)
4、異常處理完畢,切回Thumb狀態(tài);
5、再次通過(guò)BX和BLX指令改變當(dāng)前處理器模式,進(jìn)入ARM狀 態(tài)

6、ARM體系的異常處理

6.6.0 異常簡(jiǎn)介

只要正常的程序流被暫時(shí)中止,處理器就進(jìn)入異常模式。

6.6.1 異常優(yōu)先級(jí)

當(dāng)發(fā)生兩個(gè)或者更多異常,那么將按照固定的順序來(lái)處理異常,一個(gè)固定的優(yōu)先級(jí)決定他們的處理順序。 優(yōu)先級(jí)由高到低
1、復(fù)位
2、數(shù)據(jù)終止
3、快中斷FIQ
4、中斷IRQ
5、預(yù)取指中止
6、未定義指令中止
7、軟件中斷異常

6.6.2 異常的進(jìn)入地址(??迹?/strong>

FIQ:進(jìn)入地址–0x0000001C
IRQ:進(jìn)入地址–0x00000018

6.6.3 異常的進(jìn)入與退出(重點(diǎn) 必須背過(guò))
1、異常的進(jìn)入(4步):
當(dāng)一個(gè)異常導(dǎo)致模式切換后,做出如下處理: 將異常處理程序的返回地址(加固定的偏移量)保存到相應(yīng) 的異常模式下的LR(即R14寄存器); 將CPSR的當(dāng)前值保存到相應(yīng)異常模式下的SPSR; 設(shè)置CPSR為相應(yīng)的異常模式; 設(shè)置PC(即R15寄存器)為相應(yīng)異常處理程序的中斷入口向 量地址,跳轉(zhuǎn)到相應(yīng)的異常中斷處理程序執(zhí)行;
2、異常的退出(3步): 當(dāng)異常處理程序結(jié)束時(shí),異常處理程序做出如下處理: 返回到發(fā)生異常中斷的指令的下一條指令處執(zhí)行 將SPSR中的值復(fù)制回CPSR 清零在入口處置位的中斷禁止標(biāo)志

7、ARM體系的存儲(chǔ)方式(了解)

習(xí)題中問(wèn)題總結(jié)

1、32bit寬的數(shù)據(jù)0x12345678在小端模式下存放到 0x4000-0x4004地址中,正確的存放方式?
在小端模式下,地址低位對(duì)應(yīng)數(shù)據(jù)的低位,地址的高位對(duì) 應(yīng)數(shù)據(jù)的高位 故0x4000為地址的低位 存放78
0x4001存放56
0x4002存放34
0x4003存放12

2、系統(tǒng)復(fù)位后ARM7處理器進(jìn)入管理模式

3、快中斷模式有自己獨(dú)立的R8-R14寄存器

4、IRQ模式的進(jìn)入與退出

**進(jìn)入:**將異常處理程序的返回地址保存到異常模式下的 R14_irq中; 用戶(hù)模式的CPSR保存到對(duì)應(yīng)的SPSR_irq中; 修改CPSR為對(duì)應(yīng)的CPSR_irq模式,且禁止新的IQR中 斷產(chǎn)生;設(shè)置PC為IRQ異常處理模式下的程序中斷入口向量地 址為0x00000018; 將IRQ中斷異常模式的棧頂指針保存到R13_irq中
**退出:**從R13_irq中獲取IRQ中斷異常模式的棧頂指針; 復(fù)制SPSR_irq中的內(nèi)容到CPSR; 將R14_irq中的地址減去偏移量存入到PC中;

5、CPSR中哪些位只能讀???哪些位可以設(shè)置?

條件碼標(biāo)志位中C、V可以設(shè)置,N、Z只能讀取; 控制位中M[4:0]可以設(shè)置,I、F、T只能讀取。

6、ARM7的兩種狀態(tài)如何切換?

ARM狀態(tài)和Thumb狀態(tài)進(jìn)行切換時(shí),使用帶狀態(tài)切換的轉(zhuǎn)移 指令BX,BX為寄存器尋址方式,寄存器中存放要轉(zhuǎn)移的地 址,由于指令是字對(duì)齊或半字對(duì)齊存放,因此地址的最低 位沒(méi)有使用到,BX指令利用地址最低位的值來(lái)修改CPSR中T 標(biāo)志,以此來(lái)做到狀態(tài)的切換。

7、什么是計(jì)算機(jī)的指令集?

指令集就是CPU中用來(lái)計(jì)算和控制計(jì)算機(jī)系統(tǒng)的一套指令的 集合。

第三章 ARM7指令系統(tǒng)

1、ARM7指令集概述

1.1.0 簡(jiǎn)介

ARM程序的文件類(lèi)型:
c程序:文件類(lèi)型為".c"
匯編程序:文件類(lèi)型為"
.s"
特點(diǎn):指令集效率高,代碼密度低

1.1.1 ARM指令的分類(lèi)(7大類(lèi))

數(shù)據(jù)處理指令;分支指令;加載/存儲(chǔ)指令;交換指令;程序狀態(tài)寄存器指令;協(xié)處理指令;異常產(chǎn)生指令

1.1.2 ARM指令的編碼格式

指令助記符 {執(zhí)行條件} {指令執(zhí)行結(jié)果是否影響CPSR中的 條件標(biāo)志位} 目標(biāo)寄存器 第一個(gè)操作數(shù)寄存器 {第二個(gè)操 作數(shù)}
例如:MOV R1,R2;將R2寄存器的值送到R1寄存器
SUBS R0,R1,R2;將R1寄存器的值減去R2操作數(shù)的值送到R0寄存器

2、ARM指令的尋址方式

	2.2.0 尋址方式分類(lèi)(常見(jiàn)8大類(lèi)) 
	
	**立即數(shù)尋址、寄存器尋址、寄存器移位尋址、寄存器間接尋址、基址尋址**、相對(duì)尋址、**多寄存器尋址、堆棧尋址** 
	
	2.2.1 各尋址方式介紹 
	1、立即數(shù)尋址:操作碼字段后面的地址碼部分就是操作數(shù) 本身 
	SUBS R0,R0,#1;將R0減1,結(jié)果放入 R0,影響標(biāo)志位
	MOV R0,#0xFF000;將立即數(shù)0xFF000裝入 R0寄存器 
	 
	 2、寄存器尋址:操作數(shù)的值在寄存器中 
	 MOV R1,R2;將R2的值存入R1 
	 SUB R0,R1,R2;將R1的值減去R2的值, 結(jié)果保存到R0 
	 
	 3、寄存器移位尋址:使用了移位指令 
	 MOV R0,R2,LSL,#3;將R2的值左移3 位,結(jié)果放入R0 
	 ANDS R1,R1,R2,LSL,#3;將R2的值左 移3位,然后與R1相加,結(jié)果放入R1 	
	 
	 4、寄存器間接尋址:地址碼是一個(gè)通用寄存器的編號(hào) 
	 MOV R1,[R0];將R0指向的存儲(chǔ)單元的數(shù)據(jù) 讀出并保存在R1中
	 SWP R1,R1,[R2];將寄存器R1的值和R2指 向的存儲(chǔ)單元的數(shù)據(jù)進(jìn)行交換,結(jié)果保存在R1中 
	 
	 5、基址尋址:將基址寄存器的內(nèi)容與指令中給出的偏移量相加,形成操作數(shù)的有效地址 
	 LDR R2,[R3,#0x0C];讀取R3+0x0C地址的 存儲(chǔ)單元的內(nèi)容,放到R2 
	 STR R1,[R0,#-4];將R0-4,然后將R1的值 保存到R0指定的存儲(chǔ)單元 
	 
	 6、相對(duì)尋址(了解) 
	 
	 7、多寄存器尋址:多寄存器尋址一次可以傳送幾個(gè)寄存器值

		LDMIA R1!,{R2~R7,R12};將R1指向的單元 中的數(shù)據(jù)讀出到R2~R7,R12中,R1自動(dòng)加1 
		STMIA R0!,{R2~R7,R12};將寄存器 R2~R7,R12中的值保存到R0指向的存儲(chǔ)單元中,R0自動(dòng)加1 
		
		8、堆棧尋址(了解)

3、ARM指令集介紹

3.3.0 數(shù)據(jù)處理指令(3類(lèi))

1、數(shù)據(jù)傳送指令:可用于移位運(yùn)算等操作 MOV 目標(biāo)寄存器,操作數(shù) MVN 目標(biāo)寄存器,操作數(shù)(取反)
2、算術(shù)邏輯運(yùn)算指令 OpCode 結(jié)果寄存器,運(yùn)算寄存器,第二操作數(shù) ADD,ADC(帶進(jìn)位加法),SUB,RSB(逆向減法), SBC(帶進(jìn)位減法),RSC(帶進(jìn)位逆向減法),AND,ORR, EOR,BIC(位清除)
3、比較指令 OpCode 運(yùn)算寄存器,操作數(shù) CMP,CMN(負(fù)數(shù)比較),TST(位測(cè)試),TEQ(相等測(cè)試)

3.3.1 乘法指令

1、32位乘法指令 MUL 目標(biāo)寄存器,運(yùn)算寄存器,第二操作數(shù)
MUL R3,R2,R1;R3=R2 x R1

2、乘加法指令 MLA 目標(biāo)寄存器,運(yùn)算寄存器1,運(yùn)算寄存器2,第二操作數(shù)
MLA R3,R2,R1,R0;R3=R2 x R1 + R0

3.3.2 分支指令

1、直接向PC寄存器賦值實(shí)現(xiàn)跳轉(zhuǎn)
MOV PC,R14
2、使用分支指令直接進(jìn)行跳轉(zhuǎn)
B:分支指令
BL:帶鏈接的分支指令
BX:帶狀態(tài)切換的分支指令

3.3.3 程序狀態(tài)寄存器訪問(wèn)指令

1、狀態(tài)寄存器讀指令MRS

MRS R1,CPSR;讀取CPSR狀態(tài)到R1 MRS R2,SPSR;讀取SPSR狀態(tài)到R2

2、狀態(tài)寄存器寫(xiě)指令MSR MSR PSR_filed ,操作數(shù)

狀態(tài)位域:s
擴(kuò)展位域:
x 條件標(biāo)志位域:
f 控制位域:c(??迹?/strong>
MSR CPSR_c ,R0;將R0的內(nèi)容寫(xiě)入CPSR寄存器的控制位 域

3.3.5 ARM軟中斷指令

SWI指令,處理器將完成以下操作: 1、將切換到管理模式; 2、將CPSR備份到管理模式下的SPSR寄存器; 3、程序跳轉(zhuǎn)到軟中斷入口

3.3.6 ARM存儲(chǔ)器訪問(wèn)指令

1、單寄存器操作指令 LDR/STR 即裝載/存儲(chǔ) LDR R2,[R5];將R5指向地址的字?jǐn)?shù)據(jù)存入R2 STR R1,[R2,#0x04];將R1的數(shù)據(jù)存儲(chǔ)到R0+0x04地址
2、多寄存器加載/存儲(chǔ)指令 LDM/STM LDMIA R1,[R0-R4,R6];將R1指向的內(nèi)存數(shù)據(jù)讀取到R0- R4,R6寄存器中
3、寄存器和存儲(chǔ)器交換指令 SWP SWP Rd,Rm,Rn;先[Rn]<-Rm,然后Rd<-[Rn]

3.3.7 ARM協(xié)處理器指令 略;僅作了解,不考;

3.3.8 ARM偽指令

ARM偽指令不屬于ARM指令集中的指令,是為了編程方便而定 義的
1、LDR:大等范圍地址讀取指令
2、ADRL:中等范圍地址讀取指令
3、ADR:小范圍地址讀取指令
4、NOP:空操作指令

問(wèn)題與思考(簡(jiǎn)答題)

1、MOV指令與LDR指令都是往目標(biāo)寄存器中傳送數(shù)據(jù),但是他們有什么區(qū)別?

MOV指令用于將數(shù)據(jù)從一個(gè)寄存器傳送到另一個(gè)寄存器, 或者將一個(gè)常數(shù)傳送到一個(gè)寄存器中,但是不能訪問(wèn)內(nèi)存; LDR用于從內(nèi)存中讀取數(shù)據(jù)放入寄存器中。

2、LDR偽指令與LDR加載指令的區(qū)別

LDR加載指令是CPU指令,完成實(shí)質(zhì)性的數(shù)據(jù)傳送,用于 從內(nèi)存中加載數(shù)據(jù)到寄存器; LDR偽指令是匯編指令,完成匯編階段的數(shù)據(jù)傳送,用于 將一個(gè)立即數(shù)讀取到相應(yīng)的寄存器中,需要用等號(hào)來(lái)連接地 址值

習(xí)題中總結(jié)

1、多寄存器訪問(wèn)指令寄存器的序號(hào),從小到大,不能亂序 例如:LDMIA R0!,{R5-R8,R2} -->錯(cuò)誤

2、多寄存器訪問(wèn)指令

LDM(IA,IB,DA,DB)
IA-傳送后地址加4
IB-傳送前地址加4
DA-傳送后地址減4
DB-傳送前地址減4
STM(IA,IB,DA,DB)
IA-傳送后地址加4
IB-傳送前地址加4
DB-傳送后地址減4
DA-傳送前地址減4

3、HI與LS

HI:無(wú)符號(hào)大于
LS:無(wú)符號(hào)小于
例如:當(dāng)R1>R2時(shí),R1加1,否則R2加1
CMP R1,R2
ADDHI R1,R1,#1
ADDLS R2,R2,#1

4、NE和EQ

NE:不相等 EQ:相等
例如:即如果R0不等于20并且R1不等于30 則R0=R0 + R1 CMP R0,#20 CMPNE R1,#30 ADDNE R0,R0,R1
MOVCS 大于 助記符 +(條件) 目的寄存器,操作數(shù) MOVCC 小于

第四章 ARM7匯編語(yǔ)言程序

1、ARM7匯編語(yǔ)言程序結(jié)構(gòu)格式

1.1.0 匯編語(yǔ)言的基本概念

1、機(jī)器語(yǔ)言:由0和1二進(jìn)制代碼表示和存儲(chǔ)的指令與數(shù)據(jù) 優(yōu)點(diǎn):能被機(jī)器直接識(shí)別和執(zhí)行;占用內(nèi)存空間少 缺點(diǎn):難認(rèn)、難記、難編、易錯(cuò)
2、匯編語(yǔ)言:面向物理層操作的計(jì)算機(jī)語(yǔ)言,采用助記符 表示指令的程序設(shè)計(jì) 特點(diǎn):占用內(nèi)存空間少,執(zhí)行速度快
3、高級(jí)語(yǔ)言:脫離機(jī)器的通用語(yǔ)言,不依賴(lài)于特定的計(jì)算 機(jī)結(jié)構(gòu)與指令系統(tǒng) 缺點(diǎn):代碼較長(zhǎng),占用內(nèi)存空間多,執(zhí)行時(shí)間較長(zhǎng)

1.1.1 ARM7匯編語(yǔ)言程序框架

1、ARM匯編程序由段組成(數(shù)據(jù)段、程序段)
2、段是由AREA定義的相對(duì)獨(dú)立程序塊
3、段有兩種屬性:只讀(readonly),讀寫(xiě)(readwrite)
4、標(biāo)識(shí)符(標(biāo)號(hào)):通常以字母開(kāi)頭,以字母、數(shù)字、下 劃線組成,不能與關(guān)鍵字同名,在一行的開(kāi)頭書(shū)寫(xiě),不能留 空格

2、ARM7匯編語(yǔ)言程序中的符號(hào)

2.2.0 符號(hào)命名規(guī)則

1、由字母、數(shù)字、下劃線組成
2、區(qū)分大小寫(xiě)
3、符號(hào)應(yīng)具有唯一性
4、不能與偽指令或指令同名

2.2.1 常量

在程序運(yùn)行過(guò)程中,其值不能發(fā)生改變的量 分為如下4類(lèi): 數(shù)值常量、邏輯常量、字符常量、字符串常量

2.2.2 變量

在程序運(yùn)行過(guò)程中,其值可以發(fā)生變化的量 分為如下4類(lèi): 數(shù)值變量、邏輯變量、字符變量、字符串變量

3、ARM7匯編器偽指令

3.3.0 符號(hào)定義偽指令

1、全局變量定義偽指令
GBLA:定義一個(gè)全局的數(shù)值變量,初始化為0
GBLL:定義一個(gè)全局的邏輯變量,初始化為F
GBLS:定義一個(gè)全局的字符串變量,初始化為空
例如: GBLA A1; A1 SETA 0x0F;

2、局部變量定義偽指令
LCLA:定義一個(gè)局部的數(shù)值變量,初始化為0
LCLL:定義一個(gè)局部的邏輯變量,初始化為F
LCLS:定義一個(gè)局部的字符串變量,初始化為空
例如: LCLL A2; A2 SETL {TRUE};
3、變量賦值偽指令
SETA:給一個(gè)數(shù)值變量賦值
SETL:給一個(gè)邏輯變量賦值
SETS:給一個(gè)字符串變量賦值
4、寄存器列表定義偽指令(了解) 略

3.3.1 數(shù)據(jù)定義偽指令(列舉三個(gè)??嫉模?/p>

1、DCB:用于分配一片連續(xù)的字節(jié)存儲(chǔ)單元,后面的表達(dá)式 可以為0-255的數(shù)值或者字符串 例如:datanum DCB 1,2,3,4,5,6,7,8,9; str DCB “helloworld”; LDRB – DCD LDR – DCB 定義數(shù)據(jù)段
AREA dataa,DATA,READWRITE num DCD 1,2,3

2、DCW:用于分配 一片連續(xù)的半字存儲(chǔ)單元 例如:datanum DCW 1,2,3;

3、DCD:用于分配一片連續(xù)的字存儲(chǔ)單元 例如:datanum DCD 4,5,6; 3.3.2 ARM7匯編控制偽指令(僅作了解) 1、IF,ELSE,ENDIF 2、WHILE,WEND …

3.3.3 雜項(xiàng)匯編器偽指令(重點(diǎn))

1、AREA用于定義一個(gè)代碼段、數(shù)據(jù)段或特定屬性的段
AREA 段名 ,屬性1,屬性2 例如:AREA init,CODE,READONLY 定義一個(gè)段名為init 的代碼段,只讀 AREA stock DATA,READWRITE 定義一個(gè)段名為 stock的數(shù)據(jù)段,讀寫(xiě)
2、CODE16和CODE32 CODE16:通知編譯器,其后面的指令序列為16位的Thumb指 令CODE32:通知編譯器,其后面的指令序列為32位的ARM指令 3、ENTRY 用于指定匯編程序的入口點(diǎn)
5、END 用于通知編譯器已經(jīng)到了源程序的結(jié)尾
6、EQU 為程序中的常量、標(biāo)號(hào)等定義一個(gè)等效的字符名稱(chēng),類(lèi)似于 define 例如:TEST EQU 50; 定義TEST的值為50
7、EXPORT(GLOBAL) 用于在程序中聲明一個(gè)全局標(biāo)號(hào)
8、IMPORT 用于通知編譯器其使用的標(biāo)號(hào)在其他的源文件中定義,但需要引用
9、GET(INCLUDE) 用于將一個(gè)源文件包含到當(dāng)前的文件夾中,被包含的源文件 要在當(dāng)前位置進(jìn)行匯編處理
10、INCBIN 用于將一個(gè)目標(biāo)文件或數(shù)據(jù)文件包含到當(dāng)前的文件夾中,但 不需要進(jìn)行編譯處理,編譯器從其后開(kāi)始繼續(xù)處理

4、ARM7匯編語(yǔ)言程序的上機(jī)過(guò)程

4.4.0 上級(jí)流程(僅作了解)
建立工程–>添加文件–>編譯連接程序–>調(diào)試程序

5、ARM7匯編語(yǔ)言程序設(shè)計(jì)

5.5.0 匯編語(yǔ)言程序設(shè)計(jì)的步驟

分析問(wèn)題–>確定算法–>設(shè)計(jì)程序流程圖–>合理分配寄存 器、存儲(chǔ)空間和外設(shè)資源–>編制程序–>調(diào)試程序–>形成 文檔

5.5.1 程序設(shè)計(jì)的方式(了解)

順序程序設(shè)計(jì)、分支程序設(shè)計(jì)、循環(huán)程序設(shè)計(jì)、子程序設(shè)計(jì)

6、C語(yǔ)言和ARM7匯編語(yǔ)言的混合/交叉編程(了解)

作業(yè)題目設(shè)計(jì)

1、給出10個(gè)數(shù)據(jù),找出其中的最大數(shù)與最小數(shù)

AREA INIT,CODE,READONLY 
				ENTRY
 			 LDR R0,=DATA 
			 MOV R5,#9 
			 LDR R7,[R0] 
			 LDR R6,[R0] 
 START 
 			ADD R0,R0,#4 
 			LDR R1,[R0] 
 			SUB R5,R5,#1 
 			CMP R7,R1 
			MOVCC R7,R1 
 			CMP R6,R1
 			MOVCS R6,R1 
 			CMP R5,#0 
			 BNE START
 DATA 
  				DCD 1,3,4,6,8,2,7,5,9,0 
  				END  

2、編程實(shí)現(xiàn)兩種求和運(yùn)算,1+2+3+…+100;按條件求和運(yùn)算,1+2+3+…+N>1000

(1) AREA SUM,CODE,READONLY 
								ENTRY 
								MOV R0,#0 
								MOV R1,#1 
	START 
								ADD R0,R0,R1
								ADD R1,R1,#1 
								TEQ R1,#101 
								BNE START 
								END 
(2) AREA SUM,CODE,READONLY 
								ENTRY 
							MOV R0,#0 
							MOV R1,#1 
	START 
							ADD R0,R0,R1 
							ADD R1,R1,#1 
							CMP R0,#1000 
							MOVCS R4,R1 
							BNE START 
							END 

3、統(tǒng)計(jì)任意字符串包含的字符個(gè)數(shù),字符串以0為 結(jié)束標(biāo)志

AREA NUM,CODE,READONLY 
							ENTRY 
							LDR R0,=ARRAY 
							MOV R3,#0 LDRB R1,[R0] 
							CMP R1,#0 
							BEQ EED 
LOOP 
							ADD R3,R3,#1 
							ADD R0,R0,#1 
							LDRB R1,[R0] 
							CMP R1,#0 
							BNE LOOP 
EED 
							LDR R4,=ANS 
							STR R3,[R4] 
STOP 
							B STOP
ARRAY DCB "ASDF456ASD" 
AREA ST,DATA,READWRITE 
							ANS DCD 0 
							END

第五章 LPC2000系列微控 制器組成與中斷技術(shù)

1、LPC2000系列

1.1.0 簡(jiǎn)介

ARM系列種類(lèi)繁多,以一般控制類(lèi)芯片為主,以及LPC2000系 列為主,進(jìn)行介紹
1、LPC2100系列芯片:支持實(shí)時(shí)仿真,并且?guī)в幸粋€(gè)高速 Flash存儲(chǔ)器 主要特點(diǎn)(了解): Flash存儲(chǔ)器、片內(nèi)SRAM、CAN接口
2、LPC2200系列芯片:略

2、芯片內(nèi)部結(jié)構(gòu)

2.2.0 芯片內(nèi)部結(jié)構(gòu)
三種總線:局部總線、AHB總線、VPB總線

3、存儲(chǔ)器結(jié)構(gòu)

3.3.0 存儲(chǔ)器映射

概述:ARM芯片存儲(chǔ)器分為片內(nèi)和片外,存儲(chǔ)器本身不具有 地址信息,由廠家和用戶(hù)分配,給物理存儲(chǔ)器分配邏輯地址 的過(guò)程稱(chēng)為存儲(chǔ)器映射
ARM7微處理器的存儲(chǔ)器的映射空間:
0x00000000- 0xFFFFFFFF 起始地址: FLASH–0x00000000 SRAM–0x40000000 外部存儲(chǔ)器–0x80000000 VPB–0xE0000000 AHB–從0xFFFFFFFF回頭

3.3.1 片內(nèi)存儲(chǔ)器

1、片內(nèi)FLASH程序存儲(chǔ)器
2、片內(nèi)靜態(tài)RAM:可以用作代碼/數(shù)據(jù)的存儲(chǔ) SRAM支持8 位、16位、32位的讀寫(xiě)訪問(wèn)

3.3.2 片外存儲(chǔ)器

概述:在CPU外部擴(kuò)展連接的存儲(chǔ)器芯片稱(chēng)為片外存儲(chǔ)器

3.3.3 存儲(chǔ)器重映射及引導(dǎo)塊(簡(jiǎn)答) 略;

3.3.4 啟動(dòng)代碼相關(guān)部分 略;

4、系統(tǒng)控制模塊

4.4.0 簡(jiǎn)介

概述:某些部件是全局性的,它們狀態(tài)的改變可能會(huì)引起整 個(gè)系統(tǒng)運(yùn)行狀態(tài)的改變,這些部件統(tǒng)一稱(chēng)為系統(tǒng)控制模塊

4.4.1 時(shí)鐘系統(tǒng)

概述:時(shí)鐘是計(jì)算機(jī)系統(tǒng)的脈搏,對(duì)于一個(gè)計(jì)算機(jī)系統(tǒng)是相 當(dāng)重要的
結(jié)構(gòu):晶體振蕩器、喚醒定時(shí)器、鎖相環(huán)(PLL)、VPB分頻 器(考點(diǎn))

4.4.2 功率控制(略過(guò))

4.4.3 復(fù)位(略過(guò))

5、中斷技術(shù)(重點(diǎn))

5.5.0 中斷概念

計(jì)算機(jī)正在執(zhí)行正常程序過(guò)程中,當(dāng)出現(xiàn)某種異常事件或某 種外部請(qǐng)求時(shí),處理器就暫停執(zhí)行當(dāng)前的程序,而轉(zhuǎn)去執(zhí)行 對(duì)異常事件或某種外部請(qǐng)求的處理操作。當(dāng)處理完畢后, CPU再返回到被暫停執(zhí)行的程序,繼續(xù)執(zhí)行,這個(gè)過(guò)程稱(chēng)為 中斷。主程序被打斷的地方稱(chēng)為斷點(diǎn)。

5.5.1 中斷源及管理
中斷源:指引起中斷的原因或發(fā)出中斷請(qǐng)求的來(lái)源,可以分 為硬件中斷源和軟件中斷源
中斷優(yōu)先級(jí):當(dāng)同時(shí)發(fā)生多個(gè)中斷時(shí),CPU按一定的次序響 應(yīng)處理,這個(gè)響應(yīng)次序被稱(chēng)為中斷優(yōu)先級(jí)
中斷請(qǐng)求處理原則: 1、高優(yōu)先級(jí)大于低優(yōu)先級(jí) 2、高優(yōu)先級(jí)中斷處理時(shí),可以不必理會(huì)低優(yōu)先級(jí)中斷 3、同級(jí)別的中斷,按照?qǐng)?zhí)行次序處理
中斷優(yōu)先級(jí)的確定次序: 1、軟件查詢(xún)法 2、硬件排隊(duì)電路法3、專(zhuān)用中斷控制電路法

5.5.2 中斷處理過(guò)程(5個(gè)步驟)

1、中斷請(qǐng)求 2、中斷響應(yīng) 3、斷點(diǎn)保護(hù) 4、中斷處理 5、中斷返回

6、向量中斷控制器

6.6.0 向量中斷分類(lèi)

1、IRQ中斷
2、FIQ中斷 向量中斷控制器:VIC,負(fù)責(zé)管理芯片的中斷源,最多可以 管理32個(gè)中斷輸入請(qǐng)求,16個(gè)IRQ中斷和1個(gè)非向量中斷

6.6.1 向量中斷結(jié)構(gòu)
6.6.2 向量中斷寄存器
6.6.3 向量中斷的處理過(guò)程

習(xí)題總結(jié)

1、處理器與外設(shè)交換的信息有:數(shù)據(jù)信息、狀態(tài)信息、控 制信息
2、IRQ中斷的向量入口地址:0x00000018
3、配備中斷時(shí):定時(shí)中斷到slot0,外部中斷到slot1,串 口中斷到slot2
4、ARM7中VIC管理三類(lèi)中斷:FIQ最高優(yōu)先級(jí)、向量IRQ中 等優(yōu)先級(jí)、非向量IRQ最低優(yōu)先級(jí)
4、中斷處理過(guò)程:中斷請(qǐng)求、中斷響應(yīng)、斷點(diǎn)保護(hù)、中斷 處理、中斷返回 5、多個(gè)中斷源確定優(yōu)先級(jí)的方法:軟件查詢(xún)法、硬件排隊(duì) 電路法、專(zhuān)用中斷控制電路法
6、BootBlock功能組判斷用戶(hù)代碼有效:中斷向量表中前8 個(gè)字的累加和為0 7、LPC2000系列微控制器的時(shí)鐘系統(tǒng):晶體振蕩器、喚醒 定時(shí)器、鎖相環(huán)(PLL)、VPB分頻器
8、中斷向量:中斷處理程序入口地址
9、ARM7片內(nèi)Flash編程方法:JTAG仿真、ISP、IAP
10、AHB連接的總線為:VIC、EMC
11、ARM7內(nèi)部通過(guò)局部總線連接的存儲(chǔ)器:SRAM,F(xiàn)LASH
12、LPC2100系列與LPC2200系列處理器最主要的區(qū)別?
采用的內(nèi)核和資源配置上不同;LPC2100系列處理器僅 有P0和P1端口,管腳數(shù)目少,不能進(jìn)行外部存儲(chǔ)器的擴(kuò)展; LPC2200系列具有P0、P1、P2、P3四個(gè)端口,且P3和P4端口 可以進(jìn)行外部存儲(chǔ)器的擴(kuò)展文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-615357.html

第六章 LPC2000系列微處 理器外設(shè)接口

到了這里,關(guān)于西郵嵌入式系統(tǒng)復(fù)習(xí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包