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

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

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

3天內不再提示

ARM STM32中的程序是在RAM里還是在FLASH里運行?

冬至子 ? 來源:老羊快跑 與 深度學習 ? 作者:老羊快跑 ? 2023-10-27 14:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

STM32有兩個存儲空間,一個是片上的FLASH,一個是片上的RAM。RAM相當于內存,FLASH相當于硬盤。(以下英文大小寫不分)

圖片

Keil下,工程編譯完成總會出現上面的信息,這些信息都代表什么呢?代表程序占用的空間。

Code表示程序代碼部分

RO-data 表示程序定義的常量(如:intconst x等);

RW-data 表示已初始化的全局變量

ZI-data 表示未初始化的全局變量,以及初始化為0的變量

下面給出三個值:

RO Size= Code + ROData (程序占用FLASH空間的大小)

RW Size=RW Data + ZIData (運行時程序占用RAM空間的大小)

ROM Size=Code + RO Data + RWData (燒寫時程序占用FLASH空間的大小)

我們都知道,在燒寫程序的時候,需要燒寫bin文件或者hex文件到STM32的flash當中,被燒寫的文件稱為映像文件image。Image的內容包含三部分:code,RO-data 和RW-data。

為什么Image不包含ZI數據呢,是因為ZI數據都是0,沒必要包含,只要程序運行之前將ZI數據所在的區域(這一區域在RAM中)一律清零即可。包含進去反而浪費flash存儲空間。

