J-Link作為被廣泛使用的調(diào)試器,提供了多種配套的軟件工具。例如命令配置軟件J-Link Commander,GDB server,J-Flash等。其中,J-Link Commander支持一種類C的腳本語言,稱作J-Link script。
J-Link script
腳本語言不需要編譯,它由解釋器動態(tài)解釋執(zhí)行。J-Link Commander(路徑C:Program Files (x86)SEGGERJLinkJLink.exe)是一個解釋器,負責對J-Link script文件進行解釋。
一般情況下可能不需要特別的操作就能通過J-Link連接到目標系統(tǒng),進行代碼下載或者調(diào)試。但某些情況下需要J-Link來執(zhí)行一些自定義的操作,比如多核芯片的JTAG鏈的配置,硬件需要一些特殊的處理等。這些操作需要由用戶根據(jù)自己的實際情況來定制,所以需要使用腳本來進行編寫。
J-Link script的組成
J-Link script包括了基本語法、自定義操作、API函數(shù),DLL全局常量/變量。
J-Link script的語法與C語言類似,支持C語言中大多數(shù)的的語句,例如if else,while,變量聲明等等。詳細的語法可參考:
https://wiki.segger.com/J-Link_script_files#Script_file_language
腳本文件支持允許定制J-Link執(zhí)行的不同操作。根據(jù)腳本文件中是否存在相應的函數(shù),一般實現(xiàn)的操作將被腳本文件中定義的操作所替代。下面列出并解釋了所有可以使用腳本文件定制的J-Link操作。
這些操作會被用戶的J-Link script中的替代,在不同的時機觸發(fā)這些操作。關于每個操作的具體解釋可以參考:
https://wiki.segger.com/J-Link_script_files#Customizable_actions
DLL全局常量/變量是用于J-Link DLL配置用途的全局常量/變量。腳本中的常量和變量會被傳遞給DLL,例如用于設置CPU型號,JTAG鏈,調(diào)試組件CoreSight的基地址。全局常量目前僅用于設置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()是往指定的地址寫入一個32位的數(shù)據(jù)。API函數(shù)列表:
https://wiki.segger.com/J-Link_script_files#Script_file_API_functions
使用J-Link script文件
J-Link script文件有兩種類型:
· 明文腳本文件(*.JLinkScriptFile)
· 預編譯腳本文件(*.pex)
*預編譯腳本文件用于用戶不想公開所編寫的操作。
通過J-Link Commander執(zhí)行J-Link script
命令格式:
JLink.exe -JLinkScriptFile C:WorkMyFile.JlinkScript
在IDE中使用J-Link script文件
J-Link script可以與常見的IDE(IAR/Segger SES/Keil/Eclipse)配合使用,以IAR EWARM為例,使用J-Link script有兩種方法。
方法1:在工程設置項Debugger->Extra Options中勾選“Use command line options”,然后使用命令“--jlink_script_file=”命令指定目錄中的.JlinkScriptFile。
方法2:將J-Link script文件重名名為:
IAR項目的每個構(gòu)建配置都有一個設置,例如默認的Debug和Release。
審核編輯:湯梓紅
-
調(diào)試器
+關注
關注
1文章
306瀏覽量
23830 -
J-Link
+關注
關注
0文章
84瀏覽量
22193 -
腳本語言
+關注
關注
0文章
48瀏覽量
8271
原文標題:J-Link script文件的作用與用法
文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論