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

ZDK 快速入门指南

1 概述

本文是 PAN108x SoC 开发的快速入门指引,旨在帮助使用者快速入门 PAN1080 ZDK 的开发,搭建软硬件环境,并编译、运行、调试一个例程。

2 PAN108x EVB 介绍

PAN108x EVB (EValuation Board) 是 Panchip 提供给 PAN108x 芯片用户的一系列开发板的总称,目前包括 8 种 EVB 核心板,1 种 EVB 底板,以及 1 种 Mesh Dongle 板:

开发板名称

SoC 型号

封装

Flash 大小

对应 ZDK Board 名称

PAN1080UB1A EVB 核心板

PAN1080UB1A

QFN32 (5x5)

1 MB

pan108xxb1_evb

PAN1080UA3C EVB 核心板

PAN1080UA3C

QFN48

512 KB

pan108xxa3_evb

PAN1080LA5A EVB 核心板

PAN1080LA5A

LQFP64

512 KB

pan108xxa5_evb

PAN1080LB5A EVB 核心板

PAN1080LB5A

LQFP64

1 MB

pan108xxb5_evb

PAN1081UB1A EVB 核心板

PAN1081UB1A

QFN32 (5x5)

1 MB

pan108xxb1_evb

PAN1082UA1C EVB 核心板

PAN1082UA1C

QFN32 (5x5)

512 KB

pan108xxa1_evb

PAN1083UA1C EVB 核心板

PAN1083UA1C

QFN32 (4x4)

512 KB

pan1083xa1_evb

PAN3730 EVB 核心板

PAN3730UB5A

QFN64

1 MB

pan3730_evb

PAN108x EVB 底板

-

-

-

-

PAN108 Mesh Dongle

PAN1080UB1A

QFN32 (5x5)

1 MB

pan108xxb1_mesh_dongle

在使用 ZAL(Zephyr App Launcher)工具编译 App 工程的时候,请务必根据您实际使用的核心板硬件型号正确选择对应的 ZDK Board 名称

关于 PAN108x EVB 开发板硬件的详细介绍,请参考 PAN108x EVB 硬件资源介绍

3 PAN1080 ZDK 开发环境确认

3.1 PC 环境检查

目前 PAN1080 提供的编译工具链只支持 Windows 7 及以上版本的 64 位操作系统,请确保您的开发环境满足此要求。

您可以按照如下操作快速确认您的 PC 是否满足要求:

  1. 按快捷键 Win + R,在弹出的运行对话框中输入 dxdiag 并回车:

    image

    运行dxdiag

  2. 稍等片刻,在弹出的 DirectX 诊断工具对话框中,可以看到当前 PC 的系统信息:

    image

    DirectX诊断工具对话框

3.2 获取并配置 ZDK 及编译工具链环境

  1. 请确认您已经获取到如下 2 个必要的压缩包:

    • pan1080-zdk-v<x>.<y>.<z>.zip:PAN1080 ZDK 开发套件

      最新版本开发套件可以从这里下载:PAN1080 ZDK

    • ZDK-Toolchain-v<a>.<b>.<c>.7z:PAN1080 ZDK 编译工具链

      最新版本编译工具链可以从这里下载:PAN1080 ZDK Toolchian注意:鉴于编译工具链的 Size 很大,我们使用了压缩率更高的 7z 格式对其进行压缩,为确保万无一失,我们建议您使用免费开源的 7-Zip 工具对其进行解压缩(使用其他解压工具可能会失败)。您可以直接从7-Zip官网下载 7-Zip 软件。

  2. 请确保 PC 上已经正常解压缩了 PAN1080 ZDK 开发包:

    image

    PAN1080 ZDK 开发包主目录结构

  3. 请确认 PAN1080 ZDK 开发包中,05_TOOLS 目录下正常解压缩了编译工具链,即存在 Toolchain 目录:

    image

    确认 Toolchain 目录

  4. 进入 01_SDK 目录,双击 PAN1080 SDK CLI 图标,如果弹出如下所示的信息,则说明环境配置成功:

    image

    SDK 开发环境确认 OK

注意:开发环境搭建过程中,请一定确保以下 2 个压缩包都已经下载解压并按照上述步骤配置完成!其中:

  1. PAN1080 ZDK 压缩包中含有 PAN1080 ZDK 的核心文件,包括 OS 内核、蓝牙协议、示例程序等等

  2. Toolchain 压缩包中含有编译调试 PAN1080 ZDK 所需的所有工具,包括 GCC-ARM、CMake、Ninja、Python、JLink、VS Code 等等

3.3 Zephyr App Luancher 工具

PAN1080 ZDK 提供了一个名为 Zephyr App Launcher(以下简称为 ZAL)的 Windows GUI 工具,可以用来快速编译烧录 ZDK 中的演示例程、或用作打开 IDE(VS Code)的入口工具。

