Added SMART flash filesystem to RP2040

This commit is contained in:
curuvar
2022-09-04 19:02:24 -04:00
committed by Alan Carvalho de Assis
parent fb852440af
commit 9ad75fd95d
37 changed files with 1980 additions and 34 deletions

View File

@@ -71,6 +71,9 @@ Defconfigs
- nsh
Minimum configuration with NuttShell
- nsh_flash
NuttX shell with SMART flash filesystem.
- nshsram
Load NuttX binary to SRAM

View File

@@ -0,0 +1,54 @@
#
# This file is autogenerated: PLEASE DO NOT EDIT IT.
#
# You can use "make menuconfig" to make any modifications to the installed .config file.
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
# modifications.
#
# CONFIG_FS_PROCFS_EXCLUDE_ENVIRON is not set
# CONFIG_LIBC_LONG_LONG is not set
# CONFIG_NSH_ARGCAT is not set
# CONFIG_NSH_CMDOPT_HEXDUMP is not set
# CONFIG_NSH_DISABLE_DATE is not set
# CONFIG_STANDARD_SERIAL is not set
CONFIG_ARCH="arm"
CONFIG_ARCH_BOARD="adafruit-feather-rp2040"
CONFIG_ARCH_BOARD_ADAFRUIT_FEATHER_RP2040=y
CONFIG_ARCH_CHIP="rp2040"
CONFIG_ARCH_CHIP_RP2040=y
CONFIG_ARCH_RAMVECTORS=y
CONFIG_ARCH_STACKDUMP=y
CONFIG_BOARDCTL_RESET=y
CONFIG_BOARD_LOOPSPERMSEC=10450
CONFIG_BUILTIN=y
CONFIG_DEBUG_FULLOPT=y
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DISABLE_POSIX_TIMERS=y
CONFIG_EXAMPLES_HELLO=y
CONFIG_FS_PROCFS=y
CONFIG_FS_PROCFS_REGISTER=y
CONFIG_INIT_ENTRYPOINT="nsh_main"
CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_READLINE=y
CONFIG_RAM_SIZE=270336
CONFIG_RAM_START=0x20000000
CONFIG_READLINE_CMD_HISTORY=y
CONFIG_RP2040_BOARD_HAS_WS2812=y
CONFIG_RP2040_FLASH_FILE_SYSTEM=y
CONFIG_RP2040_FLASH_LENGTH=8388608
CONFIG_RP2040_WS2812_GPIO_PIN=16
CONFIG_RR_INTERVAL=200
CONFIG_SCHED_WAITPID=y
CONFIG_SMARTFS_ALIGNED_ACCESS=y
CONFIG_START_DAY=9
CONFIG_START_MONTH=2
CONFIG_START_YEAR=2021
CONFIG_SYSLOG_CONSOLE=y
CONFIG_SYSTEM_NSH=y
CONFIG_TESTING_GETPRIME=y
CONFIG_TESTING_OSTEST=y
CONFIG_TESTING_SMART_TEST=y
CONFIG_UART0_SERIAL_CONSOLE=y
CONFIG_WS2812=y

View File

@@ -82,11 +82,17 @@ SECTIONS
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
*(.ram_code.*)
CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.);
} > sram AT > flash
.flash_section : {
. = ALIGN(4*1024);
*(.flash.*)
} > flash
.bss : {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)

View File

@@ -20,6 +20,7 @@
MEMORY
{
flash (rx) : ORIGIN = 0x10000000, LENGTH = 8192K
sram (rwx) : ORIGIN = 0x20000000, LENGTH = 264K
}
@@ -67,11 +68,17 @@ SECTIONS
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
*(.ram_code.*)
CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.);
} > sram
.flash_section : {
. = ALIGN(4*1024);
*(.flash.*)
} > flash
.bss : {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)

View File

@@ -70,6 +70,9 @@ Defconfigs
- nsh
Minimum configuration with NuttShell
- nsh_flash
NuttX shell with SMART flash filesystem.
- nshsram
Load NuttX binary to SRAM

View File

