天天看點

[CC2642R1][VSCODE+Embedded IDE+Cortex-Debug] TI CC2642R1 快速搭建VsCode開發環境

工具準備:(文末有一鍵打包)

  1. VSCODE 至少V1.69以上 下載下傳

    (内含插件:C/C++;C++ Intellisense;Embedded IDE;Cortex Debug;IAR Build;IAR C-SPY Debug;git;Git Graph)

    聯網PC直接跳過

    無網PC一定要下載下傳Embedded IDE3.9離線包

  2. IAR 7.80.4 / 8.20.2 / 8.40.2 / 8.50 均驗證通過

使用效果:

[CC2642R1][VSCODE+Embedded IDE+Cortex-Debug] TI CC2642R1 快速搭建VsCode開發環境

變更協定棧或其他工具:

[CC2642R1][VSCODE+Embedded IDE+Cortex-Debug] TI CC2642R1 快速搭建VsCode開發環境

編譯+清理+下載下傳

[CC2642R1][VSCODE+Embedded IDE+Cortex-Debug] TI CC2642R1 快速搭建VsCode開發環境

燒錄器修改

[CC2642R1][VSCODE+Embedded IDE+Cortex-Debug] TI CC2642R1 快速搭建VsCode開發環境

目前支援jlink和xds110

vscode 打開syscfg圖形化界面

[CC2642R1][VSCODE+Embedded IDE+Cortex-Debug] TI CC2642R1 快速搭建VsCode開發環境
{
            "label": "Open--syscfg",
            "command": "open_syscfg.exe",
            "problemMatcher": []
        }      

open_syscfg.exe是小工具:

.版本 2

.子程式 __啟動視窗_建立完畢
.局部變量 env_句柄, 整數型
.局部變量 臨時文本, 文本型
.局部變量 SYSCONFIG_ROOT, 文本型
.局部變量 TI_SDK, 文本型
.局部變量 cmd, 文本型
.局部變量 syscfg_name, 文本型

