STM32片上Flash內存映射、頁面大小、寄存器映射

轉自:http://blog.chinaunix.net/uid-20617446-id-3847242.html

一、怎么看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]:

?

  1. 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]:

?

  1. 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???

轉載于:https://www.cnblogs.com/shirishiqi/p/5436031.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257297.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257297.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257297.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何設計實現一個地址反解析服務?

http://www.cnblogs.com/LBSer/p/4507829.html 一、什么是地址反解析 我們都知道手機定位服務,其本質是匯總各種信號得出一個經緯度坐標(x,y)(具體定位原理可以參考:LBS定位技術、基于樸素貝葉斯的定位算法&#xff09…

html5 hr代碼縮減比例,HTML HR size用法及代碼示例

DOM HR size屬性用于設置或返回元素的size屬性的vlue。用法:它返回HR大小屬性。hrobject.size用于設置HR大小屬性。hrobject.size"value"屬性值:value:它包含指定HR元素高度的像素值。返回值:它返回一個字符串值,該值代表HR元素的高…

【轉】C++標準轉換運算符static_cast

static_cast<new_type> (expression) 雖然const_cast是用來去除變量的const限定&#xff0c;但是static_cast卻不是用來去除變量的static引用。其實這是很容易理解的&#xff0c;static決定的是一個變量的作用域和生命周期&#xff0c;比如&#xff1a;在一個文件中將變量…

MySQL Binlog Mixed模式記錄成Row格式

背景&#xff1a; 一個簡單的主從結構&#xff0c;主的binlog format是Mixed模式&#xff0c;在執行一條簡單的導入語句時&#xff0c;通過mysqlbinlog導出發現記錄的Binlog全部變成了Row的格式&#xff08;明明設置的是Mixed&#xff09;&#xff0c;現在就說說在什么情況下Bi…

update語句中使用子查詢