@@ -0,0 +1,54 @@
#
# This file is autogenerated: PLEASE DO NOT EDIT IT.
#
# You can use "make menuconfig" to make any modifications to the installed .config file.
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
# modifications.
#
# CONFIG_FS_PROCFS_EXCLUDE_ENVIRON is not set
# CONFIG_LIBC_LONG_LONG is not set
# CONFIG_NSH_ARGCAT is not set
# CONFIG_NSH_CMDOPT_HEXDUMP is not set
# CONFIG_NSH_DISABLE_DATE is not set
# CONFIG_STANDARD_SERIAL is not set
CONFIG_ARCH="arm"
CONFIG_ARCH_BOARD="adafruit-kb2040"
CONFIG_ARCH_BOARD_ADAFRUIT_KB2040=y
CONFIG_ARCH_CHIP="rp2040"
CONFIG_ARCH_CHIP_RP2040=y
CONFIG_ARCH_RAMVECTORS=y
CONFIG_ARCH_STACKDUMP=y
CONFIG_BOARDCTL_RESET=y
CONFIG_BOARD_LOOPSPERMSEC=10450
CONFIG_BUILTIN=y
CONFIG_DEBUG_FULLOPT=y
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DISABLE_POSIX_TIMERS=y
CONFIG_EXAMPLES_HELLO=y
CONFIG_FS_PROCFS=y
CONFIG_FS_PROCFS_REGISTER=y
CONFIG_INIT_ENTRYPOINT="nsh_main"
CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_READLINE=y
CONFIG_RAM_SIZE=270336
CONFIG_RAM_START=0x20000000
CONFIG_READLINE_CMD_HISTORY=y
CONFIG_RP2040_BOARD_HAS_WS2812=y
CONFIG_RP2040_FLASH_FILE_SYSTEM=y
CONFIG_RP2040_FLASH_LENGTH=8388608
CONFIG_RP2040_WS2812_GPIO_PIN=17
CONFIG_RR_INTERVAL=200
CONFIG_SCHED_WAITPID=y
CONFIG_SMARTFS_ALIGNED_ACCESS=y
CONFIG_START_DAY=9
CONFIG_START_MONTH=2
CONFIG_START_YEAR=2021
CONFIG_SYSLOG_CONSOLE=y
CONFIG_SYSTEM_NSH=y
CONFIG_TESTING_GETPRIME=y
CONFIG_TESTING_OSTEST=y
CONFIG_TESTING_SMART_TEST=y
CONFIG_UART0_SERIAL_CONSOLE=y
CONFIG_WS2812=y

View File

@@ -82,11 +82,17 @@ SECTIONS
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
*(.ram_code.*)
CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.);
} > sram AT > flash
.flash_section : {
. = ALIGN(4*1024);
*(.flash.*)
} > flash
.bss : {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)

View File

@@ -20,6 +20,7 @@
MEMORY
{
flash (rx) : ORIGIN = 0x10000000, LENGTH = 8192K
sram (rwx) : ORIGIN = 0x20000000, LENGTH = 264K
}
@@ -67,11 +68,17 @@ SECTIONS
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
*(.ram_code.*)
CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.);
} > sram
.flash_section : {
. = ALIGN(4*1024);
*(.flash.*)
} > flash
.bss : {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)

View File

@@ -65,6 +65,9 @@ Defconfigs
- nsh
Minimum configuration with NuttShell
- nsh_flash
NuttX shell with SMART flash filesystem.
- nshsram
Load NuttX binary to SRAM

View File