STM32上電啟動以后,cpu根據boot0和boot1的硬件引腳決定從flash還是ram中啟動,默認是從flash中啟動;啟動之后會搬運rw-data到ram,但是不會搬運code;也就是說cpu執行的代碼是在flash中讀取的,而不是在ram中。當然這個flash是nor型的.

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

    關注

    10

    文章

    1675

    瀏覽量

    151383
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1391

    瀏覽量

    117166
  • STM32
    +關注

    關注

    2291

    文章

    11026

    瀏覽量

    363645
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    STM32IDE如何設定代碼到ITCM運行

    摸索到了如何將變量定義到某個地址,但是不清楚如何讓代碼指定RAM運行。按照設定變量的方式設定代碼,程序直接進入了異常中斷{:16:}。
    發表于 06-24 06:45

    STM32G473 flash擦除時程序卡死,為什么?

    進行雙bank升級的時候,會先進行FLASH的批量擦除。連續的升級過程中發現成功幾次后出現了執行擦除flash操作時程序卡死的情況,直
    發表于 06-12 08:05

    STM32Cube IDE1.18.0 寫ODR編譯不成,咋辦?

    STM32Cube IDE1.18.0寫ODR 編譯不成,咋辦?
    發表于 06-09 07:36

    STM32G473 flash擦除時程序卡死的原因?

    進行雙bank升級的時候,會先進行FLASH的批量擦除。連續的升級過程中發現成功幾次后出現了執行擦除flash操作時程序卡死的情況,直
    發表于 06-09 07:23

    CUEBIDE生成的APP程序寫入FLASH之后無法正常跳轉怎么解決?

    (); STM32F407ZGTX_FLASH.ld修改 / Memories definition / MEMORY { CCMRAM (xrw) : ORIGIN = 0x10000000
    發表于 06-09 06:43

    CUEBIDE生成的APP程序寫入FLASH之后無法正常跳轉怎么解決?

    (); STM32F407ZGTX_FLASH.ld修改 /[i] Memories definition / MEMORY { CCMRAM (xrw) : ORIGIN = 0x10000000
    發表于 06-05 07:15

    攜手Nordic推出多合一氣體傳感器

    此前,5月22日至23日,2025藍牙亞洲大會在深圳隆重啟幕。云新品“多合一氣體傳感器”Nordic展位上重磅亮相。產品搭載了Nordic nRF54L系列首款系統級芯片(SoC),兼具超低
    的頭像 發表于 05-27 18:01 ?504次閱讀

    OpenVINO?運行應用程序失敗怎么解決?

    嘗試 OpenVINO? 運行我的推理應用程序失敗,并出現以下錯誤: RuntimeError: Check \'false\' failed at src/core/src/ru
    發表于 03-05 10:29

    文丘效應方程的應用

    本文要點文丘效應方程實際上意味著什么?在哪里可以觀察到文丘效應?如何在CFD更好地實現文丘效應?人們常說,數學是通用語言。這一論斷的依據可能是:物理現象和理論概念可以用符號和方
    的頭像 發表于 02-28 18:08 ?507次閱讀
    文丘<b class='flag-5'>里</b>效應方程的應用

    mcvip源碼,TVP5158_patchDownload這個函數主要是寫什么進VBUS

    mcvip源碼,TVP5158_patchDownload這個函數主要是寫什么進VBUS?VBUS又有什么作用?手冊好像沒說明白
    發表于 02-11 06:52

    什么是RAM內存 RAM內存對電腦性能的影響

    什么是RAM內存? RAM(Random Access Memory,隨機存取存儲器)是電腦中的一種易失性存儲器,它用于存儲電腦運行時的數據和程序。與硬盤等非易失性存儲器不同,
    的頭像 發表于 11-11 09:38 ?5831次閱讀

    rt-thread bspesp32c3編譯出的bin文件燒到esp32的開發板上運行提示chipid不對,為什么?

    rt-thread bspesp32c3編譯出的bin文件燒到esp32的開發板上 運行提示chipid不對,是否有方法修改能支持esp32 系列的開發板
    發表于 09-27 10:01

    keil5怎么往stm32燒錄程序

    相關設置。 編寫代碼 Keil5編寫您的STM32程序。您可以使用C或C++語言編寫代碼。 配置編譯器
    的頭像 發表于 08-22 09:31 ?4899次閱讀

    外部存儲器是ROM還是RAM

    外部存儲器通常指的是計算機系統除了主存(RAM)以外的存儲設備,如硬盤、固態硬盤(SSD)、USB閃存驅動器、光盤等。它們主要用于長期存儲數據和程序,以供計算機需要時讀取和寫入。外
    的頭像 發表于 08-06 09:13 ?3045次閱讀

    cyusb3104RAM中加載程序映像后斷開連接是哪里的問題?

    )后,USB 設備斷開連接,同時留下\"programming succeeded\" 的信息。 可能存在哪些問題? 我們無法 RAM 運行任何
    發表于 07-05 06:20
    主站蜘蛛池模板: 国产亚洲3p一区二区三区 | 一级特级女人18毛片免费视频 | 狠狠要 | 黄色美女网站免费看 | 狠狠色婷婷丁香综合久久韩国 | 美女视频黄a全部免费看小说 | 亚洲成人综合网站 | 国产性老妇女做爰在线 | 久久婷婷午色综合夜啪 | 在线播放国产不卡免费视频 | 一级特黄特黄的大片免费 | 天天看天天射天天碰 | 天天天综合 | 亚洲天天做日日做天天欢毛片 | 婷婷四房播客五月天 | 国产精品免费拍拍1000部 | 欧美zooz人与禽交 | 美女被免费视频的网站 | 色噜噜噜| 色综合久久88 | 亚洲国产成+人+综合 | 在线网站黄 | 久久精品视频99精品视频150 | 在线观看视频一区二区 | 一级做a爱 | 最新福利网站 | 国产私拍视频 | 啪啪调教所29下拉式免费阅读 | 性做久久久久久免费观看 | 69re在线观看| 国产婷婷色一区二区三区深爱网 | 日本三级日本三级日本三级极 | 天堂色网 | 可以在线看黄的网站 | 婷婷综合七月激情啪啪 | aaaaaa级特色特黄的毛片 | julia一区二区三区中文字幕 | 操农村妇女 | 在线观看黄日本高清视频 | 欧美又粗又硬又大久久久 | 欧美中出 |