一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

FLASH編程與改變程序(代碼) 存儲(chǔ)地址的問題

黃工的嵌入式技術(shù)圈 ? 來(lái)源:黃工的嵌入式技術(shù)圈 ? 2020-03-20 14:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

寫在前面 Ⅰ

對(duì)于在STM32F2或F4開發(fā)的朋友而言,有部分?jǐn)?shù)據(jù)需要在內(nèi)部FLASH編程,程序(代碼)又比較大,資源空間又有限的情況下,代碼默認(rèn)的存儲(chǔ)地址就可能需要搬移。

為什么是F2或F4系列的芯片呢?因?yàn)镸ain memory扇區(qū)(或塊)分布不均勻,看下面FLASH模塊構(gòu)成:

當(dāng)然,像STM32F0、F1它們的FLASH數(shù)據(jù)塊分布均勻,這類芯片就沒必要改變程序存儲(chǔ)地址。

為什么要改變代碼存儲(chǔ)地址 Ⅱ

假如芯片的FALSH大小為512KB,RAM大小為128KB。而代碼大小為400KB(甚至更大),又需要在內(nèi)部FLASH編程,那么代碼的存儲(chǔ)地址就不能從默認(rèn)的起始地址(Sector 0)開始存儲(chǔ)。

原因很簡(jiǎn)單:最后一扇區(qū)有代碼,不能被用戶編程。

還有一種原因:用戶RAM大小有限(假如只剩15K未用,RAM用于緩存FLASH數(shù)據(jù)),而用戶編程FLASH的數(shù)據(jù)有20K,這樣就需要分多塊(扇區(qū))來(lái)操作,這樣就需要將小的扇區(qū)拿出來(lái)給用戶編程(即前面16K大小的扇區(qū))。

上面舉例的總結(jié)就是:需要將代碼的存儲(chǔ)起始地址從Sector 0搬移至Sector 3或者Sector 4,把前面小扇區(qū)(Sector 1 --- 3)用于數(shù)據(jù)編程。(注意:Sector 0扇區(qū)存儲(chǔ)啟動(dòng)的部分代碼,不能用于編程)。

改變代碼存儲(chǔ)地址的方法 Ⅲ

代碼存儲(chǔ)的地址是由編譯器決定的,因此這里簡(jiǎn)單講述一下Keil和IAR如何配置改變代碼存儲(chǔ)起始地址。下面以起始地址從0x08010000 (Sector 4)舉例說(shuō)明。

1.Keil配置方法

打開工程目標(biāo)選項(xiàng):Project -> Options for Target -> Target。修改目標(biāo)ROM起始地址。如下圖:

2.IAR配置方法

配置步驟分如下幾步:

A.進(jìn)入配置界面:Pooject -> Options -> Linker -> Config;

B.勾選上“Override default”;

C.點(diǎn)擊“Edit”,修改ROM起始地址為;

D.點(diǎn)擊“Save”保存(第一次修改后,xxx.icf文件名和路徑都選擇默認(rèn))。

具體如下圖:

驗(yàn)證代碼存儲(chǔ)地址 Ⅳ

對(duì)于STM32芯片來(lái)說(shuō),可以直接使用STM32 ST-LINK Utility工具讀取FLASH數(shù)據(jù)驗(yàn)證代碼是否存儲(chǔ)在相應(yīng)地址位置,其他芯片也可以使用對(duì)應(yīng)可以讀取FLASH數(shù)據(jù)的工具來(lái)驗(yàn)證。如下圖:

