[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.
*/
/* SAMD20J14 */
/* SAMD20E14 */
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
}

Wyświetl plik

@ -22,8 +22,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/* SAMD20J15 */
/* SAMD20E15 */
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
}

Wyświetl plik

@ -22,8 +22,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/* SAMD20J16 */
/* SAMD20E16 */
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
}

Wyświetl plik

@ -22,8 +22,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/* SAMD20J17 */
/* SAMD20E17 */
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
}

Wyświetl plik

@ -22,8 +22,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/* SAMD20J18 */
/* SAMD20E18 */
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
}

Wyświetl plik

@ -22,8 +22,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/* SAMD20J14 */
/* SAMD20G14 */
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
}

Wyświetl plik

@ -22,8 +22,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/* SAMD20J15 */
/* SAMD20G15 */
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
}

Wyświetl plik

@ -22,8 +22,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/* SAMD20J16 */
/* SAMD20G16 */
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
}

Wyświetl plik

@ -22,8 +22,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/* SAMD20J17 */
/* SAMD20G17 */
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
}

Wyświetl plik

@ -22,8 +22,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/* SAMD20J18 */
/* SAMD20G18 */
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
}

Wyświetl plik

@ -24,6 +24,7 @@
/* SAMD20J14 */
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
}

Wyświetl plik

@ -24,6 +24,7 @@
/* SAMD20J15 */
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
}

Wyświetl plik

@ -24,6 +24,7 @@
/* SAMD20J16 */
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
}

Wyświetl plik

@ -24,6 +24,7 @@
/* SAMD20J17 */
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
}

Wyświetl plik

@ -24,6 +24,7 @@
/* SAMD20J18 */
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
}

Wyświetl plik

@ -115,6 +115,14 @@ SECTIONS
__fixed_end = .;
} > 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. */
PROVIDE_HIDDEN (__exidx_start = .);
.ARM.exidx :

Wyświetl plik

@ -37,7 +37,10 @@
/**
* 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