Skip to content

Commit

Permalink
The testing github action is improved with support for more compilers.
Browse files Browse the repository at this point in the history
  • Loading branch information
christophe0606 committed Jun 20, 2024
1 parent c414ac5 commit 00cac6d
Show file tree
Hide file tree
Showing 75 changed files with 10,350 additions and 3,061 deletions.
3 changes: 3 additions & 0 deletions Testing/FrameworkInclude/Timing.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
#ifndef _TIMING_H_
#define _TIMING_H_

#include "RTE_Components.h"
#include CMSIS_device_header

#include "Test.h"
#include "arm_math_types.h"
#include "arm_math_types_f16.h"
Expand Down
2 changes: 1 addition & 1 deletion Testing/FrameworkSource/Error.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
#include "arm_math_types.h"
#include "arm_math_types_f16.h"
#include "Error.h"

#include <cinttypes>

namespace Client {

Expand Down
56 changes: 0 additions & 56 deletions Testing/FrameworkSource/Timing.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,63 +4,7 @@

#define SYSTICK_INITIAL_VALUE 0x0FFFFFF
static uint32_t startCycles=0;

#if defined ARMCM0
#include "ARMCM0.h"
#elif defined ARMCM0P
#include "ARMCM0plus.h"
#elif defined ARMCM0P_MPU
#include "ARMCM0plus_MPU.h"
#elif defined ARMCM3
#include "ARMCM3.h"
#elif defined ARMCM4
#include "ARMCM4.h"
#elif defined ARMCM4_FP
#include "ARMCM4_FP.h"
#elif defined ARMCM7
#include "ARMCM7.h"
#elif defined ARMCM7_SP
#include "ARMCM7_SP.h"
#elif defined ARMCM7_DP
#include "ARMCM7_DP.h"
#elif defined (ARMCM33)
#include "ARMCM33.h"
#elif defined (ARMCM33_DSP_FP)
#include "ARMCM33_DSP_FP.h"
#elif defined (ARMCM33_DSP_FP_TZ)
#include "ARMCM33_DSP_FP_TZ.h"
#elif defined ARMSC000
#include "ARMSC000.h"
#elif defined ARMSC300
#include "ARMSC300.h"
#elif defined ARMv8MBL
#include "ARMv8MBL.h"
#elif defined ARMv8MML
#include "ARMv8MML.h"
#elif defined ARMv8MML_DSP
#include "ARMv8MML_DSP.h"
#elif defined ARMv8MML_SP
#include "ARMv8MML_SP.h"
#elif defined ARMv8MML_DSP_SP
#include "ARMv8MML_DSP_SP.h"
#elif defined ARMv8MML_DP
#include "ARMv8MML_DP.h"
#elif defined ARMv8MML_DSP_DP
#include "ARMv8MML_DSP_DP.h"
#elif defined ARMv81MML_DSP_DP_MVE_FP
#include "ARMv81MML_DSP_DP_MVE_FP.h"
#elif defined ARMCM55
#include "ARMCM55.h"
#elif defined ARMCM85
#include "ARMCM85.h"
#elif defined SSE300MPS3
#include "SSE300MPS3.h"
#elif defined ARMv7A
/* TODO */
#else
#define NOTIMING
#endif
#endif /* CORTEXM*/

#if defined(CORTEXA) || defined(CORTEXR)
#if !defined(__GNUC_PYTHON__)
Expand Down
1 change: 1 addition & 0 deletions Testing/cmsis_build/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ results*.txt
*.cbuild.yml
*.cbuild-idx.yml
disasm.s
cprj/
263 changes: 263 additions & 0 deletions Testing/cmsis_build/RTE/Device/ARMCM0P/ARMCM0plus_gcc.ld
Original file line number Diff line number Diff line change
@@ -0,0 +1,263 @@
/*
*-------- <<< Use Configuration Wizard in Context Menu >>> -------------------
*/

/*---------------------- Flash Configuration ----------------------------------
<h> Flash Configuration
<o0> Flash Base Address <0x0-0xFFFFFFFF:8>
<o1> Flash Size (in Bytes) <0x0-0xFFFFFFFF:8>
</h>
-----------------------------------------------------------------------------*/
__ROM_BASE = 0x00000000;
__ROM_SIZE = 0x00040000;

/*--------------------- Embedded RAM Configuration ----------------------------
<h> RAM Configuration
<o0> RAM Base Address <0x0-0xFFFFFFFF:8>
<o1> RAM Size (in Bytes) <0x0-0xFFFFFFFF:8>
</h>
-----------------------------------------------------------------------------*/
__RAM_BASE = 0x20000000;
__RAM_SIZE = 0x00020000;

/*--------------------- Stack / Heap Configuration ----------------------------
<h> Stack / Heap Configuration
<o0> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
<o1> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
</h>
-----------------------------------------------------------------------------*/
__STACK_SIZE = 0x00000400;
__HEAP_SIZE = 0x00000C00;

/*
*-------------------- <<< end of configuration section >>> -------------------
*/

MEMORY
{
FLASH (rx) : ORIGIN = __ROM_BASE, LENGTH = __ROM_SIZE
RAM (rwx) : ORIGIN = __RAM_BASE, LENGTH = __RAM_SIZE
}

/* Linker script to place sections and symbol values. Should be used together
* with other linker script that defines memory regions FLASH and RAM.
* It references following symbols, which must be defined in code:
* Reset_Handler : Entry of reset handler
*
* It defines following symbols, which code can use without definition:
* __exidx_start
* __exidx_end
* __copy_table_start__
* __copy_table_end__
* __zero_table_start__
* __zero_table_end__
* __etext (deprecated)
* __data_start__
* __preinit_array_start
* __preinit_array_end
* __init_array_start
* __init_array_end
* __fini_array_start
* __fini_array_end
* __data_end__
* __bss_start__
* __bss_end__
* __end__
* end
* __HeapLimit
* __StackLimit
* __StackTop
* __stack
*/
ENTRY(Reset_Handler)

SECTIONS
{
.text :
{
KEEP(*(.vectors))
*(.text*)

KEEP(*(.init))
KEEP(*(.fini))

/* .ctors */
*crtbegin.o(.ctors)
*crtbegin?.o(.ctors)
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
*(SORT(.ctors.*))
*(.ctors)

/* .dtors */
*crtbegin.o(.dtors)
*crtbegin?.o(.dtors)
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
*(SORT(.dtors.*))
*(.dtors)

*(.rodata*)

KEEP(*(.eh_frame*))
} > FLASH

.ARM.extab :
{
*(.ARM.extab* .gnu.linkonce.armextab.*)
} > FLASH

__exidx_start = .;
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > FLASH
__exidx_end = .;

.copy.table :
{
. = ALIGN(4);
__copy_table_start__ = .;

LONG (LOADADDR(.data))
LONG (ADDR(.data))
LONG (SIZEOF(.data) / 4)

/* Add each additional data section here */
/*
LONG (LOADADDR(.data2))
LONG (ADDR(.data2))
LONG (SIZEOF(.data2) / 4)
*/
__copy_table_end__ = .;
} > FLASH

.zero.table :
{
. = ALIGN(4);
__zero_table_start__ = .;

/* .bss initialization to zero is already done during C Run-Time Startup.
LONG (ADDR(.bss))
LONG (SIZEOF(.bss) / 4)
*/

/* Add each additional bss section here */
/*
LONG (ADDR(.bss2))
LONG (SIZEOF(.bss2) / 4)
*/
__zero_table_end__ = .;
} > FLASH

/*
* This __etext variable is kept for backward compatibility with older,
* ASM based startup files.
*/
PROVIDE(__etext = LOADADDR(.data));

.data : ALIGN(4)
{
__data_start__ = .;
*(vtable)
*(.data)
*(.data.*)

. = ALIGN(4);
/* preinit data */
PROVIDE_HIDDEN (__preinit_array_start = .);
KEEP(*(.preinit_array))
PROVIDE_HIDDEN (__preinit_array_end = .);

. = ALIGN(4);
/* init data */
PROVIDE_HIDDEN (__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE_HIDDEN (__init_array_end = .);

. = ALIGN(4);
/* finit data */
PROVIDE_HIDDEN (__fini_array_start = .);
KEEP(*(SORT(.fini_array.*)))
KEEP(*(.fini_array))
PROVIDE_HIDDEN (__fini_array_end = .);

KEEP(*(.jcr*))
. = ALIGN(4);
/* All data end */
__data_end__ = .;

} > RAM AT > FLASH

/*
* Secondary data section, optional
*
* Remember to add each additional data section
* to the .copy.table above to assure proper
* initialization during startup.
*/
/*
.data2 : ALIGN(4)
{
. = ALIGN(4);
__data2_start__ = .;
*(.data2)
*(.data2.*)
. = ALIGN(4);
__data2_end__ = .;

} > RAM2 AT > FLASH
*/

.bss :
{
. = ALIGN(4);
__bss_start__ = .;
*(.bss)
*(.bss.*)
*(COMMON)
. = ALIGN(4);
__bss_end__ = .;
} > RAM AT > RAM

/*
* Secondary bss section, optional
*
* Remember to add each additional bss section
* to the .zero.table above to assure proper
* initialization during startup.
*/
/*
.bss2 :
{
. = ALIGN(4);
__bss2_start__ = .;
*(.bss2)
*(.bss2.*)
. = ALIGN(4);
__bss2_end__ = .;
} > RAM2 AT > RAM2
*/

.heap (NOLOAD) :
{
. = ALIGN(8);
__end__ = .;
PROVIDE(end = .);
. = . + __HEAP_SIZE;
. = ALIGN(8);
__HeapLimit = .;
} > RAM

.stack (ORIGIN(RAM) + LENGTH(RAM) - __STACK_SIZE) (NOLOAD) :
{
. = ALIGN(8);
__StackLimit = .;
. = . + __STACK_SIZE;
. = ALIGN(8);
__StackTop = .;
} > RAM
PROVIDE(__stack = __StackTop);

/* Check if data + heap + stack exceeds RAM limit */
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
}
Loading

0 comments on commit 00cac6d

Please sign in to comment.