env_句柄 = 打開檔案 (取運作目錄 () + “/.eide/env.ini”, #讀入, )
臨時文本 = 讀入文本 (env_句柄, )

TI_SDK = 文本_取出中間文本 (臨時文本, “TI_SDK = ”, #換行符, , )
SYSCONFIG_ROOT = 文本_取出中間文本 (臨時文本, “SYSCONFIG_ROOT = ”, #換行符, , )

syscfg_name = 尋找檔案 (取運作目錄 () + “/syscfg/*.syscfg”, )

cmd = SYSCONFIG_ROOT + “/nw/nw.exe ” + SYSCONFIG_ROOT + “ --compiler iar --product ” + TI_SDK + “/.metadata/product.json --board ti/boards/CC26X2R1_LAUNCHXL --output ” + 取運作目錄 () + “/syscfg/ ” + 取運作目錄 () + “/syscfg/” + syscfg_name
輸出調試文本 (cmd)

運作 (cmd, 假, )

結束 ()      

原理:通過cmd,調用syscfg。

C:\Users\Administrator>C:\ti\sysconfig_1.7.0\nw\nw.exe C:\ti\sysconfig_1.7.0 --compiler iar --product C:\ti\simplelink_cc13x2_26x2_sdk_4_40_04_04.metadata\product.json --output F:\ti_test\multi_role\multi_role.syscfg --board \ti\boards\CC26X2R1_LAUNCHXL F:\ti_test\multi_role\multi_role.syscfg

​​工具下載下傳​

[CC2642R1][VSCODE+Embedded IDE+Cortex-Debug] TI CC2642R1 快速搭建VsCode開發環境

仿真

vscode 快捷鍵F5

[CC2642R1][VSCODE+Embedded IDE+Cortex-Debug] TI CC2642R1 快速搭建VsCode開發環境

​​例程下載下傳​​

生成configPkg

.版本 2

.程式集 視窗程式集_啟動視窗

.子程式 __啟動視窗_建立完畢
.局部變量 env_句柄, 整數型
.局部變量 臨時文本, 文本型
.局部變量 TI_SDK, 文本型
.局部變量 XDCROOT, 文本型
.局部變量 IAR_PATH, 文本型
.局部變量 cmd, 文本型
.局部變量 PATH, 文本型

env_句柄 = 打開檔案 (取運作目錄 () + “/.eide/env.ini”, #讀入, )
臨時文本 = 讀入文本 (env_句柄, )

XDCROOT = 文本_取出中間文本 (臨時文本, “XDCROOT = ”, #換行符, , )
TI_SDK = 文本_取出中間文本 (臨時文本, “TI_SDK = ”, #換行符, , )
IAR_PATH = 文本_取出中間文本 (臨時文本, “IAR_PATH = ”, #換行符, , )

cmd = #CMD_XS
cmd = 文本_替換 (cmd, , , , “$(XDCROOT)”, XDCROOT, “$(TI_SDK)”, TI_SDK, “$(IAR_PATH)”, IAR_PATH, , , , )
輸出調試文本 (cmd)
運作 (cmd, 假, )
結束 ()      

脫離IAR環境,生成configPkg。

[CC2642R1][VSCODE+Embedded IDE+Cortex-Debug] TI CC2642R1 快速搭建VsCode開發環境

​​工具下載下傳​​

其他配置,參考下文: openocd下載下傳和配置,快捷鍵設定

​​[CC2642R1][VSCODE+Embedded IDE+IAR Build+Cortex-Debug] TI CC2642R1基于VsCode的開發環境​​

本項目需要的依賴 任意IAR版本,JLink或者OpenOCD+XDS110,simplelink_cc13x2_26x2_sdk_4_40_04_04

項目結構

├─.eide // EIDE配置,env.ini–協定棧/sysconfig等路徑

├─.vscode // c_cpp_properties.json–配置引用檔案,使VScode能跳轉檔案 settings.json–過濾不搜尋的檔案

├─Application

├─build

├─configPkg // CC26xx配置檔案(自動生成,不需要管)

├─doc // 項目資料在目錄/doc/

├─edebug // 簡易調試内含(Jlink(RTT)+XDS(UART)), AT調試

├─IARPro // IAR工程,已經廢棄

├─Middleware // 中間件

├─Module // 模組

│ └─atcmd // AT指令子產品

├─settings // EIDE 編譯器參數(不用管)

├─Startup // CC26xx啟動檔案 含main.c

└─syscfg // CC26xx圖形化檔案

編譯報錯:Variable expansion failed for Pre-Build command line

編譯報錯:Error while running “c:/ti/xdctools_xxx_core/xs”

xs程序被堵塞,應該是隐藏程序,任務管理器找不到,目前隻能重新開機電腦

TI CC2642R1基于VsCode的開發環境

-----------------------------Vscode開發操作-----------------------------

工程打開 – 輕按兩下xxx.code-workspace 或者vscode右鍵打開

環境配置(新環境才需要配置一次)

x:\VSCode\data\user-data\User\settings.json

如果Jlink不使用,可以不用配置[cortex-debug.JLinkGDBServerPath] [EIDE.JLink.InstallDirectory] [JLinkRTTClient]

如果XDS不使用,可以不用配置[cortex-debug.openocdPath] [EIDE.OpenOCD.ExePath]

填寫如下内容(根據實際路徑配置):

{
 “files.trimTrailingWhitespace”: true,
 “files.autoGuessEncoding”: true,
 “editor.renderWhitespace”: “boundary”,
 “cortex-debug.armToolchainPath”: “C:\ti\arm-none-eabi\”,
 “cortex-debug.openocdPath”: “C:\ti\OpenOCD\bin\”,
 “cortex-debug.JLinkGDBServerPath”: “C:\ti\JLink_V646k\JLinkGDBServerCL.exe”,
 “git.enableSmartCommit”: true,
 “EIDE.ARM.Option.AxfToElf”: true,
 “EIDE.JLink.InstallDirectory”: “C:\ti\JLink_V646k\”,
 “EIDE.OpenOCD.ExePath”: “C:\ti\OpenOCD\bin\openocd.exe”,
 “EIDE.IAR.ARM.Toolchain.InstallDirectory”: “C:\IAR8.50\arm\”,
 “terminal.integrated.profiles.windows”: {
 “gitBash”: { //這裡的名稱開頭若是大寫不能有空格(如:GitBash)
 “path”: “G:\Git\bin\bash.exe”, //此處是git本地安裝路徑
 },
 “JLinkRTTClient”:{
 “path”: “C:\ti\JLink\JLinkRTTClient.exe”,
 }
 },
 }快捷鍵自定義綁定(可預設)
 x:\VSCode\data\user-data\User\keybindings.json      

【必須】修改環境路徑 .eide\env.ini

TI_SDK XDCROOT SYSCONFIG_ROOT FREERTOS_INSTALL_DIR IAR_PATH

首次使用工程或工程目錄改變,請一定執行一次[build_configPkg.exe],重新建構TI環境

圖形化配置:輕按兩下運作open_syscfg.exe, 打開圖形化. or vscode–終端–運作任務–Open–syscfg

編譯 快捷鍵 F7

重新編譯 快捷鍵 Ctrl+Alt+F7

燒錄 快捷鍵 Ctrl+Alt+D

擦除 快捷鍵 Ctrl+Alt+E (僅jlink有效,暫時不支援XDS)

編譯+燒錄 F6(未實作)

編譯+燒錄+Debug Ctrl+Alt+F6 (未實作)

變量按’='對齊 alt + =

宏定義對齊 ctrl + =

XDS110不能反複仿真,需要手動執行一次複位(GDB問題),20220918解決

終端–運作任務–resetXDS110

注:請核對路徑是否正确。(.vscode–tasks.json–resetXDS110 Path)

【Jlink燒錄】當MCU内部flash與目前燒錄一緻時,會出現以下錯誤:(不必理會)

J-Link: Flash download: Bank 0 @ 0x00000000: Skipped. Contents already match

O.K.

Reset delay: 0 ms

Reset type NORMAL: Resets core & peripherals via SYSRESETREQ & VECTRESET bit.

****** Error: CPU is not halted

使用XDS110,燒錄或者仿真報錯 20220918解決

錯誤如下:

Error: JTAG scan chain interrogation failed: all zeroes

Error: Check JTAG interface, timings, target power, etc.

Error: Trying to use configured scan chain anyway…

Error: cc26x2.jrc: IR capture error; saw 0x00 not 0x01

Warn : Bypassing JTAG setup events due to errors

Info : starting gdb server for cc26x2.cpu on 3333

Info : Listening on port 3333 for gdb connections

Error: JTAG scan chain interrogation failed: all zeroes

Error: Check JTAG interface, timings, target power, etc.

Error: Trying to use configured scan chain anyway…

Warn : Bypassing JTAG setup events due to errors

** Programming Started **

Error: Target not examined yet

Error: auto_probe failed

** Programming Failed **

shutdown command invoked

-----------------------------IAR開發操作(廢棄)-----------------------------

如果需要跟換協定棧(廢棄,适配度較低)

  1. 目标協助棧:simplelink_cc13xx_cc26xx_sdk_6_20_00_29。 依賴sysconfig_1.13.0
  2. IAR-Tools–[Configure Custom Argument Varlables]–[Workspase]–[Import]–選擇[simplelink_cc13xx_cc26xx_sdk_6_20_00_29]
  3. 将[simplelink_cc13x2_26x2_sdk_4_40_04_04]–Disable Group
  4. IAR–Tools–[Configure Viewers]–[.syscfg]–替換為[\nw\nw.exe --compiler iar --product .metadata\product.json --output ]

快速修改工程名稱(廢棄,不再使用IAR工程,版本不相容)

  1. 将工程檔案夾下字尾為 “dep、ewd、ewp、eww” 的四個檔案重命名為目标名稱。
  2. 用編輯器(記事本或者UE)打開“eww”字尾的檔案,修改目的路徑的“xxxx.ewp”為目标名稱

    /xxxx.ewp

使用syscfg進行儲存檔案時,一定要手動選擇儲存,右邊有個[xx Total Files [圖示]] ,點選圖示選擇syscfg檔案夾。