大家好,我是痞子衡,是正經(jīng)搞技術的痞子。今天痞子衡給大家分享的是在MDK5.40開發(fā)環(huán)境下添加用戶下載算法FLM文件的方法。
最近痞子衡給一個 RT1170 客戶制作了一個 SEGGER 下載算法,在 J-Flash 下測試一切正常,于是直接發(fā)給了客戶。當客戶嘗試將這個下載算法添加進 MDK 里使用時發(fā)現(xiàn)無法成功添加(我們知道 SEGGER 與 MDK 下載算法共用了同一套 API 接口與文件格式 FLM,原則上兩者可以互相替代),這是怎么回事?今天痞子衡就來聊聊這個話題:
Note: 測試 MDK 版本為 V5.40
一、傳統(tǒng)添加算法方法失效
MDK 安裝完成后,在如下路徑會放一些下載算法。當我們制作好一個新的下載算法后,傳統(tǒng)的方法就是將這個算法 FLM 文件直接拷貝一份放到該路徑下:
MDK自帶下載算法路徑:\Keil_v5\ARM\Flash
這時隨便打開一個 MDK 工程,找到算法選擇界面(Origin 屬性為 MDK Core 表明是自帶算法路徑),就會看到這個新算法(由于算法可能會重名,這里主要看下方文件路徑),選中保存似乎就可以了,然而不幸的是,當你再次打開算法選擇界面會發(fā)現(xiàn)這個算法選擇沒有被正常保存。這就是客戶遇到的問題。
Note:該問題在早期 MDK v5.31 應該不存在,V5.40 可能更改了設計(也可能是 bug)
要解決這個問題,也有替代方法,那就是在 MDK 里直接用我們在 SEGGER 安裝目錄里添加的的新下載算法(詳見 《超級下載算法RT-UFL v1.0在Keil MDK下的使用》 一文 2.5 小節(jié)),不過這個替代方法僅適合 J-Link 調試器,如果用 DAP-Link 調試器那就無能為力了。所以我們還是要直接解決 MDK 添加算法問題。
二、借助DFP包來添加算法
如果你閱讀過痞子衡舊文 《NOR Flash下載算法(Keil MDK篇)》 應該知道 MDK 從 V5 開始分成 MDK Core 和 Software Packs 兩部分,后者是全新的芯片支持包管理方式。在 Pack Installer 里可以安裝芯片 DFP 包, DFP 包里也包含下載算法:
DFP下載算法路徑:\Arm\Packs\NXP\MIMXRT1176_DFP\25.03.00\devices\MIMXRT1176\arm
我們試試將自己制作的下載算法添加到這個 DFP 包下載算法路徑里,然后編輯 .pdsc 文件(默認文件屬性是 Read-only,需更改文件屬性方可編輯)照葫蘆畫瓢添加一句代碼完成新算法的支持。
如果此時 MDK 工程是打開的狀態(tài),需要先關閉一下再重新打開(否則 DFP 包里新添加算法不能正常識別),找到算法選擇界面(Origin 屬性為 DFP 表明是DFP算法路徑),看到新添加算法選中保存,這次就能正常保存了,客戶問題完美解決。
至此,在MDK5.40開發(fā)環(huán)境下添加用戶下載算法FLM文件的方法痞子衡便介紹完畢了,掌聲在哪里~~~