generated from hulk/gd32e23x_template_cmake_vscode
工程编译与开发环境(参照 gd32e23x_template_cmake_vscode 模板) - cmake/arm-none-eabi-gcc.cmake:硬编码工具链路径改为 GD32_GCC_BIN 环境变量 / -DTOOLCHAIN_DIRECTORY 参数,与模板逐字一致 - .vscode:launch/tasks/settings/extensions 对齐模板,烧录与调试全部 读取 GD32_GCC_BIN / GD32_OPENOCD_BIN / GD32_OPENOCD_SCRIPTS 环境变量; 新增 J-Link 调试配置与 flash/reset/erase.jlink 脚本 - CMakeLists.txt:POST_BUILD 增加 Application/Application.hex 生成 (J-Link 烧录脚本 loadfile 依赖) - 验证:Debug / Release 编译通过(本机 ARM GCC 15.2.1) Bootloader 布局适配(与旧版独立镜像不兼容,升级需整片烧录一次) - LD/gd32e23x_flash.ld:FLASH ORIGIN=0x08002000, LENGTH=54K - Src/system_gd32e23x.c:VECT_TAB_OFFSET=0x2000——Bootloader 不写 VTOR,APP 必须自设向量表,否则中断落回 Bootloader 向量表 - 验证:.vectors 链接于 0x08002000,固件 12164B(54KB 上限 22%) 驱动修复 - Src/ldc1612.c:ldc1612_config_single_channel 各步骤 I2C 写入检查 返回值,失败立即返回错误(原审查项 L3) 文档 - README:重写本地编译/烧录/调试说明,新增"固件布局与 Bootloader"章节
230 lines
7.2 KiB
JSON
230 lines
7.2 KiB
JSON
{
|
|
"version": "2.0.0",
|
|
"tasks": [
|
|
{
|
|
"label": "Build",
|
|
"type": "cmake",
|
|
"command": "build",
|
|
"group": {
|
|
"kind": "build",
|
|
"isDefault": true
|
|
},
|
|
"problemMatcher": [
|
|
{
|
|
"base": "$gcc",
|
|
"fileLocation": [
|
|
"relative",
|
|
"${command:cmake.buildDirectory}"
|
|
]
|
|
}
|
|
],
|
|
"options": {
|
|
"environment": {
|
|
"CLICOLOR_FORCE": "1",
|
|
"OPENOCD_SCRIPTS": "${env:GD32_OPENOCD_SCRIPTS}"
|
|
}
|
|
},
|
|
"presentation": {
|
|
"clear": true
|
|
},
|
|
"icon": {
|
|
"id": "code",
|
|
"tooltip": "Build"
|
|
}
|
|
},
|
|
{
|
|
"label": "Build and Flash",
|
|
"dependsOn": [
|
|
"Build",
|
|
"Flash MCU"
|
|
],
|
|
"dependsOrder": "sequence",
|
|
"group": "build",
|
|
"icon": {
|
|
"id": "insert",
|
|
"tooltip": "Build and Flash"
|
|
}
|
|
},
|
|
{
|
|
"label": "Flash MCU",
|
|
"type": "process",
|
|
"command": "${env:GD32_OPENOCD_BIN}/openocd.exe",
|
|
"args": [
|
|
"-s", "${env:GD32_OPENOCD_SCRIPTS}",
|
|
"-f", "${env:GD32_OPENOCD_SCRIPTS}/${config:gd32.openocd.targetConfig}",
|
|
"-c", "init; reset halt; flash write_image erase ${command:cmake.launchTargetFilename}; reset; exit"
|
|
],
|
|
"group": "build",
|
|
"problemMatcher": [],
|
|
"options": {
|
|
"cwd": "${command:cmake.buildDirectory}/Application",
|
|
"environment": {
|
|
"OPENOCD_SCRIPTS": "${env:GD32_OPENOCD_SCRIPTS}"
|
|
}
|
|
},
|
|
"presentation": {
|
|
"clear": true
|
|
},
|
|
"icon": {
|
|
"id": "gather",
|
|
"tooltip": "Flash MCU"
|
|
}
|
|
},
|
|
{
|
|
"label": "Reset MCU",
|
|
"type": "process",
|
|
"command": "${env:GD32_OPENOCD_BIN}/openocd.exe",
|
|
"args": [
|
|
"-s", "${env:GD32_OPENOCD_SCRIPTS}",
|
|
"-f", "${env:GD32_OPENOCD_SCRIPTS}/${config:gd32.openocd.targetConfig}",
|
|
"-c", "init; reset; exit"
|
|
],
|
|
"group": "build",
|
|
"problemMatcher": [],
|
|
"options": {
|
|
"cwd": "${command:cmake.buildDirectory}/Application",
|
|
"environment": {
|
|
"OPENOCD_SCRIPTS": "${env:GD32_OPENOCD_SCRIPTS}"
|
|
}
|
|
},
|
|
"presentation": {
|
|
"clear": true
|
|
},
|
|
"icon": {
|
|
"id": "discard",
|
|
"tooltip": "Reset MCU"
|
|
}
|
|
},
|
|
{
|
|
"label": "Mass Erase MCU",
|
|
"type": "process",
|
|
"command": "${env:GD32_OPENOCD_BIN}/openocd.exe",
|
|
"args": [
|
|
"-s", "${env:GD32_OPENOCD_SCRIPTS}",
|
|
"-f", "${env:GD32_OPENOCD_SCRIPTS}/${config:gd32.openocd.targetConfig}",
|
|
"-c", "init; reset halt; ${config:gd32.openocd.massEraseCommand}; exit"
|
|
],
|
|
"group": "build",
|
|
"problemMatcher": [],
|
|
"options": {
|
|
"cwd": "${command:cmake.buildDirectory}/Application",
|
|
"environment": {
|
|
"OPENOCD_SCRIPTS": "${env:GD32_OPENOCD_SCRIPTS}"
|
|
}
|
|
},
|
|
"presentation": {
|
|
"clear": true
|
|
},
|
|
"icon": {
|
|
"id": "clear-all",
|
|
"tooltip": "Erase MCU"
|
|
}
|
|
},
|
|
{
|
|
"label": "OpenOCD Server",
|
|
"type": "process",
|
|
"command": "${env:GD32_OPENOCD_BIN}/openocd.exe",
|
|
"args": [
|
|
"-s", "${env:GD32_OPENOCD_SCRIPTS}",
|
|
"-f", "${env:GD32_OPENOCD_SCRIPTS}/${config:gd32.openocd.targetConfig}"
|
|
],
|
|
"group": "build",
|
|
"problemMatcher": [],
|
|
"options": {
|
|
"cwd": "${command:cmake.buildDirectory}/Application",
|
|
"environment": {
|
|
"OPENOCD_SCRIPTS": "${env:GD32_OPENOCD_SCRIPTS}"
|
|
}
|
|
},
|
|
"presentation": {
|
|
"clear": true
|
|
}
|
|
},
|
|
{
|
|
"label": "Build and Flash (Jlink)",
|
|
"dependsOn": [
|
|
"Build",
|
|
"Flash MCU (Jlink)"
|
|
],
|
|
"dependsOrder": "sequence",
|
|
"group": "build",
|
|
"icon": {
|
|
"id": "insert",
|
|
"tooltip": "Build and Flash (Jlink)"
|
|
}
|
|
},
|
|
{
|
|
"label": "Flash MCU (Jlink)",
|
|
"type": "process",
|
|
"command": "JLink.exe",
|
|
"args": [
|
|
"-device", "${config:gd32.jlink.device}",
|
|
"-if", "${config:gd32.jlink.interface}",
|
|
"-speed", "${config:gd32.jlink.speed}",
|
|
"-autoconnect", "1",
|
|
"-CommanderScript", "${workspaceFolder}/.vscode/flash.jlink"
|
|
],
|
|
"group": "build",
|
|
"problemMatcher": [],
|
|
"options": {
|
|
"cwd": "${command:cmake.buildDirectory}/Application"
|
|
},
|
|
"presentation": {
|
|
"clear": true
|
|
},
|
|
"icon": {
|
|
"id": "gather",
|
|
"tooltip": "Flash MCU (Jlink)"
|
|
}
|
|
},
|
|
{
|
|
"label": "Reset MCU (Jlink)",
|
|
"type": "process",
|
|
"command": "JLink.exe",
|
|
"args": [
|
|
"-device", "${config:gd32.jlink.device}",
|
|
"-if", "${config:gd32.jlink.interface}",
|
|
"-speed", "${config:gd32.jlink.speed}",
|
|
"-autoconnect", "1",
|
|
"-CommanderScript", "${workspaceFolder}/.vscode/reset.jlink"
|
|
],
|
|
"group": "build",
|
|
"problemMatcher": [],
|
|
"options": {
|
|
"cwd": "${workspaceFolder}"
|
|
},
|
|
"presentation": {
|
|
"clear": true
|
|
},
|
|
"icon": {
|
|
"id": "discard",
|
|
"tooltip": "Reset MCU (Jlink)"
|
|
}
|
|
},
|
|
{
|
|
"label": "Mass Erase MCU (Jlink)",
|
|
"type": "process",
|
|
"command": "JLink.exe",
|
|
"args": [
|
|
"-device", "${config:gd32.jlink.device}",
|
|
"-if", "${config:gd32.jlink.interface}",
|
|
"-speed", "${config:gd32.jlink.speed}",
|
|
"-autoconnect", "1",
|
|
"-CommanderScript", "${workspaceFolder}/.vscode/erase.jlink"
|
|
],
|
|
"group": "build",
|
|
"problemMatcher": [],
|
|
"options": {
|
|
"cwd": "${workspaceFolder}"
|
|
},
|
|
"presentation": {
|
|
"clear": true
|
|
},
|
|
"icon": {
|
|
"id": "clear-all",
|
|
"tooltip": "Erase MCU (Jlink)"
|
|
}
|
|
}
|
|
]
|
|
}
|