02-3default、符号可见性与menuconfig验证方式Zephyr 本地文档、.config、autoconf.h、native_sim/native/64验证结论模拟确认1. 本节目标理解四个问题为什么default只是候选值而不是强制值多个default同时存在时如何选择prompt 为什么决定 symbol 是否能由用户配置如何用menuconfig查一个 symbol 的当前值、依赖和来源。2.default只是没有更强配置时的候选值实验定义config LEARN_TIMEOUT_MS int Timeout selected by ordered defaults range 100 5000 default 2000 if LEARN_VERBOSE default 500可以这样理解如果配置文件或用户已经给出合法值 - 使用用户值 否则 - 从上到下寻找第一个条件满足的 default因此条件最终值LEARN_VERBOSEy没有显式设置 timeout2000LEARN_VERBOSEn没有显式设置 timeout500配置文件显式设置 timeout123123default不是赋值锁也不会阻止用户覆盖。3. 多个default的顺序Kconfig 从上到下处理默认项使用第一个当前可用的 default。default 2000 if LEARN_VERBOSE default 500当LEARN_VERBOSEy时第一条条件成立选择 2000后面的 500 不再覆盖它。如果顺序写反default 500 default 2000 if LEARN_VERBOSE无条件的 500 总是先匹配后面的条件默认值就没有机会生效。所以通常把更具体、带条件的 default 放前面把通用 fallback 放最后。4. 实验一使用条件默认值defaults.confCONFIG_LEARN_FEATUREy CONFIG_LEARN_VERBOSEy CONFIG_LEARN_VISIBLE_VALUE42它没有设置CONFIG_LEARN_TIMEOUT_MS...因为LEARN_VERBOSEy预期 timeout 使用条件默认值 2000。构建命令cd~/project/exportZEPHYR_SDK_INSTALL_DIR/home/yff/zephyr-sdk/zephyr-sdk-0.17.1sourcezephyr/zephyr-env.sh west build\-bnative_sim/native/64\/mnt/c/study/1-zephyr/labs/ch02_kconfig\--build-dir /mnt/c/study/1-zephyr/work/ch02_defaults\-palways\---DCONF_FILEdefaults.conf west build\--build-dir /mnt/c/study/1-zephyr/work/ch02_defaults\-trun实际输出中的对应行defaults: timeout_ms2000 visible42 hidden_mirror42最终.configCONFIG_LEARN_TIMEOUT_MS2000 CONFIG_LEARN_VISIBLE_VALUE42 CONFIG_LEARN_HIDDEN_MIRROR425. 实验二显式值覆盖 defaultdefaults_override.confCONFIG_LEARN_FEATUREy CONFIG_LEARN_VERBOSEy CONFIG_LEARN_TIMEOUT_MS123 CONFIG_LEARN_VISIBLE_VALUE42虽然条件默认值 2000 仍满足但显式合法值 123 优先。west build\-bnative_sim/native/64\/mnt/c/study/1-zephyr/labs/ch02_kconfig\--build-dir /mnt/c/study/1-zephyr/work/ch02_defaults_override\-palways\---DCONF_FILEdefaults_override.conf实际输出中的对应行defaults: timeout_ms123 visible42 hidden_mirror42两个 build 的最终配置对比ch02_defaults: TIMEOUT_MS2000 ch02_defaults_override: TIMEOUT_MS123结论显式合法值 123 的优先级高于满足条件的 default 2000。6. 可见 symbol有 promptconfig LEARN_VISIBLE_VALUE int Visible source value range 1 99 default 7引号中的Visible source value就是 prompt。有 prompt 的 symbol能在menuconfig中显示在依赖满足时可以由用户修改可以在.conffragment 中赋值仍然受到类型、range 和 dependencies 约束。注意有 prompt 不代表任何时候都可见。如果depends on不满足它会暂时隐藏或不可编辑。7. 不可见 symbol没有 promptconfig LEARN_HIDDEN_MIRROR int default LEARN_VISIBLE_VALUE它只有类型没有 prompt所以是 invisible symbol。不可见 symbol不在普通menuconfig菜单中供用户直接修改不应该在 application.conf中直接赋值通常由default、select、imply或其他表达式计算适合表达内部能力、派生状态和 helper。本实验中LEARN_VISIBLE_VALUE42 ↓ default LEARN_VISIBLE_VALUE LEARN_HIDDEN_MIRROR42隐藏 symbol 仍会出现在最终.config和autoconf.h只是用户没有直接控制权。8. 错误示范给 invisible symbol 赋值hidden_invalid.confCONFIG_LEARN_VISIBLE_VALUE42 CONFIG_LEARN_HIDDEN_MIRROR99LEARN_HIDDEN_MIRROR没有 prompt配置文件中的 99 不会成为正常用户选择。最终值仍应由default LEARN_VISIBLE_VALUE得到 42并伴随赋值无效相关 warning。原则.conf主要配置有 prompt 的 visible symbolsinvisible symbols 应由 Kconfig 逻辑计算。该 warning 将在02-5集中分析。9. 运行menuconfig必须先有一个已经配置过的 build directory。本节使用west build\--build-dir /mnt/c/study/1-zephyr/work/ch02_defaults\-tmenuconfig常用操作按键作用方向键/Enter浏览和进入菜单Space切换 bool/tristate/按 symbol 名称搜索?查看当前项目帮助A显示/隐藏当前不可见 symbolS保存D保存最小配置只保留偏离默认值的 symbolQ或 Esc退出建议依次搜索LEARN_TIMEOUT_MS LEARN_VISIBLE_VALUE LEARN_HIDDEN_MIRROR LEARN_DEPENDS_CLIENT观察timeout 显示当前值 2000并能看到两个 defaultsvisible value 可以编辑hidden mirror 没有 prompt普通模式下不可直接编辑depends client 在 required backend 关闭时不可见或不可选。10.menuconfig修改的是谁交互界面保存时修改build/zephyr/.config它不会自动修改prj.conf defaults.conf Kconfig所以 menuconfig 非常适合探索配置查看 symbol 的定义位置、依赖和反向依赖临时试验某个值导出 minimal config 后再人工整理到.conf。但直接 pristine rebuild 会重新生成.config临时修改可能丢失。要永久保存应把需要的配置写回合适的.conf文件。11. 两个容易混淆的menuconfig11.1 构建 targetmenuconfigwest build-tmenuconfig这是终端交互配置界面。11.2 Kconfig 关键字menuconfigUSS 主开关写成menuconfig USS_TDK_ICU30201 bool TDK ICU30201 ...这里的menuconfig是 Kconfig 定义关键字。它表示这个 symbol 可以作为其后相关配置的菜单入口。二者名字相同但作用不同west build -t menuconfig - 启动配置界面 menuconfig FOO - 在 Kconfig 中定义可展开的菜单型 symbol12. 本节结论default 仅在没有更强用户值时提供候选值 多个 default 使用第一个条件满足的项 有 prompt symbol 对用户可见、可配置 但仍受 dependencies 控制 无 prompt invisible symbol 由 default/select/imply/表达式计算 不应在普通 .conf 中直接赋值 menuconfig 界面 编辑 build/zephyr/.config 用于探索不会自动改回源码配置 fragment13. 自测题default 2000 if VERBOSE和配置文件显式设置 123哪个优先两个 default 的条件都满足时选择哪一个Kconfig symbol 没有 prompt 意味着什么invisible symbol 是否一定不会出现在.config和autoconf.h为什么depends on不满足时有 prompt 的 symbol 仍可能不可见menuconfig 保存后修改的是prj.conf还是 build 中的.configwest build -t menuconfig与menuconfig USS_TDK_ICU30201有什么区别下一节02-4-Kconfig如何控制CMake和源码编译。
上海及周边地区台式电脑回收行情深度解析:从浦东到昆山的价值评估指南 - 生态测评师 在长三角物资循环的脉络里头, 一台处于闲置状态的台式电脑, 到底还残余着多少价值呢? 对于那些位于上海这些地方, 以及昆山还有苏州等地的从业者来讲在长三角物资循环的脉络里头, 一台处于闲置状态的台式电脑, 到底还…
2026 年当下,安次知名的仓储推拉棚厂商哪家强,别再租店了!这套小工具如何彻底解放你的储物空间?-京鸿雨棚 - 行业推荐官[官方】-- 到2026年为止,安次名头很大的仓库推拉棚生产厂家当中谁更强势,不要再租店铺了。小工具能帮助我们彻底解放出储藏空间吗?在商业环境中,仓储问题是很多商家都头疼的问题。我的一位朋友开了一家小规模的建材公司,在仓…
前端转大模型:为什么你的 Agent 上线就崩?权限与日志才是 2026 的硬通货 聊《做过前端的人学大模型,哪些经验可以直接迁移?》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要先把这篇文章的目标说清楚:看完之后,你应该能判断这件事值不值…
想住环境舒适酒店?快来看看金华婺城区的这些宝藏之选! 在旅游体验中,住宿是影响游玩舒适度的关键因素。若想在金华婺城区享受舒适的住宿体验,以下这些酒店值得关注,其中茗澜酒店尤为突出。高端定位与多元房型适配各类需求茗澜酒店定位于高端城市商务文旅型酒店,房型布局极为全面。行业…
企业版配套软件介绍 ---- USB TO SPI 3.0-Slave 软件适用范围:企业版调试器应用场景:适用于程序调试初期、小批量数据传输;USB 转 SPI 主机模式;调试器作为SPI 主机模式;开机界面,如下:主界面,如下:新增多个调试器之间任…
OpenClaw安装与使用:新手常见问题解决方案 1. OpenClaw安装专题⑤:新手收尾指南概述作为OpenClaw安装系列的最后一篇,本文将聚焦新手最常遇到的安装后问题和使用入门。OpenClaw作为一款开源模型管理工具,通过与Ollama等组件的配合,能够实现本地大模型的便捷部署和使用。但在…
基于AI的足球战术分析平台:本地CPU推理与一键部署实战 这次我们来看一个足球战术分析项目,重点不是概念多复杂,而是能不能在普通设备上快速部署运行。这个项目基于AI技术对足球比赛进行智能分析,可以自动识别战术错误、球员表现评估和比赛策略优化建议。最值得关注的三个特点:支持本地…
2026年7月20日国务院新闻办公室举行的新闻发布会信息,工信部明确将建设新一代通信网作为推动信息通信业发展的重点 政策背景:新一代通信网被纳入中央决策部署的"六张网"战略 "十五五"开局之年,中央就规划建设"六张网"作出决策部署——新一代通信网与算力网、水网、新型电网、城市地下管网、物流网并列。 工信部明确表示,将保…
C语言指针深入 I 学习总结 目录 1.const修饰指针 2.野指针 3.assert断言 4.传值调用和传址调用 一.const修饰指针 例1.const修饰局部变量a,a不能够被赋值; const修饰局部变量a,a 是常变量:本质依旧是变量,拥有内存空间,但是通过…
从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…
帝舵佛山**网点地址更新:2026年7月售后热线电话与服务客户指南 - 帝舵中国官方服务中心 帝舵佛山**网点地址已更新,2026年7月起售后热线电话正式启用为400-801-5381,客户指南同步发布。如需售后、维修或咨询服务,请直接拨打该全国统一**热线,服务时间每日8:00至22:00。地址信息详见下文,请按最新公布信…
亨得利盐城维修点在哪里?手表维修保养地址指南**公示(2026年7月最新) - 亨得利官方 亨得利在盐城设有**售后维修服务点,为当地及周边腕表用户提供标准化的保养与维修支持。2026年7月最新公示的全国统一客服热线为400-878-6612,服务时间为每日8:00至22:00,客户拨打时请确认使用本次公布的最新号码。*…
2026年7月最新太原百达翡丽官方售后客服电话及服务网点地址查询 - 百达翡丽官方售后中心 2026年7月,百达翡丽在太原的官方售后服务体系完成更新,客户可通过全国统一客服热线与服务网点获得直接、合规的腕表养护与维修支持。所有售后服务均遵循品牌直营标准,覆盖全国范围,客户可选择到店或邮寄方式,但需…
【JVM调优实战】16-可视化利器-JConsole-VisualVM-JMC 可视化利器:JConsole、VisualVM、JMC 实战 本文是《JVM调优实战》专栏第 16 讲。 引言 上一讲我们介绍了 JDK 命令行工具箱,它们轻量、快速,但有一个明显的短板:不直观。面对 jstat -gcutil 输出的一行行数字,你能感知 GC 频率,却难以一眼看出内存泄漏的趋势;你能用 js…
什么是PCTFE?医药高端包装的“防潮王牌“材料 ——日氟荣高分子材料(上海)有限公司 专业深耕氟材料领域很多人好奇,高端药品包装为什么比普通包装更防潮、更稳定、保质期更长?核心秘密,就藏在一种特种氟材料——PCTFE聚三氟氯乙烯里!作为国内领先的氟材…
[C++]内存管理:串顺序存储的内存回收 在串(字符串)的顺序存储中,内存回收的方式取决于字符串的存储方式以及所使用的编程语言和相关库。以下以 C 为例进行说明,因为 C 对内存管理有较为直接的控制。 1. 基于 char 数组的串顺序存储 如果使用普通的 char 数组来存储字…
移动端游戏功耗测试实战:电流、功率、亮度和场景对比 移动端游戏功耗测试:先控制变量,再比较优化是否真的省电 摘要:功耗测试最容易犯的错误,是拿两次不同温度、不同亮度、不同场景的平均功率直接比较。本文给出一套可复现的游戏功耗测试方法,覆盖引擎特性验证、版本回归和黑盒体验测试,并说明如何把功耗与帧率、温控、CPU/G…
足球口袋教练 HarmonyOS 离线应用实战(03/20):ArkUI 首页仪表盘搭建 本文是“足球口袋教练 HarmonyOS 离线应用实战”系列第 3 篇。示例项目是一个 HarmonyOS / ArkTS / ArkUI 编写的离线足球训练助手,围绕真实页面、真实截图和可复现操作展开。 本篇要解决的问题 训练 App 的首页不能只展示欢迎语,它要解决“我现在该点哪…