STM32筆記-系統架構

ICode 中的 I 表示 Instruction,即指令。我們寫好的程序編譯之後都是一條條指令,存
放在 FLASH 中,內核要讀取這些指令來執行程序就必須通過 ICode 總線,它幾乎每時每刻
都需要被使用,它是專門用來取指的。

DCode 中的 D 表示 Data,即數據,那說明這條總線是用來取數的。我們在寫程序的時
候,數據有常量和變量兩種,常量就是固定不變的,用 C 語言中的 const 關鍵字修飾,是
放到內部的 FLASH 當中的,變量是可變的,不管是全局變量還是局部變量都放在內部的
SRAM。因爲數據可以被 Dcode 總線和 DMA 總線訪問,所以爲了避免訪問衝突,在取數
的時候需要經過一個總線矩陣來仲裁,決定哪個總線在取數。

內部的閃存存儲器即 FLASH,我們編寫好的程序就放在這個地方。內核通過 ICode 總
線來取裏面的指令。

內部的 SRAM,即我們通常說的 RAM,程序的變量,堆棧等的開銷都是基於內部的
SRAM。內核通過 DCode 總線來訪問它。

FSMC 的英文全稱是 Flexible static memory controller,叫靈活的靜態的存儲器控制器,
是 STM32F10xx 中一個很有特色的外設,通過 FSMC,我們可以擴展內存,如外部的
SRAM, NANDFLASH 和 NORFLASH。但有一點我們要注意的是, FSMC 只能擴展靜態的
內存,即名稱裏面的 S: static,不能是動態的內存,比如 SDRAM 就不能擴展。 

AHB 到 APB 的橋
從 AHB 總線延伸出來的兩條 APB2 和 APB1 總線,上面掛載着 STM32 各種各樣的特
色外設。我們經常說的 GPIO、串口、 I2C、 SPI 這些外設就掛載在這兩條總線上,這個是
我們學習 STM32 的重點,就是要學會編程這些外設去驅動外部的各種設備。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章