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

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

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

3天內不再提示

STM32H7實現BootLoader內SDRAM的初始化注意事項

冬至子 ? 來源:喵小黑 ? 作者:喵小黑 ? 2023-06-07 15:51 ? 次閱讀

Bootloader

Board:STM32H750_ArtPi

Function Implementation:在 ArtPi 的環境下,實現一個簡單的 BootLoader,該 BootLoader 實現了 QSPI 和 SDRAM 功能的初始化,使 App 可以運行在 QSPI 中,并且可以將 SDRAM 當做普通的內部 RAM 使用(但需要注意,仍需要添加 SCB_InvalidateDCache 和 SCB_CleanDCache 等函數來更新緩存,類似于對 AXI SRAM 的操作)。

BootLoader和App實現教程:安富萊_STM32-V7開發板_用戶手冊,含BSP驅動包設計(V3.5)

注意事項

在 BootLoader 中進行了 MPU 的配置,在 App 中,就無需重復配置;

在 BootLoader 中,最好禁用 I-Cache 和 D-Cache(實際上,我看了一下硬漢的部分代碼,實際上,并不強求一定要禁用 I-Cache 和 D-Cache,應該還是根據自己的需求來決定是開啟還是關閉);

在 BootLoader 中,配置了 FMC,在 App 中,需要注釋以下這段代碼:

/*

Disable the FMC bank1 (enabled after reset).

This, prevents CPU speculation access on this bank which blocks the use of FMC during

24us. During this time the others FMC master (such as LTDC) cannot use it!

*/

// FMC_Bank1_R->BTCR[0] = 0x000030D2;

1.jpg

此段代碼位于 system_stm32h7xx.h 中,在進入 main 函數前執行,因此在 main 函數中進行 Debug 可能無法發現此問題。(群友發現的問題)

寄存器地址為 0x52004000,對應 SRAM/NOR-Flash 片選控制寄存器 1(FMC_BCR1)。

#define PERIPH_BASE (0x40000000UL) /*!< Base address of : AHB/APB Peripherals */

#define D1_AHB1PERIPH_BASE (PERIPH_BASE + 0x12000000UL)

#define FMC_R_BASE (D1_AHB1PERIPH_BASE + 0x4000UL)

/* !< FMC Banks registers base address */

#define FMC_Bank1_R_BASE (FMC_R_BASE + 0x0000UL)

#define FMC_Bank1_R ((FMC_Bank1_TypeDef *) FMC_Bank1_R_BASE)

1.jpg

FMC_BCR1 = 0x000030D2; 的作用可以參考 RM0433 22.7.6 節,我們主要關注以下內容:

FMCEN = 0:禁止 FMC 控制器,FMC_BCR2..4 寄存器的 FMCEN 位為“無關”位,只能通過 FMC_BCR1 寄存器使能 ;

在未注釋此行代碼時,FMC Bank1會被關閉(復位后啟用),阻止 24 \\mu s24μs 內的 FMC 的使用,這會導致 MemMange 錯誤,導致程序進入 MemMange_Handler(可能會被誤認為是 BootLoader 未成功跳轉,但其實是跳轉了,然后立即產生總線錯誤)。有趣的是,如果在 BootLoader 內,對 SDRAM 進行一次讀或寫操作,則不會產生該報警錯誤。

未進行讀寫操作,App 進入 MemMange_Handler

1.jpg

進行讀寫操作,App 不進入MemMange_Handler

1.jpg

在完成以上配置后,就可以在 App 中,像內置 RAM 一樣使用 SDRAM。

先在 LinkerScript 內添加以下內容(UNINIT 確保該內存區域不會被初始化為 0):

RW_IRAM7 0xC0000000 UNINIT 0x02000000 { ; RW data - 32MB SDRAM(0xC0000000)

*(.RAM_SDRAM)

}

使用如下:

uint32_t testValue attribute ((section(".RAM_SDRAM")));

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

    關注

    0

    文章

    96

    瀏覽量

    19741
  • SDRAM控制器
    +關注

    關注

    0

    文章

    28

    瀏覽量

    8177
  • 控制寄存器
    +關注

    關注

    0

    文章

    34

    瀏覽量

    11511
  • QSPI接口
    +關注

    關注

    0

    文章

    14

    瀏覽量

    3389
  • stm32h7
    +關注

    關注

    0

    文章

    37

    瀏覽量

    1753
