kopia lustrzana https://github.com/bristol-seds/pico-tracker
[memory] allocate separate 16k eeprom area
rodzic
a44086db16
commit
eba62ba245
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 :
|
||||||
|
|
|
@ -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
|
||||||
|
|
Ładowanie…
Reference in New Issue