18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

寫(xiě)在前面 Ⅰ

對(duì)于在STM32F2或F4開(kāi)發(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ù)塊分布均勻,這類芯片就沒(méi)必要改變程序存儲(chǔ)地址。

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

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

打開(kāi)工程目標(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)證。如下圖:

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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

    文章

    1702

    瀏覽量

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

    關(guān)注

    1

    文章

    1665

    瀏覽量

    50911
  • STM32F0
    +關(guān)注

    關(guān)注

    0

    文章

    61

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    STM32C011開(kāi)發(fā)(3)----Flash操作

    STM32C011 系列微控制器內(nèi)置 Flash 存儲(chǔ)器,支持程序存儲(chǔ)與數(shù)據(jù)保存,具備頁(yè)面擦除、雙字寫(xiě)入、讀寫(xiě)保護(hù)等功能。本文將簡(jiǎn)要介紹 STM32C011 的
    的頭像 發(fā)表于 09-18 16:48 ?3173次閱讀
    STM32C011開(kāi)發(fā)(3)----<b class='flag-5'>Flash</b>操作

    請(qǐng)問(wèn)編譯程序時(shí)如何將數(shù)據(jù)放入Flash固定地址?

    編譯程序時(shí)如何將數(shù)據(jù)放入Flash固定地址
    發(fā)表于 08-29 06:40

    編譯程序時(shí)如何將數(shù)據(jù)放入Flash固定地址?

    編譯程序時(shí)如何將數(shù)據(jù)放入Flash固定地址?
    發(fā)表于 08-27 13:16

    SPI NOR FLASH是什么,與SPI NAND Flash的區(qū)別

    單元存儲(chǔ)一位數(shù)據(jù) (0或1) ,可以直接尋址,尋址速度非???。SPI NOR FLASH支持全雙工、單工以及半雙工傳輸方式,被廣泛應(yīng)用于嵌入式系統(tǒng)中,如Bootloader、操作系統(tǒng)內(nèi)核等程序
    的頭像 發(fā)表于 08-21 09:26 ?818次閱讀

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

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

    Flash driver數(shù)據(jù)會(huì)隨著代碼修改而改變,怎么解決?

    , cy_en_flash_driver_blocking_t blocking); 段的定義如下 代碼編譯后使用gmemfile工具將cy_ramfunc導(dǎo)出為bin文件 :postexec='
    發(fā)表于 08-13 07:21

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

    嵌入式系統(tǒng)里,FLASH 中的程序代碼并非必須搬到 RAM 中運(yùn)行,這得由硬件配置、實(shí)際性能需求和應(yīng)用場(chǎng)景共同決定。就像很多低端單片機(jī),無(wú)論是依賴片內(nèi) Flash 還是外掛的 SPI NOR
    的頭像 發(fā)表于 08-06 10:19 ?1021次閱讀
    嵌入式系統(tǒng)中,<b class='flag-5'>FLASH</b> 中的<b class='flag-5'>程序代碼</b>必須搬到 RAM 中運(yùn)行嗎?

    FLASH燒寫(xiě)/編程白皮書(shū)

    白皮書(shū):如何燒寫(xiě)Flash——不同場(chǎng)景不同需求下的選擇認(rèn)識(shí)Flash?NAND vs. NOR如何燒寫(xiě)/編程不同方案比較
    發(fā)表于 07-28 16:05 ?0次下載

    FLASH模擬EEPROM

    + 數(shù)據(jù)地址,地址和數(shù)據(jù)都是 16 位方式存儲(chǔ),每一次存儲(chǔ)占用 32 位也就是4 個(gè)字節(jié)。圖中 data 列為數(shù)據(jù),data address 列為數(shù)據(jù)
    發(fā)表于 07-16 15:13

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

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

    MCU片上Flash

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

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

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

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

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

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

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

    基于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 ?1481次閱讀
    基于NXP MCXA153 MCU實(shí)現(xiàn)RT-Thread的MTD NOR <b class='flag-5'>Flash</b>驅(qū)動(dòng)