<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

適用于TI mmWave sensor的CCS在線調試腳本教程

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2022-06-30 17:01 ? 次閱讀

TI mmWave sensor毫米波雷達傳感器是高集成度的毫米波雷達傳感SOC,將中射頻電路,VCO,ADC,DSP硬件加速器集成在單顆芯片內,它具有集成度高,成本低,開發簡單等優點,在汽車及工業中都有廣泛的應用。本文介紹了使用CCS軟件的毫米波雷達傳感器在線調試的方法及步驟,同時提供了一種基于debug server scripting腳本的自動加載實現方法,方便廣大開發者提高開發效率,本文的測試環境如下:

  • 此方法適用器件型號:I/AWR1443, I/AWR1642, I/AWR1843, I/AWR6843
  • 本文測試軟件版本:mmWave SDK 3.5.0.4 out-of-box demo, Code Composer Studio Version: 10.2.0.00009
  • 本文測試硬件平臺:IWR6843ISK EVM

1. 使用Code Composer Studio (CCS) 集成開發環境(IDE) 對IWR6843進行在線調試的步驟

對于CCS在線調試TI的毫米波雷達芯片而言,都需要遵循以下步驟,具體的操作步驟,請參考文檔:mmWave SDK out-of-box Developer's GuideUsing CCS Debug for Development

步驟

說明

是否使用腳本

設置EVM為Flashing mode,使用Uniflash軟件燒寫ccs_debug.bin到板載flash

一次操作

設置EVM為functional mode

一次操作

生成Target Configuration File (CCXML)

一次操作

復位

每次ccs debug都需做

使用JTAG 將CCS與硬件板卡連接

每次ccs debug都需做

可以使用腳本

使用Target Configuration File連接DSP/ARM核心

每次ccs debug都需做

可以使用腳本

分別加載DSP/ARM固件

每次ccs debug都需做

可以使用腳本

運行&debug

每次ccs debug都需做

可以使用腳本

斷點設置

每次ccs debug都需做

可以使用腳本

本文針對每次在線調試都需要手動連接及加載BIN的部分,提供一種腳本用于自動加載,節省用戶操作的時間,本文涉及的腳本覆蓋部分如上表描述。

2. 使用腳本對IWR6843進行在線調試的步驟進行自動加載

2.1 工具介紹

Debug Server Scripting

調試服務器腳本 (Debug Server Scripting) 是調試服務器的一組跨平臺 Java API,允許通過 Java 或 第三 方工具編寫腳本,例如 JavaScript(通過 Rhino)、Java、Python(通過 Jython)、TCL(通過 Jacl/Tclblend) 等, JavaScript 是 DSS 支持的默認(和首選)腳本語言。調試服務器是 Code Composer Studio (CCS) 的基本調試引擎。 DSS 和 CCS IDE 都可以訪問它,可以理解為CCS的一個可執行調試命令的組件,可參考文檔 。

Scripting Console

通過 CCS Scripting Console View可支持交互式腳本,Scripting Console中提供了使用示例。 可以從控制臺調用 Debug Server Scripting API。 可以從Scripting Console運行完整的獨立 Debug Server Scripting JavaScript 文件。在CCS中,點擊View-> Scripting Console,即可打開此控制臺窗口。

2.2 JavaScript腳本實例

本文創建了一個可供在線調試使用的JavaScript腳本,示例如下,用戶使用此腳本可以完成CCS在線調試的自動連接及固件加載。

腳本包含由幾個部分:

  1. 在您喜歡的文本編輯器中創建一個新文件,并將其保存在ccs 工程目錄子文件夾OOB_Handoff中,名為js。這是我們將為本實驗創建腳本的文件。
  2. 使用importPackage()API導入腳本的相關包

// Import the DSS packages into our namespace to save on typing

importPackage(Packages.com.ti.debug.engine.scripting);

importPackage(Packages.com.ti.ccstudio.scripting.environment);

importPackage(Packages.java.lang);

importPackage(Packages.java.io);

