www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 公眾號精選 > strongerHuang
[導(dǎo)讀]今天給大家給大家分享一篇由痞子衡整理的文章:JLink Script文件基礎(chǔ)及其在IAR下調(diào)用方法。

轉(zhuǎn)自 | 痞子衡嵌入式


今天給大家給大家分享一篇由痞子衡整理的文章:JLink Script文件基礎(chǔ)及其在IAR下調(diào)用方法


JLink可以說是MCU開發(fā)者最熟悉的調(diào)試工具了,相比于其他調(diào)試器(比如DAPLink、ST-LINK、I-jet等),JLink除了性能強大之外,還勝在其配套各種軟件小工具相當方便易用。JLink工具玩得熟的老司機一定在J-Link Commander命令行工具(即\SEGGER\JLink_Vxxx\JLink.exe)下敲過命令,讀寫內(nèi)存、下載文件、操控內(nèi)核無所不能。這個底層工具其實也是JLink精華所在,今天痞子衡要講的JLink Script文件主題其實就是依賴這個工具。

一、JLink Script作用

如果你有腳本語言經(jīng)驗(比如Python),你應(yīng)該很熟悉腳本語言那一套規(guī)則,腳本語言不同于一般編譯型語言(比如C),編譯型語言經(jīng)過編譯鏈接生成的二進制機器碼被CPU直接識別執(zhí)行,但腳本不需要預(yù)編譯,它是由配套解釋器動態(tài)翻譯執(zhí)行的,而CPU負責(zé)執(zhí)行的是腳本解釋器。

基于上述概念JLink.exe就是一個解釋器,它能解釋執(zhí)行JLink Script文件,其命令格式如下,使用-JLinkScriptFile參數(shù)指定JLink Script文件路徑便可執(zhí)行JLink Script文件里的語句。

  • 命令格式:JLink.exe -JLinkScriptFile MyFile.JLinkScript

為什么需要JLink Script文件?有些情況下,需要定制J-Link執(zhí)行的某些操作,比如J-Link連接順序或者執(zhí)行復(fù)位的方式等,或者一些定制的硬件板需要一些特殊處理,這些動作沒法直接集成到J-Link軟件的通用處理里,因此需要被放在單獨的JLink Script文件里,根據(jù)連接的具體目標對象來指定加載執(zhí)行。

  • Note:其實除了常見的明文腳本(.JLinkScript)文件之外,JLink Script文件還有另外一種經(jīng)過預(yù)編譯的文件形式(.pex),這種格式是純二進制的,可以保護腳本內(nèi)容。

二、JLink Script文件基礎(chǔ)

JLink Script這一套東西整體上由五大部分組成:基本語法、全局DLL變量、全局DLL常量、系統(tǒng)API接口、用戶自定義動作集。

2.1 腳本基礎(chǔ)語法

JLink Script并不是一個通用的腳本語言,因此其并不像你熟知的那些Python之類的腳本語言那樣語法完善,它僅是為了配合JLink完成一些必要操作。JLink Script語法跟C語言類似,支持C語言中允許的大多數(shù)語句(if else,while,變量聲明,…),但不是所有的語句。

此外,還有一些語句是特定于JLink Script的,JLink Script已經(jīng)盡可能允許最大的靈活性,因此幾乎任何必要的目標初始化操作都可以得到支持。

  • 語法簡明手冊:https://wiki.segger.com/J-Link_script_files#Script_file_language

2.2 全局DLL常/變量

JLink Script在被解釋執(zhí)行時,其實是和JLink DLL(即\SEGGER\JLink_Vxxx\JLinkARM.dll)聯(lián)動的,DLL里存放了JLink各種底層功能集合,同時也默認預(yù)定義一些全局變量,這些變量用于DLL配置,需要在JLink Script中被賦值。比如最基礎(chǔ)的變量CPU,用于指示連接的目標內(nèi)核類型,而支持的全部CPU類型都定義在全局常量里。

  • 變量列表:https://wiki.segger.com/J-Link_script_files#Global_DLL_variables
  • 常量列表:https://wiki.segger.com/J-Link_script_files#Global_DLL_constants

2.3 系統(tǒng)內(nèi)置的API接口

JLink DLL中實現(xiàn)了很多基礎(chǔ)操作功能,這些功能通過API函數(shù)接口形式開放給JLink Script來調(diào)用,這些API全部以JLINK_為前綴。舉一個比較常用的API函數(shù)JLINK_TARGET_Halt(),這個函數(shù)功能就是掛起目標內(nèi)核。

  • API接口列表:https://wiki.segger.com/J-Link_script_files#Script_file_API_functions

2.4 用戶可自定義動作集

