一、有關CCM訪問地址的話題
有用過STM32F4系列部分芯片或STM32F334芯片的人,可能知道片內有個CCM【Core Coupled Memory】區域,從芯片系統框圖結合文字說明,可以清晰知道這個區域僅能被CPU訪問,常用來存放些對執行效率敏感的關鍵性的代碼或數據。也就是說對于這兩個系列的CCM區域,DMA是訪問不了的。
下面截圖分別來自STM32F42X/STM32F43X器件和STM32F334器件的參考手冊。
到了STM32G4系列,里面依然也有CCM這個區域。見下面STM32G4系統框架圖。
從框架圖上看,這個CCM區域不僅可以被CPU訪問,也可以被DMA訪問。關于它的起始地址也有相關描述:
從上面描述來看,CCM的地址起始于0x1000 0000和SRAM2結尾的地方。至于SRAM2結尾的地址還跟STM32G4具體的子系列或型號有關,見下面截圖資料:
那么這兩個地址空間怎么用,或者說區別是什么呢?
當為了充分發揮CPU對這塊區域的訪問效能時就使用0x1000 0000開始的地址空間,此時CPU通過ICode總線訪問這個區域。這塊地址空間DMA是訪問不了的,屬CPU專訪區。
若希望DMA訪問這塊物理區域,DMA要通過總線矩陣來訪問,所用的空間則是0x20005800或0x20018000(視具體系列而定)開始的一段地址。此時,這個CCM區域在DMA眼里,不過是SRAM2區域延伸出來的一塊別名區。當我們試圖讓DMA訪問這個區域時,地址別給錯了,不要使用CPU的專用地址,而要給0x20005800或0x20018000開始的地址。
也就是說同一個物理空間,不同的主體通過走不同的地址路線而實現不同的訪問、執行性能。這樣的設計更具靈活性,以滿足五彩斑斕的實際應用需求。就像我們要到達某個地方完成某事,有人走正門,有人走側門,甚至有人飛檐走壁,各用所便,各盡所能,各取所需。
當然,G4系列的CCM除了上面因訪問主體不同采樣不同地址空間的靈活特性外,還加強了很多安全特性,比方奇偶校驗、讀寫保護等,有興趣可以進一步閱讀相關參考手冊。
二、有關位帶操作的話題
有人問起STM32G4系列是否支持位帶操作方面的相關話題。
要問STM32某個系列是否支持位帶操作,首先得看看相關STM32系列所用ARM內核是否支持位帶操作。如果內核本身就不支持位帶功能,STM32是不會支持該功能的。反之,如果相關ARM核支持位帶操作,基于該核的STM32系列一般都會支持位帶操作,而且在相關STM32參考手冊里一定會明確說明。【其實,第三方芯片設計者在基于ARM核設計、集成芯片時,對于內核的部分功能或者核外設是有取舍權的。】
具體到STM32G4系列芯片,它屬于cortex M4核,該核內置位帶功能,STM32G4芯片也集成了該功能,在STM32G4參考手冊上也有明確描述。【下圖截取于STM32G4參考手冊】
這里的位帶區特指一段片內SRAM空間和外設寄存器空間。位帶區的SRAM里的每一位或外設寄存器的每一位都可以通過訪問相應的另外一段地址空間的一個字實現讀寫操作,這個另外一段地址空間就稱之為位帶區的別名區。
不過,在STM32參考手冊里,針對位帶操作的介紹相對比較簡單,主要是因為ARM內核相關手冊有較為詳細的描述。STM32參考手冊里主要就如何計算別名區的地址做了個演示,并提示閱讀相關ARM 內核手冊。
上圖截取于STM32G4參考手冊RM0440。有人納悶示例中的0x2200,0000是從哪里來的?翻遍整個G4系列參考手冊也不知它怎么冒出來的。其實,這個地址是在Arm cortex M4內核手冊里明確的。見下圖:
上圖來自于Cortex -M4Devices Generic User Guide。
上圖清晰了給出兩塊位帶區【SRAM區和外設寄存器區】以及對應的別名區的地址邊界和對應關系。圖中淺紫色表示位帶區,綠色表示別名區。顯然,位帶區字節地址為0x2000,0000的bit0對應別名區的字地址就是0x2200,0000;位帶區字節地址為0x2000,0000的字節的bit1對應別名區的字地址就是0x2200,0004,這樣依此類推。
關于位帶操作的介紹,除了上面的Memory框圖外,在內核手冊里還有更多包括地址計算在內的詳細介紹。下面三副截圖均來自M4內核用戶手冊。
關于位帶操作的介紹就聊到這里,順便給幾點提醒:
1、不是所有STM32系列都支持位帶操作,是否支持終究由內核決定;
2、執行位帶操作的主體只能是CPU,而不能是別的,比方DMA;
3、位帶操作只支持針對數據,而不能針對指令;
上面主要分享了STM32G4系列中有關CCM和Bit Banding應用方面的話題,做了些提醒及分享,以供參考。
審核編輯:湯梓紅
-
cpu
+關注
關注
68文章
10702瀏覽量
209465 -
STM32
+關注
關注
2258文章
10828瀏覽量
352546 -
CCM
+關注
關注
0文章
142瀏覽量
23707 -
STM32F334
+關注
關注
0文章
6瀏覽量
4775
原文標題:STM32G4系列存儲訪問的兩個小話題
文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論