為我們將要使用的各種文件創建一些變量。您需要修改前幾個變量以匹配您的環境。要避免出現問題,請使用帶有正斜杠的完整路徑。

  1. 設置文件工作路徑及BIN文件路徑,修改部分在如下代碼示例中高亮。
    1. 一般把腳本放置于CCS工程,方便不同工程調試時直接修改。

//*******User must specify WORKSPACE_DIR***********

var WORKSPACE_DIR = "C:/ccs_workspace_v10/IWR6843_OOB_TEST/";

//*******User must specify WORKSPACE_DIR***********

var PROJECT_DIR = WORKSPACE_DIR+"OOB_Handoff/";

var R4F_OUT_FILE_PATH = WORKSPACE_DIR+"mmwave_sdk_68xx_dsp_mss/Debug/xwr68xx_mmw_demo_mss.xer4f";

var DSS_OUT_FILE_PATH = WORKSPACE_DIR+"mmwave_sdk_68xx_dsp_dss/Debug/xwr68xx_mmw_demo_dss.xe674";

  1. 設置CCS_TARGET_CONFIGURATION_FILE 路徑,修改部分在如下代碼示例中高亮。
    1. 創建并使用適用于用戶電腦CCS版本及XDS仿真器版本的target configuration file。
    2. 在CCS中,點擊File-> New -> Target configuration file 創建,創建完成后的ccxml文件,拷貝到JavaScript腳本所在路徑。

var CCS_TARGET_CONFIGURATION_FILE = "IWR6843.ccxml";

  1. 獲取ScriptingEnvironment對象的句柄
    1. ScriptingEnvironment對象是進入DSS會話的主要入口點,也是創建其他可編寫腳本服務器和會話的步驟。

var script = ScriptingEnvironment.instance();

  1. 啟用和配置日志記錄
    1. 使用traceBegin()API啟用DSS日志記錄到logFile變量指定的文件。
    2. DSS日志文件采用XML格式,使用XSLT(XML樣式表轉換)進行樣式設置。我們使用CCS安裝路徑,腳本示例文件夾中提供的示例xsl文件。要查看樣式化的日志文件,建議使用Internet Explorer打開以獲得最佳兼容性。有關DSS日志記錄的更多詳細信息,請參見此處

script.traceBegin("BreakpointsTestLog.xml", "DefaultStylesheet.xsl")

  1. 使用traceSetConsoleLevel()和traceSetFileLevel()API設置控制臺和日志文件的詳細級別。

A. 以下形成可用追蹤級別的子集。順序為最低到最高(每個級別包含來自它上面的級別的所有消息):

  • TraceLevel.OFF (關閉記錄)
  • TraceLevel.SEVERE (只有來自調試器的非常嚴重的消息)
  • TraceLevel.WARNING (從調試器添加警告消息)
  • TraceLevel.INFO (添加基本消息和C I/O)
  • TraceLevel.ALL (記錄所有內容)

B. 關于更多追蹤細節,請參考文檔的TraceLevel

// Log everything

script.traceSetConsoleLevel(TraceLevel.ALL);

script.traceSetFileLevel(TraceLevel.ALL);

  1. 使用getServer()API建立與調試器的鏈接(DebugServer.1)
    1. 返回的DebugServer對象是調試器的主句柄。此對象用于配置調試器并啟動目標的調試會話。

script.setCurrentDirectory(PROJECT_DIR);

debugServer = script.getServer("DebugServer.1");

  1. 通過使用setConfig() API將目標配置*.ccxml文件傳遞給調試服務器,為所需的目標板配置調試器。
    1. DebugSession對象將返回已啟動的調試會話的主句柄??梢允褂么藢ο笤L問針對目標的所有調試操作。

//CCXML file

debugServer.setConfig(CCS_TARGET_CONFIGURATION_FILE);

  1. 使用調試會話的目標字段的connect()API連接到目標。
    1. Target類支持目標執行的方法(例如run,halt,restart),步進和連接/斷開目標。
    2. 分別連接并復位處理器DSS(DSP)、MSS(R4F)核心。