@@ -0,0 +1,57 @@
#
# This file is autogenerated: PLEASE DO NOT EDIT IT.
#
# You can use "make menuconfig" to make any modifications to the installed .config file.
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
# modifications.
#
# CONFIG_FS_PROCFS_EXCLUDE_ENVIRON is not set
# CONFIG_NSH_ARGCAT is not set
# CONFIG_NSH_CMDOPT_HEXDUMP is not set
# CONFIG_NSH_DISABLE_DATE is not set
# CONFIG_RP2040_UART0 is not set
# CONFIG_STANDARD_SERIAL is not set
CONFIG_ARCH="arm"
CONFIG_ARCH_BOARD="adafruit-qt-py-rp2040"
CONFIG_ARCH_BOARD_ADAFRUIT_QT_PY_RP2040=y
CONFIG_ARCH_CHIP="rp2040"
CONFIG_ARCH_CHIP_RP2040=y
CONFIG_ARCH_RAMVECTORS=y
CONFIG_ARCH_STACKDUMP=y
CONFIG_BOARDCTL_RESET=y
CONFIG_BOARD_LOOPSPERMSEC=10450
CONFIG_BUILTIN=y
CONFIG_DEBUG_FULLOPT=y
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DISABLE_POSIX_TIMERS=y
CONFIG_EXAMPLES_HELLO=y
CONFIG_FS_PROCFS=y
CONFIG_FS_PROCFS_REGISTER=y
CONFIG_INIT_ENTRYPOINT="nsh_main"
CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_READLINE=y
CONFIG_RAM_SIZE=270336
CONFIG_RAM_START=0x20000000
CONFIG_READLINE_CMD_HISTORY=y
CONFIG_RP2040_BOARD_HAS_WS2812=y
CONFIG_RP2040_FLASH_FILE_SYSTEM=y
CONFIG_RP2040_FLASH_LENGTH=8388608
CONFIG_RP2040_UART1=y
CONFIG_RP2040_UART1_RX_GPIO=5
CONFIG_RP2040_WS2812_GPIO_PIN=12
CONFIG_RP2040_WS2812_PWR_GPIO=11
CONFIG_RR_INTERVAL=200
CONFIG_SCHED_WAITPID=y
CONFIG_SMARTFS_ALIGNED_ACCESS=y
CONFIG_START_DAY=9
CONFIG_START_MONTH=2
CONFIG_START_YEAR=2021
CONFIG_SYSLOG_CONSOLE=y
CONFIG_SYSTEM_NSH=y
CONFIG_TESTING_GETPRIME=y
CONFIG_TESTING_OSTEST=y
CONFIG_TESTING_SMART_TEST=y
CONFIG_UART1_SERIAL_CONSOLE=y
CONFIG_WS2812=y

View File

@@ -82,11 +82,17 @@ SECTIONS
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
*(.ram_code.*)
CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.);
} > sram AT > flash
.flash_section : {
. = ALIGN(4*1024);
*(.flash.*)
} > flash
.bss : {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)

View File

@@ -20,6 +20,7 @@
MEMORY
{
flash (rx) : ORIGIN = 0x10000000, LENGTH = 8192K
sram (rwx) : ORIGIN = 0x20000000, LENGTH = 264K
}
@@ -67,11 +68,17 @@ SECTIONS
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
*(.ram_code.*)
CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.);
} > sram
.flash_section : {
. = ALIGN(4*1024);
*(.flash.*)
} > flash
.bss : {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)

View File

@@ -475,7 +475,6 @@ if RP2040_I2S
endif # RP2040_I2S
#####################################################################
# WS2812 Configuration
#####################################################################
@@ -501,3 +500,17 @@ if RP2040_BOARD_HAS_WS2812
such a pin.
endif # RP2040_BOARD_HAS_WS2812
#####################################################################
# FLASH File System Configuration
#####################################################################
if RP2040_FLASH_FILE_SYSTEM
config RP2040_FLASH_LENGTH
int "Size of flash memory in bytes."
default 2097152
---help---
This is the overall amount of flash memory on the board.
endif # RP2040_FLASH_FILE_SYSTEM

View File

