在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 377|回复: 0

[原创] VSCode下的编译、调试、烧录

[复制链接]
发表于 2025-4-8 11:12:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
一、编译程序程序编译可以通过2种方式:pio左栏按钮、命令行;
1. Pio左栏按钮:

9564afba4cd498521cc34d51ff13e02e.png

                               
登录/注册后可看大图
编辑
点下按钮编译后,会自动弹出终端窗口显示编译过程。
2. 命令行方式:
在“终端”通过命令行进行的工程编译。命令:pio run -e debug -v
使用如图:

17d8b33418b00f62135e852cf9673f6a.png

                               
登录/注册后可看大图
编辑
不管使用上边的哪种方式,编译和烧录成功时,会有success的提示如下:

c91a355cde05ec440fb18122f0799dcf.png

                               
登录/注册后可看大图
编辑
.
二、烧录程序(和ve配置)注意:AG32烧录程序和烧录VE配置是分开的。
注:这里描述所说的“烧录VE配置”,其实就是前文中提到的烧录logic.bin(cpld部分的bin)。
程序有改动,就编译后烧录程序;VE有改动,就烧录VE。
两者相互独立,各烧各的。烧录没有先后顺序之分。两者的烧录接线都相同,只是按钮不同。
新开发板的第一次烧录,必须先烧录VE,再烧录程序。
烧录支持三种方式:daplink、jlink和串口
daplink烧录:daplink方式是官方推荐的烧录方式,官方提供的烧录工具属于这种类型。
1. 配置烧录方式:
如果使用daplink来烧录,需要在platformio.ini中进行相应配置。
配置方法:
修改upload_protocol项,使:upload_protocol = cmsis-dap-openocd
2. 烧录程序:
烧录方法和上边的编译相似,也是2种方式:下边按钮、命令方式。
如下图(二选一):

24fa9d3d12be47633e6ef380a3277c55.png

                               
登录/注册后可看大图
编辑

ca0a38a529daf73bfd384b7e9f5cceac.png

                               
登录/注册后可看大图
编辑
烧录命令:pio run -e release -t upload
3. 烧录ve文件:
在烧录ve配置时,只支持两种方式:左边栏和命令方式。
如下图:(二选一)

ca24d50dcb562cbbaab30d86fbb5779d.png

                               
登录/注册后可看大图
编辑

d161f7c418c32b6307fb2a2e1ff7e0f9.png

                               
登录/注册后可看大图
编辑
烧录命令:pio run -e release -t logic
注:烧录到flash的ve配置,就是在platformio.ini中指定的board_logic_ve项。
如样例中的:board_logic.ve = example_board.ve
4. 烧录结果提示:
在烧录固件或者ve配置完成时,都会有SUCCESS提示。
如果烧录失败,会有红色Error信息给出对应的失败原因。
烧录中,最常见的报错是 “Error connecting DP: cannot read IDR”。
如果是新焊接的板子,需要检查:芯片是否有虚焊、芯片供电、link接线管脚是否正常,是否对应;
如果是正常使用中突然出现,可以Boot0拉高,重新上电芯片,重新插拔烧录器,再尝试。
Jlink烧录:Jlink烧录和daplink烧录有两点差异,其他均完全相同。
1. 在首次烧录前,需要先安装插件zadig-2.8.exe。
注:该插件是jlink正常驱动的插件。在安装该插件前,确保电脑上已经安装过jlink的驱动,并能正常使用jlink。
安装插件时,需要将jlink连接到电脑,然后再安装。
该插件位于SDK解压后的根目录下。
安装方式参下图:

315a746c0eda51455e4f79bbcb9ff9cb.png

                               
登录/注册后可看大图
编辑
注:开发中如重装过电脑,或重新安装过jlink驱动,需要再次安装该驱动插件。
2. 在配置文件中修改烧录方式为:
upload_protocol = jlink-openocd
这里配置修改完后,烧录按钮(或命令),跟dap-link是完全一样的。
串口烧录:1. 串口烧录前,要先使芯片进入烧录模式;
进入烧录模式的方法:boot1接地,boot0 接高。
2. 在platformio.ini的配置里,配置成串口烧录并指定PC使用的串口号;
配置方法:
修改upload_protocol项,使:upload_protocol = Serial
修改upload_port项,使:upload_port = COMx (x是编号)
烧录时的波特率可以在[env:serial] 中修改,如:upload_speed = 115200
(注:烧录时芯片端必须使用UART0
3. 烧录程序和烧录ve;
按钮方式,串口烧录和jlink烧录时相同(可参照上边jlink烧录的介绍)
命令方式,(把release换成serial)。
烧录程序的命令:pio run -e serial -t upload
烧录ve的命令:pio run -e serial -t logic
4. 烧录成功后的反馈;
同jlink烧录相似,成功也会有SUCCESS提示;
烧录失败会有红色FAIL提示错误原因。
总结下几个常用命令(如果使用命令的话):
编译(debug):pio run -e dev -v
#串口烧录ve配置:pio run -e serial -t logic
#串口烧录code:pio run -e serial -t upload
jlink烧录ve配置: pio run -e release -t logic
jlink烧录code: pio run -e release -t upload
注:这里的烧录VE,其实是烧录logic。更多信息请参考后边描述。
三、daplink(或jlink)仿真:烧录完成后,如果要仿真跟踪代码时,可通过daplink或jlink的方式。
使用时,需要在platformio.ini中指定:
用daplink时:debug_tool = cmsis-dap-openocd
用jlink时:debug_tool = jlink-openocd
在仿真的操作上,两种方式完全相同。
按以下步骤启动:

dcff6d2af2d6dbf7616ad13206e34c46.png

                               
登录/注册后可看大图
编辑

4a04c979c1616904bb88ea91edfe5285.png

                               
登录/注册后可看大图
编辑

f3f8fca3fc5089957fc7e6acfa187787.png

                               
登录/注册后可看大图
编辑
正常运行起来后,这个样子:

050d8d99b2a3610e4f9b7a1b208b30f2.png

                               
登录/注册后可看大图
编辑
接下来就可以单步程序了。debug调试中的快捷键和VS一致。
注:从SDK1.5.0之后(安装包为 AgRV_pio-1.5.0-win64-release),debug调试除了当前的pio-debug外,还支持cortex-debug插件。具体使用方法,请参考网盘文档《AG32下使用cotex插件调试程序》
四、增加编译目录在开发中,新增了c文件和h文件,怎么编译进来?

  • 如果新增文件在原有路径下,则会被自动关联进来编译;
  • 如果新增一个文件夹,则要把该文件夹加入到编译选项中;
如果文件夹下存放C文件:在src_filter中增加该文件夹
如果文件夹下存放h文件:在src_build_flags中增加该文件夹
举例:
在example项目里,只有一个src文件夹(里边存放全部.c和.h)。编译设置为:
src_dir = .
include_dir = ./src
build_src_filter = "-<*> +<./src/**/*.c>"
其中:
src_dir定义“.c文件编译时,查找路径的基路径”
include_dir定义“.h文件编译时,查找路径的基路径”
build_src_filter 定义 “.c文件从哪些路径下搜索”,星号代表通配,双星代表子目录通 配,+表示增加一个搜索路径,-表示去除一个搜索路径
如果要新增一个文件夹print(跟src同级),里边也有.c和.h,可以设置如下:
src_dir = .
include_dir = .
build_src_filter = "-<*> +<./src/**/*.c> +<./print/**/*.c>"
src_build_flags = -Isrc -Iprint
其中:
include_dir路径也退回到根路径下;
build_src_filter 加入print文件夹的选项;
src_build_flags 是新增的“设置头文件查找路径”的选项。每个头文件路径用 -I 来加入, 多个-I之间加空格。
注意:在build_src_filter和src_build_flags中,都是使用相对路径。他们是从src_dir/include_dir定义的基路径上再开始的。
如果工程含有c++的文件,只需在build_src_filter的选项中增加cpp选项,如:
build_src_filter = "-<*> +<./src/**/*.c> +<./src/**/*.cpp>"
五、脱机烧录:脱机烧录前需要先编译出二合一的batch.bin(这个bin是code和ve整合后的bin)。
方式如下:

d443c82bf27dbeb63da75a97fe8e3a8f.png

                               
登录/注册后可看大图
编辑
编译完成后,可以在工程路径下找到生成的 xxxx_release_batch.bin。
然后,运行PC下载工具(该工具在SDK安装路径下):

e96e0c96a78680f0ca45f7152bf901d6.png

                               
登录/注册后可看大图
编辑
下载方式可选4种:

25c5c29ca3c162f102a2f2fb795cb1aa.png

                               
登录/注册后可看大图
编辑
挑选对应的方式。
然后点左边“Query Device ID”按钮,如果连接正常的话,会显示正常ID:
(4种方式,连接正常的话,都能获取到设备ID)
注意,如果选串口方式,要boot1接地,boot0 接高

11b2b20380f338b5c67e9876083ffeef.png

                               
登录/注册后可看大图
编辑
然后,点右下角“download”按钮下载程序。
如果成功,可以看到成功信息;
如果失败,会有红色报错信息。
六、更多:了解platformIO这里描述下platformIO是什么。
在环境安装时,安装完VSCode后,首先下载的插件就是platformIO IDE。
它是VScode的一款第三方插件,这款插件本身就是一套IDE开发环境。
访问platformIO的官网就知道,它是一套开放的Iot集成环境平台,允许芯片厂商通过配置和对接,方便地搭建自己芯片的开发环境。
也就是说,VSCode + platformIO + 芯片厂商配置 = 该芯片的IDE编译环境。
在嵌入式开发中,大家比较熟悉的IDE会有 Keil、IAR。而上边构建出来的IDE环境就是类似Keil、IAR的一整套可开发仿真的环境。只是这套环境比Keil和IAR更强大。
既然AG32芯片是基于platformIO平台的开发环境,那么项目中的配置就是围绕platformIO展开的,上边章节描述的platformio.ini配置(配置编译、烧录、仿真等的配置项)就是用在这里的。
扩展信息:
查看platformIO的官网:platformIO的定位是新一代的IoT集成开发环境。它是基于VSCode的一款插件。VSCode这款强大的文本编辑器辅以PlatformIO插件就可以化身为一款强大的MCU开发环境,支持绝大多数流行的单片机平台。
我们知道,嵌入式Iot开发中,最让人不舒服的就是不同厂家的芯片要使用不同的集成开发环境。例如:STM32要使用Keil或IAR,Arduino默认使用自家Arduino开发环境,ESP32要使用linux环境或者在windows下部署eclipse再用交叉编译。那么,有没有一个IDE可以大一统起来,集成大多数常用的芯片和模块的开发任务,只要配置完成之后就一劳永逸的呢?没错,那就是PlatformIO。PlatformIO 试图整合起目前所有主流的硬件平台:TI/ST/EspressIf/Intel/Silicon/ 等,并且提供更便利的接口和更友好的交互,以提高开发效率。
关于platformIO,有兴趣可以去官网获取更多的信息:https://platformio.org/
前边说到,每一款芯片在PlatformIO中需要配置,按照PlatformIO的格式配置后,才能被正常使用(platformio.ini有大量的标准的控制选项,可进入官网查看)。
官方配置:https://docs.platformio.org/en/latest/projectconf/index.html#projectconf
在实际使用中,除了官方标准配置(编译、烧录)外,芯片方也会在这个开放平台上自定义一些自己特有的配置项。
https://item.taobao.com/item.htm ... .0.0.621e2c1b1WjywJ
以上网站可以购买到AG32相关产品和方案定制!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-4-23 03:53 , Processed in 0.016692 second(s), 9 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表