chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ARM STM32中的程序是在RAM里還是在FLASH里運(yùn)行?

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

掃碼添加小助手

加入工程師交流群

STM32有兩個(gè)存儲(chǔ)空間,一個(gè)是片上的FLASH,一個(gè)是片上的RAM。RAM相當(dāng)于內(nèi)存,F(xiàn)LASH相當(dāng)于硬盤。(以下英文大小寫不分)

圖片

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

Code表示程序代碼部分

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

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

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

下面給出三個(gè)值:

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

RW Size=RW Data + ZIData (運(yùn)行時(shí)程序占用RAM空間的大?。?/strong>

ROM Size=Code + RO Data + RWData (燒寫時(shí)程序占用FLASH空間的大?。?/strong>

我們都知道,在燒寫程序的時(shí)候,需要燒寫bin文件或者h(yuǎn)ex文件到STM32的flash當(dāng)中,被燒寫的文件稱為映像文件image。Image的內(nèi)容包含三部分:code,RO-data 和RW-data。

為什么Image不包含ZI數(shù)據(jù)呢,是因?yàn)閆I數(shù)據(jù)都是0,沒必要包含,只要程序運(yùn)行之前將ZI數(shù)據(jù)所在的區(qū)域(這一區(qū)域在RAM中)一律清零即可。包含進(jìn)去反而浪費(fèi)flash存儲(chǔ)空間。

STM32上電啟動(dòng)以后,cpu根據(jù)boot0和boot1的硬件引腳決定從flash還是ram中啟動(dòng),默認(rèn)是從flash中啟動(dòng);啟動(dòng)之后會(huì)搬運(yùn)rw-data到ram,但是不會(huì)搬運(yùn)code;也就是說cpu執(zhí)行的代碼是在flash中讀取的,而不是在ram中。當(dāng)然這個(gè)flash是nor型的.

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1679

    瀏覽量

    151880
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1392

    瀏覽量

    117571
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11032

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何將Flash刷寫程序放到SRAM運(yùn)行?

    客戶要求Flash driver不能存儲(chǔ)Flash,需要在升級的時(shí)候,由CAN FBL發(fā)送到SRAM,再
    發(fā)表于 07-15 07:22

    【中科昊芯Core_DSC280025C開發(fā)板試用體驗(yàn)】+2.RAM工程與FLASH工程對比

    。代碼運(yùn)行RAM下,主要用于開發(fā)調(diào)試模式,優(yōu)點(diǎn)是下載速度快,運(yùn)行的也快,缺點(diǎn)是斷電程序就丟失了。 若代碼
    發(fā)表于 07-04 10:37

    STM32IDE如何設(shè)定代碼到ITCM運(yùn)行?

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

    STM32G473 flash擦除時(shí)程序卡死,為什么?

    進(jìn)行雙bank升級的時(shí)候,會(huì)先進(jìn)行FLASH的批量擦除。連續(xù)的升級過程中發(fā)現(xiàn)成功幾次后出現(xiàn)了執(zhí)行擦除flash操作時(shí)程序卡死的情況,直
    發(fā)表于 06-12 08:05

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

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

    STM32G473 flash擦除時(shí)程序卡死的原因?

    進(jìn)行雙bank升級的時(shí)候,會(huì)先進(jìn)行FLASH的批量擦除。連續(xù)的升級過程中發(fā)現(xiàn)成功幾次后出現(xiàn)了執(zhí)行擦除flash操作時(shí)程序卡死的情況,直
    發(fā)表于 06-09 07:23

    CUEBIDE生成的APP程序,寫入FLASH之后無法正常跳轉(zhuǎn)怎么解決?

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

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

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

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

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

    OpenVINO?運(yùn)行應(yīng)用程序失敗怎么解決?

    嘗試 OpenVINO? 運(yùn)行我的推理應(yīng)用程序失敗,并出現(xiàn)以下錯(cuò)誤: RuntimeError: Check \'false\' failed at src/core/src/ru
    發(fā)表于 03-05 10:29

    mcvip源碼,TVP5158_patchDownload這個(gè)函數(shù)主要是寫什么進(jìn)VBUS?

    mcvip源碼,TVP5158_patchDownload這個(gè)函數(shù)主要是寫什么進(jìn)VBUS?VBUS又有什么作用?手冊好像沒說明白
    發(fā)表于 02-11 06:52

    什么是RAM內(nèi)存 RAM內(nèi)存對電腦性能的影響

    什么是RAM內(nèi)存? RAM(Random Access Memory,隨機(jī)存取存儲(chǔ)器)是電腦中的一種易失性存儲(chǔ)器,它用于存儲(chǔ)電腦運(yùn)行時(shí)的數(shù)據(jù)和程序。與硬盤等非易失性存儲(chǔ)器不同,
    的頭像 發(fā)表于 11-11 09:38 ?6022次閱讀

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

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

    keil5怎么往stm32燒錄程序

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

    外部存儲(chǔ)器是ROM還是RAM

    外部存儲(chǔ)器通常指的是計(jì)算機(jī)系統(tǒng)除了主存(RAM)以外的存儲(chǔ)設(shè)備,如硬盤、固態(tài)硬盤(SSD)、USB閃存驅(qū)動(dòng)器、光盤等。它們主要用于長期存儲(chǔ)數(shù)據(jù)和程序,以供計(jì)算機(jī)需要時(shí)讀取和寫入。外
    的頭像 發(fā)表于 08-06 09:13 ?3147次閱讀