J-Link script文件的作用與用法
來(lái)源 | 麥克泰技術(shù)
J-Link作為被廣泛使用的調(diào)試器,提供了多種配套的軟件工具。例如命令配置軟件J-Link Commander,GDB server,J-Flash等。其中,J-Link Commander支持一種類C的腳本語(yǔ)言,稱作J-Link script。
J-Link script
腳本語(yǔ)言不需要編譯,它由解釋器動(dòng)態(tài)解釋執(zhí)行。J-Link Commander(路徑C:\Program Files (x86)\SEGGER\JLink\JLink.exe)是一個(gè)解釋器,負(fù)責(zé)對(duì)J-Link script文件進(jìn)行解釋。
一般情況下可能不需要特別的操作就能通過(guò)J-Link連接到目標(biāo)系統(tǒng),進(jìn)行代碼下載或者調(diào)試。但某些情況下需要J-Link來(lái)執(zhí)行一些自定義的操作,比如多核芯片的JTAG鏈的配置,硬件需要一些特殊的處理等。這些操作需要由用戶根據(jù)自己的實(shí)際情況來(lái)定制,所以需要使用腳本來(lái)進(jìn)行編寫(xiě)。
J-Link script的組成
J-Link script包括了基本語(yǔ)法、自定義操作、API函數(shù),DLL全局常量/變量。
J-Link script的語(yǔ)法與C語(yǔ)言類似,支持C語(yǔ)言中大多數(shù)的的語(yǔ)句,例如if else,while,變量聲明等等。詳細(xì)的語(yǔ)法可參考:
https://wiki.segger.com/J-Link_script_files#Script_file_language
腳本文件支持允許定制J-Link執(zhí)行的不同操作。根據(jù)腳本文件中是否存在相應(yīng)的函數(shù),一般實(shí)現(xiàn)的操作將被腳本文件中定義的操作所替代。下面列出并解釋了所有可以使用腳本文件定制的J-Link操作。
這些操作會(huì)被用戶的J-Link script中的替代,在不同的時(shí)機(jī)觸發(fā)這些操作。關(guān)于每個(gè)操作的具體解釋可以參考:
https://wiki.segger.com/J-Link_script_files#Customizable_actions
DLL全局常量/變量是用于J-Link DLL配置用途的全局常量/變量。腳本中的常量和變量會(huì)被傳遞給DLL,例如用于設(shè)置CPU型號(hào),JTAG鏈,調(diào)試組件CoreSight的基地址。全局常量目前僅用于設(shè)置DLL全局變量CPU。
支持的常量列表:
https://wiki.segger.com/J-Link_script_files#Global_DLL_constants
支持的變量列表:
https://wiki.segger.com/J-Link_script_files#Global_DLL_variables
API函數(shù)是一組內(nèi)置接口,用于跟DLL通信,使用DLL的諸多底層操作。例如,JLINK_MEM_WriteU32()是往指定的地址寫(xiě)入一個(gè)32位的數(shù)據(jù)。API函數(shù)列表:
https://wiki.segger.com/J-Link_script_files#Script_file_API_functions
使用J-Link script文件
J-Link script文件有兩種類型:
· 明文腳本文件(*.JLinkScriptFile)
· 預(yù)編譯腳本文件(*.pex)
*預(yù)編譯腳本文件用于用戶不想公開(kāi)所編寫(xiě)的操作。
通過(guò)J-Link Commander執(zhí)行J-Link script
命令格式:
JLink.exe -JLinkScriptFile C:\Work\MyFile.JlinkScript
在IDE中使用J-Link script文件
J-Link script可以與常見(jiàn)的IDE(IAR/Segger SES/Keil/Eclipse)配合使用,以IAR EWARM為例,使用J-Link script有兩種方法。
方法1:在工程設(shè)置項(xiàng)Debugger->Extra Options中勾選“Use command line options”,然后使用命令“--jlink_script_file=”命令指定目錄中的.JlinkScriptFile。
方法2:將J-Link script文件重名名為:_.jlink,并放置在工程目錄的settings目錄下,然后IAR進(jìn)入調(diào)試時(shí)會(huì)自動(dòng)調(diào)用:
IAR項(xiàng)目的每個(gè)構(gòu)建配置都有一個(gè)設(shè)置,例如默認(rèn)的Debug和Release。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!