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

常见问题(FAQs)

Q1:为什么我的PC编译PAN1080 App程序的速度特别慢?

一般来说,App的编译速度与您的PC硬件配置有关,但如果相同PC配置条件下,您发现自己的PC编译速度仍然比其他PC慢许多(如10倍以上),那么可能是杀毒软件或带有主动防御功能的安全软件影响(如360安全卫士、360杀毒等),请关闭杀软后再尝试编译

Q3:为什么我尝试复制编译工具链Toolchain目录到其他位置会报错?

这是已知问题,原因是编译工具链Toolchain目录中一些文件路径比较深,导致Windows文件管理器无法正常复制这些文件。

目前有以下几个workaround方法供您参考:

  1. 重新从压缩包中解压Toolchain目录到您期待的位置;

  2. Toolchain目录执行剪切操作,而不是复制操作;

  3. 尝试使用命令行进行复制操作;

Q4:为什么我编译SDK中的某些默认例程会出现错误?

PAN1080 SDK中的例程本身都是经过测试后发布的,如果您在一个干净的SDK环境中编译某个例程,仍然出现编译错误,则可能是SDK目录名称长度过长导致的。

由于Windows的限制,一个文件完整路径的长度默认不可超过260字节;实际上,此规则会在编译时,由Zephyr CMake Build System检查:如果路径长度超过了250字节,则编译时会出现如下形式的CMake警告:

-- Configuring done
CMake Warning in D:/Panchip-Development-Kits/pan1080-dk-internal/01_SDK/zephyr/drivers/interrupt_controller/CMakeLists.txt:
  The object file directory

    D:/Panchip-Development-Kits/pan1080-dk-internal/01_SDK/build/bluetooth_peripheral_hr_low_power_xtl32768_pan108xxb5_evb/zephyr/drivers/interrupt_controller/CMakeFiles/drivers__interrupt_controller.dir/./

  has 205 characters.  The maximum full path to an object file is 250
  characters (see CMAKE_OBJECT_PATH_MAX).  Object file

    D_/Panchip-Development-Kits/pan1080-dk-internal/01_SDK/zephyr/misc/empty_file.c.obj

  cannot be safely placed under this directory.  The build may not work
  correctly.

大概率随后会伴随编译错误:

D:/Panchip-Development-Kits/pan1080-dk-internal/01_SDK/modules/hal/panchip/panplat/pan1080/bsp/device/Source/system_PANSeries.c:106:1: fatal error: opening dependency file modules\panchip\panplat\pan1080\bsp\CMakeFiles\..__modules__hal__panchip__panplat__pan1080__bsp.dir\device\Source\system_PANSeries.c.obj.d: No such file or directory
  106 | }
      | ^
compilation terminated.
[98/149] Building C object zephyr/drivers/serial/CMakeFiles/drivers__serial.dir/uart_panchip.c.obj
ninja: build stopped: subcommand failed.
FATAL ERROR: command exited with status 1: 'D:\Panchip-Development-Kits\pan1080-dk-internal\05_TOOLS\Toolchain\cmake-3.22.0-rc1-windows-x86_64\bin\cmake.EXE' --build 'D:\Panchip-Development-Kits\pan1080-dk-internal\01_SDK\build\bluetooth_peripheral_hr_low_power_xtl32768_pan108xxb5_evb'

如果出现这种CMake警告,请务必缩短SDK路径长度,方法可以是缩短目录本身的名称长度,也可以是减小SDK所在的目录深度,直到此警告消除。

例如,修改前SDK的目录绝对路径为D:/Panchip-Development-Kits/pan1080-dk-v0.3.0/01_SDK/,那么我们可以尝试将其缩短成这样:D:/PDK/pan1080dk-v0.3.0/01_SDK/

注意:有时候,上述的CMake警告出现了,但后续编译仍然可以成功;这给我们造成一种假象:似乎当前编译过程没有问题。但实际上,此次即使编译成功,其编译出来的Image也是存在隐患的,不一定可以正常运行。因此,我们在编译时应当时刻关注编译过程Log,确保无任何CMake警告后,再进行后续的烧录调试。

Q5: 为什么我擦除全部 Flash 后,发现芯片的校准信息也被擦除掉?

所有量产 PAN108x 芯片的 Flash 中,均包含一段名为校准信息的参数,正常情况下,这些参数是被保护起来的,用户无法随意擦除或修改其中的内容。然而,如果同时满足以下条件,则芯片中的校准信息有被误擦除的风险:

  • 您操作的 SoC 是 512KB Flash 的型号(如 PAN1082UA1CPAN1080UA3C

  • 您使用的 SDK Toolchain 编译工具链版本是 v0.2.0 或更早的版本

  • 您使用 ZAL 工具执行了 Erase 操作,但 Board 菜单中没有正确选择 512KB Flash 的 Board(如 pan108xxa1_evbpan108xxa3_evb),而是错误选择了 1MB Flash 的 Board(如 pan108xxb1_evbpan108xxb5_evb);或者,您使用 JLink/JFlash 工具执行了 Erase Chip 的操作,但 MCU 型号没有正确选择 512KB Flash 的 Device(PAN1080XA),而是错误选择了 1MB Flash 的 Device(PAN1080XB);或者,您使用 PAN108x Download Tool (Panlink) 工具的 v0.2.022 或更早版本执行了 擦除芯片 的操作

鉴于以上原因,我们:

  • 推荐您及时更新 SDK Toolchain 至 v0.3.0 或更高版本 (下载链接),在新版本 Toolchain 中,我们在 Flash 烧录算法中增加了一些保护,您试图执行的 Flash Erase 操作地址有越界风险时,对越界区域的擦除操作将不会生效。

  • 推荐您及时更新 PAN108x Download Tool (Panlink) 至 v0.2.023 或更高版本 (下载链接),在新版本工具中,当您点击擦除芯片按钮时,会自动识别当前芯片的 Flash 大小,然后再执行 Erase 操作,以确保不会出现擦除越界区域的情况。