收藏 人收藏

    評論

    相關推薦

    介紹STM32H7內置的系統bootloader的基礎知識

    第67章 STM32H7的系統bootloader基礎知識本章為大家介紹STM32H7內置的系統bootloader的基礎知識。目錄第67章 STM
    發表于 08-11 08:10

    STM32H7系列芯片及bootloader引導程序

    最近公司開發的一個項目使用到STM32H7系列芯片,由于該系列芯片內部flash只有128k,為了方便產品的遠程升級,需要開發對應的升級協議及bootloader引導程序。由于片flash容量不夠
    發表于 08-13 08:47

    Stm32bootloader和App的編寫注意事項有哪些?

    Stm32bootloader和App的編寫注意事項有哪些?如何使用STM32F4的BootLoader和APP程序?
    發表于 10-29 07:35

    STM32H750_FMC_SDRAM初始化流程是怎樣的?

    STM32H750_FMC_SDRAM初始化流程是怎樣的?
    發表于 02-22 06:59

    STM32H7教程】第19章 STM32H7的GPIO應用之按鍵FIFO

    STM32H7教程】第19章 STM32H7的GPIO應用之按鍵FIFO
    發表于 11-23 18:21 ?9次下載
    【<b class='flag-5'>STM32H7</b>教程】第19章 <b class='flag-5'>STM32H7</b>的GPIO應用之按鍵FIFO

    STM32H7學習之路繼續(stm32H7系列3) GPIO

    STM32H7學習之路繼續(stm32H7系列3) GPIO
    發表于 11-30 12:36 ?20次下載
    <b class='flag-5'>STM32H7</b>學習之路繼續(<b class='flag-5'>stm32H7</b>系列3)  GPIO

    STM32H7教程】第21章 STM32H7的NVIC中斷分組和配置(重要)

    STM32H7教程】第21章 STM32H7的NVIC中斷分組和配置(重要)
    發表于 12-04 14:36 ?13次下載
    【<b class='flag-5'>STM32H7</b>教程】第21章 <b class='flag-5'>STM32H7</b>的NVIC中斷分組和配置(重要)

    "STM32H7學習繼續(STM32H7系列5)第十七章比較實用,以后寫程序的時候會用到"

    "STM32H7學習繼續(STM32H7系列5)第十七章比較實用,以后寫程序的時候會用到"
    發表于 12-05 11:21 ?9次下載
    "<b class='flag-5'>STM32H7</b>學習繼續(<b class='flag-5'>STM32H7</b>系列5)第十七章比較實用,以后寫程序的時候會用到"

    STM32H7教程】第8章 STM32H7的終極調試組件Event Recorder

    STM32H7教程】第8章 STM32H7的終極調試組件Event Recorder
    發表于 12-05 20:06 ?7次下載
    【<b class='flag-5'>STM32H7</b>教程】第8章 <b class='flag-5'>STM32H7</b>的終極調試組件Event Recorder

    STM32H7教程】第14章 STM32H7的電源,復位和時鐘系統

    STM32H7教程】第14章 STM32H7的電源,復位和時鐘系統
    發表于 12-09 11:21 ?36次下載
    【<b class='flag-5'>STM32H7</b>教程】第14章 <b class='flag-5'>STM32H7</b>的電源,復位和時鐘系統

    STM32H750_FMC_SDRAM 初始化流程總結

    STM32H750_FMC_SDRAM使用STM32CUBEMX 初始化FMC部分,SDRAM 關于延時部分參數模式寄存器#define SDRAM
    發表于 12-29 18:49 ?2次下載
    <b class='flag-5'>STM32H750_FMC_SDRAM</b> <b class='flag-5'>初始化</b>流程總結

    AN5293 STM32F7系列移植到STM32H7系列

    AN5293 STM32F7系列移植到STM32H7系列
    發表于 11-21 12:57 ?1次下載
    AN5293 <b class='flag-5'>STM32F7</b>系列移植到<b class='flag-5'>STM32H7</b>系列

    STM32H7技術詳解

    電子發燒友網站提供《STM32H7技術詳解.pdf》資料免費下載
    發表于 08-01 14:49 ?5次下載
    <b class='flag-5'>STM32H7</b>技術詳解

    不能連接上STM32H7芯片

    不能連接上STM32H7芯片
    的頭像 發表于 09-18 10:58 ?1473次閱讀
    不能連接上<b class='flag-5'>STM32H7</b>芯片

    STM32H7雙核CM4作為Master初始化系統

    電子發燒友網站提供《STM32H7雙核CM4作為Master初始化系統.pdf》資料免費下載
    發表于 09-20 09:13 ?0次下載
    <b class='flag-5'>STM32H7</b>雙核CM4作為Master<b class='flag-5'>初始化</b>系統
    主站蜘蛛池模板: 亚洲永久免费视频 | 亚洲国产高清在线观看视频 | 欧美成人一区二免费视频 | yin乱教师系列合集 yin荡体育课羞耻play双性 | 爱穿丝袜的麻麻3d漫画acg | sao虎影院桃红视频在线观看 | 亚洲影院在线播放 | 亚洲精品国偷拍电影自产在线 | 98久久人妻少妇激情啪啪 | 狠狠躁日日躁人人爽 | 2022国产精品不卡a | 狂野欧美性猛XXXX乱大交 | 私密按摩师在线观看 百度网盘 | 波多野结衣二区 | 开心成人社区 | 精品国产原创在线观看视频 | 中文字幕在线观看国产 | 色橹橹欧美在线观看视频高清 | 国产成人免费片在线视频观看 | 99热国产这里只有精品6 | 一本道高清码 | 99久久精品国产自免费 | 成年人视频在线免费观看 | 王晶经典三级 | 久久黄色网址 | 蜜芽亚洲欧美一区二区电影 | 在线观看日本免费 | 精品国产乱码久久久久久夜深人妻 | 韩国羞羞秘密教学子开车漫书 | 亚洲 欧美 中文字幕 在线 | 三级电影免费看 | 精品免费久久久久久影院 | 性欧美video另类hd高清 | 99视频精品全部免费免费观 | 美女拔萝卜 | 99C视频色欲在线 | 最近最新中文字幕MV高清在线 | 小s现场抛胸挤奶 | 亚洲乱码日产精品BD在线下载 | 羞羞漫画在线播放 | 精品无码人妻一区二区免费AV |