ZAL 工具可执行文件可在 <PAN1080-ZDK>/05_TOOLS/ZephyrAppLauncher 目录中找到:

image

ZAL 默认存放路径

双击打开,其主界面如下所示:

image

ZAL 工具主界面

第一次打开 ZAL 工具,可以看到 Toolchain PathPAN108x-DK Path 两栏背景色被标记成了浅红色,表示路径错误;这里需要分别为它们指定正确的路径,其中 Toolchain Path 即为上一小节中介绍的编译工具链 Toolchain 目录,PAN108x-DK Path 即为 PAN1080 ZDK (pan1080-zdk-vx.y.z) 目录的路径。

正确配置路径后:

  • 路径文本框的背景会由浅红色变为白色

  • Board / Project / Config 三个下拉菜单会分别列出当前 SDK 中支持的所有 Board、Sample Project 以及 Project 对应的 Config 文件

  • 所有的按钮会变为使能状态

image

ZAL 配置成功

关于 ZAL 工具的详细介绍请参考:Zephyr APP Launcher 工具介绍

3.4 快速编译运行一个简单的例程

  1. 硬件接线准备,请确认您已经将 PAN108x EVB 板的:

    1. SWD(P46:SWD_CLK,P47:SWD_DAT,GND:SWD_GND)接口通过 JLink 连接至 PC

    2. UART0接口通过 USB 转串口模块连接至 PC

      • 对于 32-pin 和 64-pin 封装的 EVB 核心板(对应 ZDK 中的 Board 名称:pan108xxa1_evb / pan108xxb1_evb / pan108xxb5_evb),程序默认引脚配置为:UART0-Tx:P00,UART0-Rx:P01

      • 对于 48-pin 封装的 EVB 核心板(对应 ZDK 中的 Board 名称:pan108xxa3_evb),程序默认引脚配置为:UART0-Tx:P30,UART0-Rx:P31

  2. 下面我们以多线程打印消息例程为例,演示如何编译运行一个 Sample App 工程

  3. 打开前面已经配置好的 ZAL 工具:

    1. Board 下拉菜单中,选择与您当前使用的 EVB 硬件对应的 Board 配置:

      • 例如您的 EVB 硬件子板型号为 PAN1080LB5A(64-Pin,1MB Flash),则此处 Board 应选择 pan108xxb5_evb

      • 关于 Board 的更多介绍,请参考 Zephyr Board 配置指南

    2. Project 下拉菜单中,选择 samples_panchip\basic\synchronization(多线程打印消息例程)

    3. Config 下拉菜单中,选择默认的 prj.conf 即可

  4. 点击 Build 按钮,开始编译当前选择的例程,成功后如下所示:

    image

    ZAL 开始编译 Synchronization 例程

  5. 点击 Open Output Folder 按钮,即可打开当前例程的编译输出目录:

    image

    ZAL 打开 Synchronization 例程编译输出目录

    Build 成功后,可以看到 01_SDK 目录下生成了 build/synchronization_prj_pan108xxb5_evb/zephyr 子目录,进入此目录下,可以看到一些关键的编译输出文件:

    • mcuboot.bin:二进制格式的 Bootloader Image

    • mcuboot.hex:十六进制文本格式的 Bootloader Image

    • zephyr.bin:编译输出的二进制格式 App Image

    • zephyr.dts:App DeviceTree 最终配置

    • zephyr.elf:编译输出的带调试信息的 App Image

    • zephyr.hex:编译输出的十六进制文本格式 App Image

    • zephyr.lst:App 反汇编文件

    • zephyr.map:App Map 文件

    • zephyr.signed.bin:签名后的二进制格式的 App Image,可用于 DFU/OTA

    • zephyr.signed.hex:签名后的十六进制文本格式的 App Image

    • zImageMerged.bin:合并了 Bootloader 和 签名后 App Image 的二进制格式 Image

    • zImageMerged.hex:合并了 Bootloader 和 签名后 App Image 的十六进制文本格式 Image

  6. 点击 Flash 按钮,开始执行 JLink 烧录:

    image

    ZAL 烧录 Synchronization 例程

  7. 烧录完成后,打开串口工具(如 SecureCRT),将波特率设置为 921600,看到两个线程交替打印的Log,即表示程序烧录执行成功:

    image

    成功运行 Synchronization 例程

