一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

STM32單片機 ? 來源:STM32單片機 ? 作者:STM32單片機 ? 2021-01-08 17:56 ? 次閱讀

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

前言

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

準(zhǔn)備工作

安裝STM32CubeIDE

安裝MCU對應(yīng)型號的HAL庫

External loader開發(fā)

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

地址:

https://github.com/WellinZHANG/External_Loader

使用STM32CubeMX生成工程

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

新建工程

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

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

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

管腳配置

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

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

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

時鐘配置

根據(jù)板子上的時鐘源,進(jìn)行對應(yīng)的時鐘配置,此處采用內(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倉庫中獲取相關(guān)的驅(qū)動代碼。

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

第一步

將External-Loaders QSPI testing目錄mian_test.c中的代碼添加到工程中對應(yīng)的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標(biāo)簽,否則添加的代碼會在Cube MX重新生成代碼時被覆蓋掉。

第二步

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

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

第三步

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

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

第四步

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

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

修改配置生成QSPI Loader

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

第一步

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

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

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

第二步

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

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

第三步

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

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

第四步

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

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

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

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

總結(jié)

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

責(zé)任編輯:xj

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

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

聲明:本文內(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

    文章

    1656

    瀏覽量

    150612
  • 驅(qū)動
    +關(guān)注

    關(guān)注

    12

    文章

    1878

    瀏覽量

    86346
  • STM32
    +關(guān)注

    關(guān)注

    2283

    文章

    10986

    瀏覽量

    361303
  • 燒寫
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    14510

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    STM32開發(fā)入門進(jìn)階必備!《STM32嵌入式系統(tǒng)開發(fā)—基于STM32CubeMX和HAL庫》新書發(fā)布!

    近日,由華清遠(yuǎn)見教育科技集團精心編撰的教育部高等學(xué)校電子信息類專業(yè)教學(xué)指導(dǎo)委員會規(guī)劃教材、普通高等教育電子信息類專業(yè)系列教材——《STM32嵌入式系統(tǒng)開發(fā)—基于STM32CubeMX和HAL庫》重磅
    的頭像 發(fā)表于 04-03 14:54 ?380次閱讀
    <b class='flag-5'>STM32</b>開發(fā)入門進(jìn)階必備!《<b class='flag-5'>STM32</b>嵌入式系統(tǒng)開發(fā)—基于<b class='flag-5'>STM32CubeMX</b>和HAL庫》新書發(fā)布!

    請問STM32cubeMX中文版怎么設(shè)置?

    STM32cubeMX中文版怎么設(shè)置?
    發(fā)表于 03-13 06:12

    myST賬號無法注冊導(dǎo)致stm32cubemx無法下載hal庫的固件包,為什么?

    myST賬號無法注冊導(dǎo)致stm32cubemx無法下載hal庫的固件包,myST賬號注冊卡在最后的郵箱驗證環(huán)節(jié),一直卡著無法注冊通過 很急很急!以前stm32cubemx都不需要登錄myST賬號就能下載固件包了,為什么現(xiàn)在搞個
    發(fā)表于 03-11 06:17

    STM32CubeMX生成的FreeRTOS源碼格式如何優(yōu)化?

    如圖,STM32CubeMX生成的FreeRTOS源碼格式有待優(yōu)化,空格都是以箭頭的方式呈現(xiàn),觀感很差。FreeRTOS官方下載的源碼則不存在這個問題,說明是STM32CubeMX生成源碼的過程出現(xiàn)的格式問題,希望ST官方能對此做下優(yōu)化!
    發(fā)表于 03-10 08:04

    使用STM32CubeMX生成CMake工程中的FLASH.ld被更改怎么解決?

    使用STM32CubeMX生成CMake工程之后,對STM32xxxx_FLASH.ld進(jìn)行了修改。然后再次使用STM32CubeMX對工程進(jìn)行修改的時候,STM32xxxx_FLASH
    發(fā)表于 03-10 06:52

    STM32CubeMX用于STM32配置和初始化C代碼生成

    電子發(fā)燒友網(wǎng)站提供《STM32CubeMX用于STM32配置和初始化C代碼生成.pdf》資料免費下載
    發(fā)表于 02-26 17:32 ?658次下載

    工程師開發(fā)利器:STM32CubeMX 與 eDesignSuite 的協(xié)同開發(fā)

    HAL 庫實現(xiàn)高效控制。示例:通過 CubeMX 配置 PWM 輸出和 ADC 采樣,配合 eDesignSuite 的電機驅(qū)動算法,快速實現(xiàn)電機調(diào)速功能。系統(tǒng)級驗證與優(yōu)化利用 STM32C
    的頭像 發(fā)表于 02-26 14:07 ?547次閱讀
    工程師開發(fā)利器:<b class='flag-5'>STM32CubeMX</b> 與 eDesignSuite 的協(xié)同開發(fā)

    使用stm32cubeMX無法生成mdk工程文件?

    幾年前使用過cubemx,可以生成keil的工程文件。最近有個工程使用cubemx創(chuàng)建,結(jié)果只能生成stm32cubemx類型的文件,無法生成mdk的工程文件。 請教如何解決。 (我之前使用過多次
    發(fā)表于 01-04 20:03

    STM32CubeMX的菜單介紹

    相信初學(xué)者打開STM32CubeMX一定是一臉懵逼,里面都是全英文的,不知道從何入手。這里先給大家簡單講解一下。在新建工程這一欄里,我們最常用的是第一個,它會彈出一個芯片列表供你選擇,然后就會創(chuàng)建一
    的頭像 發(fā)表于 12-25 21:03 ?340次閱讀
    <b class='flag-5'>STM32CubeMX</b>的菜單介紹

    STM32CUBEMX(10)--Flash讀寫

    概述 本例程主要講解如何對芯片自帶Flash進(jìn)行讀寫,用芯片內(nèi)部Flash可以對一些需要斷電保存的數(shù)據(jù)進(jìn)行保存,無需加外部得存儲芯片,本例程采用的是STM32F030R8T6,64K大
    發(fā)表于 09-10 15:36

    如何使用STM32CubeMX修改STM32Cube_FW_MP2?

    在該固件包中我找不到任何通過STM32CubeMX生成的.ioc文件
    發(fā)表于 07-24 06:17

    myST賬號無法注冊導(dǎo)致stm32cubemx無法下載hal庫的固件怎么解決?

    myST賬號無法注冊導(dǎo)致stm32cubemx無法下載hal庫的固件包,myST賬號注冊卡在最后的郵箱驗證環(huán)節(jié),一直卡著無法注冊通過 很急很急!以前stm32cubemx都不需要登錄myST賬號就能下載固件包了,為什么現(xiàn)在搞個
    發(fā)表于 07-23 08:05

    求助,沒有內(nèi)部外部flash的esp32 s3可以程序到里面嗎?

    沒有內(nèi)部外部flash的esp32 s3可以程序到里面嗎
    發(fā)表于 07-01 07:12

    STM32CUBEMX界面重影嚴(yán)重的原因?怎么解決?

    STM32CUBEMX 界面重影嚴(yán)重,有相同問題的嗎
    發(fā)表于 06-03 07:46

    使用STM32CubeMX為Keil(uVision)制作了新項目,在Keil中卻顯示出許多錯誤的原因?

    我在 stm32CubeIDE 中實現(xiàn)了 WIFI 網(wǎng)橋,因此我想移動我的項目。 然后,我使用 STM32CubeMX 為 Keil(uVision)制作了新項目。 但在 Keil 中卻顯示出許多錯誤,而且構(gòu)建時間將近 20 分
    發(fā)表于 05-31 07:06