55. 更改 108 員工的信息: 使其工資變為所在部門中的最高工資, job 變為公司中平均工資最低的 job 1). 搭建骨架 update employees set salary (), job_id () where employee_id 108; 2). 所在部門中的最高工資 select max(salary) from employees where department_id ( s…

html后臺數據分類管理,細分數據.html

&#xfeff;細分數據$axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; };$axure.utils.getOtherPath function() { return resources/Other.html; };$axure.utils.getReloadPath function() { return resources/reload.html; };…

SpringBoot的配置文件加載順序和使用方式

1、bootstrap.properties bootstrap.properties 配置文件是由“根”上下文優先加載&#xff0c;程序啟動之初就感知 如&#xff1a;Spring Cloud Config指定遠程配置中心地址&#xff0c;就要在這個文件中指定。這樣才能在啟動之初發現遠程配置中心&#xff0c;并從遠程獲取配置…

Get請求

寫在前面的話 XMLHttpRequest對象的open方法的第一個參數為request-type,取值可以為get或post.本篇介紹get請求. get請求的目的,主要是為了獲取數據.雖然get請求可以傳遞數據,但傳遞數據的目的是為了告訴服務器,給我們什么內容. 使用get請求時,參數都是隨url進行傳遞的. 使用ge…

css3中的BFC,IFC,GFC和FFC(轉載)

作者原文網址&#xff1a;http://www.cnblogs.com/dingyufenglian/p/4845477.html What‘s FC&#xff1f; 一定不是KFC&#xff0c;FC的全稱是&#xff1a;Formatting Contexts&#xff0c;是W3C CSS2.1規范中的一個概念。它是頁面中的一塊渲染區域&#xff0c;并且有一套渲染…

javaweb學習總結——Filter高級開發

在filter中可以得到代表用戶請求和響應的request、response對象&#xff0c;因此在編程中可以使用Decorator(裝飾器)模式對request、response對象進行包裝&#xff0c;再把包裝對象傳給目標資源&#xff0c;從而實現一些特殊需求。 一、Decorator設計模式 1.1、Decorator設計模…

html期末網頁設計,求網頁設計的期末作業一份 HTML的

1&#xff0e; 課程設計建議主題方向&#xff1a;電子商務類網站、門戶類網站、專題類網站。整體要求&#xff1a;主題鮮明、健康&#xff1b;風格自然、內容充實、完整&#xff1b;布局合理&#xff0c;配色和諧。(5分)2&#xff0e; 網站至少包括15張頁面(包括首頁)&#x…

Android(java)學習筆記10:同步中的死鎖問題以及線程通信問題

1. 同步弊端&#xff1a; &#xff08;1&#xff09;效率低 &#xff08;2&#xff09;如果出現了同步嵌套&#xff0c;就容易產生死鎖問題 死鎖問題及其代碼 &#xff1a; &#xff08;1&#xff09;是指兩個或者兩個以上的線程在執行的過程中&#xff0c;因爭奪資源產生的一種…

4源代碼的下載和編譯

1、Android移植主要就是Linux內核移植&#xff0c;而Linux內核移植主要是Linux驅動移植&#xff0c;為了開發和測試Linux驅動&#xff0c;要在Ubuntu下搭建兩套開發環境&#xff1a;Android應用程序開發環境和Linux內核開發環境&#xff1b; 2、Android源代碼包括&#xff1a;內…

在html中三個圖片切換,輕松搞定網頁中的圖片切換

生活中經常看到&#xff0c;像新浪等很多門戶網站的首頁都有滾動圖片的展示&#xff0c;如下圖所示&#xff1a;某網站首頁滾動切換圖片這樣不但可以減少文字的單一、乏味&#xff0c;而且可以直觀內容&#xff0c;更好的吸引用戶。那在我們做軟件系統時&#xff0c;是否也可以…

python 進程編程速成

python具有thread多線程庫&#xff0c;但多線程并不是真正的多線程&#xff0c;不能充分利用多核CPU資源。 在大多數情況下&#xff0c;python可以使用multiprocessing多進程庫&#xff0c;可以輕松完成從單進程到并發執行的轉換。 multiprocessing庫支持子進程、通信和共享數據…

requirejs(shim)處理加載非AMD規范的js庫

使用requirejs加載模塊&#xff0c;模塊的定義得遵守AMD規范&#xff0c;也即定義模塊的時候使用如下函數定義模塊: 1 define(function(){ 2 var private function(){ 3 console.log(私有方法...); 4 }; 5 return { 6 public:funct…

關于常用meta的總結

入行也半年了&#xff0c;無數次的想過寫博客也無數次的想過第一篇會寫什么&#xff0c;一直沒有落實。今天心血來潮把博客開了&#xff0c;那就寫點東西吧。第一篇就寫一寫看似簡單但又經常不注意到的meta標簽吧。&#xff08;博主經驗尚淺&#xff0c;有許多理解不到位的地方…

計算機應用基礎18春在線作業1答案,東師計算機應用基礎-18春在線作業1.docx

東師計算機應用基礎18春在線作業11、A 2、C 3、C 4、C 5、B一、單選題共25題&#xff0c;62.5分1、國際區位、全拼雙音、五筆字型和自然碼是不同種類的漢字A外碼B內碼C字型碼D交換碼正確答案是&#xff1a;A2、漢字字形碼的使用是在____A輸入時B內部傳送時C輸出時D兩臺計算機之…

jQuery Validate 驗證,校驗規則寫在控件中的具體例子

將校驗規則寫到控件中 <script src"../js/jquery.js" type"text/javascript"></script> <script src"../js/jquery.validate.js" type"text/javascript"></script> <script src"./js/jquery.metadata…

在oracle中使用Trigger

1、初始目標 在對表h1插入一條數據時&#xff0c;同時插入一條重復的數據&#xff08;只有主鍵不同&#xff09; 2、在PL/SQL里New一個Trigger或者手動敲入代碼 先說明一下&#xff0c;表h1包括4列ID、C1、C2、C3 create or replace trigger Trigger_Testafter insert on h1for…