Распределить раздел по фиксированному адресу в памяти (flash) - PullRequest
0 голосов
/ 15 мая 2018

Мне трудно создать секцию по фиксированному адресу, чтобы я мог поместить значение CRC в верхнюю часть памяти.Я создал новый раздел под названием .ReservedCRC с фиксированным адресом памяти 0x0001 FFFC (или, по крайней мере, это то, что я хотел бы сделать. Но, глядя на файл карты, компоновщик не поместил данные в этораздел. Почему константный массив StoredCRC не был размещен по фиксированному адресу 0x0001 FFFC?

Вот что я сделал, чтобы это исправить. Размещение массива StoredCRC в разделе ReservedCRC осталось без изменений.

__attribute__( ( section(".ReservedCRC") ) )const unsigned long StoredCRC[1] 
= {0x69FB9601}; 

Я добавил область в ПАМЯТЬ с именем CRC в самом верху флэш-памяти длиной 4 байта для хранения CRC.

MEMORY
{
FLASH (rx) : ORIGIN = 0x0, LENGTH = 0x1FFFC /* 128k */
CRC (rx) : ORIGIN = 0x1FFFC, LENGTH = 4   
/*  RAM_CODE (rwx) : ORIGIN = 0x10000000, LENGTH = 0x8000     32k executable 
code area in RAM */
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x8000 /* 32k */
}


SECTIONS
{
(other section definitions)

/**************************************
Create new section for CRC storage
at fixed location at the top of
flash in "CRC" memory region.
**************************************/

 .ReservedCRC 0x0001FFFC:
 {  
 . = ALIGN(4); 
 KEEP(*(.ReservedCRC*))
 } > CRC 
}

Файл карты

.ReservedCRC    0x0001fffc        0x4
                0x0001fffc                . = ALIGN (0x4)
 *(.rodata*)
 *(.ReservedCRC*)
 .ReservedCRC   0x0001fffc        0x4 ./Source/functions.o
                0x0001fffc                StoredCRC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...