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

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

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

mm32-2nd-bootloader配置軟硬件環(huán)境

靈動(dòng)MM32MCU ? 來源:靈動(dòng)MM32MCU ? 2023-03-08 13:51 ? 次閱讀

1

引言

需求

MM32F5 系列微控制器具備 QSPI 接口,可以外接 QSPI Flash,擴(kuò)大可使用的 Flash 空間,從而滿足那些需要大 Flash 空間應(yīng)用的需求,讓 Flash 空間的大小不再成為限制應(yīng)用開發(fā)的瓶頸。

但使用 QSPI Flash 之前,還需要對(duì) QSPI 接口進(jìn)行配置,然后才能執(zhí)行存儲(chǔ)在 QSPI Flash 上的代碼,這讓應(yīng)用程序的開發(fā)變得復(fù)雜。

因此,需要一些解決方案,能夠讓用戶盡可能無感地使用 QSPI Flash 存儲(chǔ)應(yīng)用程序。

案例

以 MM32F5277E9PV 微控制器為例,這個(gè)微控制器搭載著 ArmChina STAR-MC1 內(nèi)核,主頻可達(dá) 120MHz,擁有 256KB Flash 和 128KB SRAM,使用這塊芯片,可以實(shí)現(xiàn)一些 “復(fù)雜的應(yīng)用”,例如,運(yùn)行一個(gè)帶有 GUI 功能的應(yīng)用。

在編譯這個(gè) “復(fù)雜的應(yīng)用” 時(shí),編譯器可能會(huì)報(bào)錯(cuò),顯示缺少足夠 Flash 空間;這個(gè)應(yīng)用可能包含了圖片,字庫,好幾個(gè)協(xié)議棧,所需要的 Flash 空間非常大,一般微控制器不會(huì)擁有這么大的片內(nèi) Flash。因此,需要外接一個(gè) QSPI Flash 來解決這個(gè)問題。

MM32F5270 系列微控制器帶有 QSPI 接口,可以使用 QSPI Flash 來擴(kuò)展微控制器可使用的 Flash 空間;如果擔(dān)心外接 QSPI Flash 占據(jù) PCB 空間,則可使用 MM32F5280 系列微控制器,該微控制器合封有一塊 1MB ~ 2MB 的 QSPI Flash,無需考慮 QSPI Flash 的電路,節(jié)省 PCB 面積。

通過外接 QSPI Flash,就可以擁有足夠的空間來實(shí)現(xiàn)這個(gè) “復(fù)雜的應(yīng)用”。但開發(fā)應(yīng)用時(shí),仍希望像使用片內(nèi) Flash 那樣使用 QSPI Flash:下載程序的時(shí)候,直接點(diǎn)擊 IDE 的下載按鈕,就能下載程序;調(diào)試代碼的時(shí)候,直接點(diǎn)擊調(diào)試按鈕,就能進(jìn)行軟件調(diào)試;只需少量修改代碼,就能讓應(yīng)用程序保存在 QSPI Flash 中,讓微控制器直接執(zhí)行。

為了讓 IDE 下載程序到 QSPI Flash 中,需要有一個(gè)合適的下載算法。為了讓編譯器知道應(yīng)用程序要保存在 QSPI Flash 中,需要修改 Linker 文件,讓編譯器知道 QSPI Flash 的地址范圍。為了讓微控制器執(zhí)行存儲(chǔ)在 QSPI Flash 中的程序,還需要實(shí)現(xiàn)合適的 2nd Bootloader ,引導(dǎo)微控制器去執(zhí)行 QSPI Flash 中的程序。

目標(biāo)

在 MDK 平臺(tái)上實(shí)現(xiàn)定制化的下載算法,可將應(yīng)用程序下載到 QSPI Flash 中。

盡可能少地改動(dòng)應(yīng)用程序代碼,使其能夠存儲(chǔ)在 QSPI Flash 中。

實(shí)現(xiàn)簡單的 2nd Bootloader,使其能夠引導(dǎo)微控制器執(zhí)行存儲(chǔ)在 QSPI Flash 中的應(yīng)用程序。

