版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
STM32存儲器映射STM32存儲器映射認識Cortex-M3存儲器Cortex-M3存儲器與STM32存儲器之間的關系STM32采用的是Cortex-M3內核(又稱為CM3內核),Cortex-M3內核是通過ICode、DCode、System總線與STM32內部的Flash、SROM相連接的,這種連接方式就直接關系到STM32存儲器的結構組織。換句話說,Cortex-M3定義了一個存儲器結構,ST公司是按照Cortex-M3的存儲器定義,設計出了自己的存儲器結構,ST公司的STM32的存儲器結構必須按照Cortex-M3定義的存儲器結構來進行設計。STM32存儲器映射認識Cortex-M3存儲器Cortex-M3存儲器Cortex-M3是32位的內核其PC指針可以指向232=4GB的0x0000_0000~0xFFFF_FFFF地址空間。Cortex-M3存儲器是把程序存儲器、數據存儲器、寄存器、輸入輸出端口等組織在這個4GB空間的不同區域,這些區域是被明確的劃分了。Cortex-M3存儲器具有以下特點:Cortex-M3存儲器映射是預定義的,并且還規定好了哪個位置使用哪條總線;Cortex-M3存儲器系統支持“位帶(bit‐band)操作”。通過位帶操作,實現了對單一bit位的操作。位帶操作僅適用于一些特殊的存儲器區域中;Cortex-M3存儲器支持非對齊訪問和互斥訪問;Cortex-M3存儲器支持小端模式和大端模式。STM32存儲器映射Cortex-M3存儲器映射存儲器映射是指把芯片中或芯片外的FLASH、RAM以及外設等進行了統一編址,即用地址來表示對象。這個地址絕大多數是由廠家規定好的,用戶只能用而不能改。用戶只能在接有外部RAM或FLASH的情況下可進行自定義。Cortex-M3存儲器映射實現由于Cortex-M3對設備的地址進行了重新的映射,當訪問存儲器或外設時,都是按照映射后的地址進行訪問的。Cortex-M3存儲器的4G地址空間被劃分為大小相等的8塊區域(是粗線條的),每塊區域大小為512M。主要包括代碼、SRAM、外設、外部RAM、外部設備、專用外設總線-內部、專用外設總線-外部、特定廠商等。Cortex-M3存儲器映射結構。只要芯片制造商按照Cortex-M3存儲器的結構,進行各自芯片的存儲器結構設計,就允許芯片制造商靈活的分配存儲器空間,以制造出各具特色的基于Cortex-M3的芯片。STM32存儲器映射Cortex-M3存儲器映射Cortex-M3存儲器映射區域分析代碼區(0x0000_0000~0x1FFF_FFFF)程序可以在代碼區、內部SRAM區以及外部RAM區中執行,通常是把程序放到代碼區,從而使取指和數據訪問各自使用自己的總線(指令總線與數據總線是分開的)。SRAM區(0x2000_0000~0x3FFF_FFFF)這個區域用于片內SRAM,是用于讓芯片制造商連接片上的SRAM,這個區通過系統總線來訪問。在SRAM區的底部,還有一個1MB的位帶區,這個位帶區還有一個對應的32MB的“位帶別名(alias)區”。也就是說,位帶別名區里面的每個字對應位帶區的一個bit位,每個位變量是32位(既1個字4個字節)。位帶操作只適用于數據訪問,不適用于取指。通過位帶的功能,我們訪問一個bit位,可以從位帶別名區中,像訪問普通內存一樣操作。STM32存儲器映射Cortex-M3存儲器映射Cortex-M3存儲器映射區域分析片上外設區(0x4000_0000~0x5FFF_FFFF)這個區域是用于片上外設寄存器的,不能在這個區域執行指令。在這個區域的底部,也有一個1MB的位帶區,并有一個與其對應的32MB的位帶別名區,用于快捷訪問外設寄存器。外部RAM區(0x6000_0000~0x9FFF_FFFF)這個區域大小是1GB,是用于連接外部RAM的,在這個區域劃分為外部RAM區的前半段和外部RAM區的后半段2部分,每部分大小是512MB。外部RAM區的前半段(0x6000_0000~0x7FFF_FFFF)。這個區域用于片外RAM,可以緩存,并且可以執行指令。外部RAM區的后半段(0x8000_0000~0x9FFF_FFFF)。這個區域除了不可以緩存外,其他與前半段相同。STM32存儲器映射Cortex-M3存儲器映射Cortex-M3存儲器映射區域分析外部外設區(0xA000_0000~0xDFFF_FFFF)這個區域大小是1GB,是用于連接外部設備的,在這個區域劃分為外部外設區的前半段和外部外設區的后半段2部分,每部分大小是512MB。外部RAM區和外部外設區之間的區別是:外部RAM區允許執行指令,而外部設備區是不允許執行指令的。系統區(0xE000_0000~0xFFFF_FFFF)這個區域是專用外設和供應商指定功能區域,這個區域是不能執行代碼的。系統區主要包括Cortex-M3內核的系統級組件、內部專用外設總線、外部專用外設總線,以及由提供者定義的系統外設。外部專用外設總線有AHB外設總線和APB外設總線。AHB外設總線只用于Cortex-M3內部的AHB外設;APB外設總線既用于Cortex-M3內部的APB設備,也用于外部設備(“外部”是對內核而言)。STM32存儲器映射STM32存儲器映射前面介紹的Cortex-M3存儲器映射,只是一個粗線條的模板。下面我們就針對ST公司的STM32存儲器,來介紹STM32存儲器映射。Cortex-M3存儲器與STM32存儲器映射對比通過Cortex-M3存儲器與STM32存儲器映射對比,可以看出他們是很相似,不同的是STM32加入了很多實際的東西,如:Flash、SRAM等。只有加入了這些東西,才能成為可以工作的STM32芯片。STM32存儲器映射STM32存儲器的地址空間被劃分為大小相等的8塊區域,其中:Peripherals是外設的存儲器映射,對該區域操作,既對相應外設進行操作;SRAM是運行時臨時存放代碼的地方;Flash是存放代碼的地方;SystemMemory是STM32出廠時自帶的,只能使用,不能寫或擦除;OptionBytes是可以按照用戶的需要進行配置。【技能訓練3-2】編寫外部設備文件在任務6的數碼管靜態顯示中,主文件smgxs.c內容太多,沒有條理,如何解決呢?這是由于數碼管外部設備的初始化以及其它相關代碼,都寫在主文件中了。可以把外部設備分類單獨寫一個文件,這樣就可以對數碼管靜態顯示的代碼進行優化了。把延時函數和數碼管都分開單獨寫一個文件和頭文件,并保存在其對應的子目錄里,使得數碼管循環顯示0~20的主文件變得簡潔明了,還具有規范性和可讀性。編寫外部設備文件的代碼,見源程序。任務7數碼管動態掃描顯示設計與實現目標完成STM32的數碼管動態掃描顯示電路設計和程序的設計、運行及調試。任務要求采用數碼管動態掃描方式,使用STM32F103R6芯片和6個共陰極LED數碼管,通過數碼管動態掃描程序實現6個數碼管顯示“654321”。任務7數碼管動態掃描顯示設計與實現數碼管動態掃描顯示電路設計根據任務要求,數碼管動態掃描顯示電路是由STM32F103R6、6位數碼管和一片74LS245
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 贛州市面向大學生鄉村醫生專項計劃招聘筆試真題2025
- 玉溪市消防救援局招聘政府專職消防隊員筆試真題2025
- 《社群營銷與運營》試卷及答案 共4套
- 2026 年暴雨天氣農村低洼地帶安全防范
- 2026 年高中秋季開學第一課實驗室安全操作規范教育班會
- 2026年中西醫結合科慢性病中西醫聯合護理
- 某水泥廠員工考勤準則
- 2026學年人教PEP版三年級英語下冊基礎默寫卷
- 冶金企業節能制度
- 【人教54】八上數學期末卷29【8上全冊】
- 2026年審計(內部審計)試題及答案
- 2026年廣西高考物理真題含答案
- 2026年新疆事業單位招聘考試《職業能力傾向測驗》真題
- 2026年新疆中考語文卷試題真題及答案詳解(精校打印)
- 消化內科炎癥性腸病診療指南技術操作規范
- 采煤工作面技術管理培訓課件
- 2026國有企業管理崗競聘筆試題及答案
- 2026年高考全國1卷語文高考真題含答案
- 2026年廣東省危險廢物處理行業分析報告及未來發展趨勢報告
- 2026云南曲靖經濟技術開發區綜合保障局招聘城鎮公益性崗位人員3人考試參考題庫及答案解析
- 重大事故隱患整改報告的模板
評論
0/150
提交評論