在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

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

MCU開發加油站 ? 來源:STM32單片機 ? 作者:STM32單片機 ? 2021-01-18 16:33 ? 次閱讀

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

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

安裝STM32CubeIDE

安裝MCU對應型號的HAL庫

External loader開發

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

地址:https://github.com/WellinZHANG/External_Loader

使用STM32CubeMX生成工程

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

新建工程

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

802fffea-5758-11eb-8b86-12bb97331649.png

8061ef78-5758-11eb-8b86-12bb97331649.png

管腳配置

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

808ce4bc-5758-11eb-8b86-12bb97331649.png

80bcae2c-5758-11eb-8b86-12bb97331649.png

時鐘配置

根據板子上的時鐘源,進行對應的時鐘配置,此處采用內部作為系統PLL的時鐘源。

80ed1b84-5758-11eb-8b86-12bb97331649.png

生成工程

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

811d17bc-5758-11eb-8b86-12bb97331649.png

調試QSPI驅動

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

81399ec8-5758-11eb-8b86-12bb97331649.png

第一步

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

81720402-5758-11eb-8b86-12bb97331649.png

82071114-5758-11eb-8b86-12bb97331649.png

82278e26-5758-11eb-8b86-12bb97331649.png

824b6cc4-5758-11eb-8b86-12bb97331649.png

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

第二步

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

826499d8-5758-11eb-8b86-12bb97331649.png

第三步

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

829da6d8-5758-11eb-8b86-12bb97331649.png

第四步

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

82ffd920-5758-11eb-8b86-12bb97331649.png

修改配置生成QSPI Loader

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

第一步

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

83348ee0-5758-11eb-8b86-12bb97331649.png

8353ebf0-5758-11eb-8b86-12bb97331649.png

第二步

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

8372bb52-5758-11eb-8b86-12bb97331649.png

第三步

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

83be50e4-5758-11eb-8b86-12bb97331649.png

第四步

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

84d0b828-5758-11eb-8b86-12bb97331649.png

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

850878f8-5758-11eb-8b86-12bb97331649.png

總結

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

責任編輯:lq

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

    關注

    146

    文章

    17171

    瀏覽量

    351498
  • FlaSh
    +關注

    關注

    10

    文章

    1637

    瀏覽量

    148135
  • STM32
    +關注

    關注

    2270

    文章

    10904

    瀏覽量

    356397

原文標題:通過 STM32CubeMX制作外部Flash的燒寫驅動 (.stdlr)

文章出處:【微信號:mcugeek,微信公眾號:MCU開發加油站】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    STM32CubeMX的菜單介紹

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

    STM32CUBEMX(10)--Flash讀寫

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

    如何使用STM32CubeMX修改STM32Cube_FW_MP2?

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

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

    沒有內部外部flash的esp32 s3可以程序到里面嗎
    發表于 07-01 07:12

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

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

    stm32cubemx配置單片機的USB外設為CDC模式,程序時出錯怎么解決?

    我用的單片機型號是STM32L496VGT3,按照網上的教程用STM32CUBEMX將單片機的USB外設配置為CDC模式,生成代碼之后在程序是總是提示下面的錯誤,請問有哪位遇到過類
    發表于 04-29 08:09

    STM32CUBEMX配置STM32L496VGT3芯片,的時候報錯的原因?

    本人現在在用STM32CUBEMX配置STM32L496VGT3芯片,并按照網上的教程將芯片的USB外設配置為了CDC類,但是在的時候出現了如下錯誤,請問想要PC機能夠識別USB設
    發表于 04-28 07:13

    使用STM32CubeMX生成代碼,調試始終都不通過是為什么?

    我使用STM32CubeMX生成代碼,調試始終都不通過,請大家給給意見!! 故障現象:電腦識別為Mass Storage但無法安裝驅動失敗,用抓包軟件觀察為“Set Configration
    發表于 04-28 06:04

    STM32Cubemx驅動STME32F407的TFTLCD花屏是什么原因導致的?

    STM32Cubemx 驅動STME32F407的TFTLCD始終花屏,求幫助,謝謝
    發表于 04-18 06:02

    STM32cubemx的庫和KEIL的庫有什么不同?

    STM32cubemx軟件有對應各個系列芯片的庫. 使用cubemx,生成代碼框架,比如生成MDK的代碼框架。但MDK也有自己的PACK。那么MDK的PACK和CUBEMX的庫有什么區別,兩者時什么關系呢?
    發表于 04-11 06:02

    stm32cubemx customHID編譯了,用usb連電腦但是Demonstrator刷不到這個驅動是為什么?

    stm32cubemx的pack包里的 官方源代碼customHID編譯了,用usb連電腦,但是Demonstrator刷不到這個驅動
    發表于 04-02 07:43

    STM32H743ZIT6 keil程序不進去,報錯的原因?怎么解決?

    out...,且有時能識別JTAG,有時只能識別SWD. 3.嘗試了方法: 1)重新其他程序(從stm32cubemx 只配置jtag 5pin +1個GPIO點燈),同樣不能
    發表于 03-27 06:36

    STM32CUBEMX界面重影嚴重怎么解決?

    STM32CUBEMX 界面重影嚴重,有相同問題的嗎
    發表于 03-14 07:13

    STM32Cubemx配置USB虛擬串口,電腦無法識別怎么解決?

    STM32Cubemx配置USB虛擬串口,電腦無法識別問題?(上拉和驅動都配置好了)
    發表于 03-08 07:00

    stm32 flash數據怎么存儲的

    stm32 flash數據怎么存儲的? STM32是一款廣泛應用于嵌入式系統開發的微控制器,它的Flash存儲器是其中一個重要的組成部分。
    的頭像 發表于 01-31 15:46 ?2424次閱讀
    主站蜘蛛池模板: 国产又黄又免费aaaa视频| aaa视频| 欧美一级特黄aaaaaa在线看片| 一级特黄a 大片免费| 又黑又长黑人欧美三级| 亚洲第一视频在线| 天天干天天操天天爱| 美女被玩| 8050网午夜| 一区二区三区久久| 精彩视频一区二区三区| 亚洲你xx我xx网站| 在线观看视频播放| 免费在线视频播放| 视频一区在线观看| 天天弄天天模| 欧美黄一片| 日本啪啪小视频| 亚洲精品www| 亚洲第一成人影院| 好爽好深太大了再快一点| 伊人久久成人成综合网222| 欧美一区二区不卡视频| 在线高清一级欧美精品| 特级毛片aaa免费版| 性欧美videofree视频另类| aaaa级毛片| 色批网站www| 黄 色 片成 人免费观看| 午夜免费| 五月天狠狠| 国产精品9999| 欧美成网站| 四虎免费影院4hu永久免费| 老司机成人精品视频lsj| 123综合网在线| 国产中文99视频在线观看| 夜夜嘿视频免费看| 完整日本特级毛片| 激情五月婷婷在线| 国产人成精品香港三级古代|