終于要講到JLink Script最關(guān)鍵的部分了,前面都是基礎(chǔ),而JLink Script最核心的功能其實在用戶自定義動作集合里,這些動作由JLink預(yù)先定義,但是內(nèi)部具體操作可由用戶來編寫。在IDE在線下載調(diào)試過程中按規(guī)定觸發(fā)條件來調(diào)用執(zhí)行這些動作,下表列出了全部動作,其中藍框標出的四個動作最常用。

  • InitTarget():替換J-Link DLL的目標CPU自動查找過程。對于默認情況下不可訪問且需要執(zhí)行一些特殊步驟才能成功執(zhí)行常規(guī)調(diào)試連接過程的目標CPU非常有用。
  • SetupTarget():在InitTarget()以及JLink常規(guī)調(diào)試連接序列之后被調(diào)用,通常用于更高級別的CPU調(diào)試設(shè)置,如寫入某些內(nèi)存位置、初始化PLL以加快下載速度等。
  • ResetTarget():替換DLL的復(fù)位策略。無論在DLL中選擇了什么復(fù)位類型,如果存在此函數(shù),將調(diào)用它而不是DLL內(nèi)部復(fù)位。
  • AfterResetTarget():在ResetTarget()之后調(diào)用。復(fù)位結(jié)束后,用于初始化一些必要外設(shè)(比如看門狗)。除此之外,對于某些內(nèi)核類型有必要在復(fù)位后執(zhí)行一些特殊操作,以保證復(fù)位后的設(shè)備功能正常。
  • 自定義動作列表:https://wiki.segger.com/J-Link_script_files#Customizable_actions

三、JLink Script在IAR下調(diào)用方法

單純的JLink Script沒有意義,需要和工具鏈配合使用才能發(fā)揮最大作用,除了SEGGER工具之外(Embedded Studio、Ozone、SystemView),JLink Script還可以和常見的IDE環(huán)境(IAR/Keil/Eclipse)一起工作,痞子衡以IAR為例介紹三種調(diào)用JLink Script的方法(使用的是恩智浦i.MXRT685-EVK開發(fā)板做的測試)。

3.1 JLinkDevices.xml中指定

第一種方法是在 \SEGGER\JLink_Vxxx\JLinkDevices.xml 文件中指定,如果你對這個文件不了解,可先回顧下痞子衡之前寫的文章 《串行NOR Flash下載算法(J-Link工具篇)》。

給板卡通上電,連上J-Link調(diào)試器,隨便打開一個測試工程(\SDK_xxx_EVK-MIMXRT685\boards\evkmimxrt685\demo_apps\hello_world\iar),選擇flash_debug,將其工程選項做如下更改:

  1. 設(shè)置內(nèi)核為Cortex-M33,即不啟用Device里的NXP MIMXRT685S_CM33設(shè)置
  2. 調(diào)試器選擇J-Link/J-Trace,且不要勾選Use flash loader(s)

這么做是為了在IAR下載時不用NXP MIMXRT685S_CM33默認指定的JLink下載算法,而彈出一個框讓用戶主動選擇合適的JLink下載算法,我們修改JLinkDevices.xml如下:

  • Note:\SEGGER\JLink_Vxxx\Devices\NXP\iMXRT6xx_UFL\iMXRT6xx_CortexM33.JLinkScript便是我們要測試的JLink Script,在里面我們可以加一句JLINK_SYS_Report("J-Link script: This UFL script comes from Segger package"); 便于檢查調(diào)用結(jié)果。

選好MIMXRT685_UFL這個指定下載算法后,直接在IAR里點擊下載,進入正常調(diào)試后,可以在Debug Log里看到iMXRT6xx_CortexM33.JLinkScript確實被調(diào)用了。

3.2 工程選項Debugger/Extra Options中指定

在上一小節(jié)測試基礎(chǔ)上,將JLinkDevices.xml里的 JLinkScriptFile="Devices/NXP/iMXRT6xx_UFL/iMXRT6xx_CortexM33.JLinkScript" 這一句去掉,即不在下載算法里直接調(diào)用JLink Script。然后將iMXRT6xx_CortexM33.JLinkScript文件拷貝一份放到\SDK_xxx_EVK-MIMXRT685\boards\evkmimxrt685\demo_apps\hello_world\iar目錄下,并在IAR工程選項中做如下設(shè)置:

  • Note:\SDK_xxx_EVK-MIMXRT685\boards\evkmimxrt685\demo_apps\hello_world\iar\iMXRT6xx_CortexM33.JLinkScript便是我們要測試的JLink Script,在里面我們可以加一句JLINK_SYS_Report("J-Link script: This UFL script comes from Extra Option"); 便于檢查調(diào)用結(jié)果。

再次在IAR里點擊下載,進入正常調(diào)試后,可以在Debug Log里看到新的iMXRT6xx_CortexM33.JLinkScript確實被調(diào)用了。

3.3 工程目錄settings文件下指定

在上一小節(jié)測試基礎(chǔ)上,不勾選IAR工程選項Extra Options中Use command line options。然后將iMXRT6xx_CortexM33.JLinkScript文件拷貝一份放到\SDK_xxx_EVK-MIMXRT685\boards\evkmimxrt685\demo_apps\hello_world\iar\settings目錄下,需要重命名JLink Script文件與測試工程名一致:

  • Note:\SDK_xxx_EVK-MIMXRT685\boards\evkmimxrt685\demo_apps\hello_world\iar\settings\hello_world_flash_debug.JLinkScript便是我們要測試的JLink Script,在里面我們可以加一句JLINK_SYS_Report("J-Link script: This UFL script comes from settings"); 便于檢查調(diào)用結(jié)果。

再次在IAR里點擊下載,進入正常調(diào)試后,可以在Debug Log里看到hello_world_flash_debug.JLinkScript確實被調(diào)用了。


------------ END ------------


推薦閱讀:
淺談Makefile、Kconfig和.config文件
手把手教你在Keil MDK中使用GCC編譯器
FreeRTOS中相對延時和絕對延時的區(qū)別
關(guān)注 微信公眾號『嵌入式專欄』,底部菜單查看更多內(nèi)容,回復(fù)“加群”按規(guī)則加入技術(shù)交流群。

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