2021-05-07 14:21:09 +01:00
|
|
|
/* Memory configuration */
|
2021-08-20 20:41:58 +01:00
|
|
|
#if MICROPY_HW_FLASH_RESERVED
|
|
|
|
reserved_size = MICROPY_HW_FLASH_RESERVED;
|
2021-08-20 20:41:58 +01:00
|
|
|
#endif
|
|
|
|
|
2021-08-20 20:41:58 +01:00
|
|
|
#if MICROPY_HW_FLASH_TYPE==qspi_nor
|
2021-05-07 14:21:09 +01:00
|
|
|
flash_start = 0x60000000;
|
2021-08-20 20:41:58 +01:00
|
|
|
#else
|
2021-08-20 20:41:58 +01:00
|
|
|
#error Unknown MICROPY_HW_FLASH_TYPE
|
2021-08-20 20:41:58 +01:00
|
|
|
#endif
|
2021-08-20 20:41:58 +01:00
|
|
|
flash_size = MICROPY_HW_FLASH_SIZE;
|
2021-05-07 14:21:09 +01:00
|
|
|
flash_end = DEFINED(reserved_size) ? ((flash_start) + (flash_size - reserved_size)) : ((flash_start) + (flash_size));
|
2021-08-20 20:41:58 +01:00
|
|
|
flash_config_start = flash_start + 0x00000400;
|
2021-05-07 14:21:09 +01:00
|
|
|
flash_config_size = 0x00000C00;
|
2021-08-20 20:41:58 +01:00
|
|
|
ivt_start = flash_start + 0x00001000;
|
2021-05-07 14:21:09 +01:00
|
|
|
ivt_size = 0x00001000;
|
2021-08-20 20:41:58 +01:00
|
|
|
interrupts_start = flash_start + 0x00002000;
|
2021-05-07 14:21:09 +01:00
|
|
|
interrupts_size = 0x00000400;
|
2021-08-20 20:41:58 +01:00
|
|
|
text_start = flash_start + 0x00002400;
|
|
|
|
vfs_start = flash_start + 0x00100000;
|
|
|
|
text_size = ((vfs_start) - (text_start));
|
2021-05-07 14:21:09 +01:00
|
|
|
vfs_size = ((flash_end) - (vfs_start));
|
|
|
|
itcm_start = 0x00000000;
|
|
|
|
itcm_size = 0x00008000;
|
|
|
|
dtcm_start = 0x20000000;
|
|
|
|
dtcm_size = 0x00008000;
|
|
|
|
ocrm_start = 0x20200000;
|
|
|
|
ocrm_size = 0x00010000;
|
|
|
|
|
|
|
|
/* 20kiB stack. */
|
|
|
|
__stack_size__ = 0x5000;
|
2020-01-30 03:40:34 +00:00
|
|
|
_estack = __StackTop;
|
|
|
|
_sstack = __StackLimit;
|
|
|
|
|
2020-06-10 10:11:30 +01:00
|
|
|
/* Do not use the traditional C heap. */
|
|
|
|
__heap_size__ = 0;
|
|
|
|
|
2020-01-30 03:40:34 +00:00
|
|
|
/* Use second OCRAM bank for GC heap. */
|
2021-05-07 14:21:09 +01:00
|
|
|
_gc_heap_start = ORIGIN(m_ocrm);
|
|
|
|
_gc_heap_end = ORIGIN(m_ocrm) + LENGTH(m_ocrm);
|