日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

如何通過STM32CubeMX制作外部Flash的燒寫驅(qū)動 (.stdlr)

STM32單片機 ? 來源:STM32單片機 ? 作者:STM32單片機 ? 2021-01-08 17:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

通過 STM32CubeMX制作外部Flash的燒寫驅(qū)動 (.stdlr)

前言

目前,越來越多的應用需要擴展外部的Flash來滿足存儲需求。那么,在調(diào)試及批量生產(chǎn)的過程中,需要對外擴的Flash進行燒錄操作。由于STM32 ST-LINK Utility以及STM32CubeProgrammer中,對Flash支持的型號有限,只能覆蓋一部分MCU和Flash的型號,無法完全滿足客戶的需求。而且,它提供的external loader的制作模板存在覆蓋的芯片型號較少,且無法前期QSPI Flash調(diào)試的問題。本文旨在提供一種通過stm32CubeMX制作external Flash loader的方法??蛻艨梢愿鶕?jù)自己的型號,進行定制化的生成。本文中,以某客戶實際使用的MCU(STM32H750) 和Flash(S25LP128F) 為例進行講解。

準備工作

安裝STM32CubeIDE

安裝MCU對應型號的HAL庫

External loader開發(fā)

External Loader的開發(fā)分成三個部分,第一部分是使用STM32CubeMX進行工程的配置及生成。第二部分是外部Flash的驅(qū)動調(diào)試,主要包含初始化,擦除,寫入以及讀出等操作。第三部分調(diào)用驅(qū)動函數(shù)進行external loader的生成,包括外部Flash信息的定義,包括Flash容量的大小,page的大小,以及Sector相關的信息;第三步中external loader所需要的代碼及對應器件的驅(qū)動,可以在下面的GitHub倉庫中獲取,同時也歡迎大家將自己調(diào)試好的器件驅(qū)動提交到該倉庫。

地址:

https://github.com/WellinZHANG/External_Loader

使用STM32CubeMX生成工程

此處,我們使用STM32CubeIDE集成的STM32CubeMX進行工程的配置和生成。

新建工程

選擇對應的器件,填入工程名稱,并選擇存放位置:

d80f9e9c-5194-11eb-8b86-12bb97331649.png

d851d1c2-5194-11eb-8b86-12bb97331649.png

管腳配置

按照硬件原理圖選擇好對應的Flash管腳,此處選擇為Bank2,配置如下圖。注意調(diào)整管腳的速度為High,同時使能QSPI的中斷。FlashSize值設置為N,F(xiàn)lash的大小配置2N+1。

d87ae382-5194-11eb-8b86-12bb97331649.png

d8ac1b8c-5194-11eb-8b86-12bb97331649.png

時鐘配置

根據(jù)板子上的時鐘源,進行對應的時鐘配置,此處采用內(nèi)部作為系統(tǒng)PLL的時鐘源。

d916912e-5194-11eb-8b86-12bb97331649.png

生成工程

切換到Code Generator選項卡,勾選“Generate perioheral initialization as pair of ‘.c/.h’files per peripheral”選項。

d949fd5c-5194-11eb-8b86-12bb97331649.png

調(diào)試QSPI驅(qū)動

從開篇提到的GitHub倉庫中獲取相關的驅(qū)動代碼。

d986c692-5194-11eb-8b86-12bb97331649.png

第一步

將External-Loaders QSPI testing目錄mian_test.c中的代碼添加到工程中對應的main.c文件中。

d99d05d8-5194-11eb-8b86-12bb97331649.png

d9cbe81c-5194-11eb-8b86-12bb97331649.png

da5a4aee-5194-11eb-8b86-12bb97331649.png

da904932-5194-11eb-8b86-12bb97331649.png

注意添加代碼時保留USER CODE BEGIN x和USER CODE END x標簽,否則添加的代碼會在Cube MX重新生成代碼時被覆蓋掉。

第二步

將External-LoadersQSPI DriversIS25LP128F目錄下的QSPI的HAL驅(qū)動文件替換工程中對應的文件。

dabff8c6-5194-11eb-8b86-12bb97331649.png

第三步

打開CubeMX,重新生成工程。因為為了適配所有系列的QSPI接口,GitHub所提供QSPI的HAL驅(qū)動中,沒有提供相應的QSPI外設配置函數(shù),需要通過CubeMX來生成。