在上述的 2nd Bootloader 的基礎(chǔ)上,實(shí)現(xiàn)量產(chǎn)下載,更新應(yīng)用程序等特殊功能。

2

配置硬件環(huán)境

硬件環(huán)境

QSPI Flash

工欲善其事,必先利其器,想在 QSPI Flash 上存儲(chǔ)應(yīng)用程序,就需要選擇一款合適的 QSPI Flash 芯片。

選型時(shí),需要重點(diǎn)關(guān)注工作電壓的范圍,部分 QSPI Flash 的工作電壓在 1.8V 左右,如果使用 3.3V 供電,是沒辦法正常工作的,反之亦然。

除了電壓范圍外,部分 QSPI Flash 芯片在默認(rèn)情況下,是不允許使用四線模式的,原本 QSPI 的 D2 & D3 引腳會(huì)被用于寫保護(hù)使能(WP)和 HOLD 使能。讓 QSPI Flash 允許使用四線模式的方法,需參照使用的 QSPI Flash 芯片手冊(cè)進(jìn)行操作。建議使用默認(rèn)處于四線模式的 QSPI Flash,或者在設(shè)計(jì) 2nd Bootloader 時(shí),能在跳轉(zhuǎn)到應(yīng)用程序之前,將四線模式打開。

MM32F5 系列的微控制器支持大多數(shù)常見的 QSPI Flash,表1中列舉的 QSPI Flash 芯片為經(jīng)過實(shí)際測(cè)試可用的 QSPI Flash 芯片:

表1 測(cè)試可用的 QSPI Flash 列表

91b44c0e-baa6-11ed-bfe3-dac502259ad0.png

MCU

硬件電路設(shè)計(jì)時(shí),需要了解微控制器的哪些引腳可作為 QSPI 接口,表2 是 MM32F5270 系列微控制器的 QSPI 接口引腳:

表2 MM32F5270 系列微控制器 QSPI 接口引腳

91c624a6-baa6-11ed-bfe3-dac502259ad0.png

其引腳配置如下:

引腳模式:復(fù)用推挽輸出。

引腳速度:高速模式,QSPI 的 SCK 時(shí)鐘最快可達(dá) 60MHz,因此應(yīng)配置成高速模式。

引腳復(fù)用功能號(hào):巧合的是,當(dāng)引腳作為 QSPI 接口時(shí),復(fù)用功能號(hào)均為 AF10。

表3 為MM32F5280 系列微控制器的引腳:

表3 MM32F5280的QSPI引腳

91d4b32c-baa6-11ed-bfe3-dac502259ad0.png

可以發(fā)現(xiàn),MM32F5280 系列微控制器只有一組引腳可作為 QSPI 接口,并且這些引腳并沒有引出到芯片外部,這是由于 MM32F5280 系列微控制器內(nèi)部合封了 QSPI Flash,其引腳已經(jīng)在芯片內(nèi)部與 QSPI Flash 相連,不需要再引出至芯片外部。

雖然 MM32F5280 片內(nèi)合封了 QSPI Flash,對(duì)應(yīng)的引腳也直接與其相連,但在使用這塊 QSPI Flash 時(shí),仍需配置相應(yīng)的引腳,其配置方法與 MM32F5270 完全一致。

由于 MM32F5280 系列微控制器將其 QSPI Flash 合封在了芯片內(nèi)部,因此在 PCB 設(shè)計(jì)時(shí),可減少外圍元件的數(shù)量,降低了產(chǎn)品成本。

當(dāng)使用 MM32F5270 + QSPI Flash 的方案時(shí),由于 QSPI 信號(hào)線暴露在微控制器外部,易受到外部電磁環(huán)境的干擾,可能無法以最快的速度(SCK 的頻率為 60MHz)訪問 QSPI Flash,但這個(gè)問題在 MM32F5280 上就不會(huì)出現(xiàn)。

當(dāng)然,也正是由于 MM32F5280 系列微控制器的 QSPI Flash 合封在了芯片內(nèi)部,如果想用使用更大的 Flash 時(shí),還是需要使用 MM32F5270 + QSPI Flash 的方案。

Board

PLUS-F5270開發(fā)板

