You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

185 lines
4.5 KiB

Massdrop keyboard support (#3780) * Massdrop SAMD51 Massdrop SAMD51 keyboards initial project upload * Removing relocated files Removing files that were relocated and not deleted from previous location * LED queue fix and cleaning Cleaned some white space or comments. Fix for LED I2C command queue. Cleaned up interrupts. Added debug function for printing numbers to scope through m15 line. * Factory programmed serial usage Ability to use factory programmed serial in hub and keyboard usb descriptors * USB serial number and bugfix Added support for factory programmed serial and usage. Incorporated bootloader's conditional compiling to align project closer. Fixed issue when USB device attempted to send before enabled. General white space and comment cleanup. * Project cleanup Cleaned up project in terms of white space, commented code, and unecessary files. NKRO keyboard is now using correct setreport although KBD was fine to use. Fixed broken linkage to __xprintf for serial debug statements. * Fix for extra keys Fixed possible USB hang on extra keys report set missing * I2C cleanup I2C cleanup and file renames necessary for master branch merge * Boot tracing and clocks cleanup Added optional boot debug trace mode through debug LED codes. General clock code cleanup. * Relocate ARM/Atmel headers Moved ARM/Atmel header folder from drivers to lib and made necessary makefile changes. * Pull request changes Pull request changes * Keymap and compile flag fix Keymap fix for momentary layer. Potential compile flag fix for Travis CI failure. * va_list include fix Fix for va_list compile failure * Include file case fixes Fixes for include files with incorrect case * ctrl and alt67 keyboard readme Added ctrl and alt67 keyboard readme files
5 years ago
Massdrop keyboard support (#3780) * Massdrop SAMD51 Massdrop SAMD51 keyboards initial project upload * Removing relocated files Removing files that were relocated and not deleted from previous location * LED queue fix and cleaning Cleaned some white space or comments. Fix for LED I2C command queue. Cleaned up interrupts. Added debug function for printing numbers to scope through m15 line. * Factory programmed serial usage Ability to use factory programmed serial in hub and keyboard usb descriptors * USB serial number and bugfix Added support for factory programmed serial and usage. Incorporated bootloader's conditional compiling to align project closer. Fixed issue when USB device attempted to send before enabled. General white space and comment cleanup. * Project cleanup Cleaned up project in terms of white space, commented code, and unecessary files. NKRO keyboard is now using correct setreport although KBD was fine to use. Fixed broken linkage to __xprintf for serial debug statements. * Fix for extra keys Fixed possible USB hang on extra keys report set missing * I2C cleanup I2C cleanup and file renames necessary for master branch merge * Boot tracing and clocks cleanup Added optional boot debug trace mode through debug LED codes. General clock code cleanup. * Relocate ARM/Atmel headers Moved ARM/Atmel header folder from drivers to lib and made necessary makefile changes. * Pull request changes Pull request changes * Keymap and compile flag fix Keymap fix for momentary layer. Potential compile flag fix for Travis CI failure. * va_list include fix Fix for va_list compile failure * Include file case fixes Fixes for include files with incorrect case * ctrl and alt67 keyboard readme Added ctrl and alt67 keyboard readme files
5 years ago
Massdrop keyboard support (#3780) * Massdrop SAMD51 Massdrop SAMD51 keyboards initial project upload * Removing relocated files Removing files that were relocated and not deleted from previous location * LED queue fix and cleaning Cleaned some white space or comments. Fix for LED I2C command queue. Cleaned up interrupts. Added debug function for printing numbers to scope through m15 line. * Factory programmed serial usage Ability to use factory programmed serial in hub and keyboard usb descriptors * USB serial number and bugfix Added support for factory programmed serial and usage. Incorporated bootloader's conditional compiling to align project closer. Fixed issue when USB device attempted to send before enabled. General white space and comment cleanup. * Project cleanup Cleaned up project in terms of white space, commented code, and unecessary files. NKRO keyboard is now using correct setreport although KBD was fine to use. Fixed broken linkage to __xprintf for serial debug statements. * Fix for extra keys Fixed possible USB hang on extra keys report set missing * I2C cleanup I2C cleanup and file renames necessary for master branch merge * Boot tracing and clocks cleanup Added optional boot debug trace mode through debug LED codes. General clock code cleanup. * Relocate ARM/Atmel headers Moved ARM/Atmel header folder from drivers to lib and made necessary makefile changes. * Pull request changes Pull request changes * Keymap and compile flag fix Keymap fix for momentary layer. Potential compile flag fix for Travis CI failure. * va_list include fix Fix for va_list compile failure * Include file case fixes Fixes for include files with incorrect case * ctrl and alt67 keyboard readme Added ctrl and alt67 keyboard readme files
5 years ago
Massdrop keyboard support (#3780) * Massdrop SAMD51 Massdrop SAMD51 keyboards initial project upload * Removing relocated files Removing files that were relocated and not deleted from previous location * LED queue fix and cleaning Cleaned some white space or comments. Fix for LED I2C command queue. Cleaned up interrupts. Added debug function for printing numbers to scope through m15 line. * Factory programmed serial usage Ability to use factory programmed serial in hub and keyboard usb descriptors * USB serial number and bugfix Added support for factory programmed serial and usage. Incorporated bootloader's conditional compiling to align project closer. Fixed issue when USB device attempted to send before enabled. General white space and comment cleanup. * Project cleanup Cleaned up project in terms of white space, commented code, and unecessary files. NKRO keyboard is now using correct setreport although KBD was fine to use. Fixed broken linkage to __xprintf for serial debug statements. * Fix for extra keys Fixed possible USB hang on extra keys report set missing * I2C cleanup I2C cleanup and file renames necessary for master branch merge * Boot tracing and clocks cleanup Added optional boot debug trace mode through debug LED codes. General clock code cleanup. * Relocate ARM/Atmel headers Moved ARM/Atmel header folder from drivers to lib and made necessary makefile changes. * Pull request changes Pull request changes * Keymap and compile flag fix Keymap fix for momentary layer. Potential compile flag fix for Travis CI failure. * va_list include fix Fix for va_list compile failure * Include file case fixes Fixes for include files with incorrect case * ctrl and alt67 keyboard readme Added ctrl and alt67 keyboard readme files
5 years ago
Massdrop keyboard support (#3780) * Massdrop SAMD51 Massdrop SAMD51 keyboards initial project upload * Removing relocated files Removing files that were relocated and not deleted from previous location * LED queue fix and cleaning Cleaned some white space or comments. Fix for LED I2C command queue. Cleaned up interrupts. Added debug function for printing numbers to scope through m15 line. * Factory programmed serial usage Ability to use factory programmed serial in hub and keyboard usb descriptors * USB serial number and bugfix Added support for factory programmed serial and usage. Incorporated bootloader's conditional compiling to align project closer. Fixed issue when USB device attempted to send before enabled. General white space and comment cleanup. * Project cleanup Cleaned up project in terms of white space, commented code, and unecessary files. NKRO keyboard is now using correct setreport although KBD was fine to use. Fixed broken linkage to __xprintf for serial debug statements. * Fix for extra keys Fixed possible USB hang on extra keys report set missing * I2C cleanup I2C cleanup and file renames necessary for master branch merge * Boot tracing and clocks cleanup Added optional boot debug trace mode through debug LED codes. General clock code cleanup. * Relocate ARM/Atmel headers Moved ARM/Atmel header folder from drivers to lib and made necessary makefile changes. * Pull request changes Pull request changes * Keymap and compile flag fix Keymap fix for momentary layer. Potential compile flag fix for Travis CI failure. * va_list include fix Fix for va_list compile failure * Include file case fixes Fixes for include files with incorrect case * ctrl and alt67 keyboard readme Added ctrl and alt67 keyboard readme files
5 years ago
  1. /**
  2. * \file
  3. *
  4. * \brief Linker script for running in internal FLASH on the SAMD51J18A
  5. *
  6. * Copyright (c) 2017 Microchip Technology Inc.
  7. *
  8. * \asf_license_start
  9. *
  10. * \page License
  11. *
  12. * SPDX-License-Identifier: Apache-2.0
  13. *
  14. * Licensed under the Apache License, Version 2.0 (the "License"); you may
  15. * not use this file except in compliance with the License.
  16. * You may obtain a copy of the Licence at
  17. *
  18. * http://www.apache.org/licenses/LICENSE-2.0
  19. *
  20. * Unless required by applicable law or agreed to in writing, software
  21. * distributed under the License is distributed on an AS IS BASIS, WITHOUT
  22. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  23. * See the License for the specific language governing permissions and
  24. * limitations under the License.
  25. *
  26. * \asf_license_stop
  27. *
  28. */
  29. OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
  30. OUTPUT_ARCH(arm)
  31. SEARCH_DIR(.)
  32. /* Memory Spaces Definitions */
  33. MEMORY
  34. {
  35. /*rom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00040000*/
  36. rom (rx) : ORIGIN = 0x00004000, LENGTH = 0x0003C000
  37. ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00020000
  38. bkupram (rwx) : ORIGIN = 0x47000000, LENGTH = 0x00002000
  39. qspi (rwx) : ORIGIN = 0x04000000, LENGTH = 0x01000000
  40. }
  41. /* The stack size used by the application. NOTE: you need to adjust according to your application. */
  42. STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x8000;
  43. /* The heap size used by the application. */
  44. HEAP_SIZE = DEFINED(HEAP_SIZE) ? HEAP_SIZE : DEFINED(__heap_size__) ? __heap_size__ : 0x800;
  45. _srom = ORIGIN(rom);
  46. _lrom = LENGTH(rom);
  47. _erom = ORIGIN(rom) + LENGTH(rom);
  48. _sram = ORIGIN(ram);
  49. _lram = LENGTH(ram);
  50. _eram = ORIGIN(ram) + LENGTH(ram);
  51. /* Section Definitions */
  52. SECTIONS
  53. {
  54. .text :
  55. {
  56. . = ALIGN(4);
  57. _sfixed = .;
  58. KEEP(*(.vectors .vectors.*))
  59. *(.text .text.* .gnu.linkonce.t.*)
  60. *(.glue_7t) *(.glue_7)
  61. *(.rodata .rodata* .gnu.linkonce.r.*)
  62. *(.ARM.extab* .gnu.linkonce.armextab.*)
  63. /* Support C constructors, and C destructors in both user code
  64. and the C library. This also provides support for C++ code. */
  65. . = ALIGN(4);
  66. KEEP(*(.init))
  67. . = ALIGN(4);
  68. __preinit_array_start = .;
  69. KEEP (*(.preinit_array))
  70. __preinit_array_end = .;
  71. . = ALIGN(4);
  72. __init_array_start = .;
  73. KEEP (*(SORT(.init_array.*)))
  74. KEEP (*(.init_array))
  75. __init_array_end = .;
  76. . = ALIGN(4);
  77. KEEP (*crtbegin.o(.ctors))
  78. KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
  79. KEEP (*(SORT(.ctors.*)))
  80. KEEP (*crtend.o(.ctors))
  81. . = ALIGN(4);
  82. KEEP(*(.fini))
  83. . = ALIGN(4);
  84. __fini_array_start = .;
  85. KEEP (*(.fini_array))
  86. KEEP (*(SORT(.fini_array.*)))
  87. __fini_array_end = .;
  88. KEEP (*crtbegin.o(.dtors))
  89. KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
  90. KEEP (*(SORT(.dtors.*)))
  91. KEEP (*crtend.o(.dtors))
  92. . = ALIGN(4);
  93. _efixed = .; /* End of text section */
  94. } > rom
  95. /* .ARM.exidx is sorted, so has to go in its own output section. */
  96. PROVIDE_HIDDEN (__exidx_start = .);
  97. .ARM.exidx :
  98. {
  99. *(.ARM.exidx* .gnu.linkonce.armexidx.*)
  100. } > rom
  101. PROVIDE_HIDDEN (__exidx_end = .);
  102. . = ALIGN(4);
  103. _etext = .;
  104. .relocate : AT (_etext)
  105. {
  106. . = ALIGN(4);
  107. _srelocate = .;
  108. *(.ramfunc .ramfunc.*);
  109. *(.data .data.*);
  110. . = ALIGN(4);
  111. _erelocate = .;
  112. } > ram
  113. .bkupram (NOLOAD):
  114. {
  115. . = ALIGN(8);
  116. _sbkupram = .;
  117. *(.bkupram .bkupram.*);
  118. . = ALIGN(8);
  119. _ebkupram = .;
  120. } > bkupram
  121. .qspi (NOLOAD):
  122. {
  123. . = ALIGN(8);
  124. _sqspi = .;
  125. *(.qspi .qspi.*);
  126. . = ALIGN(8);
  127. _eqspi = .;
  128. } > qspi
  129. /* .bss section which is used for uninitialized data */
  130. .bss (NOLOAD) :
  131. {
  132. . = ALIGN(4);
  133. _sbss = . ;
  134. _szero = .;
  135. *(.bss .bss.*)
  136. *(COMMON)
  137. . = ALIGN(4);
  138. _ebss = . ;
  139. _ezero = .;
  140. } > ram
  141. /* .heap section for syscalls */
  142. .heap (NOLOAD) :
  143. {
  144. . = ALIGN(4);
  145. _end = .;
  146. end = .;
  147. _heap_start = .;
  148. . = . + HEAP_SIZE;
  149. _heap_end = .;
  150. } > ram
  151. /* stack section */
  152. .stack (NOLOAD):
  153. {
  154. . = ALIGN(8);
  155. _sstack = .;
  156. . = . + STACK_SIZE;
  157. . = ALIGN(8);
  158. _estack = .;
  159. } > ram
  160. . = ALIGN(4);
  161. _end = . ;
  162. }