色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

GD32的FLASH讀、擦除、寫操作

撞上電子 ? 2024-02-19 12:46 ? 次閱讀

一,GD32的flash特征

1、在flash的前256K字節空間內,CPU執行指令零等待;在此范圍外,CPU讀取指令存在較長延時;

2、對于flash大于512KB(不包括等于512KB)的GD32F10x_CL和GD32F10x_XD,使用了兩片閃存;前512KB容量在第一片閃存(bank0)中,后續的容量在第二片閃存(bank1)中;

3、對于flash容量小于等于512KB的GD32F10x_CL和GD32F10x_HD,只使用了bank0;

4、對 于 GD32F10x_MD , 閃 存 頁 大 小 為 1KB 。GD32F10x_CL 和 GD32F10x_HD ,GD32F10x_XD,bank0的閃存頁大小為2KB,bank1的閃存頁大小為4KB;

5、支持32位整字或16位半字編程,頁擦除和整片擦除操作;

二,GD32的flash結構

1、GD32F10x_MD

d596480a-cee1-11ee-9118-92fbcf53809c.png

GD32F10x_CL,GD32F10x_HD 和 GD32F10x_XD

d5d1b67e-cee1-11ee-9118-92fbcf53809c.png

三,GD32的flash讀操作

flash可以像普通存儲空間一樣直接尋址訪問。

value=*(uint32_t*)FlashAddr;

uint16_t IAP_ReadFlag(void){ return *(volatile uint16_t*)(FLASH_ADDR); }

四,GD32的flash擦除操作

每一頁可以被獨立擦除,步驟如下:

1,確保FMC_CTLx寄存器不處于鎖定狀態;

2,檢查FMC_STATx寄存器的BUSY位來判定閃存是否正處于擦寫訪問狀態,若BUSY位為1,則需等待該操作結束,BUSY位變為0;

3,置位FMC_CTLx寄存器的PER位;

4,將待擦除頁的絕對地址(0x08XX XXXX)寫到FMC_ADDRx寄存器;

5,通過將FMC_CTLx寄存器的START位置1來發送頁擦除命令到FMC;

6,等待擦除指令執行完畢,FMC_STATx寄存器的BUSY位清0;

7,如果需要,使用DBUS讀并驗證該頁是否擦除成功。

