




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
關于存儲器與總線架構第1頁,講稿共37頁,2023年5月2日,星期三一、系統構架1、STM32系統包含的基本單元四個驅動單元:
Cortex-M3內核ICode總線(I-bus)、DCode總線(D-bus)和系統總線(S-bus),GP-DMA(通用DMA)三個被動單元: 內部SRAM,內部閃存FLASH存儲器,AHB到APB的橋(AHB2APBx),它連接所有的APB設備第2頁,講稿共37頁,2023年5月2日,星期三2、系統結構如下圖所示第3頁,講稿共37頁,2023年5月2日,星期三ICode總線:該總線將Cortex-M3內核的指令總線與Flash指令接口相連接,指令預取在此總線上完成。DCode總線:該總線將Cortex-M3內核的DCode總線與閃存存儲器的數據接口相連接(常量加載和調試訪問)。系統總線:此總線連接Cortex-M3內核的系統總線(外設總線)到總線矩陣,總線矩陣協調著內核和DMA間的訪問。DMA總線:此總線將DMA的AHB主控接口與總線矩陣相聯,總線矩陣協調著CPU的DCode和DMA到SRAM、閃存和外設的訪問。第4頁,講稿共37頁,2023年5月2日,星期三總線矩陣:此總線矩陣協調內核系統總線和DMA主控總線之間的訪問仲裁。此總線矩陣由3個驅動部件(CPU的DCode、系統總線和DMA總線)和3個被動部件(閃存存儲器接口、SRAM和AHB2APB橋)構成。
AHB外設通過總線矩陣與系統總線相連,允許DMA訪問。AHB/APB橋(APB):兩個AHB/APB橋在AHB和2個APB總線間提供同步連接。APB1操作速度限于36MHz,APB2工作在全速狀態(最高72MHz)。第5頁,講稿共37頁,2023年5月2日,星期三二、存儲器組織1、存儲器的組織方法程序存儲器、數據存儲器、寄存器和輸入輸出端口被組織在同一個4GB的線性地址空間內。數據字節以小端格式存放在存儲器中。一個字中最低地址字節被認為是該字的最低位字節,而最高地址字節是最高位字節。可訪問的存儲器空間被分成8個512MB的主要塊,其他所有沒有分配給片上存儲器和外設的存儲器空間都是保留的地址空間第6頁,講稿共37頁,2023年5月2日,星期三2、存儲器映像第7頁,講稿共37頁,2023年5月2日,星期三(續圖)第8頁,講稿共37頁,2023年5月2日,星期三3、外設存儲器映像
起始地址外設總線寄存器映像0x40022400-0x40023FFF保留0x40022000-0x400223FF閃存存儲器接口0x40021400-0x40021FFF保留AHB0x40021000-0x400213FF復位和時鐘控制0x40020400-0x40020FFF保留0x40020000-0x400203FFDMA第9頁,講稿共37頁,2023年5月2日,星期三0x40013C00-0x40013FFF保留0x40013800-0x40013BFFUSART10x40013400-0x400137FF保留0x40013000-0x400133FFSPI10x40012C00-0x40012FFFTIM1時鐘0x40012800-0x40012BFFADC2APB10x40012400-0x400127FFADC10x40012000-0x40011FFF保留0x40011800-0x40011BFFGPIO端口E0x40011400-0x400117FFGPIO端口D0x40011000-0x400113FFGPIO端口C0X40010C00-0x40010FFFGPIO端口B第10頁,講稿共37頁,2023年5月2日,星期三0x40010800-0x40010BFFGPIO端口A0x40010400-0x400107FFEXTI0x40010000-0x400103FFAFIO
0x40008000-0x400077FF保留0x40007000-0x400073FF電源控制0x40006C00-0x40006FFF后備寄存器(BKP)APB10x40006800-0x40006BFF保留0x40006400-0x400067FFbxCAN0x40006000-0x400063FFUSB的SRAM256x16位0x40005C00-0x40005FFFUSB寄存器0x40005800-0x40005BFFI2C20x40005400-0x400057FFI2C1第11頁,講稿共37頁,2023年5月2日,星期三0x40005000-0x40004FFF保留0x40004800-0x40004BFFUSART30x40004400-0x400047FFUSART20x40004000-0x40003FFF保留0x40003800-0x40003BFFSPI20x40003400-0x400037FF保留APB10x40003000-0x400033FF獨立看門狗(IWDG)0x40002C00-0x40002FFF窗口看門狗(WWDG)0x40002800-0x40002BFFRTC0x40002400-0x40000FFF保留0x40000800-0x40000BFFTIM4定時器0x40000400-0x400007FFTIM3定時器0x40000000-0x400003FFTIM2定時器第12頁,講稿共37頁,2023年5月2日,星期三4、STM32F10X中各接口部件中的寄存器
STM32F103系列微控制器嵌入的各種接口部件都有三大類寄存器:控制寄存器、數據寄存器和狀態寄存器,每一類寄存器都包含了多個寄存器,它們在相同的基地址下具有不同的偏移地址。例:TIM2定時器的基地址是:0x40000000
控制寄存器1的偏移地址是:00H
控制寄存器2的偏移地址是:04H
從模式控制寄存器的偏移地址是:08HDMA/中斷使能寄存器的偏移地址是:0CH等第13頁,講稿共37頁,2023年5月2日,星期三由上表述可得到它們的物理地址是:控制寄存器1的物理地址是:0x40000000
控制寄存器2的物理地址是:0x40000004
從模式控制寄存器的物理地址是:
0x40000008DMA/中斷使能寄存器的物理地址是:
0x4000000C等因此對這些寄存器的操作實際上就是對其物理地址中內容的操作第14頁,講稿共37頁,2023年5月2日,星期三5、嵌入式SRAM
STM32F10x內置20K字節的靜態SRAM,它可以以字節、半字(16位)或全字(32位)訪問,SRAM的起始地址是0x20000000第15頁,講稿共37頁,2023年5月2日,星期三6、嵌入式閃存高性能的閃存模塊有以下的主要特性:128K字節閃存擦寫次數:100萬次存儲器結構:閃存存儲器有主存儲塊和信息塊組成(1)主存儲塊為16Kx64位,每個主存儲塊又劃分為128個1K字節的頁。(2)信息塊為320x64位,每個信息塊又劃分為一個2K字節和一個0.5K字節的頁第16頁,講稿共37頁,2023年5月2日,星期三三、啟動配置啟動模式選擇管腳啟動模式說明BOOT1BOOT0x0用戶Flash用戶閃存被選為啟動區域01系統存儲器系統存儲器被選為啟動區域11內嵌SRAM內嵌SRAM被選為啟動區域
在STM32F10x里,可以通過BOOT[1:0]引腳選擇三種不同啟動模式第17頁,講稿共37頁,2023年5月2日,星期三四、STM32F10X提供的固件庫
固件庫包括了程序、數據結構和覆蓋所有外部特性的宏單元,還包括設備驅動的描述以及每個外圍模塊的實例。為了方便用戶的編程,STM32F10X對接口部件中寄存器的操作轉變成了對固件庫的操作。即只要調用固件庫中的相關函數,就可以完成對接口寄存器的操作。
STM32F10X中固件庫中的函數是以接口部件來分類的。第18頁,講稿共37頁,2023年5月2日,星期三1、STM32固件庫的定義規則STM32固件庫中使用的縮寫詞:縮寫外圍模塊/單元縮寫外圍模塊/單元ADC模/數轉換PWR電源控制BKP備份寄存器RCC復位和時鐘控制CAN控制器區域網絡RTC實時時鐘DMA直接存儲器存取控制SPI串行外圍接口EXTI外部中斷控制器SysTick系統tick定時器FLASHFlash存儲器TIM通用定時器GPIO通用I/OTIM1先進的控制定時器I2CI2C接口USART通用同步異步接收傳送器IWDG獨立看門狗WWDG窗口看門狗NVIC嵌套向量中斷控制器第19頁,講稿共37頁,2023年5月2日,星期三(1)固件庫的命名規則
PPP表示外圍模塊的縮寫系統文件名和源/頭文件名以“stm32f10x_”的形式表示,例如stm32f10x_conf.h。在單一文件中使用的常量在該文件中定義,在多個文件中使用的常量定義在頭文件中,所有的常量以大寫字母表示。寄存器當作常量看待。同樣以大寫字母表示。第20頁,講稿共37頁,2023年5月2日,星期三
外圍模塊功能函數的名字需要有相應的外圍模塊縮寫加下劃線這樣的前綴。每個單詞的首寫字符需要大寫。例SPI_SendData
使用PPP_InitTypeDef中指定的參數初始化PPP外圍模塊的函數,被命名為PPP_Init。復位PPP外圍模塊寄存器為默認值的函數,命名為PPP_DeInit。將PPP_InitTypeDef結構體中的每個成員設置為復位值的函數,命名為PPP_StructInit。第21頁,講稿共37頁,2023年5月2日,星期三
用來使能或禁止指定的PPP外圍模塊的函數,命名為PPP_Cmd
用來使能或禁止指定的PPP外圍模塊的某個中斷資源的函數,命名為PPP_ITConfig
用來使能或禁止指定的PPP外圍模塊的DMA接口的函數,被命名為PPP_DMAConfig。用來設置某個外圍模塊的函數,總是以“Config”結尾。第22頁,講稿共37頁,2023年5月2日,星期三
用來檢測指定PPP的標志是否被置位或清0的函數,命名為PPP_GetFlagStatus。用來清除某個PPP的標志的函數,命名為PPP_ClearFlag
用來檢驗指定PPP的中斷是否發生的函數,命名為PPP_GetITPendingBit
用來清除某個PPP中斷掛起位的函數,命名為PPP_ClearITPendingBit第23頁,講稿共37頁,2023年5月2日,星期三(2)代碼標準變量定義了18個變量類型,在頭文件stm32f10x_type.h中
Typedefsignedlongs32;
Typedefsignedshorts16;
Typedefsignedchars8;
Typedefvolatilesignedlongv32;
Typedefvolatilesignedshortv16;
Typedefvolatilesignedcharv8;
Typedefunsignedlongu32;
Typedefunsignedshortu16;
Typedefunsignedcharu8;第24頁,講稿共37頁,2023年5月2日,星期三 Typedefunsignedlongconstuc32;
Typedefunsignedshortconstuc16;
Typedefunsignedcharconstuc8;
Typedefvolatileunsignedlongvu32;
Typedefvolatileunsignedshortvu16;
Typedefvolatileunsignedcharvu8;
Typedefvolatileunsignedlongconstvuc32;
Typedefvolatileunsignedshortconstvuc16;
Typedefvolatileunsignedcharconstvuc8;第25頁,講稿共37頁,2023年5月2日,星期三
布爾(bool)類型布爾類型在頭文件stm32f10x_type.h中定義Typedefenum{ FALSE=0,
TRUE=!FALSE}bool;
標志狀態(FunctionlState)類型標志狀態類型在頭文件stm32f10x_type.h中定義Typedefenum{ RESET=0,
SET=!RESET}FlagStatus;第26頁,講稿共37頁,2023年5月2日,星期三
功能狀態(FunctionlState)類型功能狀態類型在頭文件stm32f10x_type.h中定義Typedefenum{ DISABLE=0,
ENABLE=!DISABLE}FunctionlState;
錯誤狀態(FunctionlState)類型錯誤狀態類型在頭文件stm32f10x_type.h中定義Typedefenum{ ERROR=0,
SUCCESS=!ERROR}ErrorStatus;第27頁,講稿共37頁,2023年5月2日,星期三(3)外圍模塊指向外圍模塊的指針,用來訪問外圍模塊控制寄存器。外圍模塊控制寄存器結構stm32f10x_map.h包含了所有外圍模塊結構的定義。下面是一個SPI寄存器結構的聲明Typedefstruct{ vu16 CR1 /*SPI控制寄存器1*/ u16 RESERVED0/*保留0*/ vu16 CR2 /*SPI控制寄存器2*/ u16 RESERVED1/*保留1*/第28頁,講稿共37頁,2023年5月2日,星期三 vu16 SR /*SPI狀態寄存器*/ u16 RESERVED2 /*保留2*/ vu16 DR /*SPI數據寄存器*/ u16 RESERVED3 /*保留3*/ vu16 CRCPR /*SPICRC多項式寄存器*/ u16 RESERVED4 /*保留4*/ vu16 RXCRCR /*SPIRxCRC寄存器*/ u16 RESERVED5 /*保留5*/ vu16 TXCRCR /*SPITxCRC寄存器*/ u16 RESERVED6 /*保留6*/}SPI_TypeDef
每個外圍模塊的寄存器名是該寄存器的縮寫,用大寫表示。RESERVEDi(i是正數,作為保留域的下標)表示保留域。第29頁,講稿共37頁,2023年5月2日,星期三
外圍模塊聲明所有外圍模塊在stm32f10x_map.h中聲明。下面給出了SPI外圍模塊的聲明#ifndefEXT#DefineEXTextern#endif ┅#definePERIPH_BASE ((u32)0x40000000)#defineAPB1PERIPH_BASE PERIPH_BASE#defineAPB2PERIPH_BASE (PERIPH_BASE+0x10000) ┅/*SPI2基地址的定義*/#defineSPI2_BASE (APB1PERIPH_BASE+0x3800) ┅第30頁,講稿共37頁,2023年5月2日,星期三/*SPI2外圍聲明*/#ifndefDEBUG ┅#ifdef_SPI2#defineSPI2 ((SPI_TypeDef*)SPI2_BASE)
#endif /*_SPI2*/
┅#else /*DEBUG*/ ┅#ifdef_SPI2EXTSPI_TypeDef *SPI2#endif /*_SPI2*/ ┅#endif /*DEBUG*/第31頁,講稿共37頁,2023年5月2日,星期三說明:(1)定義標簽_SPI,用來在應用程序中引入SPI外圍模塊庫(_SPI標簽定義在stm32f10x_conf.h中)。(2)定義label_SPIn,用來訪問SPIn的外圍寄存器(_SPIn標簽定義在stm32f10x_conf.h中)。(3)為了進入調試模式,用戶必須在頭文件stm32f10x_conf.h中定義標簽DEBUG。這樣就構成了一個指向SRAM中外圍模塊結構體的指針,從而使調試變的簡單,并且所有寄存器的設置可以通過轉儲一個外圍變量來實現。第32頁,講稿共37頁,2023年5月2日,星期三2、STM32固件庫的層次結構(1)示例(Examples)文件夾Examples包含每個外設模塊的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國橫魚項目創業計劃書
- 中國APM項目創業計劃書
- 中國認證檢驗檢測項目創業計劃書
- 中國可見光人臉識別項目創業計劃書
- 中國金針菇項目創業計劃書
- 中國計算機工程項目創業計劃書
- 中國光通信交換設備項目創業計劃書
- 2025《混凝土攪拌站勞動合同》
- 中國電子體溫計項目創業計劃書
- 場景詳盡電子商務代理協議書
- 護理文件書寫導致的糾紛
- 基于機器學習的糖尿病早期診斷模型及可解釋分析
- 路面硬化施工方案
- 學前教育安全標志課件
- 環境污染和生態破壞事故應急預案樣本(2篇)
- 中北大學炸藥理論復習
- T-UNP 149-2024 裝配式建筑工程施工現場安全管理規范
- 鐵路貨物運價規則
- 《工逆向工程與增材制造》課件-19. Geomagic Design X 實體建模方法
- 醫療廢物管理的相關法律法規
- 腦機接口課件
評論
0/150
提交評論