Initial commit - test serial
This commit is contained in:
BIN
SerialTest/firmware/libc.a
Normal file
BIN
SerialTest/firmware/libc.a
Normal file
Binary file not shown.
BIN
SerialTest/firmware/libm.a
Normal file
BIN
SerialTest/firmware/libm.a
Normal file
Binary file not shown.
BIN
SerialTest/firmware/libpros.a
Normal file
BIN
SerialTest/firmware/libpros.a
Normal file
Binary file not shown.
BIN
SerialTest/firmware/okapilib.a
Normal file
BIN
SerialTest/firmware/okapilib.a
Normal file
Binary file not shown.
1
SerialTest/firmware/squiggles.mk
Normal file
1
SerialTest/firmware/squiggles.mk
Normal file
@ -0,0 +1 @@
|
||||
INCLUDE+=-iquote"$(ROOT)/include/okapi/squiggles"
|
263
SerialTest/firmware/v5-common.ld
Normal file
263
SerialTest/firmware/v5-common.ld
Normal file
@ -0,0 +1,263 @@
|
||||
/* Define the sections, and where they are mapped in memory */
|
||||
SECTIONS
|
||||
{
|
||||
/* This will get stripped out before uploading, but we need to place code
|
||||
here so we can at least link to it (install_hot_table) */
|
||||
.hot_init : {
|
||||
KEEP (*(.hot_magic))
|
||||
KEEP (*(.hot_init))
|
||||
} > HOT_MEMORY
|
||||
|
||||
.text : {
|
||||
KEEP (*(.vectors))
|
||||
/* boot data should be exactly 32 bytes long */
|
||||
*(.boot_data)
|
||||
. = 0x20;
|
||||
*(.boot)
|
||||
. = ALIGN(64);
|
||||
*(.freertos_vectors)
|
||||
*(.text)
|
||||
*(.text.*)
|
||||
*(.gnu.linkonce.t.*)
|
||||
*(.plt)
|
||||
*(.gnu_warning)
|
||||
*(.gcc_except_table)
|
||||
*(.glue_7)
|
||||
*(.glue_7t)
|
||||
*(.vfp11_veneer)
|
||||
*(.ARM.extab)
|
||||
*(.gnu.linkonce.armextab.*)
|
||||
} > RAM
|
||||
|
||||
.init : {
|
||||
KEEP (*(.init))
|
||||
} > RAM
|
||||
|
||||
.fini : {
|
||||
KEEP (*(.fini))
|
||||
} > RAM
|
||||
|
||||
.rodata : {
|
||||
__rodata_start = .;
|
||||
*(.rodata)
|
||||
*(.rodata.*)
|
||||
*(.gnu.linkonce.r.*)
|
||||
__rodata_end = .;
|
||||
} > RAM
|
||||
|
||||
.rodata1 : {
|
||||
__rodata1_start = .;
|
||||
*(.rodata1)
|
||||
*(.rodata1.*)
|
||||
__rodata1_end = .;
|
||||
} > RAM
|
||||
|
||||
.sdata2 : {
|
||||
__sdata2_start = .;
|
||||
*(.sdata2)
|
||||
*(.sdata2.*)
|
||||
*(.gnu.linkonce.s2.*)
|
||||
__sdata2_end = .;
|
||||
} > RAM
|
||||
|
||||
.sbss2 : {
|
||||
__sbss2_start = .;
|
||||
*(.sbss2)
|
||||
*(.sbss2.*)
|
||||
*(.gnu.linkonce.sb2.*)
|
||||
__sbss2_end = .;
|
||||
} > RAM
|
||||
|
||||
.data : {
|
||||
__data_start = .;
|
||||
*(.data)
|
||||
*(.data.*)
|
||||
*(.gnu.linkonce.d.*)
|
||||
*(.jcr)
|
||||
*(.got)
|
||||
*(.got.plt)
|
||||
__data_end = .;
|
||||
} > RAM
|
||||
|
||||
.data1 : {
|
||||
__data1_start = .;
|
||||
*(.data1)
|
||||
*(.data1.*)
|
||||
__data1_end = .;
|
||||
} > RAM
|
||||
|
||||
.got : {
|
||||
*(.got)
|
||||
} > RAM
|
||||
|
||||
.ctors : {
|
||||
__CTOR_LIST__ = .;
|
||||
___CTORS_LIST___ = .;
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
KEEP (*(EXCLUDE_FILE(*crtend.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
__CTOR_END__ = .;
|
||||
___CTORS_END___ = .;
|
||||
} > RAM
|
||||
|
||||
.dtors : {
|
||||
__DTOR_LIST__ = .;
|
||||
___DTORS_LIST___ = .;
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE(*crtend.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
__DTOR_END__ = .;
|
||||
___DTORS_END___ = .;
|
||||
} > RAM
|
||||
|
||||
.fixup : {
|
||||
__fixup_start = .;
|
||||
*(.fixup)
|
||||
__fixup_end = .;
|
||||
} > RAM
|
||||
|
||||
.eh_frame : {
|
||||
*(.eh_frame)
|
||||
} > RAM
|
||||
|
||||
.eh_framehdr : {
|
||||
__eh_framehdr_start = .;
|
||||
*(.eh_framehdr)
|
||||
__eh_framehdr_end = .;
|
||||
} > RAM
|
||||
|
||||
.gcc_except_table : {
|
||||
*(.gcc_except_table)
|
||||
} > RAM
|
||||
|
||||
.mmu_tbl (ALIGN(16384)) : {
|
||||
__mmu_tbl_start = .;
|
||||
*(.mmu_tbl)
|
||||
__mmu_tbl_end = .;
|
||||
} > RAM
|
||||
|
||||
.ARM.exidx : {
|
||||
__exidx_start = .;
|
||||
*(.ARM.exidx*)
|
||||
*(.gnu.linkonce.armexidix.*.*)
|
||||
__exidx_end = .;
|
||||
} > RAM
|
||||
|
||||
.preinit_array : {
|
||||
__preinit_array_start = .;
|
||||
KEEP (*(SORT(.preinit_array.*)))
|
||||
KEEP (*(.preinit_array))
|
||||
__preinit_array_end = .;
|
||||
} > RAM
|
||||
|
||||
.init_array : {
|
||||
__init_array_start = .;
|
||||
KEEP (*(SORT(.init_array.*)))
|
||||
KEEP (*(.init_array))
|
||||
__init_array_end = .;
|
||||
} > RAM
|
||||
|
||||
.fini_array : {
|
||||
__fini_array_start = .;
|
||||
KEEP (*(SORT(.fini_array.*)))
|
||||
KEEP (*(.fini_array))
|
||||
__fini_array_end = .;
|
||||
} > RAM
|
||||
|
||||
.ARM.attributes : {
|
||||
__ARM.attributes_start = .;
|
||||
*(.ARM.attributes)
|
||||
__ARM.attributes_end = .;
|
||||
} > RAM
|
||||
|
||||
.sdata : {
|
||||
__sdata_start = .;
|
||||
*(.sdata)
|
||||
*(.sdata.*)
|
||||
*(.gnu.linkonce.s.*)
|
||||
__sdata_end = .;
|
||||
} > RAM
|
||||
|
||||
.sbss (NOLOAD) : {
|
||||
__sbss_start = .;
|
||||
*(.sbss)
|
||||
*(.sbss.*)
|
||||
*(.gnu.linkonce.sb.*)
|
||||
__sbss_end = .;
|
||||
} > RAM
|
||||
|
||||
.tdata : {
|
||||
__tdata_start = .;
|
||||
*(.tdata)
|
||||
*(.tdata.*)
|
||||
*(.gnu.linkonce.td.*)
|
||||
__tdata_end = .;
|
||||
} > RAM
|
||||
|
||||
.tbss : {
|
||||
__tbss_start = .;
|
||||
*(.tbss)
|
||||
*(.tbss.*)
|
||||
*(.gnu.linkonce.tb.*)
|
||||
__tbss_end = .;
|
||||
} > RAM
|
||||
|
||||
.bss (NOLOAD) : {
|
||||
__bss_start = .;
|
||||
*(.bss)
|
||||
*(.bss.*)
|
||||
*(.gnu.linkonce.b.*)
|
||||
*(COMMON)
|
||||
__bss_end = .;
|
||||
} > RAM
|
||||
|
||||
_SDA_BASE_ = __sdata_start + ((__sbss_end - __sdata_start) / 2 );
|
||||
|
||||
_SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 );
|
||||
|
||||
/* Generate Stack and Heap definitions */
|
||||
|
||||
.heap (NOLOAD) : {
|
||||
. = ALIGN(16);
|
||||
_heap = .;
|
||||
HeapBase = .;
|
||||
_heap_start = .;
|
||||
. += _HEAP_SIZE;
|
||||
_heap_end = .;
|
||||
HeapLimit = .;
|
||||
} > HEAP
|
||||
|
||||
.stack (NOLOAD) : {
|
||||
. = ALIGN(16);
|
||||
_stack_end = .;
|
||||
. += _STACK_SIZE;
|
||||
. = ALIGN(16);
|
||||
_stack = .;
|
||||
__stack = _stack;
|
||||
. = ALIGN(16);
|
||||
_irq_stack_end = .;
|
||||
. += _IRQ_STACK_SIZE;
|
||||
. = ALIGN(16);
|
||||
__irq_stack = .;
|
||||
_supervisor_stack_end = .;
|
||||
. += _SUPERVISOR_STACK_SIZE;
|
||||
. = ALIGN(16);
|
||||
__supervisor_stack = .;
|
||||
_abort_stack_end = .;
|
||||
. += _ABORT_STACK_SIZE;
|
||||
. = ALIGN(16);
|
||||
__abort_stack = .;
|
||||
_fiq_stack_end = .;
|
||||
. += _FIQ_STACK_SIZE;
|
||||
. = ALIGN(16);
|
||||
__fiq_stack = .;
|
||||
_undef_stack_end = .;
|
||||
. += _UNDEF_STACK_SIZE;
|
||||
. = ALIGN(16);
|
||||
__undef_stack = .;
|
||||
} > COLD_MEMORY
|
||||
|
||||
_end = .;
|
||||
}
|
33
SerialTest/firmware/v5-hot.ld
Normal file
33
SerialTest/firmware/v5-hot.ld
Normal file
@ -0,0 +1,33 @@
|
||||
/* This stack is used during initialization, but FreeRTOS tasks have their own
|
||||
stack allocated in BSS or Heap (kernel tasks in FreeRTOS .bss heap; user tasks
|
||||
in standard heap) */
|
||||
_STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x2000;
|
||||
|
||||
_ABORT_STACK_SIZE = DEFINED(_ABORT_STACK_SIZE) ? _ABORT_STACK_SIZE : 1024;
|
||||
_SUPERVISOR_STACK_SIZE = DEFINED(_SUPERVISOR_STACK_SIZE) ? _SUPERVISOR_STACK_SIZE : 2048;
|
||||
_IRQ_STACK_SIZE = DEFINED(_IRQ_STACK_SIZE) ? _IRQ_STACK_SIZE : 1024;
|
||||
_FIQ_STACK_SIZE = DEFINED(_FIQ_STACK_SIZE) ? _FIQ_STACK_SIZE : 1024;
|
||||
_UNDEF_STACK_SIZE = DEFINED(_UNDEF_STACK_SIZE) ? _UNDEF_STACK_SIZE : 1024;
|
||||
|
||||
_HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x02E00000; /* ~48 MB */
|
||||
|
||||
/* Define Memories in the system */
|
||||
start_of_cold_mem = 0x03800000;
|
||||
_COLD_MEM_SIZE = 0x04800000;
|
||||
end_of_cold_mem = start_of_cold_mem + _COLD_MEM_SIZE;
|
||||
|
||||
start_of_hot_mem = 0x07800000;
|
||||
_HOT_MEM_SIZE = 0x00800000;
|
||||
end_of_hot_mem = start_of_hot_mem + _HOT_MEM_SIZE;
|
||||
|
||||
MEMORY
|
||||
{
|
||||
/* user code 72M */
|
||||
COLD_MEMORY : ORIGIN = start_of_cold_mem, LENGTH = _COLD_MEM_SIZE /* Just under 19 MB */
|
||||
HEAP : ORIGIN = 0x04A00000, LENGTH = _HEAP_SIZE
|
||||
HOT_MEMORY : ORIGIN = start_of_hot_mem, LENGTH = _HOT_MEM_SIZE /* Just over 8 MB */
|
||||
}
|
||||
|
||||
REGION_ALIAS("RAM", HOT_MEMORY);
|
||||
|
||||
ENTRY(install_hot_table)
|
33
SerialTest/firmware/v5.ld
Normal file
33
SerialTest/firmware/v5.ld
Normal file
@ -0,0 +1,33 @@
|
||||
/* This stack is used during initialization, but FreeRTOS tasks have their own
|
||||
stack allocated in BSS or Heap (kernel tasks in FreeRTOS .bss heap; user tasks
|
||||
in standard heap) */
|
||||
_STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x2000;
|
||||
|
||||
_ABORT_STACK_SIZE = DEFINED(_ABORT_STACK_SIZE) ? _ABORT_STACK_SIZE : 1024;
|
||||
_SUPERVISOR_STACK_SIZE = DEFINED(_SUPERVISOR_STACK_SIZE) ? _SUPERVISOR_STACK_SIZE : 2048;
|
||||
_IRQ_STACK_SIZE = DEFINED(_IRQ_STACK_SIZE) ? _IRQ_STACK_SIZE : 1024;
|
||||
_FIQ_STACK_SIZE = DEFINED(_FIQ_STACK_SIZE) ? _FIQ_STACK_SIZE : 1024;
|
||||
_UNDEF_STACK_SIZE = DEFINED(_UNDEF_STACK_SIZE) ? _UNDEF_STACK_SIZE : 1024;
|
||||
|
||||
_HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x02E00000; /* ~48 MB */
|
||||
|
||||
/* Define Memories in the system */
|
||||
start_of_cold_mem = 0x03800000;
|
||||
_COLD_MEM_SIZE = 0x04800000;
|
||||
end_of_cold_mem = start_of_cold_mem + _COLD_MEM_SIZE;
|
||||
|
||||
start_of_hot_mem = 0x07800000;
|
||||
_HOT_MEM_SIZE = 0x00800000;
|
||||
end_of_hot_mem = start_of_hot_mem + _HOT_MEM_SIZE;
|
||||
|
||||
MEMORY
|
||||
{
|
||||
/* user code 72M */
|
||||
COLD_MEMORY : ORIGIN = start_of_cold_mem, LENGTH = _COLD_MEM_SIZE /* Just under 19 MB */
|
||||
HEAP : ORIGIN = 0x04A00000, LENGTH = _HEAP_SIZE
|
||||
HOT_MEMORY : ORIGIN = start_of_hot_mem, LENGTH = _HOT_MEM_SIZE /* Just over 8 MB */
|
||||
}
|
||||
|
||||
REGION_ALIAS("RAM", COLD_MEMORY);
|
||||
|
||||
ENTRY(vexStartup)
|
Reference in New Issue
Block a user