摘要:
本文以STM32F103RBT6為例介紹了片上Flash(Embedded Flash)若干問題,包括Flash大小(內存映射)、塊大小、頁面大小、寄存器。這些知識,有利于寫Flash驅動。
一、怎么看Flash大小
1.1 通過型號
型號會印在MCU表面,可以通過觀察獲得,我的是STM32F103RBT6(以下分析基于這個型號),對照下圖的STM32產品命名,可知STM32F103RBT6的Flash是128KB。
()
圖1 Ordering information scheme
1.2 通過數據手冊(內存映射)
也可以通過數據手冊得到Flash大小,首先根據型號從官網下得對應的數據手冊Datasheet(點這里,輸入MCU型號進行檢索。STM32F103RB相關的手冊都在這:http://www.st.com/internet/mcu/product/164487.jsp),打開找到Memory map這張圖,如圖2紅框所示(圖2紅框放大即為圖3),Flash在內存的映射地址0x0800 0000 ~ 0x0801 FFFF,即大小為128KB。通過該方法也可以了解到片上Flash的內存映射。
圖2 Memory map
圖3 Memory map中的SRAM和Flash
二、塊大小
對于系統而言,Flash分為片上Flash(Embedded Flash)和外置Flash。通常說,Flash先分塊再分頁,擦除是按塊進行,這樣的說法應該只是對外置Flash而言,對于片上Flash即可以按頁擦除也可以整塊擦除,英文原文如下[2]:
The Flash memory erase operation can be performed at page level or on the whole Flash area (mass-erase). The mass-erase does not affect the information blocks.
三、頁面大小
按1.2的方法下得該MCU的參考手冊,STM32F103RBT6對應的參考手冊為RM0008 Reference manual,定位到Embedded Flash memory章節(也可以通過搜索0x0800 0000來定位)。STM32有4種Flash module organization,分別是:low-density devices(32KB,1KB/page)、medium-density devices(128KB,1KB/page)、high-density devices(512KB,2KB/page)、connectivity line devices(256KB,2KB/page)、XL-density(devices(1M,2KB/page)。從上面分析可知,STM32F103RBT6的Flash是128KB,可見是medium-density devices,如下圖所示:
圖4 Flash module organization (medium-density devices)
四、Flash相關寄存器
Flash寄存器在內存的映射如下[1]:
圖5 Memory map中的Flash Interface
Flash各寄存器具體地址如下[2]:
圖6 Flash memory interface registers of medium-density devices
具體到各寄存器功能,位含義,得參考[3],Flash寄存器映射如下:
圖7 Flash register map
五、Information block
Flash中Information block在內存映射如下[1]:
圖8 Memory map中的System memory
具體的Flash的Information block地址如下:
圖9 Information block of medium-density devices
System memory包含一段引導程序(當系統從片上Flash啟動會用到),Flash出廠后就不能修改,不曉得我理解得對不對,貼出原文如下[3]:
System memory is used to boot the device in System memory boot mode. The area is reserved for use by STMicroelectronics and contains the boot loader which is used to reprogram the Flash memory using the USART1 serial interface. It is programmed by ST when the device is manufactured, and protected against spurious write/erase operations. For further details please refer to AN2606.
The option bytes are managed by an embedded Flash Program/Erase Controller (FPEC),詳情見[3]。
參考資料:
[1] DS5319: Medium-density performance line ARM-based 32-bit MCU with 64 or 128 KB Flash, USB, CAN, 7 timers, 2 ADCs, 9 communication interfaces(數據手冊) DS5319.pdf
[2] RM0008: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx advanced ARM-based 32-bit MCUs(參考手冊) 注:文件尺寸太大,上傳不了:-(
[3] PM0075:STM32F10xxx Flash memory microcontrollers(Flash編程手冊) PM0075.pdf
上一篇:STM32和ROS的串口通信
下一篇:分析TCP/IP協議棧代碼之UDP(STM32平臺)
推薦閱讀
史海拾趣
在技術創新方面,中科芯不斷推出具有競爭力的新產品。其中,CKS32系列MCU是公司近年來推出的一款高性能微控制器產品。該產品具有高可靠性、高兼容性和高性價比的特點,在市場上廣受好評。在蘇州先進技術成果交易大會上,CKS32系列MCU以其卓越的性能和廣泛的應用領域吸引了眾多關注。該產品的推出不僅提升了中科芯在微控制器領域的市場地位,也為中國電子行業的發展注入了新的活力。
為了進一步擴大市場份額,Curtis Industries公司積極拓展市場布局。公司在全球范圍內設立了多個生產基地和研發中心,以便更好地滿足不同地區客戶的需求。同時,公司還加強了與上下游企業的合作,形成了完整的產業鏈。這些舉措不僅提升了公司的產能和研發實力,還為公司帶來了更多的商業機會。
在電子行業中,競爭日益激烈,DDC也面臨著諸多挑戰。然而,DDC始終保持著清醒的頭腦和堅定的信念,積極應對挑戰并尋找機遇。通過不斷優化產品結構、提高生產效率、降低成本等措施,DDC不斷提高自身的競爭力。同時,DDC還積極關注行業發展趨勢和市場變化,及時調整戰略方向,確保公司能夠在激烈的競爭中立于不敗之地。
請注意,這些故事是基于DDC公司的發展歷程和事實進行的概述,具體的細節和情節可能需要根據實際情況進行補充和調整。
為了進一步擴大市場份額,Frequency Devices公司積極實施國際化戰略。公司通過參加國際電子展會、建立海外銷售網絡、與國際知名企業建立合作關系等方式,不斷提升品牌國際影響力。同時,公司還根據不同國家和地區的市場特點,定制化開發符合當地需求的高頻電子產品。這些努力使得Frequency Devices公司的產品成功打入多個國際市場,實現了全球化布局。
為了進一步提升品牌影響力和市場占有率,固得沃克積極尋求與行業內知名企業的戰略合作。例如,公司與銳單商城達成戰略合作,共同推動電子元器件的在線銷售和服務。這一合作不僅拓寬了公司的銷售渠道,還提升了公司的品牌知名度和美譽度。通過不斷參與行業交流和合作,固得沃克在電子行業中的影響力日益增強,為公司的長遠發展奠定了堅實基礎。
Discera公司的產品在性能和穩定性上表現出色,很快就引起了美國軍方的關注。經過嚴格的測試和評估,Discera的CMOS MEMS諧振器成功通過了美國軍方的質量可靠性測試,并獲得了軍方的認證。這一成就不僅證明了Discera產品的卓越性能,也為公司進一步拓展軍用市場打下了堅實的基礎。
很多資料提到中國政府規劃2012年中國將形成50萬輛新能源汽車產能,形成10億安時的車用高新能單體動力電池生產能力。我們來估算,以單車使用2萬元電池(綜合考慮混合動力和純電動汽車)的平均水平測算,國內汽 車動力電池市場規模可達 ...… 查看全部問答∨ |
mrs r0,CPSR orr r1,r0,#NOINT msr CPSR_c,r1 mov pc,lr 剛學UCOS,這段匯編怎么 ...… 查看全部問答∨ |
evc中Areas not supported include Data Access Objects (DAO)問題 evc中Areas not supported include Data Access Objects (DAO)問題,要使 程序編譯成功要怎么解決這個問題,請高手指導!!… 查看全部問答∨ |
|
\\WINCE500\\PUBLIC\\COMMON\\OAK\\DRIVERS\\PM\\PDD下有兩個目錄,一個是default,另一個是pda,前者是默認的電源管理代碼,后者是適用于pda的,但編譯生成OS時,只會將前者生成的庫pm_default_pdd_lib鏈接到pm.dll,而后者生成的庫pm_pda_pdd_lib ...… 查看全部問答∨ |
本人一直搞net開發,搞了兩年,對WEB開發算是比較熟悉。 現在感覺技術很難上去, 想向嵌入式編程發展,有哪位師傅能帶帶,報酬另算。 地點在廣州 電話:13711179572 小第萬分感謝?。?!… 查看全部問答∨ |
我用的是platform builder 4.2,建立的一個dll項目,作為網卡驅動。在ddk的ndis.h文件中有這樣的定義: typedef struct _NDIS30_MINIPORT_CHARACTERISTICS { UCHAR &n ...… 查看全部問答∨ |
|
手把手,一步一步的圖文教程。 做各種試驗。 比如按鍵,跑馬燈, 中斷。串口, 計時器,計數器,看門狗。 。。。。 等等。 新手,手拿LaunchPad不知道怎么整,太復雜了的教程又看不懂。 [ 本帖最后由 smallbird 于 2011-9-27 20:21 編輯 ]… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 利用STM32MP1和STM32MP2在嵌入式 Linux 平臺上部署有效的安全保護機制
- 超小但強大:MCU 的小尺寸封裝和集成如何幫助優化空間受限的設計
- 德州儀器推出全球超小型 MCU,助力微型應用創新
- Microchip推出電動兩輪車(E2W)生態系統,加速電動出行創新
- 意法半導體推出STM32U3微控制器,面向遠程、智能和可持續應用,拓展超低功耗系列創新
- (一) ECloudIDE入門STM32-CubeMX工程創建與導入
- (二)ECloudIDE入門STM32-官方寄存器版例程使用
- Simulink STM32F407VGT6實現硬件在環
- openharmony:hilog_lite組件移植