当前文档版本为v0.3.0,您可以访问 开发中 的文档以获取最近可能的更新。

SDK 开发环境介绍

PAN1080 SDK 为开发者提供了2种开发环境:

  • 命令行方式(Command Line)

  • 图形化界面方式(Zephyr App Launcher + VS Code)

打开PAN1080 Development Kit文件夹,进入01_SDK子目录,可以看到两种开发环境的快捷方式:

image

其中:

  • PAN1080 SDK CLI 为命令行方式的开发环境入口

  • PAN1080 SDK IDE 为图形化界面方式的开发环境入口

在PAN1080 SDK实际开发过程中,经常需要将两种方式结合起来使用,下面对2种开发环境分别做简单的介绍。

1 命令行方式(Command Line)

PAN1080 SDK 使用一个名为west的命令行工具来执行编译、烧录、调试等操作。

west是一个“Meta Tool”,在执行west支持的子命令过程中,不同的命令会调用不同的工具来执行具体的操作。例如:

  • 执行west build子命令后,west会自动调用CMake、ninja、dtc、Kconfig、gcc等工具进行配置和编译;

  • 执行west flash子命令后,west会自动调用相关烧录工具(如JLink)进行烧录;

  • 执行west debug子命令后,west会自动调用相关调试工具(如JLink-GDB-Sever + ARM-Embedded-GDB)进行调试。

实际上,PAN1080 SDK 基于开源实时操作系统 Zephyr Project 扩展而来,其基础的命令行工具west也是Zephyr提供的;关于此工具的更多信息,可以参考zephyr官方文档:West (Zephyr’s meta-tool)

1.1 使用演示:编译、烧录、调试一个Sample

  1. 双击 PAN1080 SDK CLI 快捷方式,打开命令行界面:

image

  1. 使用west build命令,编译 Synchronization Sample:

    west build -d build/synchronization_pan1080a_afld_evb -b pan1080a_afld_evb ./zephyr/samples_panchip/basic/synchronization -p
    

    参数解释

    • build:执行build子命令;

    • -d build/synchronization_pan1080a_afld_evb:设置build输出文件目录为build/synchronization_pan1080a_afld_evb,所有编译过程中生成的文件均存此目录中,目录名可以任意指定;另外,此参数可以省略,若省略则等价于-d build

    • -b pan1080a_afld_evb:将board配置为PAN1080A-AFLD EVB,于是编译工具链会自动从zephyr/boards/arm/pan1080a_afld_evb目录下搜索需要的board配置文件;

    • ./zephyr/samples_panchip/basic/synchronization:程序源码目录,此处为演示多线程同步的例程synchronization

    • -p:重新编译(Rebuild);如果-d参数指定的目录中存在之前编译的信息,则:

      • 若不指定-p参数,则west执行默认的增量编译操作;

      • 若指定-p参数,则west执行重新编译操作;

    image

  2. 使用west flash命令,烧录 Synchronization Sample:

    west flash -d build/synchronization_pan1080a_afld_evb -r jlink --reset-after-load
    

    参数解释

    • flash:执行烧录子命令;

    • -d build/synchronization_pan1080a_afld_evb:在目录build/synchronization_pan1080a_afld_evb内查找待烧录文件;

    • -r jlink:将烧录工具指定为JLink,于是west将会调用JLink.exe进行image烧录 ;

    • --reset-after-load:指定此参数后,目标板将会在烧录完成后自动Reset并执行烧录后的程序;

    :程序烧录执行前,请确认已经将PN108C测试板的:

    • SWD(P46:SWD_CLK;P47:SWD_DAT)接口通过JLink连接至PC

    • UART(P30:Tx;P31:Rx;Baudrate:921600)接口通过USB转串口模块连接至PC

    1. 烧录过程:

    image

    1. 程序执行:

    image

  3. 使用west debug命令,调试 Synchronization Sample:

    west debug -d build/synchronization_pan1080a_afld_evb -r jlink
    

    参数解释

    • debug:执行调试子命令;

    • -d build/synchronization_pan1080a_afld_evb:在目录build/synchronization_pan1080a_afld_evb内查找待调试文件;

    • -r jlink:将调试工具指定为JLink + GDB,于是west将会调用JLinkGDBServer.exe + arm-none-eabi-gdb.exe进行调试;

    1. 启动 JLink GDB Server,并进入调试准备界面:

    image

    1. 将 GDB Server 界面最小化(请勿关闭),并在命令行界面按回车键,进入调试命令等待界面:

      image

    2. 输入GDB调试命令,开始调试:

      image

    调试支持通用的GDB调试指令

    • s:单步,Step In

    • n:单步,Step Over

    • b <func_name>:设置断点,Breakpoint

    • d break <index>:删除断点,Delete Breakpoint

    • c:继续执行,Continue

    • <Ctrl+C>:暂停执行,Halt

    • p <param_name>:打印变量值,Print

    • bt:查看调用堆栈,Backtrace

    更多的GDB命令行调试介绍请查阅:

    • GDB官方文档:https://sourceware.org/gdb/current/onlinedocs/gdb/

    • JLink GDB Server官方文档:https://www.segger.com/downloads/jlink/UM08001, Chapter 4