從上圖可以看見,代碼是從0x08010000 (Sector 4)起始存儲(chǔ)的。查看Sector 1-3扇區(qū),可以發(fā)現(xiàn)數(shù)據(jù)全是0xFFFF,也就是說(shuō)沒有被代碼占用這些扇區(qū)。

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

    關(guān)注

    10

    文章

    1677

    瀏覽量

    151619
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1661

    瀏覽量

    50153
  • STM32F0
    +關(guān)注

    關(guān)注

    0

    文章

    61

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    第二十九章 讀寫內(nèi)部FLASH

    本文介紹了W55MH32內(nèi)部FLASH,其含主存儲(chǔ)、系統(tǒng)存儲(chǔ)等,可存儲(chǔ)代碼及掉電保存數(shù)據(jù)。讀寫需解鎖、擦除頁(yè)等步驟,標(biāo)準(zhǔn)庫(kù)提供相關(guān)函數(shù)。還展
    的頭像 發(fā)表于 06-20 14:09 ?556次閱讀
    第二十九章 讀寫內(nèi)部<b class='flag-5'>FLASH</b>

    FLASH的工作原理與應(yīng)用

    14FLASHFLASH的工作原理與應(yīng)用OWEIS1什么是FLASH?Flash閃存是一種非易失性半導(dǎo)體存儲(chǔ)器,它結(jié)合了ROM(只讀存儲(chǔ)器)和RAM(隨機(jī)訪問
    的頭像 發(fā)表于 05-27 13:10 ?450次閱讀
    <b class='flag-5'>FLASH</b>的工作原理與應(yīng)用

    MCU片上Flash

    ? ? MCU片上Flash是微控制器內(nèi)部集成的非易失性存儲(chǔ)器,主要用于存儲(chǔ)程序代碼、常量數(shù)據(jù)及系統(tǒng)配置信息。其核心特性與功能如下: 一、定義與類型? 片上
    的頭像 發(fā)表于 05-06 14:26 ?319次閱讀

    存儲(chǔ)技術(shù)探秘 NAND Flash vs NOR Flash:藏在芯片里的&quot;門道之爭(zhēng)&quot;

    門電路玄機(jī) NOR Flash:Intel 1988 年革命性突破,終結(jié) EPROM/EEPROM 壟斷時(shí)代 NAND Flash:東芝 1989 年發(fā)布,開創(chuàng) "低成本比特" 存儲(chǔ)新紀(jì)元 共性特征
    的頭像 發(fā)表于 03-18 12:06 ?498次閱讀

    Stm32CubeIDE能像Keil一樣指定不同文件下的代碼編譯到不同的FLASH地址嗎?

    Stm32CubeIDE能像Keil一樣指定不同文件下的代碼編譯到不同的FLASH地址嗎?比如部分代碼存放到內(nèi)部FLASH,另一部分存放到外
    發(fā)表于 03-07 08:09

    AN-881: 通過LIN—協(xié)議4進(jìn)行Flash/EE存儲(chǔ)編程

    電子發(fā)燒友網(wǎng)站提供《AN-881: 通過LIN—協(xié)議4進(jìn)行Flash/EE存儲(chǔ)編程.pdf》資料免費(fèi)下載
    發(fā)表于 01-14 16:12 ?0次下載
    AN-881: 通過LIN—協(xié)議4進(jìn)行<b class='flag-5'>Flash</b>/EE<b class='flag-5'>存儲(chǔ)</b>器<b class='flag-5'>編程</b>

    【半導(dǎo)體存儲(chǔ)】關(guān)于NAND Flash的一些小知識(shí)

    。   NOR Flash 讀取速度更快,具備可在芯片內(nèi)執(zhí)行程序(XIP)的特點(diǎn),在傳輸效率、穩(wěn)定性和可靠性方面更具優(yōu)勢(shì),通常用于小容量數(shù)據(jù)存儲(chǔ),適宜中等容量代碼
    發(fā)表于 12-17 17:34

    基于NXP MCXA153 MCU實(shí)現(xiàn)RT-Thread的MTD NOR Flash驅(qū)動(dòng)

    在嵌入式系統(tǒng)中,片上Flash存儲(chǔ)器是一個(gè)關(guān)鍵組件,用于存儲(chǔ)程序代碼和關(guān)鍵數(shù)據(jù)。本文將詳細(xì)介紹如何在NXPMCXA153 MCU上實(shí)現(xiàn)RT-Thread的MTD (Memory Tec
    的頭像 發(fā)表于 11-09 14:00 ?1142次閱讀
    基于NXP MCXA153 MCU實(shí)現(xiàn)RT-Thread的MTD NOR <b class='flag-5'>Flash</b>驅(qū)動(dòng)

    使用SD Flash為TMS320C28x器件編程外部非易失性存儲(chǔ)

    電子發(fā)燒友網(wǎng)站提供《使用SD Flash為TMS320C28x器件編程外部非易失性存儲(chǔ)器.pdf》資料免費(fèi)下載
    發(fā)表于 10-15 11:48 ?0次下載
    使用SD <b class='flag-5'>Flash</b>為TMS320C28x器件<b class='flag-5'>編程</b>外部非易失性<b class='flag-5'>存儲(chǔ)</b>器

    鐵電存儲(chǔ)器和Flash的區(qū)別

    鐵電存儲(chǔ)器(Ferroelectric RAM, FRAM)與閃存(Flash)是兩種不同類型的非易失性存儲(chǔ)器,它們?cè)诠ぷ髟怼⑿阅芴攸c(diǎn)、應(yīng)用場(chǎng)景等方面存在顯著的差異。
    的頭像 發(fā)表于 09-29 15:25 ?3172次閱讀

    物聯(lián)網(wǎng)行業(yè)存儲(chǔ)方案詳解_SPI NOR Flash

    SPI NOR FLASH存儲(chǔ)器在初始響應(yīng)和啟動(dòng)時(shí)提供高可靠性,并具有低時(shí)延。這一特性對(duì)于物聯(lián)網(wǎng)設(shè)備至關(guān)重要,因?yàn)槲锫?lián)網(wǎng)設(shè)備通常需要快速啟動(dòng)并穩(wěn)定運(yùn)行,以確保數(shù)據(jù)的實(shí)時(shí)傳輸和處理。 2、直接執(zhí)行代碼的能力 SPI NOR
    的頭像 發(fā)表于 09-24 14:39 ?1109次閱讀
    物聯(lián)網(wǎng)行業(yè)<b class='flag-5'>存儲(chǔ)</b>方案詳解_SPI NOR <b class='flag-5'>Flash</b>

    EEPROM的地址怎么確定

    關(guān)于EEPROM(Electrically Erasable Programmable Read-Only Memory,電可擦可編程只讀存儲(chǔ)器)的地址確定,涉及多個(gè)方面,包括設(shè)備地址、存儲(chǔ)
    的頭像 發(fā)表于 09-05 10:53 ?3681次閱讀

    NAND Flash與其他類型存儲(chǔ)器的區(qū)別

    NAND Flash作為一種基于NAND技術(shù)的非易失性存儲(chǔ)器,具有多個(gè)顯著優(yōu)點(diǎn),這些優(yōu)點(diǎn)使其在數(shù)據(jù)存儲(chǔ)領(lǐng)域得到了廣泛應(yīng)用。以下是對(duì)NAND Flash優(yōu)點(diǎn)的詳細(xì)闡述,并簡(jiǎn)要探討與其他類
    的頭像 發(fā)表于 08-20 10:24 ?1310次閱讀

    編程的只讀存儲(chǔ)器是否可以改寫

    不可更改。這與可擦寫可編程只讀存儲(chǔ)器(Erasable Programmable Read-Only Memory,簡(jiǎn)稱EPROM)和閃存(Flash Memory)等其他類型的非易失性存儲(chǔ)器不同,后者可以
    的頭像 發(fā)表于 08-06 09:25 ?1314次閱讀

    ESP8266的MAC地址是固化在芯片內(nèi)部還是燒寫在模塊的flash上面的?

    請(qǐng)問:MAC的地址存儲(chǔ)是存放到芯片內(nèi)部還是說(shuō)flash上呢?就類似我進(jìn)行WIFI模塊的flash 全拷貝,是不是兩個(gè)模塊的MAC地址是一樣
    發(fā)表于 07-19 12:31