嵌入式系統(tǒng)原理復(fù)習(xí)題_第1頁(yè)
嵌入式系統(tǒng)原理復(fù)習(xí)題_第2頁(yè)
嵌入式系統(tǒng)原理復(fù)習(xí)題_第3頁(yè)
嵌入式系統(tǒng)原理復(fù)習(xí)題_第4頁(yè)
嵌入式系統(tǒng)原理復(fù)習(xí)題_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、復(fù)習(xí)提綱一、嵌入式系統(tǒng)及ARM(Advanced RISC machines)處理器概述1. 嵌入式系統(tǒng)的概念(IEEE定義和國(guó)內(nèi)普遍認(rèn)同的定義)根據(jù)IEEE(國(guó)際電氣和電子工程師協(xié)會(huì))的定義:嵌入式系統(tǒng)是“用于控制、監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝置”;嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟、硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗等嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。2. 嵌入式系統(tǒng)的組成(硬件組成和軟件組成)硬件+軟件硬件:由嵌入式微處理器、外圍硬件設(shè)備組成軟件:包括底層系統(tǒng)軟件和用戶應(yīng)用軟件二、CM4體系結(jié)構(gòu)1. CM4內(nèi)核三級(jí)流水線的三個(gè)階段,如假設(shè)某嵌入式處理器有3級(jí)

2、流水線,每級(jí)流水線所耗時(shí)間均為為2ms,則執(zhí)行25條指令需要耗費(fèi)時(shí)間?三級(jí)流水線,分別是取指、譯碼和執(zhí)行;為了兼容Thumb代碼,讀取PC會(huì)返回當(dāng)前指令地址+4。偏移量總是4, 不管是執(zhí)行16位指令還是32位指令, 這保證了Thumb和Thumb-2指令之間的一致性。ARM的完整拼寫形式為 Acorn RISC Machine ,CM4處理器內(nèi)部正在執(zhí)行的指令的地址為0x08000100,此時(shí)讀取PC的值,該值為 0x08000104 。2. CM4內(nèi)核讀取指令及訪問(wèn)數(shù)據(jù)的三套總線、CM4內(nèi)核的兩種運(yùn)行模式、兩種權(quán)限級(jí)別,上電復(fù)位后是什么模式什么級(jí)別三套總線:I-code總線 D-code總線

3、 系統(tǒng)總線CM4處理器有兩種模式:線程模式、handler模式,還支持兩種操作級(jí)別:特權(quán)級(jí)、非特權(quán)級(jí)(用戶級(jí))。復(fù)位后是特權(quán)級(jí)下的線程模式 3. CM4內(nèi)核的寄存器組中,各個(gè)寄存器的作用及各個(gè)寄存器的訪問(wèn)權(quán)限級(jí)別、CM4的復(fù)位序列R0-R7 低組通用寄存器;R8-R12高組通用寄存器;R13堆棧寄存器;(MSP,PSP)R14連接寄存器;R15程序計(jì)數(shù)寄存器;xPSR程序狀態(tài)寄存器;程序狀態(tài)寄存器(xPSR)程序狀態(tài)寄存器在其內(nèi)部又被分為三個(gè)子狀態(tài)寄存器:應(yīng)用程序狀態(tài)寄存器( APSR)中斷狀態(tài)寄存器( IPSR)執(zhí)行狀態(tài)寄存器( EPSR)通過(guò) MRS/MSR 指令,這 3 個(gè) PSRs 即

