mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-17 11:13:27 +00:00
Minimal NXP/Teensy support
This commit is contained in:
@@ -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;
|
||||
@@ -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}"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user