Загрузка данных


static const struct arm_mpu_region mpu_regions[] = {
#if defined(CONFIG_SDRAM_LMA_ADJUST)
	/* 
	 * Если мы перенесли всё ядро в SDRAM, то регионы FLASH_0 и SRAM_0 
	 * физически указывают на внешнюю память (0x80000000 и 0x81000000).
	 * Мы обязаны разметить оба диапазона как полноценную оперативную память (RAM).
	 */
	/* Region 0 (Первая половина SDRAM, где лежит код и базовый стек) */
	MPU_REGION_ENTRY("FLASH_0",
			 CONFIG_FLASH_BASE_ADDRESS,
			 REGION_RAM_ATTR(REGION_FLASH_SIZE)),
			 
	/* Region 1 (Вторая половина SDRAM, где лежат данные, мьютексы и кучи) */
	MPU_REGION_ENTRY("SRAM_0",
			 CONFIG_SRAM_BASE_ADDRESS,
			 REGION_RAM_ATTR(REGION_SRAM_SIZE)),
#else
	/* Стандартная разметка Zephyr по умолчанию для XIP из встроенной флеш */
	/* Region 0 */
	MPU_REGION_ENTRY("FLASH_0",
			 CONFIG_FLASH_BASE_ADDRESS,
			 REGION_FLASH_ATTR(REGION_FLASH_SIZE)),
	/* Region 1 */
	MPU_REGION_ENTRY("SRAM_0",
			 CONFIG_SRAM_BASE_ADDRESS,
			 REGION_RAM_ATTR(REGION_SRAM_SIZE)),
#endif

#ifndef CONFIG_NXP_IMX_EXTERNAL_SDRAM
	/* ... */
	MPU_REGION_ENTRY("SDRAM0", SDRAM_BASE_ADDR, REGION_IO_ATTR(REGION_512M)),
#endif
};