在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

剖析STM32的FLASH和SRAM的使用情況

FPGA之家 ? 來源:嵌入式案例Show ? 作者:嵌入式案例Show ? 2021-04-09 17:53 ? 次閱讀

01前言

STM32片上自帶FLASH和SRAM,簡單講FLASH用來存儲程序的,SRAM是用來存儲運行程序中的中間變量。本文詳細分析下如何查看程序中FLASH和SRAM的使用情況。

本文開發工具: keil5

芯片: STM32F105VCT6

02FLASH和SRAM介紹

FLASH存儲器又成為閃存,它與EEPROM都是掉電后數據不丟失的存儲器,但是FLASH的存儲容量都普遍的大于EEPROM,在存儲控制上,最主要的區別是FLASH芯片只能一大片一大片地擦除,而EEPROM可以單個字節擦除。

SRAM是靜態隨機存取存儲器。它是一種具有靜止存取功能的內存,不需要刷新電路即能保存它內部存儲的數據。STM32F1系列可以通過FSMC外設來拓展SRAM。

注意:SRAM和SDRAM是不相同的,SDRAM是同步動態隨機存儲器,同步是指內存工作需要同步時鐘,內部的命令的發送與數據的傳輸都以它為基準;動態是指存儲陣列需要不斷的刷新來保證數據不丟失;隨機是指數據不是線性依次存儲,而是自由指定地址進行數據讀寫。STM32的F1系列是不支持SDRAM的。

stm32不同型號的SRAM和FLASH大小是不相同的,可在datasheet中查看如下圖:

08d40a92-990f-11eb-8b86-12bb97331649.png

08ee58de-990f-11eb-8b86-12bb97331649.png

03編譯結果分析

在keil中編譯結果如下圖:

0915ec64-990f-11eb-8b86-12bb97331649.png

打開生成的map文件拉到最后可看到如下:

093488e0-990f-11eb-8b86-12bb97331649.png

編譯結果里面幾個的含義

Code:代碼空間,本質是ARM指令( FLASH)。

RO-data:即 Read Only-data, 表示程序定義的常量,如 const 類型( FLASH)。

RW-data:即 Read Write-data, 非0初始化的全局和靜態變量占用的RAM大小,同時還要占用等量的ROM大小用于存放這些非0變量的初值(FLASH+RAM)。

ZI-data:即 Zero Init-data, 0初始化的內存區的大小(該區域3個用途:0初始化的全局和靜態變量+堆區+棧區)(RAM)。

由上可知:

程序占用FLASH=Code + RO-data + RW-data 即map文件中ROM size

程序占用RAM = RW-data + ZI-data 即map文件中RW size

常見的倆個疑問:

1、RW-data為什么會即占用Flash又占用RAM空間?

由前文知道RAM掉電數據會丟失,RW-data是非0初始化的數據,已初始化的數據需要被存儲在掉電不會丟失的FLASH中,上電后會從FLASH搬移到RAM中。

2、為什么燒錄的鏡像文件不包含ZI-data呢?

我們都知道在燒寫程序的時候,需要燒寫bin文件或者hex文件到STM32的flash中,被燒寫的文件稱為鏡像像文件image。image的內容包含這三個Code 、 RO-data 和 RW-data。

通過第一個問題大家應該有所理解,因為ZI數據是0,沒必要包含,只要在程序運行前把ZI數據區域一律清零即可,包含進去反而浪費Flash存儲空間。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FlaSh
    +關注

    關注

    10

    文章

    1671

    瀏覽量

    151165
  • 存儲器
    +關注

    關注

    38

    文章

    7640

    瀏覽量

    166635
  • STM32
    +關注

    關注

    2290

    文章

    11018

    瀏覽量

    362955

