chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

Keil MDK下的NOR Flash下載算法

strongerHuang ? 來源:痞子衡嵌入式 ? 作者:痞子衡嵌入式 ? 2020-11-01 11:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天轉(zhuǎn)載痞子衡嵌入式的一篇文章,給大家Keil MDK工具下i.MXRT的串行NOR Flash下載算法設計。 在i.MXRT硬件那些事系列之《在串行NOR Flash XIP調(diào)試原理》一文中,痞子衡簡單提了一下串行NOR Flash下載算法的概念,并沒有介紹具體設計細節(jié),關于NOR Flash下載算法每個IDE/工具都有自己的一套設計,雖然基本設計理念是一樣的,但是細節(jié)方面還是有區(qū)別。上一篇痞子衡介紹了《J-Link下算法設計》,今天痞子衡就來細聊Keil MDK下的NOR Flash下載算法:

一、Keil MDK5對i.MXRT的支持

Keil μVision可以說是MCU開發(fā)者最熟悉的IDE了,大部分人剛開始入行嵌入式學MCS-51系列單片機應該都是用得Keil C51環(huán)境(Keil μVision2),早期的Keil還只是一個小型的獨立軟件公司。2005年ARM收購了Keil,并于2006年集成了RealView編譯器開始支持ARM Cortex-M處理器,這便是后來的Keil MDK(Keil μVision3)。 2013年Keil μVision5發(fā)布,與Keil MDK4及之前版本不同,Keil MDK5分成MDK Core和Software Packs兩部分。MDK Core主要包含uVision5 IDE集成開發(fā)環(huán)境和ARM Compiler5。Software Packs則可以在不更換MDK Core的情況下,單獨管理(下載、更新、移除)設備支持包和中間件更新包。

因此首次安裝的Keil MDK5并沒有直接支持i.MXRT,需要通過Software Packs組件來單獨安裝i.MXRT的相關軟件支持包。

二、使用Pack Installer添加新i.MXRT型號支持

Keil MDK5里默認集成了Pack Installer,在IDE里可以直接打開其界面,手動添加所需的MCU主控相關軟件包。軟件包主要有兩個:Device Family Pack (DFP)和Board Support Pack (BSP) ,前者是對MCU芯片本身的支持,后者是對MCU開發(fā)板的支持。

如果你不主動安裝MCU軟件包也行,當你打開SDK里的任何一個例程(以i.MXRT1060為例),如果該例程對應的MCU軟件包沒有安裝,IDE會自動觸發(fā)Pack的安裝。DFP是必須要安裝的,BSP要看你具體使用哪塊板卡,痞子衡用得官方i.MXRT1060-EVK,因此還需要再手動安裝NXP::EVK-MIMXRT1060_BSP:

安裝完MCU軟件包后,便可以正常編譯SDK工程,然后在Flash下載和調(diào)試了。痞子衡使用的是恩智浦官方EVK,板子上自帶了DAPLink調(diào)試器,當然除了板載調(diào)試器,我們也可以外接J-Link調(diào)試器,在MDK工程選項里無論選擇哪種調(diào)試器,其默認Flash下載算法是一樣的,都來自于DFP包(Keil_PacksNXPMIMXRT1062_DFP12.2.0armMIMXRT106x_QSPI_4KB_SEC.FLM)

如果默認選擇的Flash下載算法文件不適用你的板子,那么你需要自己提供合適的算法文件(.FLM),并將其放入MDK安裝目錄下(Keil_v5ARMFlash),重新打開工程選項,新增的算法會自動刷新到待選算法列表(還有另一種添加方式,即做一個完整的DFP包,包里包含下載算法,雖然ARM寫了詳盡的文檔,但這種方式更適合芯片原廠去做):

搞定了合適的下載算法文件,最后還需要檢查下兩個地址范圍,一個是Flash對應的實際映射地址空間,另一個是下載算法文件運行RAM地址空間。這點跟上一篇介紹的J-Link算法JLinkDevices.xml文件里需要填的兩個地址空間設計是一致的。

三、NOR Flash下載算法設計

Keil MDK下Flash下載算法是開源的,有較詳細的文檔,文檔在arm-software的github主頁,根據(jù)這些文檔,我們基本可以了解其下載算法設計細節(jié)。

算法主頁:https://arm-software.github.io/CMSIS_5/Pack/html/flashAlgorithm.html

3.1 下載算法模板工程

Keil MDK提供了一個Flash下載算法的基礎模板工程,工程在Keil_v5ARMFlash\_TemplateNewDevice.uvprojx,該工程僅支持MDK(不支持MDK-Lite)編譯,除了工程設置外,該模板工程僅包含四個文件:

Keil_v5ARMFlashFlashOS.h Keil_v5ARMFlash\_TemplateFlashDev.c Keil_v5ARMFlash\_TemplateFlashPrg.c Keil_v5ARMFlash\_TemplateTarget.lin拿到基礎模板工程,我們需要根據(jù)目標MCU內(nèi)核類型在工程選項里將默認的ARMCM0內(nèi)核改掉,然后在FlashDev.c和FlashPrg.c里將算法API函數(shù)全部實現(xiàn)(默認是空的),最后編譯工程生成.FLM即是我們要的算法文件(最終.FLM其實是通過After Build里的腳本命令將.axf直接改名的,F(xiàn)LM文件本質(zhì)上就是axf格式文件)。

