哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(pí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)行?

冬至子 ? 來(lái)源:老羊快跑 與 深度學(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空間的大?。?/strong>

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

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,沒(méi)必要包含,只要程序運(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;也就是說(shuō)cpu執(zhí)行的代碼是在flash中讀取的,而不是在ram中。當(dāng)然這個(gè)flash是nor型的.

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

    關(guān)注

    10

    文章

    1759

    瀏覽量

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

    關(guān)注

    8

    文章

    1401

    瀏覽量

    121002
  • STM32
    +關(guān)注

    關(guān)注

    2313

    文章

    11195

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    亮相2026亞洲藍(lán)牙大會(huì)

    及工業(yè)物聯(lián)網(wǎng)等領(lǐng)域的創(chuàng)新應(yīng)用。作為藍(lán)牙技術(shù)生態(tài)的核心參與者與產(chǎn)業(yè)物聯(lián)網(wǎng)領(lǐng)域的領(lǐng)先產(chǎn)品方案提供商,云全程參與了這場(chǎng)年度科技盛會(huì)。
    的頭像 發(fā)表于 04-24 17:13 ?665次閱讀

    STM32N6 PSRAM 上運(yùn)行代碼的調(diào)試

    開(kāi)發(fā)其產(chǎn)品過(guò)程,使用了 STM32N657X0H3Q??蛻舻拇a很大,不能放在SRAM 上運(yùn)行,想放在 PSRAM 上去運(yùn)行,并咨詢?nèi)绾卧?STM
    發(fā)表于 04-15 16:02 ?0次下載

    單片機(jī)程序運(yùn)行方式

    控制權(quán)交給用戶程序。如果是新的芯片還沒(méi)有下載過(guò),那么就停留在讀取串口狀態(tài)的循環(huán)中。 啟動(dòng)代碼通常都燒寫在flash,它是系統(tǒng)一上電就執(zhí)行的一段程序,它
    發(fā)表于 01-16 06:57

    Infineon SEMPER NOR Flash與HYPERRAM? 2.0 Gen2 Flash+RAM MCP產(chǎn)品解析

    Infineon SEMPER NOR Flash與HYPERRAM? 2.0 Gen2 Flash+RAM MCP產(chǎn)品解析 引言 汽車集群和工業(yè)HMI應(yīng)用,通常會(huì)使用NOR
    的頭像 發(fā)表于 12-20 16:20 ?1372次閱讀

    FLASH的代碼是如何得到運(yùn)行的呢

    ARM為例: ARM-cortex-M3/4的單片機(jī)(比如STM32 等):該類單片機(jī)的代碼nor flash
    發(fā)表于 12-04 08:06

    MCU代碼需要搬到RAM才能運(yùn)行嗎?不這樣做會(huì)有什么不妥嘛?

    是塊,不能對(duì)指令直接尋址,因此不能直接運(yùn)行其中的代碼。 因此保存在nand flash程序不加載到ram
    發(fā)表于 12-04 07:39

    Nuclei IDE燒寫程序無(wú)法成功的原因及部分解決辦法

    ; 重新生成mcu200t的mcs文件,下載至FPGA 2. lim運(yùn)行蜂鳥(niǎo)的helloworld程序,若成功則執(zhí)行步驟3 3. 下載helloword
    發(fā)表于 10-31 06:24

    如何從 flash 把代碼搬運(yùn)到 ram 運(yùn)行的?

    沒(méi)有已經(jīng)移植適配過(guò)的芯片 運(yùn)行機(jī)制是從 flash 把代碼搬運(yùn)到 ram 運(yùn)行
    發(fā)表于 09-28 11:03

    TLE9893是否支持FLASH1上運(yùn)行代碼來(lái)擦除和編程FLASH1?

    芯片TLE9893是否支持FLASH1上運(yùn)行代碼來(lái)擦除和編程FLASH1。NVM-PROG_UCODE
    發(fā)表于 08-13 08:14

    嵌入式系統(tǒng),FLASH 程序代碼必須搬到 RAM 運(yùn)行嗎?

    嵌入式系統(tǒng)FLASH 程序代碼并非必須搬到 RAM
    的頭像 發(fā)表于 08-06 10:19 ?1530次閱讀
    嵌入式系統(tǒng)<b class='flag-5'>中</b>,<b class='flag-5'>FLASH</b> <b class='flag-5'>中</b>的<b class='flag-5'>程序</b>代碼必須搬到 <b class='flag-5'>RAM</b> <b class='flag-5'>中</b><b class='flag-5'>運(yùn)行</b>嗎?

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

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

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

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

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

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

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

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

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

    (); STM32F407ZGTX_FLASH.ld修改 /[i] Memories definition / MEMORY { CCMRAM (xrw) : ORIGIN = 0x10000000
    發(fā)表于 06-05 07:15
    凤阳县| 永川市| 呼图壁县| 蚌埠市| 无棣县| 阳山县| 凯里市| 旬邑县| 宾阳县| 龙山县| 九江市| 南汇区| 朔州市| 霍城县| 乐山市| 石城县| 巨鹿县| 乌兰县| 安陆市| 闵行区| 夏河县| 茂名市| 昆山市| 洛南县| 云浮市| 汤原县| 丹凤县| 柘荣县| 陇南市| 绍兴县| 富源县| 准格尔旗| 尚志市| 攀枝花市| 定远县| 林周县| 文水县| 宁乡县| 蓬安县| 肃宁县| 谷城县|