色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

Keil MDK下的NOR Flash下載算法

strongerHuang ? 來源:痞子衡嵌入式 ? 作者:痞子衡嵌入式 ? 2020-11-01 11:18 ? 次閱讀

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

一、Keil MDK5對i.MXRT的支持

Keil μVision可以說是MCU開發(fā)者最熟悉的IDE了,大部分人剛開始入行嵌入式學(xué)MCS-51系列單片機(jī)應(yīng)該都是用得Keil C51環(huán)境(Keil μVision2),早期的Keil還只是一個(gè)小型的獨(dú)立軟件公司。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的情況下,單獨(dú)管理(下載、更新、移除)設(shè)備支持包和中間件更新包。

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

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

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

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

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

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

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

三、NOR Flash下載算法設(shè)計(jì)

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

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

3.1 下載算法模板工程

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

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

3.2 下載算法結(jié)構(gòu)設(shè)計(jì)

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

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之外,最核心當(dāng)然是FlashPrg.c里的7個(gè)API函數(shù),這些API函數(shù)提供了實(shí)際的Flash擦寫驗(yàn)功能,IDE會(huì)自動(dòng)按需調(diào)用這些API去實(shí)現(xiàn)在線下載。這些API原型是固定的,但具體函數(shù)實(shí)現(xiàn)是因板卡而異的。

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

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

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

算法API詳解:

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

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

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

    關(guān)注

    6037

    文章

    44566

    瀏覽量

    636025
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4615

    瀏覽量

    92999
  • keil
    +關(guān)注

    關(guān)注

    68

    文章

    1213

    瀏覽量

    166952

原文標(biāo)題:Keil MDK 下 i.MXRT 的串行 NOR Flash 下載算法設(shè)計(jì)

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

