jflash添加芯片_工欲善其事,必先利其器:动手给JLink添加官方不支持的芯片
工欲善其事,必先利其器:動手給JLink添加官方不支持的芯片
2021-01-15
背景市場上的新芯片層出不窮,JLink的官方支持不可能完全跟得上,這就尷尬了。但是好在Segger在設計時就想到了這一點,允許用戶自己添加新芯片或擴展官方已經支持的芯片。本文只講如何添加新芯片,參考的資料為UM08001_JLink.pdf中的第12章——Open Flashloader。本文以華大半導體的HC32L19x系列為例子,jlink驅動版本為V6.86f。最終效果在開始前,我們先看看最終效果。在添加前,JFlash里找不到華大的任何型號,如下圖添加前添加后如下圖添加后此外,如果使用RTT進行調試,那也是方便不少。添加前沒有對應的型號,因此只能選對應的芯片內核,通過指定地址的方式去使用。添加前但是工程改動后,這個地址是會變的,得經常查找并更新該地址,效率也是低得感人。添加后就可以選擇對應的型號,通過自動搜索的方式使用,效果如下添加后添加方法找到Jlink安裝目錄下的JLinkDevices.xml并打開;在打開的文件添加如下內容,因為這個文件里沒有任何華大的芯片,所以我添加到文件末尾,如果文件已經有同廠家的其它芯片,建議還是放一起,方便維護。效果和代碼放下面了,代碼的解釋在后面! 保存文件就添加完了,可以驗證是否如文章開頭的效果一樣代碼解釋最開始的三行是注釋,注釋嘛,隨便寫了,清晰明了就行;和必須成對出現,而且沒有屬性表。每個(系列)芯片都對應著這么一對。ChipInfo是描述芯片的信息,必須在 和內。參數說明Vendor芯片廠家的名字,比如這里的"HDSC"就是華大半導體Name芯片的具體型號,我用的就是HC32L190FCUACore芯片的內核,這個必須是JLink支持的內核之一,具體的名字可以在文檔里的12.5.3.1 Attribute values - Core章節找到。本文的這顆芯片是M0+的內核,但是列表里沒有M0+,所以這里選M0!WorkRAMAddr芯片RAM的起始地址,這個可以在用戶手冊里找到,也可以打開SDK里的官方例程,然后在工程配置里找到WorkRAMSize芯片RAM的大小,同樣可以在用戶手冊里找到,也可以打開SDK里的官方例程,然后在工程配置里找到Aliases同系列的相同RAM和FLASH的型號,比如華大這里全是同樣的配置,我就都加進去了JLinkScriptFile高級用法,有些芯片操作比較特殊,可以通過腳本去實現,這里我用不上FlashBankInfo描述芯片的Flash信息,有多塊flash的話,每塊對應一個FlashBankInfo。參數說明Nameflash的名字,名字可以隨便起BaseAddrflash的起始地址,可以在用戶手冊里找到MaxSizeflash的大小,可以在用戶手冊里找到Loader燒錄的算法,segger官方的是.elf格式,.flm是ARM的格式,keil里就用這個。這個路徑可以是絕對地址也可以是相對地址,相對地址的話是從JLinkDevices.xml所在的路徑為起始地址。本文使用的算法文件是在華大的HDSC.HC32L19X.1.0.0.pack安裝后從C:\Keil_v5\ARM\Flash拷貝過來的,沒有的文件夾就自己新建LoaderType必須是12.5.4.1 Attribute values - LoaderType中列出的類型之一,目前只有FLASH_ALGO_TYPE_OPEN一個類型,而*.flm是支持這個類型的AlwaysPresent指示這個塊flash是不是一直存在,本文是內部flash,當然一直存在
免責聲明:本文僅代表文章作者的個人觀點,與本站無關。其原創性、真實性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容文字的真實性、完整性和原創性本站不作任何保證或承諾,請讀者僅作參考,并自行核實相關內容。
http://image95.pinlue.com/image/48.jpg
總結
以上是生活随笔為你收集整理的jflash添加芯片_工欲善其事,必先利其器:动手给JLink添加官方不支持的芯片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python中使用snip问题
- 下一篇: 载着你彷佛载着阳光