3.5 使用 VS Code 修改、编译、烧录程序

  1. 使用 ZAL 编译成功 Sample 例程后,再点击 Open IDE 按钮,即可打开基于 VS Code 的 IDE 开发环境:

    image

    ZAL 打开 VS Code 集成开发环境

  2. VS Code 在第一次打开时会自动做一些初始化配置工作,耐心等待片刻,即可看到 VS Code 主界面;第一次打开某个工程文件,会弹出信任对话框,点击 “Yest, I trust the authors” 按钮,进入主界面:

    image

    成功打开 VS Code

  3. 在左侧 PROJECT 侧边栏中,找到并打开 zephyr/samples_panchip/basic/synchronization/src/main.c 文件,修改第 61 行的打印消息(例如将 Hello World from… 修改为Hello PAN1080 World from…):

    image

    使用 VS Code 修改例程代码

  4. 修改完成后,点击 Terminal 菜单,选择 Run Build Task...(或直接快捷键 Ctrl + Shift + B):

    image

    VS Code “Run Build Task” 菜单

    各指令含义如下:

    1. Build:编译/增量编译

    2. Rebuild:重新编译,效果相当于先执行 Pristine,再执行 Build

    3. Flash:烧录 Image

    4. Erase:擦除整块 Flash(Jlink方式)

    5. Menu Config:在新的 CMD 窗口下打开 Zephyr menuconfig 配置菜单

    6. ROM Report:生成 ROM (Flash) 使用情况报告

    7. RAM Report:生成 RAM 使用情况报告

    8. Primitive Debug:在新的 CMD 窗口下打开原始的 JLink-GDB 调试界面

  5. 在弹出的Build Task菜单中,执行 Build 指令,增量编译修改后的程序;从 VS Code 底部的 TERMINAL 界面中可以看到当前的编译状态:

    image

    VS Code “Build” 指令

  6. 编译成功后,再次点击 Terminal 菜单,选择 Run Build Task...(或直接快捷键Ctrl + Shift + B),在弹出的 Build Task 菜单中,执行 Flash 指令,将修改后的程序烧录至开发板:

    image

    VS Code “Flash” 指令

  7. 烧录成功后,查看串口输出,可以看到刚才的修改已经生效:

    image

    成功运行修改后的 Synchronization 例程

3.6 使用 VS Code 调试程序

  1. PAN1080 ZDK 支持直接在 VS Code 中调试程序

    1. 在 VS Code 中可以使用一个名为 Cortex-Debug 的插件调试基于 ARM Cortex-M 的 SoC,PAN1080 的 CPU 为 ARM Cortex-M0,因此我们可以实现在 VS Code 中调试 PAN1080 程序

    2. Cortex-Debug 插件已经默认集成到 PAN1080 ZDK Toolchain 自带的 VS Code 中,无需另外安装

  2. 打开 VS Code 左侧的 Debug 侧边栏,可以看到左上角已经有配置好的 Debug 选项:

    image

    VS Code 调试界面

  3. 点击绿色箭头(或按快捷键 F5),即可进入 Debug 界面:

    image

    使用 VS Code 调试程序

    Cortex-Debug 插件支持的 Debug 功能包括:

    • 单步调试

    • 添加断点

    • 查看变量

    • 查看函数调用关系

    • 查看 Core Register

    • 查看某函数的反汇编代码:先按快捷键 Ctrl + Shift + P,然后输入指令 Cortex-Debug: View Disassembly (Function)

    • 查看某段 RAM 的内容:先按快捷键 Ctrl + Shift + P,然后输入指令 Cortex-Debug: View Memory

    更多 Debug 功能介绍可以参考 VS Code Debug 官方文档,以及 Cortex Debug 插件文档。

  4. 打开 main.c,单击第 61 行行号左边的空白处(鼠标指针变为手型),即可在此处加入断点(红色实心圆点):

    image

    VS Code 新增断点

  5. 点击 Debug 功能按钮区的 Continue 按钮(或按快捷键 F5),程序将执行到断点处并停止:

    image

    VS Code 调试中…

    程序暂停后,可以在左侧侧边栏中,查看变量(VARIABLES 栏)、增加监视变量(WATCH 栏)、查看调用堆栈(CALL STACK 栏)、查看断点信息(BREAKPOINTS 栏)、查看外设寄存器信息(CORTEX PERIPHERALS 栏)或CPU寄存器信息(CORTEX REGISTERS 栏)等。

4 创建自己的 App 工程与 Board 配置文件

请参考:

  1. SoC App 开发指南

  2. BLE App 开发指南

  3. Zephyr Board 配置指南

5 更多相关文档

下面这些文档有助于您进一步了解 PAN1080 SoC 开发的相关知识:

  1. Zephyr 简介:简要介绍Zephyr,以及基于Zephyr的PAN1080 SDK有哪些特性和优势

  2. PAN1080 ZDK 架构介绍:介绍PAN1080 ZDK整体软件框架

  3. ZDK 开发环境介绍:介绍PAN1080 ZDK的基本开发环境

  4. 常见问题(FAQs):介绍PAN1080 ZDK使用过程中的常见问题及解答