pxienl
文章4
标签2
分类0

文章归档

gd32_in_vscode

gd32_in_vscode

使用 msys2 安装编译工具链

1
2
pacman -S base-devel
pacman -S mingw-w64-clang-x86_64-arm-none-eabi-toolchain

配置环境变量 env

1
2
driver:\msys64\usr\bin
driver:\msys64\clang64\bin

STM32CubeMX 生成 CMake 或者 MakeFile 项目

1
2
3
/STM32F407VETx_FLASH.ld:56: syntax error
[build] collect2.exe: error: ld returned 1 exit status
[build] ninja: build stopped: subcommand failed.

如果 make 出现以下问题时将以下保存为 patch.patch 文件并使用 patch -p0 < patch.patch 修改替换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
--- ./STM32F407VETx_FLASH.ld	2024-10-11 20:11:30.799283500 +0800
+++ ./STM32F407VETx_FLASH.ld 2024-10-11 15:49:36.491106700 +0800
@@ -53,7 +53,7 @@
ENTRY(Reset_Handler)

/* Highest address of the user mode stack */
-_estack = ORIGIN() + LENGTH(); /* end of RAM */
+_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x200; /* required amount of heap */
_Min_Stack_Size = 0x400; /* required amount of stack */
@@ -144,7 +144,7 @@

. = ALIGN(4);
_edata = .; /* define a global symbol at data end */
- } > AT> FLASH
+ } >RAM AT> FLASH

_siccmram = LOADADDR(.ccmram);

@@ -180,7 +180,7 @@
. = ALIGN(4);
_ebss = .; /* define a global symbol at bss end */
__bss_end__ = _ebss;
- } >
+ } > RAM

/* User_heap_stack section, used to check that there is enough RAM left */
._user_heap_stack :
@@ -191,7 +191,7 @@
. = . + _Min_Heap_Size;
. = . + _Min_Stack_Size;
. = ALIGN(8);
- } >
+ } >RAM

问题来自: https://community.st.com/t5/stm32cubemx-mcus/f303-generated-ld-missing-ram-symbol-won-t-compile-includes-fix/td-p/722915

烧录使用 pyocd 进行烧录

建议使用 pipx 进行安装

1
2
3
4
5
6
pipx install pyocd

pyocd pack find gd32f407
pyocd pack install gd32f407

pyocd flash --target gd32f407ve .\filename.elf
本文作者:pxienl
本文链接:https://pxienl.github.io/gd32-in-vscode/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可