4、可以單獨(dú)訪問(wèn),也可以組合訪問(wèn)( 2 個(gè)組合, 3 個(gè)組合都可以)。當(dāng)使用三合一的方式訪問(wèn)時(shí),應(yīng)使用名字“ xPSR”或者“ PSR”。三、 CM4程序設(shè)計(jì)Cortex-M4內(nèi)核在執(zhí)行指令時(shí),只有一種狀態(tài),那就是Thumb狀態(tài)。1. CM4尋址方式、常用指令: MOV AND ORR(有1為1,為0為0) BIC(清0) EOR(異或,相異出1) SUB ADD TST TEQ CMP LDR(加載) STR(存儲(chǔ)) LDRB(8位無(wú)符號(hào)字加載) STRB(8位無(wú)符號(hào)字存儲(chǔ)) LDM(多寄存器加載) STM(多寄存器存儲(chǔ)) B(無(wú)條件跳轉(zhuǎn)) BL BX BLX MRS(讀取特殊寄存器的值到通用寄

5、存器) MSR(將通用寄存器的值寫到特殊寄存器)偽指令:LDR2. 指令的條件碼如:NE(不等于) EQ(等于) LT(小于) GT(大于)等,后綴“S”“!”,什么樣的指令會(huì)影響APSR寄存器的標(biāo)志位“S”后綴:指令中使用“S”后綴,指令執(zhí)行后狀態(tài)寄存器的條件標(biāo)志位將被刷新;不使用“S”后綴時(shí),指令執(zhí)行后狀態(tài)寄存器的條件標(biāo)志位不會(huì)發(fā)生變化。如果指令地址表達(dá)式中不含“!”后綴,則基址寄存器中的地址不會(huì)發(fā)生變化,指令中含有則變化N E C V S3. 偽操作:偽操作主要有符號(hào)定義偽操作、數(shù)據(jù)定義偽操作、匯編控制偽操作及其雜項(xiàng)偽操作等DCB(字節(jié))、DCD(字)、AREA(用于定義一個(gè)代碼段或數(shù)據(jù)

6、段)、END(用于指示源程序結(jié)束)、EQU(用于定義字符名稱)、IMPORT(IMPORT用于通知編譯器當(dāng)前符號(hào)不在本文件中)、EXPORT(EXPORT(或GLOBAL)用于聲明符號(hào)可以被其他文件引用。)4. ATPCS規(guī)則中寄存器的使用、參數(shù)傳遞、子程序返回的規(guī)則子程序間通過(guò)寄存器R0、R1、R2、 R3來(lái)傳遞參數(shù)。如果參數(shù)多于4個(gè),則多出的部分用數(shù)據(jù)棧傳遞。被調(diào)用的子程序在返回前無(wú)需恢復(fù)寄存器R0-R3的內(nèi)容。在子程序中,使用寄存器R4-R11來(lái)保存局部變量如果在子程序中使用到了寄存器R4-R11中的某些寄存器,子程序進(jìn)入時(shí)必須保存這些寄存器的值,在返回前必須恢復(fù)這些寄存器的值;對(duì)于子程

7、序中沒(méi)有用到的寄存器則不必進(jìn)行這些操作。在Thumb程序中,通常只能使用寄存器R4-R7來(lái)保存局部變量。寄存器R13用作數(shù)據(jù)棧指針,記作sp。在子程序中寄存器R13不能用作其他用途。寄存器sp在進(jìn)入子程序時(shí)的值和退出子程序時(shí)的值必須相等。連接寄存器R14(lr)。它用于保存子程序的返回地址。如果在子程序中保存了返回地址,寄存器R14則可以用作其他用途。寄存器R15是程序計(jì)數(shù)器,記作pc。它不能用作其他用途。ATPCS規(guī)定堆棧為FD類型,即滿遞減堆棧。并且堆棧的操作是8字節(jié)對(duì)齊。t子程序結(jié)果返回規(guī)則1.結(jié)果為一個(gè)32位的整數(shù)時(shí),可以通過(guò)寄存器R0返回。2.結(jié)果為一個(gè)64位整數(shù)時(shí),可以通過(guò)R0和R

8、1返回,依此類推。3.結(jié)果為一個(gè)浮點(diǎn)數(shù)時(shí),可以通過(guò)浮點(diǎn)運(yùn)算部件的寄存器f0,d0或者s0來(lái)返回。4.結(jié)果為一個(gè)復(fù)合的浮點(diǎn)數(shù)時(shí),可以通過(guò)寄存器f0-fN或者d0-dN來(lái)返回。5.對(duì)于位數(shù)更多的結(jié)果,需要通過(guò)調(diào)用內(nèi)存來(lái)傳遞.5. C程序如何調(diào)用匯編程序,匯編程序如何調(diào)用C程序在匯編程序中使用EXPORT 偽指令聲明本子程序,使其它程序可以調(diào)用此子程序。在C 語(yǔ)言程序中使用extern 關(guān)鍵字聲明外部函數(shù)(聲明要調(diào)用的匯編子程序),即可調(diào)用此匯編子程序。在匯編程序中使用IMPORT 偽指令聲明將要調(diào)用的C 程序函數(shù).在調(diào)用C 程序時(shí),要正確設(shè)置入口參數(shù),然后使用BL 調(diào)用.四、STM32F439 G

