zephyr/boards/rpi_pico: Add board configuration for rpi_pico.
Although the rpi_pico can already build and run with the zephyr port, this configuration improves it in a number of ways: - Use the USB CDC ACM as the REPL, rather than just a UART. - Enable I2C and SPI, and add I2C1. - Enable a filesystem, which matches exactly the rp2 port's RPI_PICO configuration. So switching between zephyr and rp2 is possible and will retain the filesystem. - Make the MicroPython GC heap make the most use of the available RAM. Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
19
ports/zephyr/boards/rpi_pico.conf
Normal file
19
ports/zephyr/boards/rpi_pico.conf
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Disable floating point hardware.
|
||||||
|
CONFIG_FPU=n
|
||||||
|
|
||||||
|
# Configure serial console over USB CDC ACM.
|
||||||
|
CONFIG_USB_DEVICE_STACK_NEXT=y
|
||||||
|
CONFIG_USBD_CDC_ACM_CLASS=y
|
||||||
|
CONFIG_UART_LINE_CTRL=y
|
||||||
|
|
||||||
|
# Disable networking.
|
||||||
|
CONFIG_NETWORKING=n
|
||||||
|
|
||||||
|
# Hardware features.
|
||||||
|
CONFIG_FLASH=y
|
||||||
|
CONFIG_FLASH_MAP=y
|
||||||
|
CONFIG_I2C=y
|
||||||
|
CONFIG_SPI=y
|
||||||
|
|
||||||
|
# MicroPython config.
|
||||||
|
CONFIG_MICROPY_HEAP_SIZE=196608
|
||||||
48
ports/zephyr/boards/rpi_pico.overlay
Normal file
48
ports/zephyr/boards/rpi_pico.overlay
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2025 Damien P. George
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/ {
|
||||||
|
chosen {
|
||||||
|
/* Use USB CDC ACM as the console. */
|
||||||
|
zephyr,console = &cdc_acm_uart0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Delete defined partitions and make a layout matching the rp2 port RPI_PICO configuration. */
|
||||||
|
/delete-node/ &code_partition;
|
||||||
|
&flash0 {
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
/* Code slot: 640 KiB - 0x100 placed after second-stage bootloader. */
|
||||||
|
code_partition: partition@100 {
|
||||||
|
label = "code-partition";
|
||||||
|
reg = <0x00000100 (DT_SIZE_K(640) - 0x100)>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Storage slot: 1408 KiB placed after code_partition. */
|
||||||
|
storage_partition: partition@a0000 {
|
||||||
|
label = "storage";
|
||||||
|
reg = <0x000a0000 DT_SIZE_K(1408)>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&zephyr_udc0 {
|
||||||
|
cdc_acm_uart0: cdc_acm_uart0 {
|
||||||
|
compatible = "zephyr,cdc-acm-uart";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c1 {
|
||||||
|
clock-frequency = <I2C_BITRATE_STANDARD>;
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-0 = <&i2c1_default>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user