




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、復(fù)習(xí)提綱一、嵌入式系統(tǒng)及ARM(Advanced RISC machines)處理器概述1. 嵌入式系統(tǒng)的概念(IEEE定義和國內(nèi)普遍認同的定義)根據(jù)IEEE(國際電氣和電子工程師協(xié)會)的定義:嵌入式系統(tǒng)是“用于控制、監(jiān)視或者輔助操作機器和設(shè)備的裝置”;嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟、硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統(tǒng)。2. 嵌入式系統(tǒng)的組成(硬件組成和軟件組成)硬件+軟件硬件:由嵌入式微處理器、外圍硬件設(shè)備組成軟件:包括底層系統(tǒng)軟件和用戶應(yīng)用軟件二、CM4體系結(jié)構(gòu)1. CM4內(nèi)核三級流水線的三個階段,如假設(shè)某嵌入式處理器有3級
2、流水線,每級流水線所耗時間均為為2ms,則執(zhí)行25條指令需要耗費時間?三級流水線,分別是取指、譯碼和執(zhí)行;為了兼容Thumb代碼,讀取PC會返回當前指令地址+4。偏移量總是4, 不管是執(zhí)行16位指令還是32位指令, 這保證了Thumb和Thumb-2指令之間的一致性。ARM的完整拼寫形式為 Acorn RISC Machine ,CM4處理器內(nèi)部正在執(zhí)行的指令的地址為0x08000100,此時讀取PC的值,該值為 0x08000104 。2. CM4內(nèi)核讀取指令及訪問數(shù)據(jù)的三套總線、CM4內(nèi)核的兩種運行模式、兩種權(quán)限級別,上電復(fù)位后是什么模式什么級別三套總線:I-code總線 D-code總線
3、 系統(tǒng)總線CM4處理器有兩種模式:線程模式、handler模式,還支持兩種操作級別:特權(quán)級、非特權(quán)級(用戶級)。復(fù)位后是特權(quán)級下的線程模式 3. CM4內(nèi)核的寄存器組中,各個寄存器的作用及各個寄存器的訪問權(quán)限級別、CM4的復(fù)位序列R0-R7 低組通用寄存器;R8-R12高組通用寄存器;R13堆棧寄存器;(MSP,PSP)R14連接寄存器;R15程序計數(shù)寄存器;xPSR程序狀態(tài)寄存器;程序狀態(tài)寄存器(xPSR)程序狀態(tài)寄存器在其內(nèi)部又被分為三個子狀態(tài)寄存器:應(yīng)用程序狀態(tài)寄存器( APSR)中斷狀態(tài)寄存器( IPSR)執(zhí)行狀態(tài)寄存器( EPSR)通過 MRS/MSR 指令,這 3 個 PSRs 即
4、可以單獨訪問,也可以組合訪問( 2 個組合, 3 個組合都可以)。當使用三合一的方式訪問時,應(yīng)使用名字“ xPSR”或者“ PSR”。三、 CM4程序設(shè)計Cortex-M4內(nèi)核在執(zhí)行指令時,只有一種狀態(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(存儲) LDRB(8位無符號字加載) STRB(8位無符號字存儲) LDM(多寄存器加載) STM(多寄存器存儲) B(無條件跳轉(zhuǎn)) BL BX BLX MRS(讀取特殊寄存器的值到通用寄
5、存器) MSR(將通用寄存器的值寫到特殊寄存器)偽指令:LDR2. 指令的條件碼如:NE(不等于) EQ(等于) LT(小于) GT(大于)等,后綴“S”“!”,什么樣的指令會影響APSR寄存器的標志位“S”后綴:指令中使用“S”后綴,指令執(zhí)行后狀態(tài)寄存器的條件標志位將被刷新;不使用“S”后綴時,指令執(zhí)行后狀態(tài)寄存器的條件標志位不會發(fā)生變化。如果指令地址表達式中不含“!”后綴,則基址寄存器中的地址不會發(fā)生變化,指令中含有則變化N E C V S3. 偽操作:偽操作主要有符號定義偽操作、數(shù)據(jù)定義偽操作、匯編控制偽操作及其雜項偽操作等DCB(字節(jié))、DCD(字)、AREA(用于定義一個代碼段或數(shù)據(jù)
6、段)、END(用于指示源程序結(jié)束)、EQU(用于定義字符名稱)、IMPORT(IMPORT用于通知編譯器當前符號不在本文件中)、EXPORT(EXPORT(或GLOBAL)用于聲明符號可以被其他文件引用。)4. ATPCS規(guī)則中寄存器的使用、參數(shù)傳遞、子程序返回的規(guī)則子程序間通過寄存器R0、R1、R2、 R3來傳遞參數(shù)。如果參數(shù)多于4個,則多出的部分用數(shù)據(jù)棧傳遞。被調(diào)用的子程序在返回前無需恢復(fù)寄存器R0-R3的內(nèi)容。在子程序中,使用寄存器R4-R11來保存局部變量如果在子程序中使用到了寄存器R4-R11中的某些寄存器,子程序進入時必須保存這些寄存器的值,在返回前必須恢復(fù)這些寄存器的值;對于子程
7、序中沒有用到的寄存器則不必進行這些操作。在Thumb程序中,通常只能使用寄存器R4-R7來保存局部變量。寄存器R13用作數(shù)據(jù)棧指針,記作sp。在子程序中寄存器R13不能用作其他用途。寄存器sp在進入子程序時的值和退出子程序時的值必須相等。連接寄存器R14(lr)。它用于保存子程序的返回地址。如果在子程序中保存了返回地址,寄存器R14則可以用作其他用途。寄存器R15是程序計數(shù)器,記作pc。它不能用作其他用途。ATPCS規(guī)定堆棧為FD類型,即滿遞減堆棧。并且堆棧的操作是8字節(jié)對齊。t子程序結(jié)果返回規(guī)則1.結(jié)果為一個32位的整數(shù)時,可以通過寄存器R0返回。2.結(jié)果為一個64位整數(shù)時,可以通過R0和R
8、1返回,依此類推。3.結(jié)果為一個浮點數(shù)時,可以通過浮點運算部件的寄存器f0,d0或者s0來返回。4.結(jié)果為一個復(fù)合的浮點數(shù)時,可以通過寄存器f0-fN或者d0-dN來返回。5.對于位數(shù)更多的結(jié)果,需要通過調(diào)用內(nèi)存來傳遞.5. C程序如何調(diào)用匯編程序,匯編程序如何調(diào)用C程序在匯編程序中使用EXPORT 偽指令聲明本子程序,使其它程序可以調(diào)用此子程序。在C 語言程序中使用extern 關(guān)鍵字聲明外部函數(shù)(聲明要調(diào)用的匯編子程序),即可調(diào)用此匯編子程序。在匯編程序中使用IMPORT 偽指令聲明將要調(diào)用的C 程序函數(shù).在調(diào)用C 程序時,要正確設(shè)置入口參數(shù),然后使用BL 調(diào)用.四、STM32F439 G
9、PIO1. 重點掌握GPIO相關(guān)寄存器的定義方法及各個寄存器的主要功能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 時鐘樹1 追根溯源,ST
14、M32F439的時鐘源有哪4個?HSI 、HSE 、LSI 、LSESTM32F439時鐘樹中,系統(tǒng)時鐘SYSCLK的來源有三個,分別是:HSI、HSE和PLLCLK。系統(tǒng)時鐘SYSCLK的來源有哪些?HSI 、HSE通過設(shè)置哪個寄存器能對系統(tǒng)時鐘SYSCLK的來源進行選擇?RCC_CFGR主鎖相環(huán)PLL時鐘是否就緒通過哪個寄存器判斷?RCC_CR要把GPIOF的時鐘使能,需要設(shè)置哪個寄存器?RCC_AHB1ENR各個不同總線上時鐘的分頻參數(shù)通過哪個寄存器設(shè)置?RCC_PLLCFGR六、STM32F439的串口1. 異步串行通信時的數(shù)據(jù)格式 起始位 數(shù)據(jù)位(8位或9位) 奇偶校驗位(第9位)
15、停止位(1,1.5,2位) 波特率設(shè)置2. STM32F439的USART1是否能夠發(fā)送數(shù)據(jù)或是否收到數(shù)據(jù)可通過哪個寄存器判斷?USART_SR發(fā)送數(shù)據(jù)時需要把數(shù)據(jù)寫入哪個寄存器?USART_DR收到的數(shù)據(jù)通過讀取哪個寄存器得知?USART_SR3. 重點掌握串口初始化操作,初始化操作中相關(guān)寄存器的設(shè)置。七、CM4異常處理、NVIC、EXTI1. 哪些異常的優(yōu)先級不能編程配置?復(fù)位、NMI、硬fault當CM4處理器的一個異常或中斷被觸發(fā),硬件自動完成哪些工作?所有異常都在處理模式中操作。出現(xiàn)異常時,自動將處理器狀態(tài)保存到堆棧中,并在中斷服務(wù)程序(ISR)結(jié)束時自動從堆棧中恢復(fù)。在狀態(tài)保存的同
16、時取出向量快速地進入中斷。 異常進入當CM4處理器的一個異?;蛑袛啾挥|發(fā),硬件自動完成如工作:(1)CM4中斷控制器根據(jù)當前狀態(tài)和中斷的搶占級別來確定是響應(yīng)該中斷,還是先掛起,并更新相應(yīng)的寄存器狀態(tài)。(2)通過Dbus保存處理器狀態(tài),將下面的8個寄存器按順序保存入SP(MSP或PSP)指向的系統(tǒng)堆棧。(3)CM4通過Ibus從異常向量表取得對應(yīng)的中斷向量,并開始讀取ISR指令,這一步幾乎與壓棧同時進行。(4)CM4處理器更新到handler模式,SP切換到MSP,更新IPSR為新響應(yīng)的異常編號,更新PC,更新LR寄存器為EXC_RETURN。2. NVIC的寄存器ICTR(用于顯示NVIC支持
17、的中斷線數(shù)目)、NVIC_ISERn(設(shè)置中斷使能)、NVIC_ICERn(中斷使能清除)、NVIC_ISPRn(中斷掛起設(shè)置寄存器)、NVIC_ICPRn(中斷掛起清除寄存器)、NVIC_IPRn(中斷優(yōu)先級寄存器)、NVIC_AIRCR的主要用于什么設(shè)置?3. EXTI屏蔽某個中斷線的中斷請求需要設(shè)置哪個寄存器?EXTI_IMR中斷線觸發(fā)中斷的方式(上升沿、下降沿)需要設(shè)置的寄存器是?(EXTI_RTSR、EXYI_FTSR)8、 定時器部件通用定時器可以向上(遞增)計數(shù)、向下(遞減)計數(shù)、向上向下雙向(中心對齊)計數(shù)模式。1. 獨立看門狗的時鐘來源是?LSI結(jié)構(gòu)框圖與工作原理?在鍵值寄存
18、器(IWDG_KR)中寫入0xCCCC,開始啟用獨立看門狗。此時計數(shù)器開始從其復(fù)位值0xFFF遞減,當計數(shù)器值計數(shù)到尾值0x000時會產(chǎn)生一個復(fù)位信號(IWDG_RESET)。無論何時,只要在鍵值寄存器IWDG_KR中寫入0xAAAA(通常說的喂狗), 自動重裝載寄存器IWDG_RLR的值就會重新加載到計數(shù)器,從而避免看門狗復(fù)位。如果程序異常,就無法正常喂狗,從而系統(tǒng)復(fù)位。超時時間如何計算?如何喂狗、取消寫保護、啟動看門狗?Tout=(4*2prer)*(rlr+1)/32; /單位為毫秒Tout為看門狗溢出時間(單位為ms)prer為看門狗時鐘預(yù)分頻值(IWDG_PR PR2:0的值:0-7)4*2prer最大不超過256 rlr為看門狗的重裝載值(IWDG_RLR的值)低速內(nèi)部時鐘LSI=32 KHz M IWDG_KR=0xAAAA;/喂狗IWDG_KR =0x5555;IWDG_RLR=0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高效證明教育記錄可追溯性與合規(guī)性研究
- 多模態(tài)生物技術(shù)與行業(yè)深度融合展望
- 廣告制作過程中的團隊協(xié)作與項目管理技巧的分享
- 2025至2030中國脂肪酸乙氧基化物行業(yè)市場占有率及投資前景評估規(guī)劃報告
- 新時代藥物制劑技術(shù)的發(fā)展與應(yīng)用研究
- 2025至2030中國育亨賓行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國美藤果油行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國細胞培養(yǎng)基行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國線路板行業(yè)市場深度調(diào)研及發(fā)展前景與投資報告
- 人工智能在能源管理中的應(yīng)用
- 計算機組成原理(本全)白中英課件
- 2023中國專利獎申報實務(wù)
- 常見骨關(guān)節(jié)疾病的評定技術(shù)-肩關(guān)節(jié)周圍炎的評定技術(shù)(康復(fù)評定技術(shù)課件)
- 益海嘉里(盤錦)糧油工業(yè)有限公司稻殼鍋爐可研報告
- JGJ106-2014 建筑基樁檢測技術(shù)規(guī)范
- 太陽能熱水系統(tǒng)設(shè)計
- 醫(yī)務(wù)科崗前培訓(xùn)
- 共青團團課主題班會課件PPT模板PPT
- GB/T 8685-2008紡織品維護標簽規(guī)范符號法
- 合成氨行業(yè)發(fā)展現(xiàn)狀及趨勢分析
- 2022年徐聞縣(中小學(xué)、幼兒園)教師招聘筆試試題及答案解析
評論
0/150
提交評論