現(xiàn)在大部分國產(chǎn)的單片機(jī)都支持KEIL開發(fā),同時也提供KEIl下面的燒錄算法,他們一般會提供給我們一些庫文件和FLM文件,或者把所有文件打一個包,通過安裝的方式拷貝到KEIL的安裝目錄中,因此,我們可以可以在那裝原廠提供的包后,在KEIL的環(huán)境中找到FLM文件。
如何找到單片機(jī)的燒錄算法文件
首先,安裝keil的pack包,從安裝路徑中找到對應(yīng)的FLM文件,這個文件也就是對應(yīng)到我們的KEIL當(dāng)中的下載設(shè)置。
這個文件一般放在用戶數(shù)據(jù)中,可以直接按單片機(jī)型號搜索一下試試
配置燒錄算法到Jlink
舊版的Jlink安裝目錄里面是存在Devices文件的,因此可以直接在這里添加定制的單片機(jī),但是新版的jlink將這個目錄換了一下,具體可以參照J(rèn)link提供的用戶手冊。
如果用戶手冊中沒有提到,那么可以從下面的在線wiki中找到相關(guān)信息,主要閱讀Adding a Flash Loader章節(jié)。J-Link Device Support Kit - SEGGER Wiki
添加設(shè)備的方法為——向JLink指定路徑下的JLinkDevices目錄中添加XML文件。不同的平臺,配置devices的目錄不同,如下圖所示
如果JLinkDevices目錄不存在,則需要自行創(chuàng)建。
JLinkDevices目錄結(jié)構(gòu)
官方推薦的JLinkDevices目錄結(jié)構(gòu)如下:
其中Vendor代表廠商,DevFamily代表設(shè)備系列,Devices代表詳細(xì)設(shè)備。?由于JLink會將JLinkDevices目錄下的所有XML文件視為JLinkDevices.xml,所以也可以像舊版本一樣用一個JLinkDevices.xml文件進(jìn)行設(shè)備的管理。但是為了區(qū)分自己的設(shè)備獨(dú)立性,還是按照官方推薦的目錄建立結(jié)構(gòu)比較好,如下圖,我建立的武漢芯源的CW32L031芯片的目錄:
XML文件的編碼規(guī)范
要添加設(shè)備就需要對XML文件進(jìn)行編輯,XML共有4個元素:
為XML文件的根元素,一個XML文件只能有一個;
用于描述新設(shè)備,該元素?zé)o屬性;
為子元素,用于描述設(shè)備的基礎(chǔ)信息;
為子元素,用于描述設(shè)備的Flash Bank信息;
XML文件大致格式如下:
<Database>
<Device>
<ChipInfo
Vendor="WHXY"
Name="CW32L031CxTx"
WorkRAMAddr="0x20000000"
WorkRAMSize="0x10000"
Core="JLINK_CORE_CORTEX_M0"/>
<FlashBankInfo
Name="Flash Bank1"
BaseAddr="0x0"
AlwaysPresent="1">
<LoaderInfo
Name="Flash loader"
MaxSize="0x10000"
Loader="FlashCW32L031.FLM"
LoaderType="FLASH_ALGO_TYPE_OPEN"/>
</FlashBankInfo>
</Device>
</Database>
ChipInfo
ChipInfo用于描述設(shè)備的基礎(chǔ)信息,如廠商名、設(shè)備名等,具體屬性如下:
其中Core屬性需要輸入JLink指定范圍內(nèi)的參數(shù),常用參數(shù)如下:
JLINKCORECORTEX_M1
JLINKCORECORTEX_M3
JLINKCORECORTEX_M0
JLINKCORECORTEX_M4
JLINKCORECORTEX_M7
JLINKCORECORTEX_M23
FlashBankInfo
FlashBankInfo用于描述設(shè)備的Flash Bank信息,其具體屬性如下:
FlashBankInfo還有一個子元素,該元素用于描述該Flash Bank的Flash Loader信息,其具體元素如下:
填寫完以上的XML文件后,我們在此打開JFlash或者RTT等軟件的時候,就可以在設(shè)備列表中找到我們添加的設(shè)備了。
關(guān)注我,下一篇我們看看如何通過jlink commander來制作一個批量下載的工具。