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

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

寫在前面 Ⅰ

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

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

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

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

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

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

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

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

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

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

1.Keil配置方法

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

2.IAR配置方法

配置步驟分如下幾步:

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

B.勾選上“Override default”;

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

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

具體如下圖:

驗證代碼存儲地址 Ⅳ

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

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

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

    關注

    10

    文章

    1702

    瀏覽量

    154249
  • 編譯器
    +關注

    關注

    1

    文章

    1665

    瀏覽量

    50963
  • STM32F0
    +關注

    關注

    0

    文章

    61

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    FLASH燒寫/編程白皮書

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

    FLASH模擬EEPROM

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

    第二十九章 讀寫內部FLASH

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

    MCU片上Flash

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

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

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

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

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

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

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

    基于NXP MCXA153 MCU實現(xiàn)RT-Thread的MTD NOR Flash驅動

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