91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

總結

通過該方法可以快速的生成一個外部燒寫腳本對外部的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

    文章

    1749

    瀏覽量

    155569
  • 驅(qū)動
    +關注

    關注

    12

    文章

    1958

    瀏覽量

    88575
  • STM32
    +關注

    關注

    2310

    文章

    11167

    瀏覽量

    373620
  • 燒寫
    +關注

    關注

    0

    文章

    59

    瀏覽量

    14865

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

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

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

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

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

    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

    請問使用CubeMX選擇芯片生成項目時如何選擇外部晶振?

    我從網(wǎng)上購入了STM32F103C8T6的核心板,板上有外部晶振。但我使用STM32CubeMX生成項目時,卻無法選擇外部晶振(如下圖)。請問要在哪里設置才能選擇
    發(fā)表于 04-22 09:17

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

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

    AGM FPGA/MCU文件類型有哪些及用途

    文件為 Master(AS)配置方式下,通過JTAG外部配置FLASH的文件; _master.bin 為Master(AS)配置方式下
    發(fā)表于 03-14 09:54

    STM32cubeMx打開報錯更新器正在下載,怎么解決?

    cubeMx打開報錯A \'STiM32Cube Updater (or another\'STM32CubeMX) sotware is downloading to the Repository
    發(fā)表于 03-14 07:03

    請問如何使用STM32CubeMX修改STM32Cube_FW_MP2_V1.0.0固件中的項目例程引腳?

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

    請問STM32cubeMX中文版怎么設置?

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