【发布时间】:2022-02-17 00:34:36
【问题描述】:
我用这个正确地生成了我的图像 Yocto-hardknott-technexion:
$ mkdir tn-imx-yocto
$ cd tn-imx-yocto
$ repo init -u https://github.com/TechNexion/tn-imx-yocto-manifest.git -b hardknott_5.10.y-next -m imx-5.10.52-2.1.0.xml
$ repo sync -j8
$ DISTRO=fsl-imx-x11 MACHINE=pico-imx7 BASEBOARD=pi source tn-setup-release.sh -b build-x11-pico-imx7
$ bitbake core-image-base
然后,我去 .../tn-imx-yocto/sources/meta-tn-imx-bsp/conf/machine/nano pico-imx7.conf 并启用 imx7d-pico-pi-m4.dtb(KERNEL_DEVICETREE_append = "imx7d-pico-pi-m4.dtb")。因为我一直在 m4 中尝试使用 FreeRTOS 的 RPMsg
pico-imx7.conf
#@TYPE: Machine
#@NAME: pico-imx7
#@SOC: i.MX7/Solo/Dual/UtraLowPower
#@DESCRIPTION: Machine configuration for PICO-IMX7 with QCA(Qualcomm)/BRCM(Broadcom) WLAN module
#@MAINTAINER: Po Cheng <po.cheng@technexion.com>
MACHINEOVERRIDES =. "mx7:mx7d:"
MACHINEOVERRIDES_EXTENDER_pico-imx7 = "uenv"
include conf/machine/include/imx-base.inc
include conf/machine/include/tune-cortexa7.inc
require conf/machine/tn-base.inc
#
# Kernel Device Trees
#
PREFERRED_PROVIDER_virtual/kernel ?= "linux-tn-imx"
PREFERRED_PROVIDER_virtual/kernel_mx7 = "linux-tn-imx"
KERNEL_DEVICETREE = "imx7d-pico-pi-qca.dtb"
# imx7d-pico-pi-m4.dtb \
#"
KERNEL_DEVICETREE_append = " imx7d-pico-pi-m4.dtb"
# imx7d-pico-pi.dtb \
# imx7d-pico-pi-c2-qca.dtb imx7d-pico-pi-c2.dtb \
# imx7d-pico-nymph-qca.dtb imx7d-pico-nymph.dtb \
# imx7d-pico-dwarf-qca.dtb imx7d-pico-dwarf.dtb \
# imx7d-pico-hobbit-qca.dtb imx7d-pico-hobbit.dtb \
#"
# Setup the additional devicetree file
#KERNEL_DEVICETREE_append_voicehat = " imx7d-pico-pi-qca-voicehat.dtb \
# imx7d-pico-pi-voicehat.dtb \
# imx7d-pico-pi-c2-qca-voicehat.dtb \
# imx7d-pico-pi-c2-voicehat.dtb "
# Bootloader Specifics
UBOOT_MACHINE = "pico-imx7d_spl_defconfig"
#M4_MACHINE = "pico-imx7d-pi"
#IMAGE_BOOTFILES_DEPENDS += "imx-m4-demos-tn:do_deploy"
#IMAGE_BOOTFILES += "hello_world.bin rpmsg_lite_pingpong_rtos_linux_remote.bin rpmsg_lite_str_echo_rtos_imxcm4.bin"
然后(之后)我遇到了问题:无法解析输入树(语法错误) 在文件 baseboard_pico_pi.dtsi 第 52 行 (下图) 我认为 baseboard_pico_pi.dtsi 文件的 第 52 行 没有任何问题:PICO_PI_GPIO_DEFS();
imx7d-pico-qca.dtsi 关于 PICO_PI_GPIO_DEFS()
#define PICO_NYMPH_GPIO_DEFS() \
&gpio2 { \
gpio-line-names = \
"", "", "GPIO_P28", "GPIO_P30", "GPIO_P32", "GPIO_P34", "", "", \
"", "", "", "", "", "", "", "", \
"", "", "", "", "", "", "", "", \
"", "", "", "", "", "", "", ""; \
\
pinctrl-0 = <&pinctrl_gpio2>; \
}
#define PICO_PI_GPIO_DEFS() \
&gpio2 { \
gpio-line-names = \
"GPIO_P24", "GPIO_P26", "GPIO_P28", "GPIO_P30", "", "GPIO_P34", "", "GPIO_P48", \
"", "", "", "", "", "", "", "", \
"", "", "", "", "", "", "", "", \
"", "", "", "", "", "", "", ""; \
\
pinctrl-0 = <&pinctrl_gpio2>; \
}
baseboard_pico_pi.dtsi
clocks {
codec_osc: aud_mclk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <24576000>;
};
};
};
PICO_PI_GPIO_DEFS(); // line 52
&PICO_I2CA {
status = "okay";
codec: sgtl5000@a {
compatible = "fsl,sgtl5000";
reg = <0x0a>;
clocks = <&codec_osc>;
VDDA-supply = <®_2p5v>;
涉及此问题的所有设备树文件都位于此链接: https://github.com/neuberfran/technexion2
我该如何解决这个问题? (请)
【问题讨论】:
-
@Tsyvarev 这对你不好。错误在主题、描述和第一张照片中是明确的。这样你就搞砸了我的问题。
-
@Tsyvarev 你不明白什么?你有关于设备树的知识吗?变得不可能
-
设备树应该作为 text,而不是 image 和 link 出现在问题帖子中到仓库。
-
假设
PICO_PI_GPIO_DEFS();应该是扩展一个CPP 宏,你至少需要显示它的定义。我假设它是由您的 baseboard_pico_pi.dtsi 文件中的#include "tnmacro.h"定义的,但我在您的 git 存储库中看不到 tnmacro.h。 -
如果我猜测错误的原因,我会猜测
PICO_PI_GPIO_DEFS()宏扩展已经以分号结束,并且解析器正在抱怨PICO_PI_GPIO_DEFS();行上的额外分号.
标签: linux-kernel yocto