




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第4章指令集和時鐘書目4.1Thumb-2指令集介紹4.2指令格式4.3Cortex-M3時鐘限制書目4.1Thumb-2指令集介紹4.2指令格式4.3Cortex-M3時鐘限制4.1Thumb-2指令集介紹Cortex-M3處理器支持Thumb-2指令集,與接受傳統的Thumb指令集的ARM7相比,避開了ARM狀態與Thumb狀態來回切換所帶來的額外開銷,全部工作都可以在單一的Thumb狀態下進行處理,包括中斷異樣處理。Cortex-M3處理器支持的Thumb-2指令集基于精簡指令集計算機(RISC)原理設計,是16位Thumb指令集的一個超集,同時支持16位和32位指令,指令集和相關譯碼機制較為簡潔,在確定程度上降低了軟件開發難度。ARM與Thumb指令集的關系:Thumb指令集是ARM指令集的壓縮子集Thumb指令集(16位)ARM指令集(32位)Thumb與Thumb-2和Cortex-M3指令集的關系Cortex-M3指令集(16位和32位)Thumb指令集(16位)Thumb-2指令集(16位和32位)書目4.1Thumb-2指令集介紹4.2指令格式4.3Cortex-M3時鐘限制4.2指令格式具體的ARM、Thumb和Cortex-M3指令見word文檔《指令集》大多數工程應用運用C語言進行開發,很少運用匯編語言,只要或許了解匯編指令即可。匯編語言用于閱讀和編寫啟動代碼,操作系統移植、C與匯編混合編程等場合。ARM數值處理指令的格式:<opcode>{<cond>}{S}<Rd>,<Rn>{,<operand2>}其中<>號內的項是必需的,{}號內的項是可選的。各項的說明如下:opcode:操作碼,指令助記符,如LDR、MOV等;cond:執行條件,如EQ,HI等,共4位,對應15種條件(1111系統保留);S:是否影響CPSR寄存器的值;但當目的寄存器為PC時,S后綴表示將SPSR的內容復原到CPSR中,此種用法多用于異樣處理返回。Rd:目標寄存器;Rn:第1個操作數的寄存器;operand2:第2個操作數;舉例:ADDSR0,R1,R2,LSL#3;R0=R1+R2*8,影響條件標記位STM32啟動代碼閱讀示例“startup_stm32f10x_hd.s”書目4.1Thumb-2指令集介紹4.2指令格式4.3Cortex-M3時鐘限制4.3Cortex-M3時鐘限制1.STM32時鐘系統概述1)系統時鐘源有3種來源:HSI(內部高速RC時鐘)8MHzHSE(外接高速時鐘)4~16MHz,典型值8MHzPLL(鎖相環時鐘)最大72MHz若未進行時鐘設置,系統時鐘默認運用HSI8MHz時鐘。還有以下2種二級時鐘源:40kHz低速內部RCLSI,可以用于驅動獨立看門狗和通過程序選擇驅動RTC。RTC用于從停機/待機模式下自動喚醒系統。32.768kHz低速外部晶體LSE,也可用來通過程序選擇驅動RTC(RTCCLK)。當不被運用時,任一個時鐘源都可被獨立地啟動或關閉,由此優化系統功耗。STM32時鐘樹參考《STM32中文參考手冊V10》P562)總線時鐘HCLK(高速時鐘,AHB時鐘)最大72MHzFCLK(自由時鐘,Cortex自由運行時鐘)最大72MHzPCLK1(APB1時鐘,低速APB時鐘)最大36MHzPCLK2(APB2時鐘,高速APB時鐘)最大72MHz3)各外設運用的時鐘系統時鐘定時器STK:可設置為HCLK或HCLK的8分頻ADC:PCLK2(APB2時鐘)經2/4/6/8分頻定時器:可設置為與所在APB總線時鐘一樣或是2倍RTC:可運用LSE(32.768kHz外部低速時鐘)、HSE/128或LSIIIS:系統時鐘SYSCLK獨立看門狗:LSI(40KHz低速內部時鐘)時鐘USB:PLLCLK的1/1.5分頻得到的48MHz時鐘…4)系統時鐘(SYSCLK)選擇系統復位后,HSI振蕩器被選為系統時鐘。當時鐘源被干脆或通過PLL間接作為系統時鐘時,它將不能被停止。只有當目標時鐘源準備就緒了(經過啟動穩定階段的延遲或PLL穩定),從一個時鐘源到另一個時鐘源的切換才會發生。在被選擇時鐘源沒有就緒時,系統時鐘的切換不會發生。直至目標時鐘源就緒,才發生切換。在時鐘限制寄存器(RCC_CR)里的狀態位指示哪個時鐘已經準備好了,哪個時鐘目前被用作系統時鐘。當HSI被用于作為PLL時鐘的輸入時,系統時鐘能得到的最大頻率是64MHz。5)時鐘輸出微限制器允許輸出時鐘信號到外部MCO引腳。相應的GPIO端口寄存器必需被配置為相應功能。以下四個時鐘信號可被選作MCO時鐘:●SYSCLK●HSI●HSE●PLLCLK時鐘限制寄存器RCC_CR時鐘配置寄存器RCC_CFGRAPB2外設復位寄存器RCC_APB2RSTRAPB1外設復位寄存器RCC_APB1RSTRAHB外設時鐘使能寄存器RCC_AHBENRAPB2外設時鐘使能寄存器RCC_APB2ENRAPB1外設時鐘使能寄存器RCC_APB1ENR另外3個寄存器(時鐘中斷寄存器RCC_CIR、備份域限制寄存器RCC_BDCR、限制/狀態寄存器RCC_CSR)不常用,詳見《STM32中文參考手冊V10》第6章復位和時鐘限制2.時鐘系統相關寄存器3.時鐘系統編程示例復位后系統時鐘默認運用8MHzHSI,若要設置運用HSE經PLL倍頻輸出72MHz,則時鐘系統設置的一般步驟如下:1)復位時鐘2)打開外部高速時鐘HSE(RCC_CR)3)等待外部高速時鐘HSE就緒(RCC_CR)4)設置PLL倍頻系數和總線預分頻系數(RCC_CFGR)5)選擇PLL源(RCC_CFGR)6)使能PLL(RCC_CR)7)等待PLL鎖定(RCC_CR)8)選擇PLL輸出為系統時鐘(RCC_CFGR)9)等待PLL輸出為系統時鐘成功(RCC_CR)10)打開各外設時鐘(RCC_AHBENR、RCC_APB2ENR、RCC_APB1ENR)本STM32開發平臺運用8MHz外部時鐘,經PLL倍頻(9倍)后系統時鐘SysCLK=72MHz,FCLK=HCLK=72MHz,PCLK1=36MHz,PCLK2=72MHz。RCC->APB1RSTR=0x00000000;//復位結束 RCC->APB2RSTR=0x00000000; RCC->AHBENR=0x00000014;//睡眠模式閃存和SRAM時鐘使能.其他關閉.RCC->APB2ENR=0x00000000;//外設時鐘關閉. RCC->APB1ENR=0x00000000;RCC->CR|=0x00000001;//使能內部高速時鐘HSION RCC->CFGR&=0xF8FF0000;//復位SW[1:0],HPRE[3:0],PPRE1[2:0],PPRE2[2:0],ADCPRE[1:0],MCO[2:0]RCC->CR&=0xFEF6FFFF;//復位HSEON,CSSON,PLLONRCC->CR&=0xFFFBFFFF;//復位HSEBYP RCC->CFGR&=0xFF80FFFF;//復位PLLSRC,PLLXTPRE,PLLMUL[3:0]andUSBPRERCC->CIR=0x00000000;//關閉全部中斷//以上代碼確保RCC復位,可省略RCC->CR|=0x00010000;//外部高速時鐘使能HSEONwhile(!(RCC->CR>>17));//等待外部時鐘就緒RCC->CFGR=0X00000400;//APB1=DIV2;APB2=DIV1;AHB=DIV1;RCC->CFGR|=7<<18;//設置PLL值2~16,111B表示9倍RCC->CFGR|=1<<16; //PLLSRCONFLASH->ACR|=0x32; //FLASH2個延時周期 RCC->CR|=0x01000000;//PLLONwhile(!(RCC->CR>>25));//等待PLL鎖定RCC->CFGR|=0x00000002;//PLL作為系統時鐘 while(temp!=0x02)//等待PLL作為系統時鐘設置成功{ temp=RCC->CFGR>>2; temp&=0x03;}RCC->APB2ENR|=(1<<0);//使能AFIO時鐘RCC->APB2ENR|=(1<<2);//使能PORTA時鐘RCC->APB2ENR|=(1<<3);//使能PORTB時鐘RCC->APB2ENR|=(1<<4);//使能PORTC時鐘RCC->APB2ENR|=(1<<5);//使能PORTD時鐘 RCC->APB2ENR|=(1<<6);//使能PORTE時鐘RCC->APB2ENR|=(1<<7);//使能PORTF時鐘RCC->APB2ENR|=(1<<8);//使能PORTG時鐘閱讀提示:#define__IOvolatiletypedefunsignedintuint32_t;typedefstruct{ __IOuint32_tCR; __IOuint32_tCFGR; __IOuint32_tCIR; __IOuint32_tAPB2RSTR; __IOuint32_tAPB1RSTR; __IOuint32_tAHBENR; __IOuint32_tAPB2ENR; __IOuint32_tAPB1ENR; __IOuint32_tBDCR; __IOuint32_tCSR; uint32_tRE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鋁行業安全培訓課件
- 地方海事培訓課件模板
- 注冊環評培訓課件
- 如何制造培訓
- 足浴會所禮儀培訓
- 老年內科診療要點與健康管理
- 白酒測評達人培訓課件
- 員工手冊培訓計劃及方案
- 提升新零售資金管理效率的實戰方法
- 招聘渠道選擇與優化
- 2024-2025學年江蘇省揚州市江都區高一上學期期中考試英語試題(解析版)
- 音樂欣賞:貝多芬第九交響曲音樂課教案
- 2025年小學語文知識考核試題及答案
- 地生結業考試試題及答案
- 2025教育機構教師勞動合同模板
- 學校檔口租賃合同提點模式協議書
- 工商業光伏技術方案
- 2025年中國便攜式氣體檢測儀行業市場規模調研及投資前景研究分析報告
- Unit 8 Once upon a Time Section A 1a-1e Pronunciation 課件 2024-2025學年英語人教版7年級下冊
- 2025國家開放大學《人文英語1》綜合測試形考任務答案
- 2024北京海淀區三年級(下)期末英語試題及答案
評論
0/150
提交評論