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

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

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

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

通過(guò)STM32CubeMX制作外部Flash的燒寫(xiě)驅(qū)動(dòng) (.stdlr)

MCU開(kāi)發(fā)加油站 ? 來(lái)源:STM32單片機(jī) ? 作者:STM32單片機(jī) ? 2021-01-18 16:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

通過(guò) STM32CubeMX制作外部Flash的燒寫(xiě)驅(qū)動(dòng) (.stdlr) 前言

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

安裝STM32CubeIDE

安裝MCU對(duì)應(yīng)型號(hào)的HAL庫(kù)

External loader開(kāi)發(fā)

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

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

使用STM32CubeMX生成工程

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

新建工程

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

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

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

管腳配置

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

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

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

時(shí)鐘配置

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

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

生成工程

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

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

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

從開(kāi)篇提到的GitHub倉(cāng)庫(kù)中獲取相關(guān)的驅(qū)動(dòng)代碼。

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

第一步

將External-Loaders QSPI testing目錄mian_test.c中的代碼添加到工程中對(duì)應(yīng)的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

注意添加代碼時(shí)保留USER CODE BEGIN x和USER CODE END x標(biāo)簽,否則添加的代碼會(huì)在Cube MX重新生成代碼時(shí)被覆蓋掉。

第二步

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

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

第三步

打開(kāi)CubeMX,重新生成工程。因?yàn)闉榱诉m配所有系列的QSPI接口,GitHub所提供QSPI的HAL驅(qū)動(dòng)中,沒(méi)有提供相應(yīng)的QSPI外設(shè)配置函數(shù),需要通過(guò)CubeMX來(lái)生成。

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

第四步

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

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

修改配置生成QSPI Loader

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

第一步

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

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

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

第二步

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

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

第三步

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

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

第四步

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

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

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

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

總結(jié)

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

責(zé)任編輯:lq

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

    關(guān)注

    147

    文章

    18955

    瀏覽量

    399219
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1749

    瀏覽量

    155602
  • STM32
    +關(guān)注

    關(guān)注

    2310

    文章

    11167

    瀏覽量

    373686

原文標(biāo)題:通過(guò) STM32CubeMX制作外部Flash的燒寫(xiě)驅(qū)動(dòng) (.stdlr)

文章出處:【微信號(hào):mcugeek,微信公眾號(hào):MCU開(kāi)發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    LAT1198+通過(guò) KEIL 制作 QSPI 接口的外部 Flash 下載算法應(yīng)用筆記

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

    請(qǐng)問(wèn)RT-Thread與stm32cubemx聯(lián)合開(kāi)發(fā)的原理是什么?

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

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

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

    意法半導(dǎo)體:STM32CubeMX將不再集成到STM32CubeIDE中

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

    FLASH寫(xiě)/編程白皮書(shū)

    白皮書(shū):如何寫(xiě)Flash——不同場(chǎng)景不同需求下的選擇認(rèn)識(shí)Flash?NAND vs. NOR如何寫(xiě)
    發(fā)表于 07-28 16:05 ?0次下載

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

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

    對(duì)于在STM32CubeMx使用FMC中的NAND FLASH里面配置這些時(shí)間有什么說(shuō)明嗎?

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

    STM32N657X0Q為什么無(wú)法通過(guò)SPI驅(qū)動(dòng)st7796板子?

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

    STM32CubeMX配置STM32G070RBT6TR時(shí)為什么無(wú)法使能PVD中斷?

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

    STM32CubeMX配置STM32G070RBT6TR時(shí)無(wú)法使能PVD中斷怎么辦?

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

    關(guān)于CCG5 platform Flash問(wèn)題,在寫(xiě)images時(shí),如何保留產(chǎn)線校準(zhǔn)數(shù)據(jù)?

    1. CCG5平臺(tái)flash大小為128K,有512 row,每個(gè)row大小是256個(gè)字節(jié) 通過(guò)PSoC Programmer寫(xiě)image時(shí),會(huì)將128K的
    發(fā)表于 05-30 07:50

    STM32F103C8T6無(wú)法選擇外部晶振怎么解決?

    我從網(wǎng)上購(gòu)入了STM32F103C8T6的核心板,板上有外部晶振。但我使用STM32CubeMX生成項(xiàng)目時(shí),卻無(wú)法選擇外部晶振(如下圖)。請(qǐng)問(wèn)要在哪里設(shè)置才能選擇
    發(fā)表于 04-28 07:03

    使用STM32CubeMX進(jìn)行配置USB的時(shí)候,有哪些小的需要注意的細(xì)節(jié)?

    在使用STM32CubeMX進(jìn)行配置USB的時(shí)候,是參照例程進(jìn)行的配置,自己配置的就是沒(méi)有成功,例程就滅有問(wèn)題,總感覺(jué)哪里沒(méi)有打開(kāi)?有人遇到過(guò)需要注意的小細(xì)節(jié)嗎?
    發(fā)表于 04-23 06:54

    請(qǐng)問(wèn)使用CubeMX選擇芯片生成項(xiàng)目時(shí)如何選擇外部晶振?

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

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

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