void fmc_erase_page(uint32_t Page_Address){ fmc_unlock(); //fmc解鎖 /* clear all pending flags */ fmc_flag_clear(FMC_FLAG_BANK0_END); fmc_flag_clear(FMC_FLAG_BANK0_WPERR); fmc_flag_clear(FMC_FLAG_BANK0_PGERR);
/* erase the flash pages */ fmc_page_erase(Page_Address);
/* clear all pending flags */ fmc_flag_clear(FMC_FLAG_BANK0_END); fmc_flag_clear(FMC_FLAG_BANK0_WPERR); fmc_flag_clear(FMC_FLAG_BANK0_PGERR);
fmc_lock(); //fmc上鎖}

要擦除連續的幾頁:

void fmc_erase_pages(void){uint32_terase_counter;
/* unlock the flash program/erase controller */ fmc_unlock(); /* clear all pending flags */ fmc_flag_clear(FMC_FLAG_BANK0_END); fmc_flag_clear(FMC_FLAG_BANK0_WPERR); fmc_flag_clear(FMC_FLAG_BANK0_PGERR);
/* erase the flash pages */ for(erase_counter = 0; erase_counter < page_num; erase_counter++){ fmc_page_erase(FMC_WRITE_START_ADDR + (FMC_PAGE_SIZE * erase_counter)); fmc_flag_clear(FMC_FLAG_BANK0_END); fmc_flag_clear(FMC_FLAG_BANK0_WPERR); fmc_flag_clear(FMC_FLAG_BANK0_PGERR); }

/* lock the main FMC after the erase operation */ fmc_lock();}

全部擦除:

void fmc_erase_page(uint32_t Page_Address){ fmc_unlock(); //fmc解鎖 /* clear all pending flags */ fmc_flag_clear(FMC_FLAG_BANK0_END); fmc_flag_clear(FMC_FLAG_BANK0_WPERR); fmc_flag_clear(FMC_FLAG_BANK0_PGERR);
/* erase whole chip */ fmc_mass_erase();
/* clear all pending flags */ fmc_flag_clear(FMC_FLAG_BANK0_END); fmc_flag_clear(FMC_FLAG_BANK0_WPERR); fmc_flag_clear(FMC_FLAG_BANK0_PGERR);
fmc_lock(); //fmc上鎖}

五,flash寫

往flash的某個地址寫入數據前,一般要先擦除該地址。

16位半字編程:

void IAP_WriteFlag(uint16_t flag){ fmc_unlock(); fmc_page_erase(IAP_FLAG_ADDR); fmc_halfword_program(IAP_FLAG_ADDR,flag); fmc_lock();}

32位整字編程:

void fmc_program(void){ /* unlock the flash program/erase controller */ fmc_unlock();
address = FMC_WRITE_START_ADDR; /* program flash */ while(address < FMC_WRITE_END_ADDR){ fmc_word_program(address, data0); address += 4; fmc_flag_clear(FMC_FLAG_BANK0_END); fmc_flag_clear(FMC_FLAG_BANK0_WPERR); fmc_flag_clear(FMC_FLAG_BANK0_PGERR); } /* lock the main FMC after the program operation */ fmc_lock();}

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

    關注

    10

    文章

    1638

    瀏覽量

    148182
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10878

    瀏覽量

    212169
  • GD32
    +關注

    關注

    7

    文章

    404

    瀏覽量

    24382
收藏 人收藏

    評論

    相關推薦

    GD32H757Z海棠派開發板使用手冊】第四講 FMC-片內Flash擦寫實驗

    FMC即Flash控制器,其提供了片上Flash操作所需要的所有功能,在GD32H7XX系列MCU中,具有高達3840KB字節的片上閃存可用于存儲指令或數據。FMC也提供了扇區
    的頭像 發表于 04-19 10:09 ?1315次閱讀
    【<b class='flag-5'>GD</b>32H757Z海棠派開發板使用手冊】第四講 FMC-片內<b class='flag-5'>Flash</b>擦寫<b class='flag-5'>讀</b>實驗

    GD32 MCU 入門教程】GD32 MCU 常見外設介紹(12)FMC 模塊介紹

    閃存控制器(FMC),提供了片上閃存需要的所有功能。FMC 也提供了頁擦除,整片擦除,以及32 位整字或 16 位半字編程閃存等操作。 GD32 MCU 支持不同類型編程的具體說明如下
    的頭像 發表于 08-21 09:56 ?1205次閱讀
    <b class='flag-5'>GD32</b> MCU 入門教程】<b class='flag-5'>GD32</b> MCU 常見外設介紹(12)FMC 模塊介紹

    GD32無法燒的原因?

    GD32無法燒
    發表于 07-26 07:09

    什么是GD32

    一、前言什么GD32?GD32是國內開發的一款單片機,據說開發的人員是來自ST公司的,GD32也是以STM32作為模板做出來的。所以GD32和STM32有很多地方都是一樣的,不過
    發表于 08-12 07:46

    「必看干貨」淺談GD32與STM32之間的區別

    延長上電時間 ,配置(2ms) 。4.GD32提高了相同工作頻率下的代碼執行速度,所以GD32的_NOP()時間比STM32更加短,所以不使用定時器做延時時要注意修改。5.GD32的flash
    發表于 09-26 14:28

    JFlash解除GD32保護的方法

    JFlash解除GD32保護如果用戶添加了保護或者誤操作等導致的下載不了,可以先進行解鎖嘗試,步驟如下:1、打開J-Flash V6.4
    發表于 11-04 09:10

    GD32操作FLASH時有哪些注意事項呢

    GD32操作FLASH時注意事項GD32操作其內部FLASH時,發現連續存儲兩個數據,并且連續
    發表于 01-26 07:38

    GD32替換STM32?這些坑你別踩...

    味著單片機代碼運行的速度會更快,項目中如果需要進行刷屏,開方運算,電機控制等操作,GD是一個不錯的選擇。3、供電外部供電:GD32外部供電范圍是2.6~3.6V,STM32外部供電范圍是2~3.6V。
    發表于 03-31 10:51

    分享在IAR環境下GD32flash下載算法的一些理解

    各個字段的地址分配,如.data, .bss段等,此處內容比較簡單,大家開發時也都會涉及到,當有新增SDRAM,和外部flash時,可以修改此文件,以及定義字段等操作??偨Y此次就簡單描述下GD32
    發表于 09-30 11:05

    GD32 MCU原理及固件庫開發指南》 + 初感悟

    庫開發能夠避免每次操作寄存器時去查芯片的應用手冊,這樣能很好地提高開發效率。GD32 MCU原理固件庫開發指南這本書它詳細描述了基本所有外設的底層驅動程序和API接口,可以讓我快速地明白各個API函數
    發表于 03-31 22:11

    Linux下flash操作、擦除步驟

    的一段區域。 需要注意的是,在對NOR FLASH進行讀寫數據時,需要參考對應的datasheet,例如這里選用的NOR FLASH、擦除
    發表于 06-30 09:49 ?1.5w次閱讀
    Linux下<b class='flag-5'>flash</b><b class='flag-5'>操作</b><b class='flag-5'>讀</b>、<b class='flag-5'>寫</b>、<b class='flag-5'>擦除</b>步驟

    如何使用QSPI Flash控制器開發板上的 QSPI Flash進行操作

    學習內容 本文首先介紹Flash和QSPI Flash控制器的相關內容,然后使用 QSPI Flash 控制器,開發板上的 QSPI Flash 進行
    的頭像 發表于 06-10 17:08 ?1.4w次閱讀
    如何使用QSPI <b class='flag-5'>Flash</b>控制器開發板上的 QSPI <b class='flag-5'>Flash</b>進行<b class='flag-5'>寫</b><b class='flag-5'>讀</b><b class='flag-5'>操作</b>

    GD32操作FLASH時注意事項

    GD32操作FLASH時注意事項GD32操作其內部FLASH時,發現連續存儲兩個數據,并且連續
    發表于 12-02 10:36 ?14次下載
    <b class='flag-5'>GD32</b><b class='flag-5'>操作</b><b class='flag-5'>FLASH</b>時注意事項

    flash芯片時為什么需要先擦除?

    flash芯片時為什么需要先擦除? 在講解為什么需要先擦除Flash芯片之前,先來了解一下Flash
    的頭像 發表于 10-29 17:24 ?4348次閱讀

    Nor Flash編程和擦除操作的詳細流程

    Nor Flash 中的編程和擦除操作涉及寫入數據和擦除存儲單元的特定步驟。
    的頭像 發表于 12-05 15:19 ?1470次閱讀
    主站蜘蛛池模板: 台湾果冻传媒在线观看| 国产一区二区三区内射高清| 福利片午夜| 久久aa毛片免费播放嗯啊| 日韩欧美中文字幕在线二视频 | 男人日女人的b| 校园纯肉H教室第一次| WWW亚洲精品久久久乳| 韩国无遮羞禁动漫在线观看96| 秋霞久久久久久一区二区| 一个人在线观看免费中文www| 国产 交换 丝雨 巅峰| 女人麻豆国产香蕉久久精品| 夜色视频社区| 国产精品久久久久久搜索| 男女夜晚在爽视频免费观看| 亚洲视频在线观看网站| 国产精品99久久久精品无码| 青青青草国产| 最新亚洲中文字幕在线观看| 国产专区_爽死777| 日日日夜夜在线视频| 99久久免费国产精精品| 久久亚洲人成国产精品| 亚洲AV国产国产久青草| 搞基福利社| 琪琪的色原网站| 91在线一区二区| 久久这里只有精品视频9| 亚洲欧美国产旡码专区| 国产精品久久久久久人妻精品流| 欧美性爱-第1页| 最近中文字幕mv手机免费高清| 寂寞夜晚视频高清观看免费| 小学生偷拍妈妈视频遭性教育| 俄罗斯女人Z0ZOZO| 青青久久网| www红色一片| 欧美性极品黑人hd| 99国内精品久久久久久久清纯| 久久精品视频免费|