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 是否满足要求:
按快捷键
Win + R
,在弹出的运行对话框中输入dxdiag
并回车:稍等片刻,在弹出的 DirectX 诊断工具对话框中,可以看到当前 PC 的系统信息:
3.2 获取并配置 ZDK 及编译工具链环境¶
请确认您已经获取到如下 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
软件。
请确保 PC 上已经正常解压缩了
PAN1080 ZDK
开发包:请确认 PAN1080 ZDK 开发包中,05_TOOLS 目录下正常解压缩了编译工具链,即存在
Toolchain
目录:进入 01_SDK 目录,双击 PAN1080 SDK CLI 图标,如果弹出如下所示的信息,则说明环境配置成功:
注意:开发环境搭建过程中,请一定确保以下 2 个压缩包都已经下载解压并按照上述步骤配置完成!其中:
PAN1080 ZDK
压缩包中含有 PAN1080 ZDK 的核心文件,包括 OS 内核、蓝牙协议、示例程序等等
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
目录中找到:
双击打开,其主界面如下所示:
第一次打开 ZAL 工具,可以看到 Toolchain Path
和 PAN108x-DK Path
两栏背景色被标记成了浅红色,表示路径错误;这里需要分别为它们指定正确的路径,其中 Toolchain Path
即为上一小节中介绍的编译工具链 Toolchain 目录,PAN108x-DK Path
即为 PAN1080 ZDK (pan1080-zdk-vx.y.z) 目录的路径。
正确配置路径后:
路径文本框的背景会由浅红色变为白色
Board / Project / Config 三个下拉菜单会分别列出当前 SDK 中支持的所有 Board、Sample Project 以及 Project 对应的 Config 文件
所有的按钮会变为使能状态
关于 ZAL 工具的详细介绍请参考:Zephyr APP Launcher 工具介绍。
3.4 快速编译运行一个简单的例程¶
硬件接线准备,请确认您已经将 PAN108x EVB 板的:
SWD(P46:SWD_CLK,P47:SWD_DAT,GND:SWD_GND)接口通过 JLink 连接至 PC
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
下面我们以多线程打印消息例程为例,演示如何编译运行一个 Sample App 工程
打开前面已经配置好的 ZAL 工具:
在
Board
下拉菜单中,选择与您当前使用的 EVB 硬件对应的 Board 配置:例如您的 EVB 硬件子板型号为 PAN1080LB5A(64-Pin,1MB Flash),则此处 Board 应选择
pan108xxb5_evb
关于
Board
的更多介绍,请参考 Zephyr Board 配置指南
在
Project
下拉菜单中,选择samples_panchip\basic\synchronization
(多线程打印消息例程)在
Config
下拉菜单中,选择默认的prj.conf
即可
点击
Build
按钮,开始编译当前选择的例程,成功后如下所示:点击
Open Output Folder
按钮,即可打开当前例程的编译输出目录:Build 成功后,可以看到 01_SDK 目录下生成了 build/synchronization_prj_pan108xxb5_evb/zephyr 子目录,进入此目录下,可以看到一些关键的编译输出文件:
mcuboot.bin
:二进制格式的 Bootloader Imagemcuboot.hex
:十六进制文本格式的 Bootloader Imagezephyr.bin
:编译输出的二进制格式 App Imagezephyr.dts
:App DeviceTree 最终配置zephyr.elf
:编译输出的带调试信息的 App Imagezephyr.hex
:编译输出的十六进制文本格式 App Imagezephyr.lst
:App 反汇编文件zephyr.map
:App Map 文件zephyr.signed.bin
:签名后的二进制格式的 App Image,可用于 DFU/OTAzephyr.signed.hex
:签名后的十六进制文本格式的 App ImagezImageMerged.bin
:合并了 Bootloader 和 签名后 App Image 的二进制格式 ImagezImageMerged.hex
:合并了 Bootloader 和 签名后 App Image 的十六进制文本格式 Image
点击
Flash
按钮,开始执行 JLink 烧录:烧录完成后,打开串口工具(如 SecureCRT),将波特率设置为 921600,看到两个线程交替打印的Log,即表示程序烧录执行成功:
3.5 使用 VS Code 修改、编译、烧录程序¶
使用 ZAL 编译成功 Sample 例程后,再点击
Open IDE
按钮,即可打开基于 VS Code 的 IDE 开发环境:VS Code 在第一次打开时会自动做一些初始化配置工作,耐心等待片刻,即可看到 VS Code 主界面;第一次打开某个工程文件,会弹出信任对话框,点击 “Yest, I trust the authors” 按钮,进入主界面:
在左侧 PROJECT 侧边栏中,找到并打开
zephyr/samples_panchip/basic/synchronization/src/main.c
文件,修改第 61 行的打印消息(例如将 Hello World from… 修改为Hello PAN1080 World from…):修改完成后,点击
Terminal
菜单,选择Run Build Task...
(或直接快捷键Ctrl + Shift + B
):各指令含义如下:
Build
:编译/增量编译Rebuild
:重新编译,效果相当于先执行Pristine
,再执行Build
Flash
:烧录 ImageErase
:擦除整块 Flash(Jlink方式)Menu Config
:在新的 CMD 窗口下打开 Zephyr menuconfig 配置菜单ROM Report
:生成 ROM (Flash) 使用情况报告RAM Report
:生成 RAM 使用情况报告Primitive Debug
:在新的 CMD 窗口下打开原始的 JLink-GDB 调试界面
在弹出的
Build Task
菜单中,执行 Build 指令,增量编译修改后的程序;从 VS Code 底部的 TERMINAL 界面中可以看到当前的编译状态:编译成功后,再次点击
Terminal
菜单,选择Run Build Task...
(或直接快捷键Ctrl + Shift + B
),在弹出的Build Task
菜单中,执行 Flash 指令,将修改后的程序烧录至开发板:烧录成功后,查看串口输出,可以看到刚才的修改已经生效:
3.6 使用 VS Code 调试程序¶
PAN1080 ZDK 支持直接在 VS Code 中调试程序
在 VS Code 中可以使用一个名为
Cortex-Debug
的插件调试基于 ARM Cortex-M 的 SoC,PAN1080 的 CPU 为 ARM Cortex-M0,因此我们可以实现在 VS Code 中调试 PAN1080 程序Cortex-Debug
插件已经默认集成到 PAN1080 ZDK Toolchain 自带的 VS Code 中,无需另外安装
打开 VS Code 左侧的 Debug 侧边栏,可以看到左上角已经有配置好的 Debug 选项:
点击绿色箭头(或按快捷键
F5
),即可进入 Debug 界面: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 插件文档。
打开
main.c
,单击第 61 行行号左边的空白处(鼠标指针变为手型),即可在此处加入断点(红色实心圆点):点击 Debug 功能按钮区的 Continue 按钮(或按快捷键
F5
),程序将执行到断点处并停止:程序暂停后,可以在左侧侧边栏中,查看变量(
VARIABLES
栏)、增加监视变量(WATCH
栏)、查看调用堆栈(CALL STACK
栏)、查看断点信息(BREAKPOINTS
栏)、查看外设寄存器信息(CORTEX PERIPHERALS
栏)或CPU寄存器信息(CORTEX REGISTERS
栏)等。
5 更多相关文档¶
下面这些文档有助于您进一步了解 PAN1080 SoC 开发的相关知识:
Zephyr 简介:简要介绍Zephyr,以及基于Zephyr的PAN1080 SDK有哪些特性和优势
PAN1080 ZDK 架构介绍:介绍PAN1080 ZDK整体软件框架
ZDK 开发环境介绍:介绍PAN1080 ZDK的基本开发环境
常见问题(FAQs):介绍PAN1080 ZDK使用过程中的常见问题及解答