dad60e04-5194-11eb-8b86-12bb97331649.png

第四步

如上圖所示由于每個型號的FLASH的控制指令略有差別,所以在此步需要根據(jù)自己選用的QPSI FLASH器件進行調(diào)整。同時需要進行調(diào)試QSPI的讀寫是否正常。如果QSPIF lash讀寫不正常,那么在下圖中標注的位置添加斷點,就可以排查是哪一個環(huán)節(jié)出錯,進一步對驅(qū)動進行調(diào)整。

db19c4c8-5194-11eb-8b86-12bb97331649.png

修改配置生成QSPI Loader

完成QSPI的驅(qū)動調(diào)試之后,我們需要添加生成external Loader所需要的代碼并修改對應的配置。

第一步

添加對應的代碼,存放在External-LoadersLoader_Files目錄下,由于H7和其他的系列的linker file有所區(qū)別,所以此處分為H7和others兩個文件夾進行存放。我們此處選用H7目錄下的問題件。將所有的文件添加到工程中。

db42080c-5194-11eb-8b86-12bb97331649.png

db580292-5194-11eb-8b86-12bb97331649.png

第二步

修改Dev_Inf.c中的name為你想設置的名稱,一般設置為MCU+Flash名稱。

db95168c-5194-11eb-8b86-12bb97331649.png

第三步

修改Linker的配置,通過“project”-> “Properties ”打開設置頁。將紅框內(nèi)的ld文件修改為linker.ld.(已經(jīng)在第一步中添加到工程)。

dc083720-5194-11eb-8b86-12bb97331649.png

第四步

修改配置,編譯后生成stdlr文件。通過“project”-> “Properties ”打開設置頁,在 “post build steps”處添加如下指令:

dc39e3ba-5194-11eb-8b86-12bb97331649.png

最后,編譯便可在工程目錄下生成對應的stdlr文件。將其復制到STM32CubeProgrammer安裝目錄下的extral loader文件夾下,便可使用。

dc7d8dd6-5194-11eb-8b86-12bb97331649.png

總結(jié)

通過該方法可以快速的生成一個外部燒寫腳本對外部的QSPI FLASH進行燒錄。

責任編輯:xj

原文標題:工程師筆記 | 通過 STM32CubeMX制作外部Flash的燒寫驅(qū)動 (.stdlr)

文章出處:【微信公眾號:STM32單片機】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

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

    關注

    10

    文章

    1761

    瀏覽量

    155951
  • 驅(qū)動
    +關注

    關注

    12

    文章

    1994

    瀏覽量

    88732
  • STM32
    +關注

    關注

    2313

    文章

    11195

    瀏覽量

    374751
  • 燒寫
    +關注

    關注

    0

    文章

    59

    瀏覽量

    14893

