Пример запуска hello_world из SDRAM (сделан NXP) - при этом debug тоде не работает, но запуск программы работает:
vovan@localhost:~/ZEPHYR_RTOS/zephyrproject/zephyr/samples/SDRAM_hello_world/boards> cat mimxrt1024_evk.conf
# Use the ROM bootloader to load the image to RAM
CONFIG_NXP_FLEXSPI_ROM_RAMLOADER=y
vovan@localhost:~/ZEPHYR_RTOS/zephyrproject/zephyr/samples/SDRAM_hello_world/boards> cat mimxrt1024_evk.overlay
/delete-node/ &sdram0;
/ {
chosen {
zephyr,flash = &sdram_code;
zephyr,sram = &sdram_data;
};
/* Divide SDRAM into two partitions for Code and Data */
/* Micron MT48LC16M16A2B4-6AIT:G */
sdram_code: memory@80000000 {
device_type = "memory";
reg = <0x80000000 DT_SIZE_M(16)>;
};
sdram_data: memory@81000000 {
device_type = "memory";
reg = <0x81000000 DT_SIZE_M(16)>;
};
};
Kconfig:
if NXP_FLEXSPI_ROM_RAMLOADER
# Adjust LMA when zephyr,flash is in SDRAM
FLASH_CHOSEN := zephyr,flash
FLASH_BASE := $(dt_chosen_reg_addr_hex,$(FLASH_CHOSEN))
FLEXSPI_BASE := $(dt_nodelabel_reg_addr_hex,flexspi,1)
config BUILD_OUTPUT_ADJUST_LMA
default "0x100000000 - $(FLASH_BASE) + $(FLEXSPI_BASE)"
endif # NXP_FLEXSPI_ROM_RAMLOADER
source "Kconfig.zephyr"
prj.conf:
CONFIG_BUILD_OUTPUT_HEX=y