原文標題:STM32的FLASH和SRAM的使用情況分析

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    S32G3有沒有辦法從.map文件確定SRAM使用情況

    我有 NXP S32G3 板。我有 .map 文件。有沒有辦法從 .map 文件確定 SRAM 使用情況。 非常感謝幫助。
    發表于 04-08 06:00

    請問STM32訪問FPGA內部SRAM部分區域為何只能讀不能寫?

    采用STM32F427+FPGA+FlashSTM32通過FMC總線訪問FPGA內部SRAM,起始地址為0x60000000; Flash中存儲FPGA的配置數據,
    發表于 03-12 07:59

    在實際網絡中五類水晶頭和六類水晶頭的應用情況

    在實際網絡中,五類水晶頭和六類水晶頭都有廣泛的應用,但它們的應用場景和性能特點有所不同。 五類水晶頭 五類水晶頭(Category 5)遵循CAT5標準,專為五類網絡線纜的連接而設計。其特點和應用情況
    的頭像 發表于 02-06 09:57 ?588次閱讀

    激光在Micro LED顯示技術的應用情況

    探索激光技術的多元應用與前沿進展 今天研習激光在微加工領域的應用,核心內容為激光在Micro LED顯示技術的應用情況。《Recent progress of laser processing
    的頭像 發表于 12-07 11:16 ?1351次閱讀
    激光在Micro LED顯示技術的應<b class='flag-5'>用情況</b>

    Linux下如何管理虛擬內存 使用虛擬內存時的常見問題

    查看虛擬內存使用情況 : 使用 free 命令可以查看當前的虛擬內存使用情況,包括物理內存、交換空間等的使用情況。 調整交換空間大小 : 如果需要調整交換空間的大小,可以使用 swapoff 命令關閉現有的交換空間,然后使用
    的頭像 發表于 12-04 09:19 ?1271次閱讀

    如何獲取入口函數不是__iar_program_start的Program entry的stack使用情況

    問題 IAR中默認的入口函數是__iar_program_start,使能stack usage analysis之后: 生成的map文件中STACK USAGE章節里面會包含Program entry的stack使用相關信息: 如果對應啟動代碼沒有使用默認的入口函數__iar_program_start,需要使用--entry鏈接器選項指定對應的入口函數(以使用入口函數Reset_Handler為例): 但是使能stack usage analysis之后,生成的map文件中STACK USAGE章節里面沒有包含Program entry的stack使用相關信息: ? 原因 正常來說,編譯器可以生成每個函數的調用和stack使用
    的頭像 發表于 11-25 16:23 ?947次閱讀
    如何獲取入口函數不是__iar_program_start的Program entry的stack<b class='flag-5'>使用情況</b>

    LMX2592正常使用情況下溫度大概有多少?

    你好,LMX2592如果將 OUTA_PD = 1;OUTB_PD = 1;為什么芯片還是很燙,正常使用情況下溫度大概有多少,對于溫度的變化可以提供一下參考嗎
    發表于 11-08 08:32

    TMS320C64x在高性能DSP應用中的高速緩存使用情況

    電子發燒友網站提供《TMS320C64x在高性能DSP應用中的高速緩存使用情況.pdf》資料免費下載
    發表于 10-21 09:43 ?0次下載
    TMS320C64x在高性能DSP應用中的高速緩存<b class='flag-5'>使用情況</b>

    藍牙人員定位有哪些亮點功能?

    。進出廠統計根據人員定位情況詳細記錄外來人員進出廠時間和停留時長,實時統計各外來單位人員進出廠情況及數量。 標簽使用情況統計系統后臺會對標簽使用情況進行統計,對于外委人員長時間(時間可
    的頭像 發表于 09-13 11:05 ?439次閱讀
    藍牙人員定位有哪些亮點功能?

    利用IEC104協議遠程IO模塊實時監測能源使用情況

    隨著城市化進程的加速,軌道交通作為高效、便捷的公共交通工具,其安全性和穩定性日益受到重視。為了保障軌道交通設施的安全運行,軌道交通遠程能源監測自動化系統應運而生,其中,IEC104協議模塊BE190以其穩定的性能和靈活性,成為該系統中的關鍵組件。 一、IEC104協議遠程IO模塊BE190概述 BE190是一款專為工業自動化設計的IEC104遠程I/O模塊,由鋇錸技術精心打造。該模塊不僅支持IEC104協議,還兼容Modbus TCP通信協議,為軌道交通遠程能源監測自動化
    的頭像 發表于 08-27 14:41 ?668次閱讀

    stm32讀取boot引腳狀態

    微控制器,其BOOT0引腳用于在內部Flash、系統存儲器或SRAM之間選擇啟動源,而BOOT1引腳在某些系列中用于啟用從內置SRAM啟動的選項(但請注意,不是所有STM32系列都支持
    的頭像 發表于 08-22 09:48 ?2597次閱讀

    如何使用SystemView的堆監控功能

    SystemView能夠監視應用程序如何使用動態存儲。這意味著,如果應用程序中使用了C或C++堆、自定義堆或RTOS提供的內存池對象,我們可以跟蹤這些對象的使用情況。SystemView可以在一個
    的頭像 發表于 08-09 18:07 ?1247次閱讀
    如何使用SystemView的堆監控功能

    嵌入式設備在遠端運行,會有偶發性代碼跑飛的情況,無法到現場調試的情況下如何檢查出問題?

    運行日志: 1、線程的優先級; 2、線程當前的狀態; 3、線程當前的棧位置; 4、線程的棧大小; 5、線程歷史中使用的最大棧位置; 6、線程剩余的運行節拍數; 設備內存使用日志: 1、堆棧使用情況(最大剩余
    發表于 07-22 15:05

    Banana Pi BPI-M7 RK3588開發板在 Linux 上檢查 Rockchip NPU 使用情況

    如下介紹如何監控 Rockchip 設備的 NPU 使用情況。 如今,新型設備開始配備內置 AI 芯片。“AI 芯片”的正確技術術語是 NPU,即神經處理單元。 如果您有板載 NPU
    的頭像 發表于 07-11 16:47 ?791次閱讀
    Banana Pi BPI-M7 RK3588開發板在 Linux 上檢查 Rockchip NPU <b class='flag-5'>使用情況</b>

    鴻蒙開發系統基礎能力:ohos.hidebug Debug調試

    使用hidebug,可以獲取應用內存的使用情況,包括應用進程的靜態堆內存(native heap)信息、應用進程內存占用PSS(Proportional Set Size)信息等;可以完成虛擬機內存切片導出,虛擬機CPU Profiling采集等操作。
    的頭像 發表于 06-24 17:35 ?1017次閱讀
    鴻蒙開發系統基礎能力:ohos.hidebug Debug調試
    主站蜘蛛池模板: 美女被免费网站视频在线 | 男人视频网站 | 神马午夜51 | 宅男午夜视频在线观看 | 人人爽天天碰天天躁夜夜躁 | 日韩一区二区三区在线 | 34看网片午夜理 | 看片福利 | 在线观看国产久青草 | 国模在线视频 | 欧美色穴| 青草国产在线视频 | 久久免费特黄毛片 | 深爱五月激情 | 丁香六月综合网 | 婷婷综合五月天 | 久久久久久久久久久观看 | 美女下面小内内的沟 | 视频一区中文字幕 | 免费一级片视频 | 丁香婷婷开心激情深爱五月 | 午夜精品久久久久久久 | 一区二区不卡视频 | 一区二区三区视频观看 | 国产亚洲午夜精品a一区二区 | 婷婷午夜| 黄色w站 | 日韩精品卡4卡5卡6卡7卡 | 三级理论在线播放大全 | 九色九色九色在线综合888 | 激情久久久久久久久久久 | 成人久久久精品乱码一区二区三区 | 狠狠躁夜夜躁人人爽天天段 | 一 级 黄 中国色 片 | 天天干天天干天天干天天干天天干 | 福利视频亚洲 | 一级毛片美国一级j毛片不卡 | 三级毛片在线免费观看 | 欧美一级视频在线观看欧美 | 激情综合网站 | 国产情侣真实露脸在线最新 |