Edit online

VSCode

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

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

插件安装

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

打开 Luban-Lite 工程

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

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

../images/vscode_open_folder.png

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

../images/vscode_open_lite.png

注:

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

编译

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

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

../images/vscode_run_make.png

调试

  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 烧写驱动。

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

  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. 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

  2. Luban-Lite 配置
    为了进行 JTAG 调试,Luban-Lite 中的配置需要确认:
    1. 通过 elf 前,必须要先完成 PSRAM、或者 DDR 初始化,不然 JTAG 在写 PSRAM/DDR 时就会异常

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

      方法参见 SDK 配置

进入调试

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

../images/debug_server2.png

注:

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

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

../images/vscode_plugin.png

../images/vscode_launch_list.png

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

../images/vscode_debug_ui.png

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

烧写

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 - 查看当前的方案配置