//Open R4F Debug Session

print("Debug session R4F...");

debugSession_MSS = debugServer.openSession("*","Cortex_R4_0");

print("Connecting to R4F Core...");

debugSession_MSS.target.connect();

debugSession_MSS.target.reset();

print("Done.");

//Open C674x Debug Session

print("Debug session C674x...");

debugSession_DSS = debugServer.openSession("*","C674X_0");

print("Connecting to C674x Core...");

debugSession_DSS.target.connect();

debugSession_DSS.target.reset();

print("Done.");

  1. 將程序加載至內存中。
    1. Memory類支持內存訪問的方法,如save,load,read,write,register access和program loading。
    2. 分別加載固件到DSS(DSP)、MSS(R4F)核心。

//*******Load program***********

print("Loading program - C674x...");

debugSession_DSS.memory.loadProgram(DSS_OUT_FILE_PATH);

print("Done.");

print("Loading program - R4F...");

debugSession_MSS.memory.loadProgram(R4F_OUT_FILE_PATH);

print("Done.");

  1. 向目標發出命令以運行加載的程序。
    1. Run()在目標停止之前不會返回控制。直到目標到達程序結束,將返回控制。
    2. 運行DSS(DSP)、MSS(R4F)核心。

//*******Run***********

debugSession_DSS.target.runAsynch();

print("Running DSS core...");

sleep(1000);//sleep 1000ms

debugSession_MSS.target.runAsynch();

print("Running R4F core...");

  1. 使用調試服務器的stop()API關閉調試器。
    1. 此調用既關閉調試會話又關閉調試服務器(基本上終止調試器)

debugServer.stop();

  1. 結束日志文件追蹤并使用腳本環境的traceEnd() API禁用日志記錄。
    1. 建議您正確關閉日志文件。

scriptEnv.traceEnd();

腳本全文如下,用戶可拷貝并保存為ccsdebug_scripts_from_workspace.js文件。

// Import the DSS packages into our namespace to save on typing

importPackage(Packages.com.ti.debug.engine.scripting);

importPackage(Packages.com.ti.ccstudio.scripting.environment);

importPackage(Packages.java.lang);

importPackage(Packages.java.io);

//*******User must specify WORKSPACE_DIR***********

var WORKSPACE_DIR = "C:/ccs_workspace_v10/IWR6843_OOB_TEST/";

//*******User must specify WORKSPACE_DIR***********

var PROJECT_DIR = WORKSPACE_DIR+"OOB_Handoff/";

var R4F_OUT_FILE_PATH = WORKSPACE_DIR+"mmwave_sdk_68xx_dsp_mss/Debug/xwr68xx_mmw_demo_mss.xer4f";

var DSS_OUT_FILE_PATH = WORKSPACE_DIR+"mmwave_sdk_68xx_dsp_dss/Debug/xwr68xx_mmw_demo_dss.xe674";

var CCS_TARGET_CONFIGURATION_FILE = "IWR6843.ccxml";

var script = ScriptingEnvironment.instance();

script.traceBegin("BreakpointsTestLog.xml", "DefaultStylesheet.xsl")

// Log everything

script.traceSetConsoleLevel(TraceLevel.ALL);

script.traceSetFileLevel(TraceLevel.ALL);

print("Starting Debug session...");

script.setCurrentDirectory(PROJECT_DIR);

debugServer = script.getServer("DebugServer.1");

//CCXML file

debugServer.setConfig(CCS_TARGET_CONFIGURATION_FILE);

//*******connect and reset the core***********

//Open R4F Debug Session

print("Debug session R4F...");

debugSession_MSS = debugServer.openSession("*","Cortex_R4_0");

print("Connecting to R4F Core...");

debugSession_MSS.target.connect();

debugSession_MSS.target.reset();

print("Done.");

//Open C674x Debug Session

print("Debug session C674x...");

