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

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

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

3天內不再提示

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

jf_pJlTbmA9 ? 來源:靈動MM32MCU ? 作者:靈動MM32MCU ? 2023-10-24 16:14 ? 次閱讀

相關閱讀:

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

mm32-2nd-bootloader技術白皮書(2)——QSPI外設簡介

mm32-2nd-bootloader技術白皮書(3)——設計實現QSPI Flash的下載算法

mm32-2nd-bootloader技術白皮書(4)——設計實現簡單的2nd bootloader

引言

在前文中已經實現了一個能夠在 MDK 平臺進行下載代碼到 QSPI Flash 中的下載算法,以及一個能跳轉執(zhí)行應用程序的 2nd Bootloader,但若想將代碼下載到 QSPI Flash上并運行,仍需對所需執(zhí)行的代碼文件進行少量的修改,使其能夠在 QSPI Flash 上運行。

修改Linker文件

本文將 MindSDK 的 PLUS-F5270 hello_world 樣例工程作為所需執(zhí)行的文件,可通過 MindSDK 官網 (https://mindsdk.mindmotion.com.cn/) 獲取該樣例,如圖 1 所示。

wKgaomUDyeeAPtGjAACYsSnePz0705.png

圖1 通過官網獲取 MindSDK PLUS-F5270 hello_world樣例工程

打開 hello_world 樣例工程,在Options for Target選項的Linker頁面下,找到Scatter File選項,該選項中內容為 Linker 所使用的 Scatter File 文件路徑,點擊該選項右側的Edit,此時樣例工程中會彈出對應的 Scatter File 文件界面,如圖 2 所示。

wKgZomUDyemAGMhlAABwZ-T2r9Q427.png

圖2 打開scatter file文件界面

在彈出的 mm32f5277e_flash.scf 文件中,需要根據 QSPI 的存儲器映像配置__ROM_BASE的數值,QSPI 外設的基礎地址為 0x90000000,這個地址值來自于微控制器的用戶手冊的 “地址映射” 章節(jié),如圖 3 所示。因此,__ROM_BASE的數值應該為 0x90000000。

wKgZomUDyeqAW5w0AADqlRbgj2I868.png

圖3 QSPI 外設的存儲器映像編址范圍

QSPI Flash 的大小為8MB,其中 8MB = 8 * 1024 *1024 = 8388608,換算為 16 進制是 0x00800000,因此,__ROM_SIZE的數值應該為 0x00800000。

Scatter File文件的內容修改如下:

...
/*---------------------FlashConfiguration----------------------------------
;FlashConfiguration
;FlashBaseAddress<0x0-0xFFFFFFFF:8>
;FlashSize(inBytes)<0x0-0xFFFFFFFF:8>
;
*----------------------------------------------------------------------------*/
#define__ROM_BASE0x90000000
#define__ROM_SIZE0x00800000
...

修改源代碼

在配置好 Linker 所需的 Scatter File 文件后,需要對將要執(zhí)行的文件進行檢查,去除可能會影響到 QSPI Flash 運行的代碼,需要檢查的點如下:

檢查時鐘初始化部分:

是否存在復位 QSPI 模塊的時鐘或復位 QSPI 所使用的 GPIO 引腳時鐘的情況

若存在復位 QSPI 模塊,則處理器將無法從 QSPI Flash 中讀取下一個要執(zhí)行的指令。

若存在復位 QSPI 使用引腳的時鐘,則運行到引腳時鐘復位后,GPIO 復位,引腳不再作為 QSPI 的接口,因此將會影響到 QSPI 與 QSPI Flash 之間的通信

在 “hello_world” 工程中,以上代碼可能會出現在 board 目錄下的 “clock_init.c” 中。

檢查引腳初始化部分:

是否占用 QSPI 所使用的引腳

若引腳初始化時,占用 QSPI 所需引腳,將會影響與 QSPI Flash 的通信

在 “hello_world” 工程中,以上代碼可能會出現在 board 目錄下的 “pin_init.c” 中。

不能出現以間接模式操作 QSPI Flash 的代碼

若執(zhí)行間接模式操作 QSPI Flash 的代碼,會中斷直接讀模式,而直接讀模式是執(zhí)行存儲在 QSPI Flash 的應用程序的基礎,因此,執(zhí)行間接模式操作 QSPI Flash 的代碼會使應用程序跑飛。

在 “hello_world” 工程中,沒有執(zhí)行間接模式操作 QSPI Flash 的代碼。

添加下載算法到可執(zhí)行文件

該可執(zhí)行樣例最終將在 QSPI Flash 中存儲并運行,因此,需要添加根據實際所使用的 QSPI Flash芯片而配置的下載算法到樣例工程中,以幫助調試器將指定位置的數據寫入 Flash。

以配置完成的 PLUS-F5270 hello_world 樣例工程為例,打開Options for Target的Debug頁面,選擇Settings選項進入Cortex Jlink/JTrace Target Driver Setup頁面的Flash Download,選擇Add選項,進入下載算法選擇列表,選擇前文中設置好的MM32F5270 QSPI FlashLoader下載算法,點擊Add進行添加,如圖 4 所示。

wKgaomUDyeyAKPSpAAJerYMOsEQ867.png

圖4 添加下載算法到可執(zhí)行文件中

此處需注意,若下載算法的大小大于Flash Download中RAM for Algorithm的Size選項中的大小,會導致在下載時出現 "Cannot Load Flash Programming Algorithm" 的問題,此時需適當將Size的大小調大一些,本文中設置Size為 0x2000。

驗證

配置完成在 QSPI Flash 上運行的可執(zhí)行文件后,可嘗試使用下載算法將整個工程下載到 QSPI Flash 中并使用 2nd Bootloader 執(zhí)行這個工程。

先將前文中實現運行在片內 Flash 的 2nd Bootloader 下載到 PLUS-F5270 開發(fā)板中,再將已經配置好的添加了下載算法的 hello_world 樣例工程下載到開發(fā)板中的 QSPI Flash 中。下載成功后復位微控制器,通過串口調試器可看到輸出字符 "hello_world"。

wKgZomUDye6ACooQAABuyug3hqw365.png

圖5 使用QSPI Flash的hello_world樣例工程運行結果

在調試模式下,可以從 Disassemby 窗口觀察到進入main函數后地址處于 0x90000950,屬于 QSPI Flash 的范圍內,由此可見,整個 hello_world 下載到 QSPI Flash中并且正確運行。

wKgZomUDyfCAcJK8AARl77P_q-k140.png

圖6 通過調試查看樣例起始地址

至此,已經驗證了下載算法可用, 2nd Bootloader 可用,修改后的樣例工程也可用。

但仍需驗證下中斷是否可用,本文修改 hello_world 工程,驗證 SysTick_Handler() 能否正確執(zhí)行。

volatileuint32_tsystime=0u;

intmain(void)
{
uint8_tch;

BOARD_Init();

printf("hello,worldrn");

SysTick_Config(CLOCK_SYSTICK_FREQ/1000u);

while(1)
{
if(systime>1000)
{
systime=0;
putchar('*');
}
}
}

voidSysTick_Handler()
{
systime++;
}

將修改后的樣例工程下載并運行在 QSPI Flash 上,其結果如圖 7 所示。

wKgZomUDyfGACNTNAAB8k4Eo2d8694.png

圖7 驗證SysTick中斷可用的樣例結果

至此,也驗證了中斷也可正確執(zhí)行。

總結

為了編譯可在QSPI Flash上運行的可執(zhí)行文件,需要作出以下兩件事:

修改 Linker 文件,將 ROM 的位置和大小修改為 QSPI Flash 的映射地址和大小

修改源代碼中所有可能會影響訪問QSPI Flash的代碼,例如 GPIO 的配置,時鐘的配置等

可以發(fā)現編譯可在 QSPI Flash上運行的可執(zhí)行文件并不難,因此可以輕松將應用程序遷移到 QSPI Flash 里。

來源:靈動MM32MCU

免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理

審核編輯 黃宇

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

    關注

    10

    文章

    1657

    瀏覽量

    150765
  • bootloader
    +關注

    關注

    2

    文章

    238

    瀏覽量

    46386
  • SDK
    SDK
    +關注

    關注

    3

    文章

    1058

    瀏覽量

    47445
  • QSPI
    +關注

    關注

    0

    文章

    44

    瀏覽量

    12545
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    編譯可在QSPI Flash運行程序

    在前文中已經實現了一個能夠在 MDK 平臺進行下載代碼到 QSPI Flash 中的下載算法,以及一個能跳轉執(zhí)行應用程序2nd Bootload
    的頭像 發(fā)表于 03-31 09:50 ?3821次閱讀
    <b class='flag-5'>編譯</b><b class='flag-5'>可在</b><b class='flag-5'>QSPI</b> <b class='flag-5'>Flash</b><b class='flag-5'>上</b><b class='flag-5'>運行</b>的<b class='flag-5'>程序</b>

    mm32-2nd-bootloader技術白皮書(7)——性能評估

    ?引言 上文描述了如何將一個樣例工程下載到 QSPI Flash運行,那么就會有一個新的問題:將應用程序存儲在 QSPI
    的頭像 發(fā)表于 06-03 09:35 ?1481次閱讀
    <b class='flag-5'>mm32-2nd-bootloader</b><b class='flag-5'>技術</b><b class='flag-5'>白皮書</b>(7)——性能評估

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

    MM32F5 系列微控制器具備 QSPI 接口,可以外接 QSPI Flash,擴大可使用的 Flash 空間,從而滿足那些需要大
    發(fā)表于 03-08 13:49 ?363次閱讀

    MiniGUI技術白皮書 Tech WhitePaper

    MiniGUI技術白皮書 Tech WhitePaper1 MiniGUI 簡介
    發(fā)表于 03-28 12:23

    BFD技術白皮書 華為

    BFD技術白皮書 華為BFD(雙向轉發(fā)檢測)是一套用來實現快速檢測的國際標準協議,提供一種輕負荷、持續(xù)時間短的檢測。與以往的其他“HELLO”檢測機制相比,具有許多獨到的優(yōu)勢。華為公司已經在高端網絡產品實現了BFD
    發(fā)表于 12-12 10:12

    【經典】智能電網白皮書資料匯編

    【經典】智能電網白皮書資料匯編 工作、電路設計、方案設計等實戰(zhàn)中很多時候遇到的問題在網上找不到好的解決辦法,主要是因為工作中接觸的各個產品、電子元器件都是各大公司的產品,而這些公司產品、適合技術
    發(fā)表于 12-23 20:15

    最新的智能電網的白皮書資料

    ,因而遇到的這些問題并非那些打從資料、技術方案所能解決的,所以自己就養(yǎng)成了搜集各大公司智能電網的白皮書的習慣。 下面各大公司2010年最新的智能電網的白皮書資料,在這里分享出來,有需要的童鞋可以去看
    發(fā)表于 12-23 21:08

    【PPT】ASIC安全管理技術白皮書

    【PPT】ASIC安全管理技術白皮書 附件下載:
    發(fā)表于 02-24 11:32

    ZigBee白皮書

    ZigBee白皮書
    發(fā)表于 08-20 09:50

    數字/下變頻器:VersaCOMM?白皮書

    數字/下變頻器:VersaCOMM?白皮書
    發(fā)表于 07-08 09:33

    歐盟5GPPP 5G架構白皮書概要介紹

    白皮書的總體情況該白皮書總結了歐盟5GPPP的16個項目在過去一年中的研發(fā)成果(涉及從5G物理層架構到總體架構、5G邏輯與功能架構、
    發(fā)表于 07-11 06:24

    5G射頻測試技術白皮書解析

    5G射頻測試技術白皮書詳解
    發(fā)表于 01-13 06:33

    HDC 2022重磅首發(fā)《鴻蒙生態(tài)應用開發(fā)白皮書》,附全文

    開發(fā)者展現鴻蒙開發(fā)套件提供的能力全景和未來愿景。 首版《鴻蒙生態(tài)應用開發(fā)白皮書》攜萬眾矚目,重磅而至!點開下圖掃碼即可在線閱讀《白皮書》全文!
    發(fā)表于 11-11 11:59

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

    MM32F5 系列微控制器具備 QSPI 接口,可以外接 QSPI Flash,擴大可使用的 Flash 空間,從而滿足那些需要大
    的頭像 發(fā)表于 03-08 13:51 ?943次閱讀

    mm32-2nd-bootloader技術進階設計:實現Ymodem更新代碼

    前文中實現了一款簡單的 2nd Bootloader,能夠跳轉執(zhí)行存儲在 QSPI Flash 中的應用程序,但
    的頭像 發(fā)表于 06-09 09:28 ?2597次閱讀
    <b class='flag-5'>mm32-2nd-bootloader</b><b class='flag-5'>技術</b>進階設計:實現Ymodem更新代碼
    主站蜘蛛池模板: 18黄网站 | 国产色婷婷精品综合在线 | 激情丁香网 | 中文字幕一区二区在线观看 | 777色狠狠一区二区三区香蕉 | 直接看黄的网站 | 狠狠色网 | 日本三级11k影院在线 | 天天成人综合网 | 久久免费久久 | 成人夜夜嗨 | 日本成人免费网站 | 小泽玛利亚在线观看123 | 午夜影院毛片 | 午夜激情小视频 | 美女被免费网站91色 | 黄色网免费| 欧美色图亚洲激情 | 国产高清一级视频在线观看 | 乱色伦图片区 | 色免费网站 | 日本xxx69| 欧美日韩一区二区三区视频 | 国产精品一区牛牛影视 | 日本黄色短视频 | 国模小丫大尺度啪啪人体 | 男人天堂伊人 | 91精品福利视频 | 久久综合九色综合欧洲色 | 在线色网 | 美女色18片黄黄色 | 三级在线免费观看 | 成人青草亚洲国产 | 一个人看aaaa免费中文 | 神马午夜在线观看 | 午夜福利123 | 久久国产高清视频 | 激情五月五月婷婷 | 91av免费在线观看 | 色综合久久久久综合99 | 四虎影院成人在线观看 |