You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Zephyr外置CC1101驱动未被west识别的排查问询

Zephyr外置CC1101驱动加载问题排查

问题描述

为TI CC1101亚GHz收发器开发Zephyr外置驱动,项目包含app、drivers、dts等目录。虚拟Python环境编译时,west仅识别应用程序,无法加载驱动,编译报错cc1101_get_reg未定义引用。即使在prj.conf中显式设置CONFIG_CC1101=y,仍提示符号未定义,而CC1101的Kconfig已定义在drivers/cc1101/Kconfig中。项目路径为~/Documents/devel/Zephyr/cc1101,Zephyr基础路径ZEPHYR_BASE=/home/h/Documents/devel/Zephyr/zephyrproject/zephyr。

一、检查驱动Kconfig是否被正确加载

  • 通过menuconfig验证:
    执行west build -t menuconfig进入配置界面,按/键输入CC1101搜索配置项。若能找到对应选项,说明Kconfig已被加载;若找不到,说明Kconfig未被识别。
  • 查看生成的配置文件:
    编译后查看build/zephyr/.config文件,执行grep CONFIG_CC1101 build/zephyr/.config。若输出CONFIG_CC1101=y,说明配置已生效;无输出则表示Kconfig未被加载。
  • 检查Kconfig引用链:
    项目根目录需创建Kconfig文件,添加source "drivers/cc1101/Kconfig",确保Zephyr能扫描到该驱动的Kconfig配置。同时需在项目顶层CMake或应用CMake中配置加载该Kconfig的逻辑。

二、排查路径与配置缺失问题

  • 驱动CMakeLists.txt配置:
    drivers/cc1101目录下必须包含CMakeLists.txt,内容需符合Zephyr驱动编译规范:
    zephyr_library()
    zephyr_library_sources(cc1101.c)
    
    项目根目录的CMakeLists.txt需添加驱动目录的引用:
    add_subdirectory(drivers/cc1101)
    
  • 指定外置驱动模块路径:
    若为单项目结构,需在应用目录的CMakeLists.txt中添加:
    set(ZEPHYR_EXTRA_MODULES ${CMAKE_CURRENT_SOURCE_DIR}/../drivers)
    
    让Zephyr识别到外置驱动模块的路径。
  • 检查符号导出:
    确保cc1101_get_reg函数在驱动源码中通过__EXPORT宏导出,例如:
    __EXPORT int cc1101_get_reg(uint8_t reg, uint8_t *val);
    
    避免编译时符号未被链接到应用程序中。

内容的提问来源于stack exchange,提问作者HappyCactus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 07:14:56