debugSession_DSS = debugServer.openSession("*","C674X_0");

print("Connecting to C674x Core...");

debugSession_DSS.target.connect();

debugSession_DSS.target.reset();

print("Done.");

//*******Load program***********

print("Loading program - C674x...");

debugSession_DSS.memory.loadProgram(DSS_OUT_FILE_PATH);

print("Done.");

print("Loading program - R4F...");

debugSession_MSS.memory.loadProgram(R4F_OUT_FILE_PATH);

print("Done.");

/**

* Delay for a number of milliseconds

*/

function sleep(delay)

{

var start = new Date().getTime();

while (new Date().getTime() < start + delay);

}

//*******Run***********

debugSession_DSS.target.runAsynch();

print("Running DSS core...");

sleep(1000);//sleep 1000ms

//*******Breakpoint test***********

//var bp1 = debugSession_MSS.breakpoint.add("0x100") // breakpoint with address

var breakpoint_address = debugSession_MSS.symbol.getAddress("MmwDemo_initTask") // Query for address of label "MmwDemo_initTask"

var bp1 = debugSession_MSS.breakpoint.add(breakpoint_address) // set breakpoint based on the address "MmwDemo_initTask"

debugSession_MSS.breakpoint.add("mss_main.c", 4208);

debugSession_MSS.target.runAsynch();

print("Running R4F core...");

2.3 斷點的設置方法

在使用JavaScript腳本的過程中,可以在腳本中設置斷點,常用的斷點設置方法有以下三種。

  • 使用地址設置斷點:在0x100地址設置斷點

var bp1 = debugSession_MSS.breakpoint.add("0x100") // breakpoint with address

  • 使用函數名設置斷點:在MmwDemo_initTask函數調用處設置斷點

var breakpoint_address = debugSession_MSS.symbol.getAddress("MmwDemo_initTask") // Query for address of label "MmwDemo_initTask"

var bp1 = debugSession_MSS.breakpoint.add(breakpoint_address) // set breakpoint based on the address "MmwDemo_initTask"

  • 使用行號設置斷點:在c文件,4208行設置斷點

debugSession_MSS.breakpoint.add("mss_main.c", 4208);

3. 測試及輸出

3.1 前置工作

前置工作既是將ccs_debug.bin燒寫到板載QSPI FLASH,使硬件具備可在線調試的基本條件,基本操作步驟如下,亦可參考文檔:Using CCS Debug for Development

  • 設置EVM為Flashing mode,使用Uniflash軟件燒寫bin到板載flash
  • 設置EVM為functional mode,并復位一次
  • 生成適用于當前硬件芯片及仿真器的Target Configuration File (CCXML)

3.2 JavaScript腳本使用方法

將上文創建的ccsdebug_scripts_from_workspace.js腳本文件以及CCS TARGET CONFIGURATION FILE 放置于CCS工程路徑(如C:\ccs_workspace_v10\IWR6843_OOB_TEST\OOB_Handoff),正確設置ccsdebug_scripts_from_workspace.js腳本文件中需要加載的xer4f文件名和路徑、xe674的文件名和路徑。

在CCS中,點擊View-> Scripting Console,打開Scripting Console窗口,在窗口中輸入loadJSFile "C:\ccs_workspace_v10\IWR6843_OOB_TEST\OOB_Handoff\ ccsdebug_scripts_from_workspace.js" 并敲擊回車,運行腳本。

腳本運行過程中,會在Scripting Console窗口中輸出運行狀態的打印信息,成功運行的打印信息如下,即成功運行腳本,并開始調試。

js:> loadJSFile "C:\ccs_workspace_v10\IWR6843_OOB_TEST\OOB_Handoff\ccsdebug_scripts_from_workspace.js"\

Starting Debug session...

Debug session R4F...

Connecting to R4F Core...

Done.

Debug session C674x...

Connecting to C674x Core...

Done.

Loading program - C674x...

Done.

Loading program - R4F...

Done.

Running DSS core...

Running R4F core...

3.3 CCS調試