@@ -27,6 +27,8 @@
#include <debug.h>
#include <errno.h>
#include <stddef.h>
#include <string.h>
#include <sys/stat.h>
#include <nuttx/fs/fs.h>
@@ -74,6 +76,14 @@
#include "rp2040_ws2812.h"
#endif
#if defined(CONFIG_RP2040_ROMFS_ROMDISK_DEVNAME)
# include <rp2040_romfsimg.h>
#endif
#ifdef CONFIG_RP2040_FLASH_FILE_SYSTEM
# include "rp2040_flash_mtd.h"
#endif
#ifdef CONFIG_WS2812_HAS_WHITE
#define HAS_WHITE true
#else /* CONFIG_WS2812_HAS_WHITE */
@@ -92,6 +102,10 @@ int rp2040_common_bringup(void)
{
int ret = 0;
#ifdef CONFIG_RP2040_FLASH_FILE_SYSTEM
struct mtd_dev_s *mtd_dev;
#endif
#ifdef CONFIG_RP2040_I2C_DRIVER
#ifdef CONFIG_RP2040_I2C0
ret = board_i2cdev_initialize(0);
@@ -570,5 +584,76 @@ int rp2040_common_bringup(void)
}
#endif
#ifdef CONFIG_RP2040_FLASH_FILE_SYSTEM
mtd_dev = rp2040_flash_mtd_initialize();
if (mtd_dev == NULL)
{
syslog(LOG_ERR, "ERROR: flash_mtd_initialize failed: %d\n", errno);
}
else
{
ret = smart_initialize(0, mtd_dev, NULL);
if (ret < 0)
{
syslog(LOG_ERR, "ERROR: smart_initialize failed: %d\n", -ret);
}
else if (strlen(CONFIG_RP2040_FLASH_MOUNT_POINT) > 0)
{
mkdir(CONFIG_RP2040_FLASH_MOUNT_POINT, 0777);
/* Mount the file system */
ret = nx_mount("/dev/smart0",
CONFIG_RP2040_FLASH_MOUNT_POINT,
"smartfs",
0,
NULL);
if (ret < 0)
{
syslog(LOG_ERR,
"ERROR: nx_mount(\"/dev/smart0\", \"%s\", \"smartfs\","
" 0, NULL) failed: %d\n",
CONFIG_RP2040_FLASH_MOUNT_POINT,
ret);
}
}
}
#endif
#if defined(CONFIG_RP2040_ROMFS_ROMDISK_DEVNAME)
/* Register the ROM disk */
ret = romdisk_register(CONFIG_RP2040_ROMFS_ROMDISK_MINOR,
rp2040_romfs_img,
NSECTORS(rp2040_romfs_img_len),
CONFIG_RP2040_ROMFS_ROMDISK_SECTSIZE);
if (ret < 0)
{
syslog(LOG_ERR, "ERROR: romdisk_register failed: %d\n", -ret);
}
else
{
/* Mount the file system */
ret = nx_mount(CONFIG_RP2040_ROMFS_ROMDISK_DEVNAME,
CONFIG_RP2040_ROMFS_MOUNT_MOUNTPOINT,
"romfs",
MS_RDONLY,
NULL);
if (ret < 0)
{
syslog(LOG_ERR,
"ERROR: nx_mount(%s,%s,romfs) failed: %d\n",
CONFIG_RP2040_ROMFS_ROMDISK_DEVNAME,
CONFIG_RP2040_ROMFS_MOUNT_MOUNTPOINT,
ret);
}
}
#endif
return OK;
}

View File

@@ -69,6 +69,9 @@ Defconfigs
- nsh
Minimum configuration with NuttShell
- nsh_flash
NuttX shell with SMART flash filesystem.
- nshsram
Load NuttX binary to SRAM

View File

@@ -0,0 +1,53 @@
#
# This file is autogenerated: PLEASE DO NOT EDIT IT.
#
# You can use "make menuconfig" to make any modifications to the installed .config file.
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
# modifications.
#
# CONFIG_FS_PROCFS_EXCLUDE_ENVIRON is not set
# CONFIG_LIBC_LONG_LONG is not set
# CONFIG_NSH_ARGCAT is not set
# CONFIG_NSH_CMDOPT_HEXDUMP is not set
# CONFIG_NSH_DISABLE_DATE is not set
# CONFIG_STANDARD_SERIAL is not set
CONFIG_ARCH="arm"
CONFIG_ARCH_BOARD="pimoroni-tiny2040"
CONFIG_ARCH_BOARD_PIMORONI_TINY2040=y
CONFIG_ARCH_CHIP="rp2040"
CONFIG_ARCH_CHIP_RP2040=y
CONFIG_ARCH_COVERAGE=y
CONFIG_ARCH_RAMVECTORS=y
CONFIG_ARCH_STACKDUMP=y
CONFIG_BOARDCTL_RESET=y
CONFIG_BOARD_LOOPSPERMSEC=10450
CONFIG_BUILTIN=y
CONFIG_DEBUG_FULLOPT=y
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DISABLE_POSIX_TIMERS=y
CONFIG_EXAMPLES_HELLO=y
CONFIG_FS_PROCFS=y
CONFIG_FS_PROCFS_REGISTER=y
CONFIG_INIT_ENTRYPOINT="nsh_main"
CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_READLINE=y
CONFIG_RAM_SIZE=270336
CONFIG_RAM_START=0x20000000
CONFIG_READLINE_CMD_HISTORY=y
CONFIG_RP2040_FLASH_FILE_SYSTEM=y
CONFIG_RP2040_FLASH_LENGTH=8388608
CONFIG_RR_INTERVAL=200
CONFIG_SCHED_WAITPID=y
CONFIG_SMARTFS_ALIGNED_ACCESS=y
CONFIG_START_DAY=11
CONFIG_START_MONTH=12
CONFIG_START_YEAR=2021
CONFIG_SYSLOG_CONSOLE=y
CONFIG_SYSTEM_GCOV=y
CONFIG_SYSTEM_NSH=y
CONFIG_TESTING_GETPRIME=y
CONFIG_TESTING_OSTEST=y
CONFIG_TESTING_SMART_TEST=y
CONFIG_UART0_SERIAL_CONSOLE=y

