JARVIS_TONY 2026-03-18 11:37 采纳率: 0%
浏览 13

Keil 使用TI MSPM0 SDK + sysconfig问题

问题遇到的现象和发生背景

KEIL 打开tool 报错无法加载一下来源的扩展程序

img

img

操作环境、软件版本等信息

keil V5.38a,
MspM0 SDK 2.10.00.04
Sysconfig V1.27.0
C:\ti\mspm0_sdk_2_10_00_04\tools\keil\syscfg.bat 信息如下

@echo off

set SYSCFG_PATH="C:\ti\sysconfig_1.27.0\sysconfig_cli.bat"

if not exist "%SYSCFG_PATH%" (
    echo.
    echo Couldn't find Sysconfig Tool %SYSCFG_PATH%
    echo "Update the file located at <sdk path>/tools/keil/syscfg.bat"
    echo.
    exit
)

echo Using Sysconfig Tool from %SYSCFG_PATH%
echo "Update the file located at <sdk path>/tools/keil/syscfg.bat to use a different version"

set PROJ_DIR=%~1
set PROJ_DIR=%PROJ_DIR:'=%

set SYSCFG_FILE=%~2
set SYSCFG_FILE=%SYSCFG_FILE:'=%

:: Search for the root of the SDK by going up one directory
:: However, if we don't find it after 20 times then give up
set SDK_ROOT=%PROJ_DIR%
set iter=0
:sdk_search_loop
if exist "%SDK_ROOT%\.metadata\product.json" (
    goto sdk_search_exit
) else if %iter% geq 20 (
    @echo "Couldn't find .metadata\product.json"
) else (
    set /a iter=%iter%+1
    set SDK_ROOT=%SDK_ROOT%..\
    goto sdk_search_loop
)
:sdk_search_exit

:: Search for the directory containing the project's syscfg file
:: Going up a directory atleast 5 times but then give up
set SYSCFG_DIR=%PROJ_DIR%
set iter=0
:syscfg_search_loop
if exist %SYSCFG_DIR%\*.syscfg (
    :: Remove the trailing slash if it exist since Keil doesn't like it
    IF %SYSCFG_DIR:~-1%==\ SET SYSCFG_DIR=%SYSCFG_DIR:~0,-1%
    goto syscfg_search_exit
) else if %iter% geq 5 (
    @echo "Couldn't find syscfg file"
) else (
    set /a iter=%iter%+1
    set SYSCFG_DIR=%SYSCFG_DIR%..\
    goto syscfg_search_loop
)
:syscfg_search_exit


%SYSCFG_PATH% -o "%SYSCFG_DIR%" -s "%SDK_ROOT%\.metadata\product.json" --compiler keil "%SYSCFG_DIR%\%SYSCFG_FILE%

C:\ti\mspm0_sdk_2_10_00_04\tools\keil\MSPM0_SDK_syscfg_menu_import.cfg信息如下

[Sysconfig v1.27.0 - MSPM0 SDK v2_10_00_04]
Command=C:\ti\sysconfig_1.27.0\nw\nw.exe C:\ti\sysconfig_1.27.0
Initial Folder=c:\ti\mspm0_sdk_2_10_00_04
Arguments=--compiler keil -s ".metadata\product.json" "#E"
Prompt for Arguments=0
Run Minimized=0
Run Independent=-1

C:\ti\sysconfig_1.27.0\sysconfig_cli.bat信息如下