通過腳本加載固件后,程序正確運行,斷點陸續停在MmwDemo_initTask函數調用位置及mss_main.c文件->4208行位置。SDK3.5 out-of-box demo成功運行后的打印信息如下:

[Cortex_R4_0] Debug: Launched the Initialization Task

Debug: mmWave Control Initialization was successful

Debug: mmWave Control Synchronization was successful

[C674X_0] Debug: DPM Module Sync is done

[Cortex_R4_0] Debug: CLI is operational

Debug: Sending rlRfSetLdoBypassConfig with 0 0 0

============ Heap Memory Stats ============

Size Used Free DPCUsed

System Heap(TCMB) 32768 27896 4872 2048

L3 786432 131072 655360

localRam(TCMB) 4096 512 3584

============ Heap Memory Stats ============

Size Used Free DPCUsed

System Heap(L2) 32768 16112 16656 0

L3 786432 8192 778240

localRam(L2) 50176 15016 35160

localRam(L1) 16384 5632 10752

Starting Sensor (issuing MMWave_start)

4. 總結

本文介紹了使用Debug Server Scripting以及JavaScript腳本對毫米波雷達SOC進行調試的步驟及使用方法介紹,用戶可以較為方便的使用此腳本節省調試過程中的固件加載等步驟耗費的時間,更高效的對毫米波雷達SOC進行調試。本文覆蓋了使用Debug Server Scripting進行在線調試的基本入門介紹,包含了如何創建和運行簡單的DSS腳本,以及如何在DSS腳本中設置斷點簡化調試,用戶可參考Debug Server Scripting用戶指南獲得更多進階功能的介紹。

5. 參考資料

https://software-dl.ti.com/ccs/esd/documents/users_guide/sdto_dss_handbook.html#

  • DSS Fundamentals Workshop

https://software-dl.ti.com/ccs/esd/training/workshop/ccsv9/dss_fundamentals-workshop-chinese.html

審核編輯 黃昊宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式處理
    +關注

    關注

    0

    文章

    341

    瀏覽量

    9886
  • CCStudio
    +關注

    關注

    0

    文章

    5

    瀏覽量

    8304
  • AWR1443
    +關注

    關注

    0

    文章

    2

    瀏覽量

    2203