View File

@@ -82,11 +82,17 @@ SECTIONS
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
*(.ram_code.*)
CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.);
} > sram AT > flash
.flash_section : {
. = ALIGN(4*1024);
*(.flash.*)
} > flash
.bss : {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)

View File

@@ -20,6 +20,7 @@
MEMORY
{
flash (rx) : ORIGIN = 0x10000000, LENGTH = 8192K
sram (rwx) : ORIGIN = 0x20000000, LENGTH = 264K
}
@@ -67,11 +68,17 @@ SECTIONS
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
*(.ram_code.*)
CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.);
} > sram
.flash_section : {
. = ALIGN(4*1024);
*(.flash.*)
} > flash
.bss : {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)

View File

@@ -72,6 +72,9 @@ Defconfigs
- nsh
Minimum configuration with NuttShell
- nsh_flash
NuttX shell with SMART flash filesystem.
- nshsram
Load NuttX binary to SRAM

View File

@@ -0,0 +1,50 @@
#
# This file is autogenerated: PLEASE DO NOT EDIT IT.
#
# You can use "make menuconfig" to make any modifications to the installed .config file.
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
# modifications.
#
# CONFIG_FS_PROCFS_EXCLUDE_ENVIRON is not set
# CONFIG_LIBC_LONG_LONG is not set
# CONFIG_NSH_ARGCAT is not set
# CONFIG_NSH_CMDOPT_HEXDUMP is not set
# CONFIG_NSH_DISABLE_DATE is not set
# CONFIG_STANDARD_SERIAL is not set
CONFIG_ARCH="arm"
CONFIG_ARCH_BOARD="raspberrypi-pico-w"
CONFIG_ARCH_BOARD_RASPBERRYPI_PICO_W=y
CONFIG_ARCH_CHIP="rp2040"
CONFIG_ARCH_CHIP_RP2040=y
CONFIG_ARCH_RAMVECTORS=y
CONFIG_ARCH_STACKDUMP=y
CONFIG_BOARDCTL_RESET=y
CONFIG_BOARD_LOOPSPERMSEC=10450
CONFIG_BUILTIN=y
CONFIG_DEBUG_FULLOPT=y
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DISABLE_POSIX_TIMERS=y
CONFIG_EXAMPLES_HELLO=y
CONFIG_FS_PROCFS=y
CONFIG_FS_PROCFS_REGISTER=y
CONFIG_INIT_ENTRYPOINT="nsh_main"
CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_READLINE=y
CONFIG_RAM_SIZE=270336
CONFIG_RAM_START=0x20000000
CONFIG_READLINE_CMD_HISTORY=y
CONFIG_RP2040_FLASH_FILE_SYSTEM=y
CONFIG_RR_INTERVAL=200
CONFIG_SCHED_WAITPID=y
CONFIG_SMARTFS_ALIGNED_ACCESS=y
CONFIG_START_DAY=9
CONFIG_START_MONTH=2
CONFIG_START_YEAR=2021
CONFIG_SYSLOG_CONSOLE=y
CONFIG_SYSTEM_NSH=y
CONFIG_TESTING_GETPRIME=y
CONFIG_TESTING_OSTEST=y
CONFIG_TESTING_SMART_TEST=y
CONFIG_UART0_SERIAL_CONSOLE=y

