Minimal NXP/Teensy support

This commit is contained in:
Ethan Reesor
2020-01-21 21:23:10 -06:00
committed by Ron Evans
parent ca8e1b075a
commit 079a789d49
12 changed files with 754 additions and 8 deletions
+94
View File
@@ -0,0 +1,94 @@
/* Unused, but here to silence a linker warning. */
ENTRY(Reset_Handler)
/* define memory layout */
MEMORY
{
FLASH_TEXT (rx) : ORIGIN = 0x00000000, LENGTH = 1024K
RAM (rwx) : ORIGIN = 0x1FFF0000, LENGTH = 256K
}
_stack_size = 2K;
/* define output sections */
SECTIONS
{
/* Program code and read-only data goes to FLASH_TEXT. */
.text :
{
/* vector table MUST start at 0x0 */
. = 0;
_vector_table = .;
KEEP(*(.isr_vector))
/* this works as long as reset handler doesn't overflow past 0x400 */
*(.resetHandler)
/* flash configuration MUST be at 0x400 */
. = 0x400;
KEEP(*(.flashconfig))
/* everything else */
*(.text)
*(.text*)
*(.rodata)
*(.rodata*)
. = ALIGN(4);
} >FLASH_TEXT = 0xFF
/* Put the stack at the bottom of RAM, so that the application will
* crash on stack overflow instead of silently corrupting memory.
* See: http://blog.japaric.io/stack-overflow-protection/ */
.stack (NOLOAD) :
{
. = ALIGN(4);
. += _stack_size;
_stack_top = .;
} >RAM
/* Start address (in flash) of .data, used by startup code. */
_sidata = LOADADDR(.data);
/* todo add .usbdescriptortable .dmabuffers .usbbuffers */
/* Globals with initial value */
.data :
{
. = ALIGN(4);
_sdata = .; /* used by startup code */
*(.data)
*(.data*)
. = ALIGN(4);
_edata = .; /* used by startup code */
} >RAM AT>FLASH_TEXT
/* Zero-initialized globals */
.bss :
{
. = ALIGN(4);
_sbss = .; /* used by startup code */
*(.bss)
*(.bss*)
*(COMMON)
. = ALIGN(4);
_ebss = .; /* used by startup code */
} >RAM
/DISCARD/ :
{
*(.ARM.exidx) /* causes 'no memory region specified' error in lld */
*(.ARM.exidx.*) /* causes spurious 'undefined reference' errors */
/* all this makes it much harder to debug via disassembly */
*(.debug*)
*(.ARM.*)
*(.comment*)
}
}
/* For the memory allocator. */
_heap_start = _ebss;
_heap_end = ORIGIN(RAM) + LENGTH(RAM);
_globals_start = _sdata;
_globals_end = _ebss;
+18
View File
@@ -0,0 +1,18 @@
{
"inherits": ["cortex-m"],
"llvm-target": "armv7em-none-eabi",
"cpu": "cortex-m4",
"build-tags": ["teensy36", "teensy", "mk66f18", "nxp"],
"cflags": [
"--target=armv7em-none-eabi",
"-Qunused-arguments",
"-mfloat-abi=hard",
"-mfpu=fpv4-sp-d16"
],
"linkerscript": "targets/nxpmk66f18.ld",
"extra-files": [
"src/device/nxp/mk66f18.s"
],
"flash-command": "teensy_loader_cli -mmcu=mk66fx1m0 -v -w {hex}"
}