VSCode
VSCode 是一款开源、免费、跨平台的源代码编辑器,由Microsoft开发,特定是轻量级、高性能、可扩展。
Luban-Lite 支持在 VSCode 环境中完成全流程的开发,包括代码编辑、编译、调试和烧写。
插件安装
VSCode 中需要进行 C/C++ 语言的Debug,必须先安装插件:C/C++ IntelliSense。
安装方法:
在PC有联网的条件下,直接点击 Install 就可以安装(上图是已经安装好后的效果)。
如果没有联网,需要手动安装,步骤:
1.先去 VSCode 官网下载 C/C++ IntelliSense 插件的安装文件,插件文件的后缀名是 .vsix。
2.在 VSCode 的插件管理界面中,选择 从VSIX安装 插件,如下:
打开 Luban-Lite 工程
实际上,在 VSCode 中没有严格的“工程”概念,只要打开一个目录,就相当于创建了一个工程,不需要像 Eclipse 工具那样的工程配置。
下图中两个地方都可以打开一个目录:
在弹出的文件夹浏览窗口中选择 Luban-Lite 根目录,并点击 选择文件夹:
注意
VSCode 必须且只能在打开 Luban-Lite 根目录的前提下,才能完成以下的编译、调试、烧写操作。
编译
Luban-Lite 编译前,需要先 lunch 选择一个方案配置,目前这一步还需要在命令行中完成。方法是在 VSCode 的终端中,使用 lunch 命令选择一个方案。
首先,打开 VSCode 的终端(快捷键 Ctrl + Shift + `):
然后,在 VSCode 终端窗口中,执行命令 lunch 22。 其中,22 是当前环境中 D13x demo88 NOR 方案配置的编号,具体什么方案对应的编号可能会有变化,请先用 list 命令来查询。
有两种方式来触发编译:
在 VSCode 终端中输入 m
命令
通过 VSCode 的快捷命令 Ctrl + Shift + B
然后选择 Luban-Lite make
**相应的,有两种方式来 clean
工程: **
在 VSCode 终端中输入 c
命令
通过 VSCode 的快捷命令 Ctrl + Shift + B
然后选择 Luban-Lite clean
用快捷命令执行 make、clean 的方法如下图:
调试
环境准备
JTAG 调试的整个物理环境可以抽象为:
上图涵盖两种网络环境:“本地PC” 和 “调试PC” 可以是同一台PC,也可以是局域网内不同的两台PC。
使用 JTAG 调试需要准备的硬件:
- 板子上有JTAG插座,或者飞线引出了JTAG信号线,可以连接到JTAG调试器
- JTAG调试器,Luban-Lite 支持 CKLink 调试器 和 AIC JTAG 两种
- 并且保证板子和 JTAG 调试器的信号线正确连接,请参考调试器上的信号标识
使用 JTAG 调试需要准备的软件:
- T-HeadDebugServer,调试器在 PC 端的代理,提供 GDB Server 调试服务。
- AiBurn,ArtInChip 烧录软件,需要用到其中的 USB 烧写驱动。
以上两个软件请提前安装,安装过程涉及驱动安装所以都需要管理员权限。
两种场景
首先,要明确当前需要 JTAG 调试的场景是哪一种:
- 板子刚执行完 PSRAM/DDR 的初始化,等待 JTAG 连接,Debug配置选择执行:
Dxx load
- 板子上已经在运行一份镜像,中途用 JTAG 连接,Debug配置选择执行:
Dxx connect only
Luban-Lite 的 VSCode 配置中已经默认提供了四种 JTAG 选择,选择的方法:
SoC 型号 | 板子上无镜像 | 板子上已经在运行镜像 |
---|---|---|
D21x | D21x load | D21x connect only |
D13x/D12x | D13x/D12x load | D13x/D12x connect only |
VSCode 中选择 Debug 配置的方法,从界面操作如下,选择合适的 Debug 配置(只需选择一次,VSCode 会记住上次的配置),然后点击箭头小图标(快捷键 F5):
软件配置
VSCode 配置
上述 Dxx load
和 Dxx connect only
配置要使用起来前,都需要修改 Luban-Lite/.vscode/launch.json 文件中的部分参数,必须要和当前方案配置保持一致,主要修改:
- 路径名、elf文件名
- DebugServer 的服务IP和端口号
- 断点
以 Dxx load
为例,修改方法如下:
Dxx connect only
需要修改的参数和上面类似,在 launch.json 文件中都用关键字 FIXME
标注。
如果要添加多个断点,方法如下:
Luban-Lite 配置
为了进行 JTAG 调试,Luban-Lite 中的配置需要确认:
- 通过JTAG load elf前,必须要先完成PSRAM、或者DDR初始化,不然 JTAG 在写 PSRAM/DDR 时就会异常
- JTAG要用到的IO,会和RTP、CTP有冲突,需提前关闭这两个设备,而且物理上也要拔掉TP的排线(会影响JTAG的信号)
方法参见 使用 JTAG 口。
进入调试
先打开 DebugServer,连接 JTAG调试器 成功后,界面如下:
注: DebugServer 的服务端口修改方法:Setting -> Socket Setting
在 VSCode 中选择对应的 Debug 配置(详见:两种场景):
以上操作顺利的话,VSCode 会进入 Debug 界面,如下:
接下来就可以进行通常的 Debug 调试了。
烧写
Luban-Lite 的 OneStep 命令、 VSCode 的快捷命令中都已经集成了烧写功能。启动方法:
首先,让板子进入烧写模式
方式1:OneStep命令方式:在 VSCode 的终端中执行命令:aicupg
方式2:VSCode 从界面中执行快捷命令的方式(Ctrl + Shift + B
)
在弹出的命令列表中,选择 Luban-Lite aicupg
:
小技巧
如上图所示,Luban-Lite 还提供了其他快捷命令,包括:
list - 列出当前所有方案配置
menuconfig - 打开 menuconfig 配置界面
info - 查看当前的方案配置