9、PIO1. 重點(diǎn)掌握GPIO相關(guān)寄存器的定義方法及各個(gè)寄存器的主要功能2. 能夠編程操控某一組GPIO #define GPIOF_MODER (*(volatile unsigned int *)0x40021400)#define GPIOF_OTYPER (*(volatile unsigned int *)0x40021404)#define GPIOF_OSPEEDR (*(volatile unsigned int *)0x40021408)#define GPIOF_PUPDR (*(volatile unsigned int *)0x4002140C)#define GPIOF

10、_ODR (*(volatile unsigned int *)0x40021414)#define RCC_AHB1ENR(*(volatile unsigned int *)0x40023830)void Delay(unsigned int nCount) for(; nCount != 0; nCount-);void Port_init(void)RCC_AHB1ENR |= 0x20;GPIOF_MODER &= (0xff<<14);GPIOF_MODER |= (0x55<<14);GPIOF_OTYPER &= (0xf<<

11、7);GPIOF_OSPEEDR&= (0xff<<14);GPIOF_OSPEEDR |= (0xaa<<14);GPIOF_PUPDR &= (0xff<<14);int led(void) Port_init(); while (1) GPIOF_ODR |= (0xf<<7); /*ϨÃðLEDµÆ*/ Delay(0xFFFFF); GPIOF_ODR &= (0x8<<7); /*µãÁÁLED&#

12、181;Æ*/ Delay(0xFFFFF); GPIOF_ODR |= (0xf<<7); /*ϨÃðLEDµÆ*/ Delay(0xFFFFF); GPIOF_ODR &= (0x4<<7); /*µãÁÁLEDµÆ*/ Delay(0xFFFFF); GPIOF_ODR |= (0xf<<7); /*ϨÃðLEDµÆ*/ Delay(0xFFFFF);

13、GPIOF_ODR &= (0x2<<7); /*µãÁÁLEDµÆ*/ Delay(0xFFFFF); GPIOF_ODR |= (0xf<<7); /*ϨÃðLEDµÆ*/ Delay(0xFFFFF); GPIOF_ODR &= (0x1<<7); /*µãÁÁLEDµÆ*/ Delay(0xFFFFF);/ 五、STM32F439 時(shí)鐘樹(shù)1 追根溯源,ST

14、M32F439的時(shí)鐘源有哪4個(gè)?HSI 、HSE 、LSI 、LSESTM32F439時(shí)鐘樹(shù)中,系統(tǒng)時(shí)鐘SYSCLK的來(lái)源有三個(gè),分別是:HSI、HSE和PLLCLK。系統(tǒng)時(shí)鐘SYSCLK的來(lái)源有哪些?HSI 、HSE通過(guò)設(shè)置哪個(gè)寄存器能對(duì)系統(tǒng)時(shí)鐘SYSCLK的來(lái)源進(jìn)行選擇?RCC_CFGR主鎖相環(huán)PLL時(shí)鐘是否就緒通過(guò)哪個(gè)寄存器判斷?RCC_CR要把GPIOF的時(shí)鐘使能,需要設(shè)置哪個(gè)寄存器?RCC_AHB1ENR各個(gè)不同總線上時(shí)鐘的分頻參數(shù)通過(guò)哪個(gè)寄存器設(shè)置?RCC_PLLCFGR六、STM32F439的串口1. 異步串行通信時(shí)的數(shù)據(jù)格式 起始位 數(shù)據(jù)位(8位或9位) 奇偶校驗(yàn)位(第9位)

15、停止位(1,1.5,2位) 波特率設(shè)置2. STM32F439的USART1是否能夠發(fā)送數(shù)據(jù)或是否收到數(shù)據(jù)可通過(guò)哪個(gè)寄存器判斷?USART_SR發(fā)送數(shù)據(jù)時(shí)需要把數(shù)據(jù)寫入哪個(gè)寄存器?USART_DR收到的數(shù)據(jù)通過(guò)讀取哪個(gè)寄存器得知?USART_SR3. 重點(diǎn)掌握串口初始化操作,初始化操作中相關(guān)寄存器的設(shè)置。七、CM4異常處理、NVIC、EXTI1. 哪些異常的優(yōu)先級(jí)不能編程配置?復(fù)位、NMI、硬fault當(dāng)CM4處理器的一個(gè)異?;蛑袛啾挥|發(fā),硬件自動(dòng)完成哪些工作?所有異常都在處理模式中操作。出現(xiàn)異常時(shí),自動(dòng)將處理器狀態(tài)保存到堆棧中,并在中斷服務(wù)程序(ISR)結(jié)束時(shí)自動(dòng)從堆棧中恢復(fù)。在狀態(tài)保存的同