收藏 人收藏

    評論

    相關推薦

    關于TI-RTOS實時操作系統調試、分析工具以及網絡概述

    之前稱為網絡開發者套件 (NDK) 的 TI-RTOS 網絡功能將雙模 IPv4/IPv6 堆棧與其他網絡應用進行結合。TI-RTOS 網絡功能支持適用于啟用以太網的 MCU、MPU 和 DSP
    發表于 03-08 16:24

    是否有TI提供的適用于C2000圖形庫?

    想了解幾個問題:1.是否有TI提供的適用于C2000(具體U為TMS320F28069)圖形庫?2.可否將M3平臺的Stellaris Graphics Library 移植過來,有人嘗試過嗎?3.有誰做過 SPI接口連接LCD方案,或用GPIO口模擬8080-8bIt接
    發表于 11-13 14:52

    如何適用于Linux的Wrapper Xilinx腳本

    將#!/ bin / sh更改為#!/ bin / bash,如第3點所示。我認為如果你改變所需的東西,這個腳本適用于任何Linux版本的任何Xilinx版本/套件,但我想會有例外。歡迎提出建議
    發表于 11-21 14:25

    使用CCS軟件的毫米波雷達傳感器在線調試的方法及步驟

    及工業中都有廣泛的應用。本文介紹了使用CCS軟件的毫米波雷達傳感器在線調試的方法及步驟,同時提供了一種基于debug server scripting腳本的自動加載實現方法,方便廣大開
    發表于 11-03 07:36

    如何在xWR1xxx芯片上運行mmw demo?

    本文基于的軟件環境是mmwave_sdk_01_00_00_05和CCS7.1。本文測試使用的硬件是xWR1642 EVM,類似的方法適用于xWR1443 EVM。 用戶需要預先安裝好mmwa
    發表于 11-14 08:02

    適用于PDA的PLC編程系統開發

    適用于PDA的PLC編程系統開發:傳統上調試PLC通常采用手持式PLC編程器,且只能適用于相應型號的PLC,上位計算機上的編程軟件無法適用于現場實時
    發表于 12-29 23:49 ?35次下載

    CCS 6.1.3軟件免費下載

    Code Composer Studio 包含一整套用于開發和調試嵌入式應用的工具。它包含適用于每個 TI 器件系列的編譯器、源碼編輯器、項目構建環境、
    發表于 04-10 16:34 ?339次下載

    適用于MPLAB? X IDE的MPLAB REAL ICE?在線仿真器用戶指南

    適用于MPLAB? X IDE的MPLAB REAL ICE?在線仿真器用戶指南
    發表于 05-25 17:29 ?33次下載

    適用于所有平臺的便攜式Web調試

    電子發燒友網站提供《適用于所有平臺的便攜式Web調試器.zip》資料免費下載
    發表于 10-26 10:55 ?0次下載
    <b class='flag-5'>適用于</b>所有平臺的便攜式Web<b class='flag-5'>調試</b>器

    適用于TI mmWave sensor單芯片SOC平臺的連續波點頻模式設置方法

    適用于TI mmWave sensor單芯片SOC平臺的連續波點頻模式設置方法
    發表于 10-28 11:59 ?0次下載
    <b class='flag-5'>適用于</b><b class='flag-5'>TI</b> <b class='flag-5'>mmWave</b> <b class='flag-5'>sensor</b>單芯片SOC平臺的連續波點頻模式設置方法

    適用于TI mmWave sensorCCS在線調試腳本上手指南

    適用于TI mmWave sensorCCS在線調試
    發表于 10-28 11:59 ?0次下載
    <b class='flag-5'>適用于</b><b class='flag-5'>TI</b> <b class='flag-5'>mmWave</b> <b class='flag-5'>sensor</b>的<b class='flag-5'>CCS</b><b class='flag-5'>在線</b><b class='flag-5'>調試</b><b class='flag-5'>腳本</b>上手指南

    適用于TI mmWave sensor平臺的配置隨啟動加載的方式

    適用于TI mmWave sensor平臺的配置隨啟動加載的方式
    發表于 10-28 11:59 ?0次下載
    <b class='flag-5'>適用于</b><b class='flag-5'>TI</b> <b class='flag-5'>mmWave</b> <b class='flag-5'>sensor</b>平臺的配置隨啟動加載的方式

    適用于TI mmWave sensor單芯片SOC平臺的連續波點頻模式設置方法

    TI mmWave sensor是高集成度的毫米波雷達傳感器SOC,在開發過程中,SDK及TI DEMO均使用靈活的UART接口發送CLI命令進行射頻參數配置及相關算法參數的配置。對于
    的頭像 發表于 03-15 10:45 ?1360次閱讀
    <b class='flag-5'>適用于</b><b class='flag-5'>TI</b> <b class='flag-5'>mmWave</b> <b class='flag-5'>sensor</b>單芯片SOC平臺的連續波點頻模式設置方法

    適用于TI mmWave sensorCCS在線調試腳本上手指南

    的時間,更高效的對毫米波雷達SOC進行調試。本文覆蓋了使用Debug Server Scripting進行在線調試的基本入門介紹,包含了如何創建和運行簡單的DSS腳本,以及如何在DSS
    的頭像 發表于 03-16 09:20 ?1402次閱讀

    M32C 模擬器調試器 V.1.04 用戶手冊(適用于 M32C 系列)

    M32C 模擬器調試器 V.1.04 用戶手冊(適用于 M32C 系列)
    發表于 04-21 19:17 ?0次下載
    M32C 模擬器<b class='flag-5'>調試</b>器 V.1.04 用戶手冊(<b class='flag-5'>適用于</b> M32C 系列)
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>