[memory] allocate separate 16k eeprom area

main-solar-only
Richard Meadows 2016-08-04 14:32:57 +01:00
rodzic a44086db16
commit eba62ba245
17 zmienionych plików z 52 dodań i 26 usunięć

Wyświetl plik

@ -22,8 +22,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/ */
/* SAMD20J14 */ /* SAMD20E14 */
MEMORY { MEMORY {
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 16K FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0K
EEPROM (rx) : ORIGIN = 0x00000000, LENGTH = 16K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 2K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 2K
} }

Wyświetl plik

@ -22,8 +22,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/ */
/* SAMD20J15 */ /* SAMD20E15 */
MEMORY { MEMORY {
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 32K FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 16K
EEPROM (rx) : ORIGIN = 0x00004000, LENGTH = 16K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 4K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 4K
} }

Wyświetl plik

@ -22,8 +22,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/ */
/* SAMD20J16 */ /* SAMD20E16 */
MEMORY { MEMORY {
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 64K FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 48K
EEPROM (rx) : ORIGIN = 0x0000C000, LENGTH = 16K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 8K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 8K
} }

Wyświetl plik

@ -22,8 +22,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/ */
/* SAMD20J17 */ /* SAMD20E17 */
MEMORY { MEMORY {
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 128K FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 112K
EEPROM (rx) : ORIGIN = 0x0001C000, LENGTH = 16K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 16K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 16K
} }

Wyświetl plik

@ -22,8 +22,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/ */
/* SAMD20J18 */ /* SAMD20E18 */
MEMORY { MEMORY {
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 256K FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 240K
EEPROM (rx) : ORIGIN = 0x0003C000, LENGTH = 16K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 32K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 32K
} }

Wyświetl plik

@ -22,8 +22,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/ */
/* SAMD20J14 */ /* SAMD20G14 */
MEMORY { MEMORY {
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 16K FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0K
EEPROM (rx) : ORIGIN = 0x00000000, LENGTH = 16K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 2K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 2K
} }

Wyświetl plik

@ -22,8 +22,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/ */
/* SAMD20J15 */ /* SAMD20G15 */
MEMORY { MEMORY {
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 32K FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 16K
EEPROM (rx) : ORIGIN = 0x00004000, LENGTH = 16K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 4K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 4K
} }

Wyświetl plik

@ -22,8 +22,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/ */
/* SAMD20J16 */ /* SAMD20G16 */
MEMORY { MEMORY {
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 64K FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 48K
EEPROM (rx) : ORIGIN = 0x0000C000, LENGTH = 16K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 8K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 8K
} }

Wyświetl plik

@ -22,8 +22,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/ */
/* SAMD20J17 */ /* SAMD20G17 */
MEMORY { MEMORY {
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 128K FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 112K
EEPROM (rx) : ORIGIN = 0x0001C000, LENGTH = 16K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 16K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 16K
} }

Wyświetl plik

@ -22,8 +22,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/ */
/* SAMD20J18 */ /* SAMD20G18 */
MEMORY { MEMORY {
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 256K FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 240K
EEPROM (rx) : ORIGIN = 0x0003C000, LENGTH = 16K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 32K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 32K
} }

Wyświetl plik

@ -24,6 +24,7 @@
/* SAMD20J14 */ /* SAMD20J14 */
MEMORY { MEMORY {
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 16K FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0K
EEPROM (rx) : ORIGIN = 0x00000000, LENGTH = 16K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 2K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 2K
} }

Wyświetl plik

@ -24,6 +24,7 @@
/* SAMD20J15 */ /* SAMD20J15 */
MEMORY { MEMORY {
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 32K FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 16K
EEPROM (rx) : ORIGIN = 0x00004000, LENGTH = 16K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 4K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 4K
} }

Wyświetl plik

@ -24,6 +24,7 @@
/* SAMD20J16 */ /* SAMD20J16 */
MEMORY { MEMORY {
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 64K FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 48K
EEPROM (rx) : ORIGIN = 0x0000C000, LENGTH = 16K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 8K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 8K
} }

Wyświetl plik

@ -24,6 +24,7 @@
/* SAMD20J17 */ /* SAMD20J17 */
MEMORY { MEMORY {
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 128K FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 112K
EEPROM (rx) : ORIGIN = 0x0001C000, LENGTH = 16K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 16K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 16K
} }

Wyświetl plik

@ -24,6 +24,7 @@
/* SAMD20J18 */ /* SAMD20J18 */
MEMORY { MEMORY {
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 256K FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 240K
EEPROM (rx) : ORIGIN = 0x0003C000, LENGTH = 16K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 32K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 32K
} }

Wyświetl plik

@ -115,6 +115,14 @@ SECTIONS
__fixed_end = .; __fixed_end = .;
} > FLASH } > FLASH
/* EEPROM goes in its own section */
.eeprom :
{
. = ALIGN(4);
*(.eeprom .eeprom*)
. = ALIGN(4);
} > EEPROM
/* .ARM.exidx is sorted, so has to go in its own output section. */ /* .ARM.exidx is sorted, so has to go in its own output section. */
PROVIDE_HIDDEN (__exidx_start = .); PROVIDE_HIDDEN (__exidx_start = .);
.ARM.exidx : .ARM.exidx :

Wyświetl plik

@ -37,7 +37,10 @@
/** /**
* Allocate a 16KB section of flash memory, aligned to an NVM row * Allocate a 16KB section of flash memory, aligned to an NVM row
*/ */
const uint8_t nvm_section[MEM_SIZE] __attribute__ ((aligned (256))) = { 0xFF }; const uint8_t nvm_section[MEM_SIZE]
__attribute__ ((aligned (256)))
__attribute__ ((section (".eeprom")))
= { 0xFF };
/** /**
* Poll the status register until the busy bit is cleared * Poll the status register until the busy bit is cleared