16、時(shí)取出向量快速地進(jìn)入中斷。 異常進(jìn)入當(dāng)CM4處理器的一個(gè)異?;蛑袛啾挥|發(fā),硬件自動(dòng)完成如工作:(1)CM4中斷控制器根據(jù)當(dāng)前狀態(tài)和中斷的搶占級(jí)別來(lái)確定是響應(yīng)該中斷,還是先掛起,并更新相應(yīng)的寄存器狀態(tài)。(2)通過(guò)Dbus保存處理器狀態(tài),將下面的8個(gè)寄存器按順序保存入SP(MSP或PSP)指向的系統(tǒng)堆棧。(3)CM4通過(guò)Ibus從異常向量表取得對(duì)應(yīng)的中斷向量,并開(kāi)始讀取ISR指令,這一步幾乎與壓棧同時(shí)進(jìn)行。(4)CM4處理器更新到handler模式,SP切換到MSP,更新IPSR為新響應(yīng)的異常編號(hào),更新PC,更新LR寄存器為EXC_RETURN。2. NVIC的寄存器ICTR(用于顯示NVIC支持

17、的中斷線數(shù)目)、NVIC_ISERn(設(shè)置中斷使能)、NVIC_ICERn(中斷使能清除)、NVIC_ISPRn(中斷掛起設(shè)置寄存器)、NVIC_ICPRn(中斷掛起清除寄存器)、NVIC_IPRn(中斷優(yōu)先級(jí)寄存器)、NVIC_AIRCR的主要用于什么設(shè)置?3. EXTI屏蔽某個(gè)中斷線的中斷請(qǐng)求需要設(shè)置哪個(gè)寄存器?EXTI_IMR中斷線觸發(fā)中斷的方式(上升沿、下降沿)需要設(shè)置的寄存器是?(EXTI_RTSR、EXYI_FTSR)8、 定時(shí)器部件通用定時(shí)器可以向上(遞增)計(jì)數(shù)、向下(遞減)計(jì)數(shù)、向上向下雙向(中心對(duì)齊)計(jì)數(shù)模式。1. 獨(dú)立看門狗的時(shí)鐘來(lái)源是?LSI結(jié)構(gòu)框圖與工作原理?在鍵值寄存

18、器(IWDG_KR)中寫入0xCCCC,開(kāi)始啟用獨(dú)立看門狗。此時(shí)計(jì)數(shù)器開(kāi)始從其復(fù)位值0xFFF遞減,當(dāng)計(jì)數(shù)器值計(jì)數(shù)到尾值0x000時(shí)會(huì)產(chǎn)生一個(gè)復(fù)位信號(hào)(IWDG_RESET)。無(wú)論何時(shí),只要在鍵值寄存器IWDG_KR中寫入0xAAAA(通常說(shuō)的喂狗), 自動(dòng)重裝載寄存器IWDG_RLR的值就會(huì)重新加載到計(jì)數(shù)器,從而避免看門狗復(fù)位。如果程序異常,就無(wú)法正常喂狗,從而系統(tǒng)復(fù)位。超時(shí)時(shí)間如何計(jì)算?如何喂狗、取消寫保護(hù)、啟動(dòng)看門狗?Tout=(4*2prer)*(rlr+1)/32; /單位為毫秒Tout為看門狗溢出時(shí)間(單位為ms)prer為看門狗時(shí)鐘預(yù)分頻值(IWDG_PR PR2:0的值:0-7)4*2prer最大不超過(guò)256 rlr為看門狗的重裝載值(IWDG_RLR的值)低速內(nèi)部時(shí)鐘LSI=32 KHz M IWDG_KR=0xAAAA;/喂狗IWDG_KR =0x5555;IWDG_RLR=0

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論