```bash
@echo off
rem
rem Run the SysConfig command line tool
rem 
rem For help, use -h or --help 

set DIR=%~dp0

set NODEFLAGS=
if "%1" == "-g" (
    set NODEFLAGS=--inspect --debug-brk
)

set CCS_NODE="%DIR%..\..\tools\node\node.exe"
set STANDALONE_NODE="%DIR%nodejs\node.exe"

rem try to use standalone node, then CCS node, finally any node version available on the path
if exist %STANDALONE_NODE% (
    set NODE=%STANDALONE_NODE%
) else (
    if exist %CCS_NODE% (
        set NODE=%CCS_NODE%
    ) else (
        SET NODE=node
    )
)

%NODE% %NODEFLAGS% "%DIR%\dist\cli.js" %*


有没有遇到过的指点一下。谢谢!

  • 写回答

1条回答 默认 最新

  • 檀越@新空间 2026-03-18 11:38
    关注

    上午好☀️☀️☀️️
    本答案参考通义千问

    你遇到的问题是 Keil 无法加载扩展程序,这通常与 Sysconfig 配置文件或脚本路径问题环境变量配置不正确SDK 与 Sysconfig 版本不兼容 有关。以下是详细的分析和解决方案。


    一、问题现象分析

    根据你提供的信息,syscfg.bat 脚本试图调用 sysconfig_cli.bat,而 sysconfig_cli.bat 又尝试启动 node.exe 来运行 SysConfig CLI 工具。但 Keil 在加载时报告 “无法加载扩展程序”,说明以下几种可能性:

    1. Sysconfig 安装路径不正确(如 sysconfig_1.27.0 文件夹不存在)。
    2. Node.js 环境未正确安装或路径未设置
    3. Sysconfig CLI 的依赖项缺失(如 Node.js 模块未安装)。
    4. Sysconfig 和 SDK 版本不兼容(如 MspM0 SDK 2.10.00.04 与 Sysconfig 1.27.0 不匹配)。
    5. Keil 的扩展加载机制被阻止(可能权限不足或系统策略限制)。

    二、解决步骤

    1. 检查 sysconfig_1.27.0 文件夹是否存在

    • 打开路径:C:\ti\sysconfig_1.27.0
    • 确认该目录下是否有 sysconfig_cli.batnodejsdist 等关键文件夹/文件。
    • 如果没有,可能是安装过程中出错,需要重新安装 Sysconfig。

    重点提示:
    如果 sysconfig_1.27.0 文件夹不存在,那么 syscfg.bat 会报错找不到 sysconfig_cli.bat,这是最常见原因。


    2. 确认 Node.js 是否正确安装

    • 检查 sysconfig_1.27.0\nodejs 目录下是否包含 node.exe
    • 如果没有,你需要手动下载并安装 Node.js,并确保其路径已添加到系统环境变量中。

    重点提示:
    Sysconfig CLI 依赖于 Node.js,若 Node.js 未正确安装,会导致 CLI 启动失败。


    3. 检查 syscfg.bat 中的路径是否正确

    打开 C:\ti\mspm0_sdk_2_10_00_04\tools\keil\syscfg.bat,查看如下内容:

    set SYSCFG_PATH="C:\ti\sysconfig_1.27.0\sysconfig_cli.bat"
    
    • 确保 C:\ti\sysconfig_1.27.0\sysconfig_cli.bat 存在。
    • 如果路径错误,请修改为正确的路径。

    重点提示:
    路径错误是最常见的导致“无法加载扩展程序”的原因。请务必确认路径正确无误。


    4. 验证 SDK 与 Sysconfig 版本兼容性

    • 根据 TI 官方文档,MspM0 SDK v2.10.00.04 应搭配 Sysconfig v1.27.0 使用。
    • 如果你使用的是较新版本的 SDK,可能需要升级 Sysconfig 到更高版本。

    重点提示:
    版本不兼容可能导致 Sysconfig 无法正常工作,建议查阅官方文档确认兼容性。


    5. 修改 syscfg.bat 中的路径以适配你的环境

    如果你发现 sysconfig_1.27.0 文件夹不在预期位置,可以修改 syscfg.bat 中的路径:

    set SYSCFG_PATH="D:\your_path\sysconfig_1.27.0\sysconfig_cli.bat"
    

    重点提示:
    替换为你的实际路径,确保路径中无空格或特殊字符。


    6. 检查 Keil 的扩展加载权限

    • 确保你以管理员身份运行 Keil。
    • 检查 Windows 的 用户账户控制(UAC) 设置,确保没有阻止 Keil 加载扩展。
    • 如果你在企业环境中,可能需要联系 IT 部门检查组策略限制。

    重点提示:
    权限不足或组策略限制可能导致扩展无法加载。


    三、代码修改示例(syscfg.bat)

    如果你的路径不对,修改如下部分:

    @echo off
    
    rem 修改前:
    set SYSCFG_PATH="C:\ti\sysconfig_1.27.0\sysconfig_cli.bat"
    
    rem 修改后(假设你的 sysconfig_1.27.0 在 D:\sysconfig_1.27.0):
    set SYSCFG_PATH="D:\sysconfig_1.27.0\sysconfig_cli.bat"
    

    四、其他建议

    1. 重新安装 Sysconfig

      • 前往 TI 官网 下载对应版本的 Sysconfig。
      • 安装时选择自定义路径,避免默认安装路径中的问题。
    2. 清理缓存和临时文件

      • 删除 C:\Users\<用户名>\AppData\Roaming\Keil 中的缓存文件。
      • 重启 Keil 再次尝试。
    3. 更新 Keil 至最新版本

      • Keil V5.38a 是较旧版本,可能存在兼容性问题。
      • 建议升级至 Keil V5.38 或更高版本。

    五、总结

    | 问题类型 | 解决方案 | |----------|----------| | 路径错误 | 修改 syscfg.bat 中的 SYSCFG_PATH 为正确路径 | | Node.js 缺失 | 安装 Node.js 并确保路径正确 | | 版本不兼容 | 确认 SDK 与 Sysconfig 版本匹配 | | 权限问题 | 以管理员身份运行 Keil,检查 UAC 设置 | | 扩展加载失败 | 清理缓存或重装 Sysconfig |


    如有更多细节(例如完整错误日志),欢迎继续补充,我可以进一步帮你定位问题!

    评论

报告相同问题?

问题事件

  • 创建了问题 3月18日