PLUS-F5270 板載華邦的 W25Q64JVSIQ,F(xiàn)lash 大小為 8MB (64Mb),3.3V 供電,默認(rèn)情況下,四線模式處于打開狀態(tài)。

MM32F5270 連接該 QSPI Flash 所使用的引腳號(hào)如圖2所示:

9267086c-baa6-11ed-bfe3-dac502259ad0.png

圖2 MM32F5270連接的QSPI Flash引腳

在PLUS-F5270開發(fā)板上,MM32F5270芯片與QSPI Flash W25Q64的引腳對(duì)應(yīng)關(guān)系如表4所示。

927c3890-baa6-11ed-bfe3-dac502259ad0.png

表4 PLUS-F5270開發(fā)板上MM32F5270與QSPI Flash W25Q64的引腳對(duì)應(yīng)關(guān)系

在設(shè)計(jì) MM32F5270 + QSPI Flash 的應(yīng)用時(shí),建議優(yōu)先采用 PF6(QSPI_CS)、PG7(QSPI_SCK)、PG6(QSPI_D0)、PF8(QSPI_D1)、PF10(QSPI_D2)、PG8(QSPI_D3) 引腳,從而可使用 MM32F5280 MCU 無縫替換 MM32F5270。

軟件工具

在開發(fā)調(diào)試 MM32F5270 + QSPI Flash 這個(gè) “復(fù)雜的應(yīng)用” 時(shí),需要一些軟件工具:

開發(fā)平臺(tái)

