vscode 快速安装 platformio IDE

熊博远
2023-12-01

无需单独安openocd/交叉编译环境(riscv-nuclei-elf-)/
.pip/pip.conf

[global]
#清华源
index-url = https://pypi.tuna.tsinghua.edu.cn/simple 
#添加清华源为可信主机
trusted-host =  pypi.tuna.tsinghua.edu.cn           
#取消pip版本检查,排除每次都报最新的pip
disable-pip-version-check = true          
timeout = 120

安装virtualenv 虚拟环境

sudo apt install virtualenv
pip3 install virtualenv

推荐
指定虚拟环境的python版本

virtualenv .platformio/penv --python=python3.6

不推荐不指定虚拟环境的python版本

virtualenv .platformio/penv

使用virtualenv 虚拟环境

source .platformio/penv/bin/activate
(penv)$  pip3 install -U platformio

vscode中安装platformio插件
如果加载不出pio home页,请注销或重启机器。

platformio.ini

[env:gd32vf103v-eval]
platform = gd32v
board = gd32vf103v-eval
framework = gd32vf103-sdk
debug_tool=jlink #rv-link
upload_protocol=jlink #rv-link
debug_svd_path=~/.platformio/platforms/gd32v/misc/svd/GD32VF103.svd

Jlink固件版本
Firmware:J-Link ARM V8 compiled Nov 25 2013 19:20:08
下载固件试试
.platformio/packages/tool-openocd-gd32v/share/openocd/scripts/target/gd32vf103.cfg

jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x1e200a6d
.pio/build/gd32vf103v-eval/firmware.elf
Open On-Chip Debugger 0.10.0+dev-00911-gcfbca74bd (2019-09-12-09:31)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
jtag Warn : Transport "jtag" was already selected
jtag adapter speed: 1000 kHz
Info : J-Link ARM V8 compiled Nov 25 2013 19:20:08
Info : Hardware version: 8.00
Info : VTarget = 3.313 V
Info : clock speed 1000 kHz
Info : JTAG tap: riscv.cpu tap/device found: 0x1000563d (mfg: 0x31e (Andes Technology Corporation), part: 0x0005, ver: 0x1)
Warn : JTAG tap: riscv.cpu UNEXPECTED: 0x1000563d (mfg: 0x31e (Andes Technology Corporation), part: 0x0005, ver: 0x1)
Error: JTAG tap: riscv.cpu expected 1 of 1:0x1e200a6d (mfg: 0x536 (Nuclei System Technology Co.,Ltd.), part: 0xe200, ver: 0x1)

如何修改expected错误(不修改也可以正常使用只是老提示expected错误):
使用黄色位置的内容替换 gd32vf103.cfg 中的红色文本位置内容。

上述所有都设置,提示2秒超时错误,可能risc-v芯片内的程序钳制住jlink使用的相关引脚的电平,
可以在按住BOOT0按钮时再按RESET按时使板子进入DFU下载模式,刷入出厂固件后重新连接。

快速安装 arm-none-eabi-gdb
sudo apt install gdb-multiarch
sudo ln -s /usr/bin/gdb-multiarch /usr/bin/arm-none-eabi-gdb 
取消编译器对某一个函数的优化
void __attribute__((optimize("O0"))) foo(unsigned char data) {
    // unmodifiable compiler code
}
同一文件中定义的所有函数
#pragma GCC push_options
#pragma GCC optimize ("O0")

your code //作用于整个文件

#pragma GCC pop_options
 类似资料: