我尝试在 frdm_mcxw72 开发板上运行 adc_dt 代码示例,但即使我已经将 overlay 文件添加到设备树文件夹中并修改了 CMakelist 文件中的开发板名称,也无法成功编译。编译过程中总是提示错误:#error "No suitable devicetree overlay specified" 。您能帮我找出原因吗?先谢谢了!
你好 RomanVR,
我把叠加文件放到了正确的位置。但它仍然行不通。您可以在下面的截图中找到更多关于我的工作台的信息。我使用的Zephyr版本是V4.4.0。如有任何发现,请告知。
顺祝商祺!
你好@anliu114036 ,希望你一切都好。
请问您正在使用哪个版本的Zephyr?另外,请说明您是否使用 MCUXpresso for VS Code 扩展来构建示例。
同时,为了简化流程,请确保将叠加层创建在项目文件内的“boards”文件夹中;并确保将叠加层文件命名为“frdm_mcxw72.overlay”。按照这两个步骤操作,Zephyr 将在构建过程中获取您的 overlay,而无需在 CMake 中显式设置其路径。
如果您使用的是我们的 MCUXpresso for VS Code 扩展,您的项目视图应如下图所示:
请告诉我这是否有帮助。
你好@anliu114036 ,
你在第一篇帖子中提到你“修改了 CMakelist 文件中的板名”,请问你具体做了什么来“修改板名”?
另外,能否请您分享一下您为了构建这个示例而遵循的具体步骤?
你好@anliu114036 ,
请勿更改该参数,因为它在外部供第三方使用,与 FRDM 版本过程无关。另外,能否请您分享一下完整的终端输出日志?这样我就可以查看你的叠加层是否在版本过程中被正确获取。
与此同时,我建议重新导入 FRDM-MCXW72 项目,导入后创建带有以下共享内容的 overlay 文件,将文件命名为“frdm_mcxw72.overlay”并版本项目。
你好 RomanVR
下图显示了原始的 CMakefile 文件。
我将板名称从“ eval_cn0391_ardz”修改为“ frdm_mcxw72”。
以下是我的步骤
1. 加载 adc_dt 项目
2. 项目版本失败
3. 修改 CMakefile 中的板名称,然后重新版本,仍然失败。
你好@anliu114036 ,
感谢您分享版本日志,版本系统没有获取板的覆盖层,这是因为新导入的示例中默认情况下没有创建该覆盖层,您需要手动创建它。
为了创建叠加层,我建议在 Visual Studio Code 的资源管理器税务摊销收益中打开项目文件夹,然后在 /板 文件夹中创建文件,并添加以下设置(我忘记在之前的回复中附上这些设置):
#include
#include
/ {
zephyr,user {
io-channels = <&adc0 0>;
};
};
&adc0 {
#address-cells = <1>;
#size-cells = <0>;
status="okay";
channel@0 {
reg = <0>;
zephyr,gain = "ADC_GAIN_1";
zephyr,reference = "ADC_REF_EXTERNAL1";
zephyr,acquisition-time = ;
zephyr,resolution = <12>;
zephyr,vref-mv = <1800>;
/* channel 2 signal 6A */
zephyr,input-positive = ;
};
};
&pinctrl{
pinmux_lpadc0: pinmux_lpadc0 {
group0 {
pinmux = ;
};
};
};
创建好叠加层后,请确保它在你的板文件夹中可见,并且版本系统能够获取到它,其外观应如下图所示:
请告诉我这个方法是否对您有效。
你好 RomanVR,
您可以在附件中找到完整的终端日志文件。
我重新导入了FRDM-MCXW72的项目,但如果不做任何操作,在项目文件夹中找不到MCXW72的覆盖文件。但是FRDM-MCXW71的覆盖文件却在那里。
顺祝商祺!
你好 RomanVR,
成功了,谢谢你的帮助!
我找到了原因,需要在添加覆盖文件后删除之前的版本文件夹。然后重建,整个建造过程现在没问题了。