收藏 人收藏

    評論

    相關(guān)推薦

    分享一個(gè)keil MDK編譯信息增強(qiáng)工具

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

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

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

    物聯(lián)網(wǎng)行業(yè)存儲(chǔ)方案詳解_SPI NOR Flash

    物聯(lián)網(wǎng)系統(tǒng)中為什么要使用SPI NOR FLASH 物聯(lián)網(wǎng)系統(tǒng)中使用SPI NOR FLASH的原因主要基于其獨(dú)特的性能特點(diǎn)和在嵌入式系統(tǒng)中的廣泛應(yīng)用。以下是詳細(xì)的分析: 1、高可靠性
    的頭像 發(fā)表于 09-24 14:39 ?321次閱讀
    物聯(lián)網(wǎng)行業(yè)存儲(chǔ)方案詳解_SPI <b class='flag-5'>NOR</b> <b class='flag-5'>Flash</b>

    keil軟件實(shí)現(xiàn)編程仿真需要哪些步驟

    MDK-ARM 首先,您需要從 Keil 官方網(wǎng)站下載并安裝 Keil MDK-ARM。安裝過程中,請確保選擇適合您開發(fā)板的組件和工具鏈。
    的頭像 發(fā)表于 09-02 10:28 ?1180次閱讀

    keil5怎么利用sys進(jìn)行配置ti環(huán)境

    以下是一些關(guān)鍵步驟和建議: 安裝Keil MDK-ARM: 首先,您需要從Keil官方網(wǎng)站下載并安裝Keil
    的頭像 發(fā)表于 09-02 10:19 ?594次閱讀

    keil5怎么給ti燒錄程序

    安裝Keil MDK-ARM軟件: 訪問Keil官方網(wǎng)站(https://www.keil.com/)并下載
    的頭像 發(fā)表于 09-02 10:18 ?1059次閱讀

    NAND FlashNOR Flash哪個(gè)更好

    在討論NAND FlashNOR Flash哪個(gè)更好時(shí),我們需要從多個(gè)維度進(jìn)行深入分析,包括它們的技術(shù)特性、應(yīng)用場景、成本效益以及未來發(fā)展趨勢等。
    的頭像 發(fā)表于 07-29 16:59 ?1541次閱讀

    NAND FlashNOR Flash:壞塊管理需求的差異解析

    NOR Flash和NAND Flash是兩種不同類型的閃存技術(shù),它們在存儲(chǔ)單元的連接方式、耐用性、壞塊管理等方面存在差異。
    的頭像 發(fā)表于 07-10 14:25 ?2135次閱讀
    NAND <b class='flag-5'>Flash</b>與<b class='flag-5'>NOR</b> <b class='flag-5'>Flash</b>:壞塊管理需求的差異解析

    Keil MDK5.38 STM32全系列 最新PACK包離線包高速網(wǎng)盤下載分享收藏(持續(xù)更新...)

    ***](https://blog.csdn.net/shizes1989/article/details/93982092) (訪問密碼:9795) [***Keil MDK5.38版本軟件下載
    發(fā)表于 05-07 14:52

    如何在Keil MDK-ARM環(huán)境開發(fā)STM32L011K4T6?

    Keil MDK-ARM環(huán)境開發(fā)STM32L011K4T6
    發(fā)表于 04-22 06:49

    Flash存儲(chǔ)芯片:NOR Flash、NAND Flash、UFS和eMMC的比較與解析

    博客將詳細(xì)介紹Flash存儲(chǔ)芯片中的NOR Flash、NAND Flash、UFS和eMMC,分析它們的用途、優(yōu)缺點(diǎn),并對其進(jìn)行比較。 1.Nor
    的頭像 發(fā)表于 04-03 12:02 ?4446次閱讀
    <b class='flag-5'>Flash</b>存儲(chǔ)芯片:<b class='flag-5'>NOR</b> <b class='flag-5'>Flash</b>、NAND <b class='flag-5'>Flash</b>、UFS和eMMC的比較與解析

    怎么啦?你的Keil C51和Keil MDK還無法共存嗎?

    路徑設(shè)置為:D:\software\Keil\Keil_MDK\ARM\PACK三、KeilC51與KeilMDK共存打開C51與MDK的安裝目錄,然后把C51安
    的頭像 發(fā)表于 03-24 08:09 ?3263次閱讀
    怎么啦?你的<b class='flag-5'>Keil</b> C51和<b class='flag-5'>Keil</b> <b class='flag-5'>MDK</b>還無法共存嗎?

    NUCLEO-H7A3ZIQ使用keil外部下載算法后提示Flash Timeout的原因?

    我用ospi驅(qū)動(dòng)w25q128,可以讀出id,可以寫入和讀取數(shù)據(jù)。然后自己寫了個(gè)KEIL的外部下載算法,修改了鏈接器腳本讓圖片資源存儲(chǔ)在w25q128。 但是點(diǎn)擊下載后,Erase過程
    發(fā)表于 03-19 06:18

    NOR FLASH的結(jié)構(gòu)和特性及原理圖

    與NAND Flash相比,NOR Flash具有較低的存儲(chǔ)密度和較高的成本,但具有較快的讀取速度、較低的讀取延遲和較好的隨機(jī)訪問性能。
    的頭像 發(fā)表于 02-19 11:45 ?3918次閱讀
    <b class='flag-5'>NOR</b> <b class='flag-5'>FLASH</b>的結(jié)構(gòu)和特性及原理圖

    nuc505在IAR和MDK的環(huán)境都只能在SRAM里進(jìn)行仿真,無法下載flash怎么解決?

    使用nuc505的板子在IAR和MDK的環(huán)境都只能在SRAM里進(jìn)行仿真,無法下載flash,貌似是你們提供的505的flashloader存在問題,可以用ICP tool
    發(fā)表于 01-17 06:14
    主站蜘蛛池模板: 我的年轻漂亮继坶三级| 国产高清-国产av| 国产成A人片在线观看| 狠狠色丁香久久婷婷综合_中| 免费在线视频a| 亚洲国产日韩a精品乱码| 99热精品在线视频观看| 狠狠色丁香婷婷久久综合五月 | 国产午夜理论片YY8840Y| 暖暖的视频完整视频免费韩国 | 老头扒开粉缝亲我下面| 羞羞答答dc视频| z0000性欧美| 老师湿乎乎两半嫩| 亚洲精品久久久无码| 风流少妇BBWBBW69视频| 免费。色婬网站| 亚洲日本欧美天堂在线| 国产精品禁18久久久夂久| 强奷表妺好紧2| 6080伦理久久亚洲精品| 国内精品视频一区二区在线观看 | 男人天堂2018亚洲男人天堂| 一品道门在线视频| 国产三区在线成人AV| 日韩影院久久| qvod 在线| 美女pk精子4| 曰批视频免费40分钟不要钱| 国产亚洲精品久久久久久鸭绿欲| 日产精品久久久久久久蜜殿| 91国在线产| 久久综合给会久久狠狠狠| 亚洲一区日韩一区欧美一区a| 国产精品人妻99一区二| 日韩精品一区二区三区色欲AV| 99热婷婷国产精品综合| 伦理片午夜在线视频| 依人在线观看| 久久99国产亚洲高清观着| 亚洲精品久久久久久偷窥|