嵌入式軟件的開發(fā)需要一個(gè)軟件平臺(tái),這個(gè)軟件平臺(tái)可以是 MDK,IAR,ARMGCC 等,本文將以 MDK 為例,開發(fā)并調(diào)試所需要的軟件。在官網(wǎng)(https://www.keil.com/download/product)頁面上,可下載MDK-ARM的安裝包并啟動(dòng)安裝,使用 MDK 進(jìn)行工程的調(diào)試與下載。

需要注意,MDK 的軟件版本最低為 5.37,且需使用 AC6 編譯器,舊版本 AC5 編譯器不支持編譯 STAR-MC1 平臺(tái)的軟件。

下載算法

不同于 SRAM,修改 Flash 中的內(nèi)容時(shí),需要先將 Flash 中的數(shù)據(jù)整塊擦除,再通過特殊的方法將數(shù)據(jù)寫入到 Flash 中,而不是直接往指定地址進(jìn)行寫操作。因此,需要有一段中間程序,能夠幫助調(diào)試器將指定位置的數(shù)據(jù),寫入到 Flash 中。

這段中間程序就叫做下載算法,它運(yùn)行在 SRAM 中,在修改 Flash 中的內(nèi)容前,調(diào)試器會(huì)先將下載算法通過 SWD 或其他調(diào)試接口加載到 SRAM 中并執(zhí)行,然后再加載存放到 Flash 中的數(shù)據(jù),讓存儲(chǔ)在 SRAM 中的下載算法將數(shù)據(jù)寫入到 Flash 中。

獲取下載算法有三種方式:

1

從 MCU 廠商的官網(wǎng)中下載相應(yīng) MCU 的 PACK 包中獲取。

2

從 MDK 的 Pack Installer 中獲取。

3

使用開發(fā)平臺(tái)提供的模板文件自行制作。

2nd Bootloader

2nd Bootloader 將會(huì)引導(dǎo)微控制器執(zhí)行存放在 QSPI Flash 中的應(yīng)用程序,之所以稱為 2nd Bootloader,是為了區(qū)分固化在微控制器內(nèi)部的 1st Bootloader。當(dāng)然,2nd Bootloader 也可以固化到微控制器中,作為 1st Bootloader 來使用,但那樣就失去了可定制化的意義。

2nd Bootloader 執(zhí)行存儲(chǔ)在 QSPI Flash 上的應(yīng)用程序之前,會(huì)先初始化 QSPI 外設(shè),以及所用到的 GPIO 引腳,讓微控制器能夠通過訪問地址的形式訪問 QSPI Flash,就像訪問片內(nèi) Flash 那樣。當(dāng)然,這只是 2nd Bootloader 最基本的功能,在此基礎(chǔ)上,還可以增加一些定制化的功能,例如為量產(chǎn)而準(zhǔn)備的串口 + Ymodem 下載固件功能,或者增加 OTA 升級(jí)的方案。





審核編輯:劉清

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

    關(guān)注

    48

    文章

    7394

    瀏覽量

    150624
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1608

    瀏覽量

    147562
  • GUI
    GUI
    +關(guān)注

    關(guān)注

    3

    文章

    632

    瀏覽量

    39430
  • SRAM芯片
    +關(guān)注

    關(guān)注

    0

    文章

    65

    瀏覽量

    12031
  • QSPI接口
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    3323

原文標(biāo)題:靈動(dòng)微課堂 (第245講)|mm32-2nd-bootloader技術(shù)白皮書(1)——配置軟硬件環(huán)境

文章出處:【微信號(hào):MindMotion-MMCU,微信公眾號(hào):靈動(dòng)MM32MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    mm32-2nd-bootloader技術(shù)白皮書——配置軟硬件環(huán)境

    MM32F5 系列微控制器具備 QSPI 接口,可以外接 QSPI Flash,擴(kuò)大可使用的 Flash 空間,從而滿足那些需要大 Flash 空間應(yīng)用的需求,讓 Flash 空間的大小不再成為限制應(yīng)用開發(fā)的瓶頸。
    發(fā)表于 03-08 13:49 ?240次閱讀

    支持過程級(jí)動(dòng)態(tài)軟硬件劃分的RSoC設(shè)計(jì)與實(shí)現(xiàn)

    系統(tǒng)(RSoC),提出了一種過程級(jí)硬件透明編程模型,給出了過程級(jí)的硬件封裝方案;在分析軟硬件過程根本區(qū)別的基礎(chǔ)上,針對(duì)硬件過程開發(fā)了專門的管理模塊,并利用部分動(dòng)態(tài)重構(gòu)等技術(shù),實(shí)現(xiàn)了
    發(fā)表于 05-28 13:40

    基于SoPC的狀態(tài)監(jiān)測(cè)裝置的嵌入式軟硬件協(xié)同設(shè)計(jì)

    硬件部分,來滿足系統(tǒng)的性能指標(biāo)。面向SoPC的軟硬件協(xié)同設(shè)計(jì)流程從目標(biāo)系統(tǒng)構(gòu)思開始。對(duì)一個(gè)給定的目標(biāo)系統(tǒng),經(jīng)過構(gòu)思,完成其系統(tǒng)整體描述,然后交給軟硬件協(xié)同設(shè)計(jì)的開發(fā)集成環(huán)境,由計(jì)算機(jī)
    發(fā)表于 01-22 16:41

    基于EDA 的嵌入式系統(tǒng)軟硬件劃分方法

    基于EDA 的嵌入式系統(tǒng)軟硬件劃分方法Hardware/Software Partitioning Method Based on Estimation of Distribution 摘要:針對(duì)嵌入式系統(tǒng)軟硬件協(xié)同設(shè)計(jì)中的軟硬件
    發(fā)表于 12-05 16:34 ?26次下載

    基于USB的串行通信軟硬件設(shè)計(jì)

    本文是基于USB的串行通信軟硬件設(shè)計(jì)的詳細(xì)介紹
    發(fā)表于 10-17 17:38 ?127次下載
    基于USB的串行通信<b class='flag-5'>軟硬件</b>設(shè)計(jì)

    USB的串行通信軟硬件設(shè)計(jì)

    USB的串行通信軟硬件設(shè)計(jì)
    發(fā)表于 09-04 10:08 ?14次下載
    USB的串行通信<b class='flag-5'>軟硬件</b>設(shè)計(jì)

    基于FPGA的軟硬件協(xié)同測(cè)試設(shè)計(jì)影響因素分析與設(shè)計(jì)實(shí)現(xiàn)

    軟硬件的開發(fā)階段中,測(cè)試結(jié)果直接關(guān)系到這個(gè)軟硬件能否順利進(jìn)行調(diào)試應(yīng)用。其中,硬件的測(cè)試往往容易受外界因素的影響,如環(huán)境、計(jì)算機(jī)設(shè)備等,可以通過一些仿真軟件來避免外界
    發(fā)表于 11-18 05:46 ?1861次閱讀

    軟硬件協(xié)同設(shè)計(jì)機(jī)遇與挑戰(zhàn)分析

    軟硬件協(xié)同設(shè)計(jì)是指對(duì)系統(tǒng)中的軟硬件部分使用統(tǒng)一的描述和工具進(jìn)行集成開發(fā),可完成全系統(tǒng)的設(shè)計(jì)驗(yàn)證并跨越軟硬件界面進(jìn)行系統(tǒng)優(yōu)化,軟硬件協(xié)同設(shè)計(jì)是嵌入式技術(shù)發(fā)展的一大趨勢(shì),本PPT文件是賽靈
    發(fā)表于 11-25 03:45 ?649次閱讀

    基于FPGA芯片的軟硬件平臺(tái)的使用

    基于FPGA芯片的軟硬件平臺(tái)的使用
    發(fā)表于 07-01 09:35 ?20次下載

    為什么要從“軟硬件協(xié)同”走向“軟硬件融合”?

    軟件和硬件需要定義好交互的“接口”,通過接口實(shí)現(xiàn)軟硬件的“解耦”。例如,對(duì)CPU來說,軟硬件的接口是指令集架構(gòu)ISA:ISA之下的CPU處理器是硬件,指令集之上的各種程序、數(shù)據(jù)集、文件
    的頭像 發(fā)表于 12-07 14:23 ?2452次閱讀

    mm32-2nd-bootloader技術(shù)進(jìn)階設(shè)計(jì):實(shí)現(xiàn)Ymodem更新代碼

    前文中實(shí)現(xiàn)了一款簡單的 2nd Bootloader,能夠跳轉(zhuǎn)執(zhí)行存儲(chǔ)在 QSPI Flash 中的應(yīng)用程序,但 2nd Bootloader 如果僅僅只是用于跳轉(zhuǎn)執(zhí)行程序的話,豈不是
    的頭像 發(fā)表于 06-09 09:28 ?1663次閱讀
    <b class='flag-5'>mm32-2nd-bootloader</b>技術(shù)進(jìn)階設(shè)計(jì):實(shí)現(xiàn)Ymodem更新代碼

    國產(chǎn)軟硬件龍芯系列迅為2K1000開發(fā)板配置 nand flash

    國產(chǎn)軟硬件龍芯系列迅為2K1000開發(fā)板配置 nand flash
    的頭像 發(fā)表于 04-12 14:10 ?1042次閱讀
    國產(chǎn)<b class='flag-5'>軟硬件</b>龍芯系列迅為<b class='flag-5'>2</b>K1000開發(fā)板<b class='flag-5'>配置</b> nand flash

    mm32-2nd-bootloader技術(shù)白皮書(5)——編譯可在QSPI Flash上運(yùn)行的程序

    mm32-2nd-bootloader技術(shù)白皮書(5)——編譯可在QSPI Flash上運(yùn)行的程序
    的頭像 發(fā)表于 10-24 16:14 ?420次閱讀
    <b class='flag-5'>mm32-2nd-bootloader</b>技術(shù)白皮書(5)——編譯可在QSPI Flash上運(yùn)行的程序

    軟硬件融合的概念和內(nèi)涵

    跟很多朋友交流,當(dāng)提到軟硬件融合的時(shí)候,他們會(huì)這么說:“軟硬件融合,難道不是顯而易見嗎?我感覺在二三十年前就已經(jīng)有這個(gè)概念了?!痹谒麄兊南敕ɡ?,其實(shí):軟硬件融合等同于軟硬件協(xié)同,甚至等
    的頭像 發(fā)表于 10-17 14:36 ?1284次閱讀
    <b class='flag-5'>軟硬件</b>融合的概念和內(nèi)涵

    機(jī)器視覺系統(tǒng)讀取二維碼-軟硬件配置方案

    機(jī)器視覺系統(tǒng)讀取二維碼-軟硬件配置方案
    的頭像 發(fā)表于 05-24 00:56 ?467次閱讀
    機(jī)器視覺系統(tǒng)讀取二維碼-<b class='flag-5'>軟硬件</b><b class='flag-5'>配置</b>方案