1.4. VSCode

VSCode 是一款开源、免费、跨平台的源代码编辑器,由MicroSoft开发,特定是轻量级、高性能、可扩展。

Luban-Lite 支持在 VSCode 环境中完成 全流程的开发,包括代码编辑、编译、调试和烧写。

1.4.1. 插件安装

VSCode 中需要进行 C/C++ 语言的Debug,必须先安装插件: C/C++ IntelliSense。

安装方法:

../../_images/vscode_plugin.png

在PC有联网的条件下,直接点击 Install 就可以安装(上图是已经安装好后的效果)。

如果没有联网,需要手动安装,步骤:

  1. 先去 VSCode 官网下载 C/C++ IntelliSense 插件的安装文件,插件文件的后缀名是 .vsix

  2. 在 VSCode 的插件管理界面中,选择 从VSIX安装 插件,如下:

../../_images/vscode_plugin_local.png

1.4.2. 打开 Luban-Lite 工程

实际上,在 VSCode 中没有严格的“工程”概念,只要打开一个目录,就相当于创建了一个工程,不需要像 Eclipse工具那样的工程配置。

下图中两个地方都可以打开一个目录:

../../_images/vscode_open_folder.png

在弹出的文件夹浏览窗口中选择 Luban-Lite 根目录,并点击 选择文件夹 :

../../_images/vscode_open_lite.png

注意

VSCode 必须且只能在打开 Luban-Lite 根目录的前提下,才能完成以下的编译、调试、烧写操作。

1.4.3. 编译

Luban-Lite 编译前,需要先 lunch 选择一个方案配置,目前这一步还 需要在命令行中完成 。 方法是在 VSCode 的终端中,使用 lunch 命令选择一个方案。

首先,打开 VSCode 的终端(快捷键 Ctrl + Shift + `):

../../_images/vscode_open_terminal.png

然后,在 VSCode 终端窗口中,执行命令 lunch 22。 其中,22 是当前环境中 D13x demo88 NOR 方案配置的编号,具体什么方案对应的编号可能会有变化,请先用 list 命令来查询。

../../_images/vscode_lunch.png

有两种方式来触发编译:
  1. 在 VSCode 终端中输入 m 命令

  2. 通过 VSCode 的快捷命令 Ctrl + Shift + B 然后选择 Luban-Lite make

相应的,有两种方式来clean工程:
  1. 在 VSCode 终端中输入 c 命令

  2. 通过 VSCode 的快捷命令 Ctrl + Shift + B 然后选择 Luban-Lite clean

用快捷命令执行make、clean的方法如下图:

../../_images/vscode_run_make.png

1.4.4. 调试

1.4.4.1. 环境准备

JTAG 调试的整个物理环境可以抽象为:

../../_images/gdb_framework.png

上图涵盖两种网络环境:“本地PC” 和 “调试PC” 可以是同一台PC,也可以是局域网内不同的两台PC。

使用 JTAG 调试需要准备的硬件:
  • 板子上有JTAG插座,或者飞线引出了JTAG信号线,可以连接到JTAG调试器

  • JTAG调试器,Luban-Lite 支持 CKLink 调试器 和 AIC JTAG 两种

  • 并且保证板子和 JTAG 调试器的信号线正确连接,请参考调试器上的信号标识

../../_images/cklink.png
../../_images/aic_jtag.png

使用 JTAG 调试需要准备的软件:
  • T-HeadDebugServer,调试器在 PC 端的代理,提供 GDB Server 调试服务。

  • AiBurn,ArtInChip烧录软件,需要用到其中的USB烧写驱动。

以上两个软件请提前安装,安装过程涉及驱动安装所以都需要 管理员权限

1.4.4.2. 两种场景

首先,要明确当前需要 JTAG 调试的场景是哪一种:

  1. 板子刚执行完 PSRAM/DDR 的初始化,等待 JTAG 连接,Debug配置选择执行: Dxx load

  2. 板子上已经在运行一份镜像,中途用 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):

../../_images/vscode_launch_list.png

1.4.4.3. 软件配置

1.4.4.3.1. VSCode 配置

上述 Dxx loadDxx connect only 配置要使用起来前,都需要修改 Luban-Lite/.vscode/launch.json 文件中的部分参数,必须要和当前方案配置保持一致,主要修改:

  • 路径名、elf文件名

  • DebugServer 的服务IP和端口号

  • 断点

Dxx load 为例,修改方法如下:

../../_images/vscode_launch_fixme.png

Dxx connect only 需要修改的参数和上面类似,在 launch.json 文件中都用关键字 FIXME 标注。

如果要添加多个断点,方法如下:

../../_images/vscode_add_breakpoint.png

1.4.4.3.2. Luban-Lite 配置

为了进行 JTAG 调试,Luban-Lite 中的配置需要确认:

  1. 通过JTAG load elf前,必须要先完成PSRAM、或者DDR初始化,不然 JTAG 在写 PSRAM/DDR 时就会异常

  2. JTAG要用到的IO,会和RTP、CTP有冲突,需提前关闭这两个设备,而且物理上也要拔掉TP的排线(会影响JTAG的信号)

方法参见 使用 JTAG 口

1.4.4.4. 进入调试

先打开 DebugServer,连接 JTAG调试器 成功后,界面如下:

../../_images/debug_server2.png

注: DebugServer 的服务端口修改方法: Setting -> Socket Setting

在 VSCode 中选择对应的 Debug 配置(详见: 两种场景):

../../_images/vscode_launch_list.png

以上操作顺利的话,VSCode 会进入 Debug 界面,如下:

../../_images/vscode_debug_ui.png

接下来就可以进行通常的Debug调试了。

1.4.5. 烧写

Luban-Lite 的 OneStep 命令、 VSCode 的快捷命令中都已经集成了烧写功能。启动方法:

  1. 首先,让板子进入烧写模式

  2. 方式1:OneStep命令方式:在 VSCode 的终端中执行命令:aicupg

  3. 方式2:VSCode 从界面中执行快捷命令的方式(Ctrl + Shift + B

../../_images/vscode_run_task.png

在弹出的命令列表中,选择 Luban-Lite aicupg :

../../_images/vscode_run_aicupg.png

小技巧

如上图所示,Luban-Lite 还提供了其他快捷命令,包括:

  • list - 列出当前所有方案配置

  • menuconfig - 打开 menuconfig 配置界面

  • info - 查看当前的方案配置