View File

@@ -82,11 +82,17 @@ SECTIONS
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
*(.ram_code.*)
CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.);
} > sram AT > flash
.flash_section : {
. = ALIGN(4*1024);
*(.flash.*)
} > flash
.bss : {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)

View File

@@ -20,6 +20,7 @@
MEMORY
{
flash (rx) : ORIGIN = 0x10000000, LENGTH = 2048K
sram (rwx) : ORIGIN = 0x20000000, LENGTH = 264K
}
@@ -67,11 +68,17 @@ SECTIONS
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
*(.ram_code.*)
CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.);
} > sram
.flash_section : {
. = ALIGN(4*1024);
*(.flash.*)
} > flash
.bss : {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)

View File

@@ -71,6 +71,9 @@ Defconfigs
- nsh
Minimum configuration with NuttShell
- nsh_flash
NuttX shell with SMART flash filesystem.
- nshsram
Load NuttX binary to SRAM

View File

@@ -0,0 +1,50 @@
#
# This file is autogenerated: PLEASE DO NOT EDIT IT.
#
# You can use "make menuconfig" to make any modifications to the installed .config file.
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
# modifications.
#
# CONFIG_FS_PROCFS_EXCLUDE_ENVIRON is not set
# CONFIG_LIBC_LONG_LONG is not set
# CONFIG_NSH_ARGCAT is not set
# CONFIG_NSH_CMDOPT_HEXDUMP is not set
# CONFIG_NSH_DISABLE_DATE is not set
# CONFIG_STANDARD_SERIAL is not set
CONFIG_ARCH="arm"
CONFIG_ARCH_BOARD="raspberrypi-pico"
CONFIG_ARCH_BOARD_RASPBERRYPI_PICO=y
CONFIG_ARCH_CHIP="rp2040"
CONFIG_ARCH_CHIP_RP2040=y
CONFIG_ARCH_RAMVECTORS=y
CONFIG_ARCH_STACKDUMP=y
CONFIG_BOARDCTL_RESET=y
CONFIG_BOARD_LOOPSPERMSEC=10450
CONFIG_BUILTIN=y
CONFIG_DEBUG_FULLOPT=y
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DISABLE_POSIX_TIMERS=y
CONFIG_EXAMPLES_HELLO=y
CONFIG_FS_PROCFS=y
CONFIG_FS_PROCFS_REGISTER=y
CONFIG_INIT_ENTRYPOINT="nsh_main"
CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_READLINE=y
CONFIG_RAM_SIZE=270336
CONFIG_RAM_START=0x20000000
CONFIG_READLINE_CMD_HISTORY=y
CONFIG_RP2040_FLASH_FILE_SYSTEM=y
CONFIG_RR_INTERVAL=200
CONFIG_SCHED_WAITPID=y
CONFIG_SMARTFS_ALIGNED_ACCESS=y
CONFIG_START_DAY=9
CONFIG_START_MONTH=2
CONFIG_START_YEAR=2021
CONFIG_SYSLOG_CONSOLE=y
CONFIG_SYSTEM_NSH=y
CONFIG_TESTING_GETPRIME=y
CONFIG_TESTING_OSTEST=y
CONFIG_TESTING_SMART_TEST=y
CONFIG_UART0_SERIAL_CONSOLE=y

View File

@@ -82,11 +82,17 @@ SECTIONS
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
*(.ram_code.*)
CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.);
} > sram AT > flash
.flash_section : {
. = ALIGN(4*1024);
*(.flash.*)
} > flash
.bss : {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)

View File

@@ -20,6 +20,7 @@
MEMORY
{
flash (rx) : ORIGIN = 0x10000000, LENGTH = 2048K
sram (rwx) : ORIGIN = 0x20000000, LENGTH = 264K
}
@@ -67,11 +68,17 @@ SECTIONS
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
*(.ram_code.*)
CONSTRUCTORS
. = ALIGN(4);
_edata = ABSOLUTE(.);
} > sram
.flash_section : {
. = ALIGN(4*1024);
*(.flash.*)
} > flash
.bss : {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)