Nordic 5340 SOC 双核间GPIO共用冲突

1:如果使用支持网络核心的项目(nordic,nrf-gpio-forwarder)为'nrf5340dk_nrf5340_cpuapp'板进行构建,则默认将 P0.10 分配给网络核心,如果此时再应用核中操作p0.10会有异常

2:可以通过创建一个overlay文件来覆盖gpio_fwd 节点中 uart 组要转发的引脚。例如,此覆盖层将移除HWFC引脚:

/* Remove flow control pins*/
&gpio_fwd {
uart {
gpios = <&gpio1 1 0>, <&gpio1 0 0>;
};
};

netcore build (hci_rpmsg)也应该更新,如下:

/* remove flow control pins */
&pinctrl {
uart0_default: uart0_default {
group1 {
psels = <NRF_PSEL(UART_TX, 1, 1)>;
};
group2 {
psels = <NRF_PSEL(UART_RX, 1, 0)>;
bias-pull-up;
};
};
uart0_sleep: uart0_sleep {
group1 {
psels = <NRF_PSEL(UART_TX, 1, 1)>,
<NRF_PSEL(UART_RX, 1, 0)>;
low-power-enable;
};
};
};

3:将上面的overlay文件覆盖到hci_rpmsg child image,可以在项目源目录下创建一个名为'child_image'的文件夹,并将您的覆盖文件放入其中:

├── child_image
│ └── hci_rpmsg.overlay

3.1:在 nRF Connect SDK 中,有多种方式配置多镜像构建中的子镜像。以下是主要方法:

  • 在项目根目录下创建一个 child_image 目录
  • 添加以子镜像命名的配置文件,例如:

child_image/mcuboot.conf - For a simple configuration overlay

child_image/mcuboot/prj.conf - For a more structured approach

child_image/mcuboot/boards/<board_name>.conf - For board-specific configurations

child image机制正在逐渐被 Sysbuild 所取代,Sysbuild 是在 nRF Connect SDK v2.4.0 中引入的。当使用 Sysbuild 时,配置方法不同:

  • 在 Sysbuild 中,配置文件放置在 sysbuild/<image_name>/ 而不是 child_image/<image_name>/

  • 要从child_image迁移到 Sysbuild,请将 sysbuild/<image_name>/ 的内容复制到 child_image/<image_name>/

https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/config_and_build/sysbuild/index.html#permanent-configuration-changes-to-child-images

https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/releases_and_maturity/migration/migration_sysbuild.html#image_overlay_configuration

3.2:还可以使用 CMake 参数配置child images

-D<child_image>_CONFIG_OPTION=value - For individual Kconfig options

-D<child_image>_EXTRA_CONF_FILE=path/to/file - To overlay configuration files

-D<child_image>_CONF_FILE=path/to/file - To completely replace the configuration file

-D<child_image>_DTC_OVERLAY_FILE=path/to/file - For devicetree overlays

For example: -Dmcuboot_CONFIG_LOG_DEFAULT_LEVEL=3

3.3:设备树覆盖Child Images,对于devicetree overlays可以创建

child_image/mcuboot.overlay
例如,要在 MCUboot 中禁用Flash设备:

/delete-node/ &xt25fb32;

&spi1 {
status = "disabled";
};

posted @ 2025-04-23 10:25  Allen_D  阅读(69)  评论(0)    收藏  举报