原文標題:工程師筆記 | 通過 STM32CubeMX制作外部Flash的燒寫驅(qū)動 (.stdlr)

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何在 STM32Cube CMake 工程中添加源文件

    STM32CubeMX 能夠很方便的導出 CMake 工程。例如,如下圖所示在 STM32CubeMX的 ToolChain/IDE 中選擇 Cmake。CMake 工程可以很容易被
    發(fā)表于 04-15 16:07 ?0次下載

    LAT1574_如何在 STM32Cube CMake 工程中添加源文件

    STM32CubeMX 能夠很方便的導出 CMake 工程。例如,如下圖所示在 STM32CubeMX的 ToolChain/IDE 中選擇 CmakeCMake 工程可以很容易被
    發(fā)表于 03-11 10:46 ?0次下載

    LAT1198+通過 KEIL 制作 QSPI 接口的外部 Flash 下載算法應用筆記

    時,需要將代碼或數(shù)據(jù)燒錄到外部 Flash。如果調(diào)試工具不能夠一鍵燒錄,勢必會給調(diào)試帶來諸多的麻煩。本文以 STM32H750 芯片為例,介紹通過 KEIL
    發(fā)表于 01-11 17:25 ?0次下載

    淺談PY32離線燒錄器的滾碼功能

    PY32離線燒錄器可以開啟滾碼功能,默認該功能不開啟。添加滾碼時用戶應注意填寫滾碼地址應在所選芯片型號 flash 大小之內(nèi),滾碼長度固定為 32bits。
    的頭像 發(fā)表于 10-13 10:31 ?1197次閱讀
    淺談PY32離線燒錄器的<b class='flag-5'>燒</b><b class='flag-5'>寫</b>滾碼功能

    請問RT-Thread與stm32cubemx聯(lián)合開發(fā)的原理是什么?

    在使用RT-Thread與stm32cubemx聯(lián)合開發(fā)的原理是什么,cubemx在其中主要起到了哪些功能呢?
    發(fā)表于 10-11 15:49

    studio有沒有通過更改下載算法,同時下載到內(nèi)部flash外部flash?

    我現(xiàn)在使用的stm32h750,內(nèi)部flash很小,需要使用外部qspiflash來儲存程序。 studio可以像mdk一樣設置兩個下載算法嗎? 這樣才能一個程序使用兩個flash不用
    發(fā)表于 09-26 07:04

    意法半導體:STM32CubeMX將不再集成到STM32CubeIDE中

    從2025年11月發(fā)布的版本開始,我們將僅以 獨立 版本的形式提供 STM32CubeIDE 和 STM32CubeMX 。 STM32CubeMX將不再集成到STM32CubeIDE
    的頭像 發(fā)表于 09-01 17:18 ?3953次閱讀

    FLASH/編程白皮書

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

    使用STM32CubeMX的時候創(chuàng)建的工程已經(jīng)使用的板載資源如何去掉?

    在使用STM32CubeMX的時候創(chuàng)建的工程已經(jīng)使用的板載資源如何去掉?在基于開發(fā)板進行工程創(chuàng)建的時候會把板載資源直接初始化,后面想要用不同的功能配置,如何把初始配置去掉?
    發(fā)表于 07-22 07:13

    對于在STM32CubeMx使用FMC中的NAND FLASH里面配置這些時間有什么說明嗎?

    對于在STM32CubeMx使用FMC中的NAND FLASH里面配置這些時間有什么說明嗎?
    發(fā)表于 07-21 07:07

    STM32N657X0Q為什么無法通過SPI驅(qū)動st7796板子?

    求助大家,一般來說要想驅(qū)動lcd外設應該在stm32cubemx里配置什么,我的lcd可以正常供電但是就是燒錄程序后僅黑屏一瞬間然后繼續(xù)白屏,我感覺是沒有在stm32cubemx里配置好,有沒有大神解答一下
    發(fā)表于 06-19 07:21

    STM32CubeMX配置STM32G070RBT6TR時為什么無法使能PVD中斷?

    STM32CubeMX 配置STM32G070RBT6TR時無法使能PVD中斷
    發(fā)表于 06-18 07:59

    STM32CubeMX配置STM32G070RBT6TR時無法使能PVD中斷怎么辦?

    STM32CubeMX 配置STM32G070RBT6TR時無法使能PVD中斷
    發(fā)表于 06-16 06:32

    STM32MP135D的TIM2使用ETR作為外部時鐘時,無法使用PE15作為輸入,是哪里的問題?

    主芯片為STM32MP135D,使用最新的STM32CubeMX配置TIM2為外部時鐘模式2,管腳選擇PE15 實測計數(shù)器不會增加,當改用PA15時是正常的;參考最新手冊看明顯有問題,各位能否幫忙驗證一下,是否我的程序問題,還是
    發(fā)表于 06-10 07:40

    關于CCG5 platform Flash問題,在images時,如何保留產(chǎn)線校準數(shù)據(jù)?

    1. CCG5平臺flash大小為128K,有512 row,每個row大小是256個字節(jié) 通過PSoC Programmerimage時,會將128K的
    發(fā)表于 05-30 07:50
    理塘县| 嘉定区| 东莞市| 东辽县| 平利县| 武功县| 方正县| 庆阳市| 兴隆县| 沭阳县| 剑阁县| 嘉义县| 文成县| 五大连池市| 双峰县| 平凉市| 香港| 彰武县| 阳泉市| 武山县| 田东县| 义乌市| 赞皇县| 靖边县| 松江区| 滕州市| 武威市| 伊金霍洛旗| 阿克陶县| 安义县| 蓬莱市| 芦溪县| 讷河市| 英超| 扶绥县| 吉安县| 醴陵市| 堆龙德庆县| 和龙市| 临清市| 普安县|