1.2 其他常用命令

  1. 某个曾经编译过的Sample(如 Synchronization Sample)代码有改动,对其执行增量编译:

    west build -d build/synchronization_pan1080a_afld_evb
    

    :某些情况下,使用此方式可能无法自动识别到改动的文件;例如,若改动到了某个Kconig的默认配置(如某个Kconfg.defconfig文件),则执行增量编译是无法检测到此改动的,此时需要使用-p参数对目标做Rebuild

  2. 编译时,通过传入CONF_FILE参数,载入某个Sample(如 BLE Peripheral HeartRate Sample)的特殊配置:

    west build -d build/bluetooth_peripheral_hr_minimal_pan1080a_afld_evb -b pan1080a_afld_evb ./zephyr/samples_panchip/bluetooth/peripheral_hr -- -DCONF_FILE="prj_minimal.conf"
    

    :若不指定CONF_FILE参数,则west build过程中,会应用默认的配置文件"prj.conf";若明确指定CONF_FILE参数,则west build过程中,会应用新指定的配置文件

  3. 编译时,通过传入OVERLAY_CONFIG参数,覆盖某个Sample(如 Multimode Mouse Sample)的默认配置:

    west build -d build/solutions_mouse_ble_usb_pan1080a_afld_evb -b pan1080a_afld_evb ./zephyr/samples_panchip/solutions/model_mouse -- -DOVERLAY_CONFIG="ble_usb_flow.conf"
    

    :若不指定OVERLAY_CONFIG参数,则west build过程中,会应用默认的配置文件"prj.conf";若指定OVERLAY_CONFIG参数,则west build过程中,会先应用默认的配置文件"prj.conf",然后再应用指定的Overlay配置文件,如果Overlay配置文件中存在与默认配置文件中相同的Config选项,则覆盖掉默认配置文件中的配置。

  4. 部分清理(Clean),删除Build Phase下生成的文件(如.obj/.elf/.hex等),但保留Configuration Phase下生成的文件(如.config文件等):

    west build -d build/synchronization_pan1080a_afld_evb -t clean
    

    关于 Build Phase 与 Configuration Phase 的含义,请参阅Zephyr官方文档:Build Overview

  5. 完整清理(Pristine),同时删除Build PhaseConfiguration Phase下生成的文件:

    west build -d build/synchronization_pan1080a_afld_evb -t pristine
    
  6. ROM报告(ROM Report),列出ROM空间占用信息:

    west build -d build/synchronization_pan1080a_afld_evb -t rom_report
    

    执行结果:

    image

    :ROM Report中统计结果与编译后的Image Size并不等价,如果需要精确了解编译后的Image大小,请至Map文件(zephyr.map)中查看。

  7. RAM报告(RAM Report),列出RAM空间占用信息:

    west build -d build/synchronization_pan1080a_afld_evb -t ram_report
    

    执行结果:

    image

  8. 打开 Menu Config 菜单:

    west build -d build/synchronization_pan1080a_afld_evb -t menuconfig
    

    执行结果:

    image

  9. 打开 GUI Config 菜单:

    west build -d build/synchronization_pan1080a_afld_evb -t guiconfig
    

    image

2 图形化界面方式(VS Code)

PAN1080 SDK 使用 VS Code 作为图形化集成开发环境(IDE)。

VS Code 是一个轻量级的代码编辑器,其优秀的可扩展性使得 PAN1080 SDK 有机会将 zephyr 的 west 命令行编译环境迁移到图形界面环境中来:

  • 利用 VS Code 的构建任务特性,PAN1080 SDK 将常用的 west 命令集成到 Build Tasks 中;

  • 利用 VS Code 的插件特性,PAN1080 SDK 将Cortex-Debug插件集成进来并进行适配,使其可以调试 zephyr 编译生成的 Image;

2.1 使用 VS Code 打开 Sample 工程

  1. 先双击 PAN1080 SDK CLI 快捷方式,打开命令行界面,使用命令行方式编译一次例程(如编译Synchronization Sample):

    west build -d build/synchronization_pan1080a_afld_evb -b pan1080a_afld_evb ./zephyr/samples_panchip/basic/synchronization
    

    :为使 VS Code 可以正确编译和调试 PAN1080 程序,在使用 VS Code 打开某个 App 或 Sample 工程前,必须先用命令行方式编译一次工程,使其生成 VS Code 工程文件project.code-workspace

  2. 再双击 PAN1080 SDK IDE 快捷方式,打开 VS Code 界面:

    image

  3. 点击菜单栏File菜单,选择Open Workspace from File...

    image

  4. 在弹出的对话框中,进入第一步 build 后生成的目录路径(01_SDK/build/synchronization_pan1080a_afld_evb),找到project.code-workspace`文件,将其打开:

    image

  5. 选择project.code-workspace文件,点击Open按钮,打开工程:

    image

  6. 成功打开工程后,请参照文档PAN1080 SDK 快速入门中 VS Code 使用的相关介绍,编译、烧录、调试程序。

2.2 其他说明

  1. 对于 PAN1080 SDK 中自带的例程来说,也可以通过执行01_SDK/sdk_quick_build_samples目录中例程脚本的方式,打开 VS Code,具体请参考文档PAN1080 SDK 快速入门中的相关步骤介绍。

  2. 请注意,目前 PAN1080 SDK 只支持使用 SDK Toolchain 中自带的 VS Code 进行编译和调试;如果您的PC上有自己的 VS Code,是无法直接用于编译调试 PAN1080 SDK 程序的。