stm32 卡到b 這裡 STM32的儲存器結構

2021-10-14 08:09:02 字數 1202 閱讀 6874

看完這篇文章你會有什麼收穫?

1.理解什麼是記憶體和io統一編址

2.知道stm32的4g記憶體是如何使用的

3.理解變數和記憶體的關係

4.理解對齊編址的必要性

下面進入正文:

1.因為記憶體和io統一編址,所以你可以直接操控暫存器來讓io口工作,這是由硬體決定的。編址的工作由位址線來完成,stm32有32根位址線,故最多可定址4g的空間。

2.下面是4g記憶體空間的位址對映(好多空間用不到,保留)

程式儲存器、資料儲存器、暫存器和io埠被組織到乙個4g位元組的線性位址空間

可定址的儲存器空間被分成8個512兆的主塊

所有未被分配給片上儲存器或外設的儲存器區域被視為是保留的

3.變數和記憶體的關係

char(位元組型變數)a;

無論在哪個cpu都是分配固定8bit的位元組空間

假設起始記憶體位址為0x00008000,則a就佔0x00008000這乙個空間

如果是int b;

假設起始位址還是0x00000800,那麼b佔0x00000800;0x00000801;0x00000802;0x00000803這四個位址空間

沒錯,記憶體編址是以位元組為單位,這是個規定,在任何一款cpu上都是如此。

這裡的int(整型變數)也有必要說一下,它在不同的cpu上所佔的位址空間不同,例如在51上,就只有2位元組,其實它取決於cpu的位址線數!

4.對齊編址和非對齊編址

stm32是以4個位址為單位對齊編址的,如果選別的就為非對齊編址,因為只有4個位址為乙個單位剛好可以照顧到位址線,4×8=32嘛!如果不對齊編址,你定義乙個整形變數就不方便定址!這裡順便說一下,在32中盡量多定義整形變數這樣可以提高cpu的效率。不要擔心記憶體,你用不完的!

預熱2 什麼是STM32?認識STM32

1 什麼是stm32 stm32是由arm公司設計,意法半導體 st 公司生產的基於 arm cortex m 核心的32 位的mcu 系列。2 stm32能做什麼?stm32 屬於乙個微控制器,適用於控制類,自帶了各種常用通訊介面,比如 usart i2c spi 等,可接非常多的感測器,可以控制...

stm32晶元休眠模式 stm32實現待機喚醒

stm32的低功耗模式有3種 1 睡眠模式 cm3核心停止,外設仍然執行 2 停機模式 所有時鐘都停止 3 待機模式 1.8v核心電源關閉 進入待機模式的方法,以及設定wk up引腳用於把stm32從待機模式喚醒的方法 一般步驟如下 1 設定sleepdeep位 scb scr的第二位 2 使能電源...

STM32學習筆記(3) 什麼是STM32

既然已經做好了開發stm32的準備,軟體硬體都準備好了,那麼我們來了解一下何為stm32吧。stm32是意法半導體 st 設計的一系列32位晶元的名字,細分為l f h三個系列。f系列是最經典的系列。f系列的基礎晶元是f1系列,低廉,麻雀雖小五臟俱全,我做課程設計最喜歡用的就是stm32f103c8...