国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

寫在前面 Ⅰ

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

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

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

為什么要改變代碼存儲地址 Ⅱ

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

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

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

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

改變代碼存儲地址的方法 Ⅲ

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

1.Keil配置方法

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

2.IAR配置方法

配置步驟分如下幾步:

A.進入配置界面:Pooject -> Options -> Linker -> Config;

B.勾選上“Override default”;

C.點擊“Edit”,修改ROM起始地址為;

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

具體如下圖:

驗證代碼存儲地址 Ⅳ

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

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

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

    關(guān)注

    10

    文章

    1748

    瀏覽量

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

    關(guān)注

    1

    文章

    1672

    瀏覽量

    51591
  • STM32F0
    +關(guān)注

    關(guān)注

    0

    文章

    61

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    SPI NOR Flash和SPI NAND Flash存儲芯片的區(qū)別

    SPI NOR Flash與SPI NAND Flash并非相互替代,而是互補關(guān)系。SPI NOR勝在讀取速度快、使用簡單、可靠性高,是代碼存儲的理想選擇。SPI NAND則以其大容量
    的頭像 發(fā)表于 01-29 16:58 ?454次閱讀
    SPI NOR <b class='flag-5'>Flash</b>和SPI NAND <b class='flag-5'>Flash</b><b class='flag-5'>存儲</b>芯片的區(qū)別

    Vivado+Vitis將程序固化的Flash的操作流程

    ZYNQ 的程序固化是指將程序代碼永久存儲到非易失性存儲器中,使系統(tǒng)上電后能自動加載運行的過程。主要固化方式:QSPI Flash固化:常用
    的頭像 發(fā)表于 01-20 16:17 ?356次閱讀
    Vivado+Vitis將<b class='flag-5'>程序</b>固化的<b class='flag-5'>Flash</b>的操作流程

    CW32F030 FLASH 存儲器的注意事項

    FLASH_CR1.BUSY 標(biāo)志位變成 0 后方可執(zhí)行后續(xù)的任務(wù)。 ?使用壽命基于嵌入式 FLASH 的特性,FLASH 的操作次數(shù)和存儲時間是有限的,用戶在應(yīng)用
    發(fā)表于 01-12 06:26

    單片機Flash是什么類型

    存儲器)。 在過去,嵌入式系統(tǒng)一直使用ROM(EPROM)作為它們的存儲設(shè)備,Flash的出現(xiàn),全面代替了ROM(EPROM)在嵌入式系統(tǒng)中的地位,用作存儲Bootloader以及操作
    發(fā)表于 01-04 07:10

    國產(chǎn)SPI NOR Flash接口閃存介紹

    在當(dāng)今各類電子設(shè)備對存儲性能要求日益提升的背景下,SPI NOR Flash憑借其高速讀取、低功耗及靈活接口等優(yōu)勢,成為嵌入式系統(tǒng)代碼存儲的關(guān)鍵元件。GT25Q系列SPI NOR
    的頭像 發(fā)表于 12-26 11:51 ?443次閱讀

    CW32F030片上FLASH閃存存儲器物理區(qū)域的劃分

    域主要用于存放應(yīng)用程序代碼和用戶數(shù)據(jù),用戶可編程。 2、啟動程序存儲器,共 2.5KB,地址空間為 0x0010 0000 - 0x0010
    發(fā)表于 12-23 08:28

    CW32L052 FLASH存儲器介紹

    概述CW32L052內(nèi)部集成了64KB嵌入式FLASH供用戶使用,可用來存儲應(yīng)用程序和用戶數(shù)據(jù)。 芯片支持對 FLASH 存儲器的讀、擦除和
    發(fā)表于 12-05 08:22

    FLASH中的代碼是如何得到運行的呢

    。 ARM-cortex-A系列的SOC(比如Exynos4412):該類SOC更加復(fù)雜,通常有內(nèi)存管理單元(MMU),代碼存儲在nand flash中,程序運行時,需要先將
    發(fā)表于 12-04 08:06

    芯源的片上存儲器介紹

    域主要用于存放應(yīng)用程序代碼和用戶數(shù)據(jù),用戶可編程。 ●● 啟動程序存儲器,共 2.5KB,地址空間為 0x0010 0000 - 0x001
    發(fā)表于 11-12 07:34

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

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

    TLE9893是否支持在FLASH1上運行代碼來擦除和編程FLASH1?

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

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

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

    FLASH燒寫/編程白皮書

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

    MCU片上Flash

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

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

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