-
Notifications
You must be signed in to change notification settings - Fork 311
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of https://github.com/Microsoft/uf2-samd21
- Loading branch information
Showing
177 changed files
with
295,757 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
CHIP_FAMILY = samd51 | ||
CHIP_VARIANT = SAME54N20A |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
#ifndef BOARD_CONFIG_H | ||
#define BOARD_CONFIG_H | ||
|
||
#define VENDOR_NAME "Generic Corp." | ||
#define PRODUCT_NAME "SAME54 Board" | ||
#define VOLUME_LABEL "SAME54" | ||
|
||
#define USB_VID 0x03EB // Atmel | ||
#define USB_PID 0x2402 // Generic HID device | ||
|
||
#define BOARD_ID "SAME54N20A-Generic" | ||
|
||
#define LED_PIN PIN_PB31 | ||
|
||
#define BOOT_USART_MODULE SERCOM4 | ||
#define BOOT_USART_MASK APBDMASK | ||
#define BOOT_USART_BUS_CLOCK_INDEX MCLK_APBDMASK_SERCOM4 | ||
#define BOOT_USART_PAD_SETTINGS UART_RX_PAD1_TX_PAD0 | ||
#define BOOT_USART_PAD3 PINMUX_UNUSED | ||
#define BOOT_USART_PAD2 PINMUX_UNUSED | ||
#define BOOT_USART_PAD1 PINMUX_PB09D_SERCOM4_PAD1 | ||
#define BOOT_USART_PAD0 PINMUX_PB08D_SERCOM4_PAD0 | ||
#define BOOT_GCLK_ID_CORE SERCOM4_GCLK_ID_CORE | ||
#define BOOT_GCLK_ID_SLOW SERCOM4_GCLK_ID_SLOW | ||
|
||
#endif |
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,162 @@ | ||
/** | ||
* \file | ||
* | ||
* \brief Linker script for running in internal FLASH on the SAME54N19A | ||
* | ||
* Copyright (c) 2017 Atmel Corporation, | ||
* a wholly owned subsidiary of Microchip Technology Inc. | ||
* | ||
* \asf_license_start | ||
* | ||
* \page License | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the Licence at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
* | ||
* \asf_license_stop | ||
* | ||
*/ | ||
|
||
|
||
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") | ||
OUTPUT_ARCH(arm) | ||
SEARCH_DIR(.) | ||
|
||
/* Memory Spaces Definitions */ | ||
MEMORY | ||
{ | ||
rom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00080000 | ||
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00030000 | ||
bkupram (rwx) : ORIGIN = 0x47000000, LENGTH = 0x00002000 | ||
qspi (rwx) : ORIGIN = 0x04000000, LENGTH = 0x01000000 | ||
} | ||
|
||
/* The stack size used by the application. NOTE: you need to adjust according to your application. */ | ||
STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0xC000; | ||
|
||
/* Section Definitions */ | ||
SECTIONS | ||
{ | ||
.text : | ||
{ | ||
. = ALIGN(4); | ||
_sfixed = .; | ||
KEEP(*(.vectors .vectors.*)) | ||
*(.text .text.* .gnu.linkonce.t.*) | ||
*(.glue_7t) *(.glue_7) | ||
*(.rodata .rodata* .gnu.linkonce.r.*) | ||
*(.ARM.extab* .gnu.linkonce.armextab.*) | ||
|
||
/* Support C constructors, and C destructors in both user code | ||
and the C library. This also provides support for C++ code. */ | ||
. = ALIGN(4); | ||
KEEP(*(.init)) | ||
. = ALIGN(4); | ||
__preinit_array_start = .; | ||
KEEP (*(.preinit_array)) | ||
__preinit_array_end = .; | ||
|
||
. = ALIGN(4); | ||
__init_array_start = .; | ||
KEEP (*(SORT(.init_array.*))) | ||
KEEP (*(.init_array)) | ||
__init_array_end = .; | ||
|
||
. = ALIGN(4); | ||
KEEP (*crtbegin.o(.ctors)) | ||
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) | ||
KEEP (*(SORT(.ctors.*))) | ||
KEEP (*crtend.o(.ctors)) | ||
|
||
. = ALIGN(4); | ||
KEEP(*(.fini)) | ||
|
||
. = ALIGN(4); | ||
__fini_array_start = .; | ||
KEEP (*(.fini_array)) | ||
KEEP (*(SORT(.fini_array.*))) | ||
__fini_array_end = .; | ||
|
||
KEEP (*crtbegin.o(.dtors)) | ||
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) | ||
KEEP (*(SORT(.dtors.*))) | ||
KEEP (*crtend.o(.dtors)) | ||
|
||
. = ALIGN(4); | ||
_efixed = .; /* End of text section */ | ||
} > rom | ||
|
||
/* .ARM.exidx is sorted, so has to go in its own output section. */ | ||
PROVIDE_HIDDEN (__exidx_start = .); | ||
.ARM.exidx : | ||
{ | ||
*(.ARM.exidx* .gnu.linkonce.armexidx.*) | ||
} > rom | ||
PROVIDE_HIDDEN (__exidx_end = .); | ||
|
||
. = ALIGN(4); | ||
_etext = .; | ||
|
||
.relocate : AT (_etext) | ||
{ | ||
. = ALIGN(4); | ||
_srelocate = .; | ||
*(.ramfunc .ramfunc.*); | ||
*(.data .data.*); | ||
. = ALIGN(4); | ||
_erelocate = .; | ||
} > ram | ||
|
||
.bkupram (NOLOAD): | ||
{ | ||
. = ALIGN(8); | ||
_sbkupram = .; | ||
*(.bkupram .bkupram.*); | ||
. = ALIGN(8); | ||
_ebkupram = .; | ||
} > bkupram | ||
|
||
.qspi (NOLOAD): | ||
{ | ||
. = ALIGN(8); | ||
_sqspi = .; | ||
*(.qspi .qspi.*); | ||
. = ALIGN(8); | ||
_eqspi = .; | ||
} > qspi | ||
|
||
/* .bss section which is used for uninitialized data */ | ||
.bss (NOLOAD) : | ||
{ | ||
. = ALIGN(4); | ||
_sbss = . ; | ||
_szero = .; | ||
*(.bss .bss.*) | ||
*(COMMON) | ||
. = ALIGN(4); | ||
_ebss = . ; | ||
_ezero = .; | ||
} > ram | ||
|
||
/* stack section */ | ||
.stack (NOLOAD): | ||
{ | ||
. = ALIGN(8); | ||
_sstack = .; | ||
. = . + STACK_SIZE; | ||
. = ALIGN(8); | ||
_estack = .; | ||
} > ram | ||
|
||
. = ALIGN(4); | ||
_end = . ; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,161 @@ | ||
/** | ||
* \file | ||
* | ||
* \brief Linker script for running in internal SRAM on the SAME54N19A | ||
* | ||
* Copyright (c) 2017 Atmel Corporation, | ||
* a wholly owned subsidiary of Microchip Technology Inc. | ||
* | ||
* \asf_license_start | ||
* | ||
* \page License | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the Licence at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
* | ||
* \asf_license_stop | ||
* | ||
*/ | ||
|
||
|
||
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") | ||
OUTPUT_ARCH(arm) | ||
SEARCH_DIR(.) | ||
|
||
/* Memory Spaces Definitions */ | ||
MEMORY | ||
{ | ||
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00030000 | ||
bkupram (rwx) : ORIGIN = 0x47000000, LENGTH = 0x00002000 | ||
qspi (rwx) : ORIGIN = 0x04000000, LENGTH = 0x01000000 | ||
} | ||
|
||
/* The stack size used by the application. NOTE: you need to adjust according to your application. */ | ||
STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0xC000; | ||
|
||
/* Section Definitions */ | ||
SECTIONS | ||
{ | ||
.text : | ||
{ | ||
. = ALIGN(4); | ||
_sfixed = .; | ||
KEEP(*(.vectors .vectors.*)) | ||
*(.text .text.* .gnu.linkonce.t.*) | ||
*(.glue_7t) *(.glue_7) | ||
*(.rodata .rodata* .gnu.linkonce.r.*) | ||
*(.ARM.extab* .gnu.linkonce.armextab.*) | ||
|
||
/* Support C constructors, and C destructors in both user code | ||
and the C library. This also provides support for C++ code. */ | ||
. = ALIGN(4); | ||
KEEP(*(.init)) | ||
. = ALIGN(4); | ||
__preinit_array_start = .; | ||
KEEP (*(.preinit_array)) | ||
__preinit_array_end = .; | ||
|
||
. = ALIGN(4); | ||
__init_array_start = .; | ||
KEEP (*(SORT(.init_array.*))) | ||
KEEP (*(.init_array)) | ||
__init_array_end = .; | ||
|
||
. = ALIGN(4); | ||
KEEP (*crtbegin.o(.ctors)) | ||
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) | ||
KEEP (*(SORT(.ctors.*))) | ||
KEEP (*crtend.o(.ctors)) | ||
|
||
. = ALIGN(4); | ||
KEEP(*(.fini)) | ||
|
||
. = ALIGN(4); | ||
__fini_array_start = .; | ||
KEEP (*(.fini_array)) | ||
KEEP (*(SORT(.fini_array.*))) | ||
__fini_array_end = .; | ||
|
||
KEEP (*crtbegin.o(.dtors)) | ||
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) | ||
KEEP (*(SORT(.dtors.*))) | ||
KEEP (*crtend.o(.dtors)) | ||
|
||
. = ALIGN(4); | ||
_efixed = .; /* End of text section */ | ||
} > ram | ||
|
||
/* .ARM.exidx is sorted, so has to go in its own output section. */ | ||
PROVIDE_HIDDEN (__exidx_start = .); | ||
.ARM.exidx : | ||
{ | ||
*(.ARM.exidx* .gnu.linkonce.armexidx.*) | ||
} > ram | ||
PROVIDE_HIDDEN (__exidx_end = .); | ||
|
||
. = ALIGN(4); | ||
_etext = .; | ||
|
||
.relocate : AT (_etext) | ||
{ | ||
. = ALIGN(4); | ||
_srelocate = .; | ||
*(.ramfunc .ramfunc.*); | ||
*(.data .data.*); | ||
. = ALIGN(4); | ||
_erelocate = .; | ||
} > ram | ||
|
||
.bkupram (NOLOAD): | ||
{ | ||
. = ALIGN(8); | ||
_sbkupram = .; | ||
*(.bkupram .bkupram.*); | ||
. = ALIGN(8); | ||
_ebkupram = .; | ||
} > bkupram | ||
|
||
.qspi (NOLOAD): | ||
{ | ||
. = ALIGN(8); | ||
_sqspi = .; | ||
*(.qspi .qspi.*); | ||
. = ALIGN(8); | ||
_eqspi = .; | ||
} > qspi | ||
|
||
/* .bss section which is used for uninitialized data */ | ||
.bss (NOLOAD) : | ||
{ | ||
. = ALIGN(4); | ||
_sbss = . ; | ||
_szero = .; | ||
*(.bss .bss.*) | ||
*(COMMON) | ||
. = ALIGN(4); | ||
_ebss = . ; | ||
_ezero = .; | ||
} > ram | ||
|
||
/* stack section */ | ||
.stack (NOLOAD): | ||
{ | ||
. = ALIGN(8); | ||
_sstack = .; | ||
. = . + STACK_SIZE; | ||
. = ALIGN(8); | ||
_estack = .; | ||
} > ram | ||
|
||
. = ALIGN(4); | ||
_end = . ; | ||
} |
Oops, something went wrong.