3.2 下載算法結構設計

算法本身結構其實很簡單,在FlashDev.c文件中有一個名為FlashDevice的結構體常量,其原型定義在FlashOS.h中。該結構體主要給IDE提供必要的Flash信息,其值必須根據(jù)實際板卡情況填寫正確。

structFlashDeviceconstFlashDevice={ FLASH_DRV_VERS,//DriverVersion,donotmodify! "NewDevice256kBFlash",//DeviceName ONCHIP,//DeviceType 0x00000000,//DeviceStartAddress 0x00040000,//DeviceSizeinBytes(256kB) 1024,//ProgrammingPageSize 0,//Reserved,mustbe0 0xFF,//InitialContentofErasedMemory 100,//ProgramPageTimeout100mSec 3000,//EraseSectorTimeout3000mSec //SpecifySizeandAddressofSectors 0x002000,0x000000,//SectorSize8kB(8Sectors) 0x010000,0x010000,//SectorSize64kB(2Sectors) 0x002000,0x030000,//SectorSize8kB(8Sectors) SECTOR_END };除了FlashDevice之外,最核心當然是FlashPrg.c里的7個API函數(shù),這些API函數(shù)提供了實際的Flash擦寫驗功能,IDE會自動按需調(diào)用這些API去實現(xiàn)在線下載。這些API原型是固定的,但具體函數(shù)實現(xiàn)是因板卡而異的。

關于算法工程還有一個不得不提的設計,那就是工程選項C/C++(包括Asm)下都勾選了Read-Only Position Independent 和 Read-Write Position Independent,表明下載算法本身不是使用固定地址鏈接,而是位置無關鏈接(也叫相對地址鏈接),算法代碼機器碼是可以被放到任意地址去執(zhí)行的,這也是為什么你可以在例程選項里去指定RAM for Algorithm。

3.3 下載算法API調(diào)用流程

當在IDE里啟動在線下載時,IDE會先將算法文件.FLM里的可執(zhí)行機器碼加載進指定的RAM空間,然后組合調(diào)用來實現(xiàn)最重要的Flash擦除和寫入,只要用戶App被正確寫入Flash,IDE就能正常讀取Flash里代碼指令進行單步調(diào)試了。如下圖便是擦除和寫入操作的實際API組合調(diào)用流程:

算法API詳解:

https://arm-oftware.github.io/CMSIS_5/Pack/html/algorithmFunc.html

至此,Keil MDK工具下i.MXRT的串行NOR Flash下載算法設計介紹完畢。
責任編輯:lq

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

    關注

    6071

    文章

    45257

    瀏覽量

    660031
  • 算法
    +關注

    關注

    23

    文章

    4739

    瀏覽量

    96715
  • keil
    +關注

    關注

    69

    文章

    1224

    瀏覽量

    171177

原文標題:Keil MDK 下 i.MXRT 的串行 NOR Flash 下載算法設計

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    CW32L012實現(xiàn)外部flash下載算法

    外部flash或者內(nèi)置的片上flash,都是編譯器通過調(diào)用寫好的FLM文件來實現(xiàn)下載,單片機內(nèi)部的安裝pack包就會有(官方實現(xiàn)),外部flash的情況比較復雜,例如用的哪種
    的頭像 發(fā)表于 10-09 17:38 ?815次閱讀
    CW32L012實現(xiàn)外部<b class='flag-5'>flash</b><b class='flag-5'>下載</b><b class='flag-5'>算法</b>

    studio有沒有通過更改下載算法,同時下載到內(nèi)部flash和外部flash?

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

    博雅NOR FLASH XIP技術實現(xiàn)電力儀表毫秒級快速啟動?

    博雅128Mbit NOR Flash BY25Q128ESSIG為智能電力儀表提供高可靠存儲方案,133MHz讀取速度與-40℃~105℃寬溫保障數(shù)據(jù)實時性與穩(wěn)定性。
    的頭像 發(fā)表于 09-08 09:55 ?412次閱讀
    博雅<b class='flag-5'>NOR</b> <b class='flag-5'>FLASH</b> XIP技術實現(xiàn)電力儀表毫秒級快速啟動?

    SPI NOR FLASH是什么,與SPI NAND Flash的區(qū)別

    SPI NOR FLASH是什么? ? SPI NOR FLASH是一種非易失性存儲器,它通過串行接口進行數(shù)據(jù)傳輸,具有讀寫速度快、可靠性高、體積小等優(yōu)點。它采用類似SRAM的存儲方式
    的頭像 發(fā)表于 08-21 09:26 ?755次閱讀

    普冉NOR FLASH助力IPC攝像頭高效運行

    Puya 普冉 64 Mbit NOR Flash P25Q64SH-SUH 以寬壓、高速 SPI、毫秒級擦寫和低功耗特性,為 IPC 攝像頭提供固件、配置與算法的可靠存儲。適用于安防監(jiān)控、智能家居及電池供電場景,助力終端小型化
    的頭像 發(fā)表于 08-01 10:05 ?543次閱讀
    普冉<b class='flag-5'>NOR</b> <b class='flag-5'>FLASH</b>助力IPC攝像頭高效運行

    FLASH燒寫/編程白皮書

    白皮書:如何燒寫Flash——不同場景不同需求的選擇認識Flash?NAND vs. NOR如何燒寫/編程不同方案比較
    發(fā)表于 07-28 16:05 ?0次下載

    Nor flash芯片低溫無法啟動

    關于針對NOR Flash芯片在低溫環(huán)境無法啟動的問題,詳細分析與解決方案如下所述: 1. 低溫失效原因分析 1.1 半導體物理特性變化 閾值電壓(Vth)漂移:低溫MOSFET閾
    的頭像 發(fā)表于 06-30 17:23 ?477次閱讀
    <b class='flag-5'>Nor</b> <b class='flag-5'>flash</b>芯片低溫無法啟動

    請問CYPM1011-24LQXI能否直接在keil MDK中開發(fā)呢?

    抱歉打擾一,請問這款芯片CYPM1011-24LQXI能否直接在keil MDK中開發(fā)呢
    發(fā)表于 05-30 06:20

    Keil MDK到IAR EWARM:通過工程遷移實現(xiàn)項目資產(chǎn)的更好管理

    對于需要統(tǒng)一開發(fā)環(huán)境或涉及多核架構(如Cortex-A/R)的項目,越來越多的用戶選擇從Keil MDK遷移到IAR EWARM。這就會面臨著需要將之前的Keil MDK工程遷移到IA
    的頭像 發(fā)表于 05-08 09:03 ?852次閱讀
    從<b class='flag-5'>Keil</b> <b class='flag-5'>MDK</b>到IAR EWARM:通過工程遷移實現(xiàn)項目資產(chǎn)的更好管理

    基于APM32F407如何制作I2C EEPROM(AT24C02型號)的MDK-Keil下載算法

    基于APM32F407如何制作I2C EEPROM(AT24C02型號)的Keil下載算法,這樣在我們下載代碼時可以一鍵把數(shù)據(jù)燒錄到EEPROM中。
    的頭像 發(fā)表于 04-11 11:06 ?1599次閱讀
    基于APM32F407如何制作I2C EEPROM(AT24C02型號)的<b class='flag-5'>MDK-Keil</b><b class='flag-5'>下載</b><b class='flag-5'>算法</b>

    存儲技術探秘 NAND Flash vs NOR Flash:藏在芯片里的&quot;門道之爭&quot;

    門電路玄機 NOR Flash:Intel 1988 年革命性突破,終結 EPROM/EEPROM 壟斷時代 NAND Flash:東芝 1989 年發(fā)布,開創(chuàng) "低成本比特" 存儲新紀元 共性特征
    的頭像 發(fā)表于 03-18 12:06 ?863次閱讀

    羅徹斯特電子為傳統(tǒng)應用提供卓越的內(nèi)存支持 為并行NOR Flash提供持續(xù)供貨支持

    為并行NOR Flash提供持續(xù)供貨支持 憑借羅徹斯特電子的生產(chǎn)能力,能夠持續(xù)供應并行NOR Flash。不論是傳統(tǒng)還是成熟產(chǎn)品對于此類產(chǎn)品都有持續(xù)需求。通過戰(zhàn)略性安排,羅徹斯特電子購
    發(fā)表于 12-17 10:33 ?414次閱讀

    分享一個keil MDK編譯信息增強工具

    今天給大家分享一個 keil MDK 編譯信息增強工具:keil-build-viewer. 1 keil-build-viewer介紹 這是一個
    的頭像 發(fā)表于 11-14 11:01 ?2440次閱讀

    基于NXP MCXA153 MCU實現(xiàn)RT-Thread的MTD NOR Flash驅(qū)動

    在嵌入式系統(tǒng)中,片上Flash存儲器是一個關鍵組件,用于存儲程序代碼和關鍵數(shù)據(jù)。本文將詳細介紹如何在NXPMCXA153 MCU上實現(xiàn)RT-Thread的MTD (Memory Technology Device) NOR Flash
    的頭像 發(fā)表于 11-09 14:00 ?1453次閱讀
    基于NXP MCXA153 MCU實現(xiàn)RT-Thread的MTD <b class='flag-5'>NOR</b> <b class='flag-5'>Flash</b>驅(qū)動

    新唐科技率先發(fā)布免費版Arm Keil MDK,助力嵌入式開發(fā)

    2024年11月5日,新唐科技正式推出了免費版的Arm? Keil? MDK Nuvoton Edition,成為全球首家向開發(fā)者提供Keil MDK完整版本的半導體公司。這款專業(yè)開發(fā)
    的頭像 發(fā)表于 11-06 11:07 ?2842次閱讀