Add wasm tacle-bench targets
This commit is contained in:
@ -0,0 +1,56 @@
|
||||
echo off
|
||||
Rem Batch file to compile debie1 using the GCC ARM
|
||||
Rem compiler that came with the iF-DEV-LPC kit from iSYSTEM.
|
||||
|
||||
Rem setlocal
|
||||
|
||||
Rem Set tpd to the Test Program Directory:
|
||||
set tpd=..\..
|
||||
|
||||
Rem Set hnd to the "harness" directory:
|
||||
|
||||
set hnd=%tpd%\harness
|
||||
|
||||
Rem Set ccd to the compiler config directory:
|
||||
set ccd=%tpd%\..\arm7-lpc2138-mam\gcc-if07
|
||||
|
||||
call %ccd%\setup.bat
|
||||
|
||||
Rem Compile the test program modules:
|
||||
|
||||
%CC% %CCOPT% -I%ccd% -I. -I%hnd% %tpd%\class.c -o class.o
|
||||
%CC% %CCOPT% -I%ccd% -I. -I%hnd% %tpd%\classtab.c -o classtab.o
|
||||
%CC% %CCOPT% -I%ccd% -I. -I%hnd% %tpd%\debie.c -o debie.o
|
||||
%CC% %CCOPT% -I%ccd% -I. -I%hnd% -I%tpd% %hnd%\harness.c -o harness.o
|
||||
%CC% %CCOPT% -I%ccd% -I. -I%hnd% %tpd%\health.c -o health.o
|
||||
%CC% %CCOPT% -I%ccd% -I. -I%hnd% %tpd%\hw_if.c -o hw_if.o
|
||||
%CC% %CCOPT% -I%ccd% -I. -I%hnd% %tpd%\measure.c -o measure.o
|
||||
%CC% %CCOPT% -I%ccd% -I. -I%hnd% -I%tpd% target.c -o target.o
|
||||
%CC% %CCOPT% -I%ccd% -I. -I%hnd% %tpd%\tc_hand.c -o tc_hand.o
|
||||
%CC% %CCOPT% -I%ccd% -I. -I%hnd% %tpd%\telem.c -o telem.o
|
||||
|
||||
Rem Compile the run-time support:
|
||||
|
||||
%CC% %ASOPT% %ccd%\crt0.s -o crt0.o
|
||||
%CC% %ASOPT% %ccd%\intvec.s -o intvec.o
|
||||
%CC% %CCOPT% %ccd%\crt_asyst.c -o crt_asyst.o
|
||||
%CC% %CCOPT% -I%ccd% %ccd%\cpulib.c -o cpulib.o
|
||||
|
||||
Rem Link the program:
|
||||
|
||||
%LD% %LDOPT% ^
|
||||
-Xlinker --output=debie1.elf ^
|
||||
-Xlinker --script=%ccd%\link.txt ^
|
||||
intvec.o crt0.o crt_asyst.o cpulib.o ^
|
||||
class.o ^
|
||||
classtab.o ^
|
||||
debie.o ^
|
||||
harness.o ^
|
||||
health.o ^
|
||||
hw_if.o ^
|
||||
measure.o ^
|
||||
target.o ^
|
||||
tc_hand.o ^
|
||||
telem.o
|
||||
|
||||
endlocal
|
||||
@ -0,0 +1,77 @@
|
||||
/*
|
||||
cpulib: Routines for CPU initialization and configuration.
|
||||
|
||||
Target : iSYSTEM LPC2138-M minitarget board (ARM7TDMI)
|
||||
Source : iSYSTEM iF-DEV-LPC kit
|
||||
Changes : Tidorum Ltd (N. Holsti)
|
||||
|
||||
$Id: cpulib.c,v 1.1 2008/04/08 09:44:55 niklas Exp $
|
||||
*/
|
||||
|
||||
#include "cpulib.h"
|
||||
|
||||
void cpulib_init_cpu ( void )
|
||||
{
|
||||
// The MAM is assumed to be initialized in crt0.s.
|
||||
|
||||
// Turn off the LED:
|
||||
|
||||
IO0DIR |= IO_LED; // Set pin direction to output.
|
||||
IO0SET |= IO_LED; // Set pin value to 1 = turn off LED.
|
||||
}
|
||||
|
||||
|
||||
void cpulib_go_fast ( unsigned int mode )
|
||||
{
|
||||
// Turn on PLL from 12 MHz to 60 MHz cclk:
|
||||
|
||||
PLLCFG = 0x24;
|
||||
PLLCON = 0x1;
|
||||
PLLFEED = 0xAA;
|
||||
PLLFEED = 0x55;
|
||||
while ( !( PLLSTAT & 0x400 ) ) {};
|
||||
PLLCON = 0x3;
|
||||
PLLFEED = 0xAA;
|
||||
PLLFEED = 0x55;
|
||||
}
|
||||
|
||||
|
||||
void cpulib_set_led ( int state )
|
||||
{
|
||||
if ( state )
|
||||
IO0CLR = IO_LED; // LED on.
|
||||
else
|
||||
IO0SET = IO_LED; // LED off.
|
||||
}
|
||||
|
||||
|
||||
static volatile int flash_timer;
|
||||
/* Loop counter for timing flash_led. */
|
||||
|
||||
|
||||
void cpulib_flash_led ( void )
|
||||
{
|
||||
cpulib_set_led ( 1 );
|
||||
|
||||
flash_timer = 10000;
|
||||
while ( flash_timer > 0 ) flash_timer--;
|
||||
|
||||
cpulib_set_led ( 0 );
|
||||
}
|
||||
|
||||
|
||||
void cpulib_blink_led ( void )
|
||||
{
|
||||
cpulib_set_led ( 0 );
|
||||
|
||||
flash_timer = 30000;
|
||||
while ( flash_timer > 0 ) flash_timer--;
|
||||
|
||||
cpulib_set_led ( 1 );
|
||||
|
||||
flash_timer = 10000;
|
||||
while ( flash_timer > 0 ) flash_timer--;
|
||||
|
||||
cpulib_set_led ( 0 );
|
||||
}
|
||||
|
||||
@ -0,0 +1,51 @@
|
||||
/*
|
||||
cpulib: Routines for CPU initialization and configuration.
|
||||
|
||||
Target : iSYSTEM LPC2138-M minitarget board (ARM7TDMI)
|
||||
Source : iSYSTEM iF-DEV-LPC kit
|
||||
Changes : Tidorum Ltd (N. Holsti)
|
||||
|
||||
$Id: cpulib.h,v 1.1 2008/04/08 09:44:55 niklas Exp $
|
||||
*/
|
||||
|
||||
|
||||
#ifndef CPULIB_H
|
||||
#define CPULIB_H
|
||||
|
||||
#define REG(x) (*((volatile unsigned int *)(x)))
|
||||
#define IO0DIR REG(0xE0028008) // I/O direction control
|
||||
#define IO0CLR REG(0xE002800C) // output clear
|
||||
#define IO0SET REG(0xE0028004) // output set
|
||||
#define PLLCFG REG(0xE01FC084) // PLL Config Reg.
|
||||
#define PLLCON REG(0xE01FC080) // PLL Control Reg.
|
||||
#define PLLFEED REG(0xE01FC08C) // PLL-Feed 0xAA, 0x55
|
||||
#define PLLSTAT REG(0xE01FC088) // PLL-Status register
|
||||
#define MAMCR REG(0xE01FC000) // MAM Control register
|
||||
#define MAMTIM REG(0xE01FC004) // MAM Timing register
|
||||
|
||||
|
||||
#define IO_LED 0x00000001
|
||||
// The LED is connected to pin P0.0.
|
||||
|
||||
|
||||
void cpulib_init_cpu ( void );
|
||||
// Initializes the processor (in addition to crt0 actions).
|
||||
// Defines the LED control pin (P0.0) as output and emits a "1"
|
||||
// to turn off the LED.
|
||||
|
||||
void cpulib_go_fast ( unsigned int mode );
|
||||
// Sets the PLL to run the processor at 60 MHz.
|
||||
// Does not alter the MAM mode (because of the LPC2138 errata).
|
||||
|
||||
void cpulib_set_led ( int state );
|
||||
// Turns the LED on if state != 0, off if state = 0.
|
||||
|
||||
void cpulib_flash_led ( void );
|
||||
// Turns the LED on for a brief time, then off.
|
||||
// Useful only if the LED is initially off.
|
||||
|
||||
void cpulib_blink_led ( void );
|
||||
// Turns the LED off for short time, then on
|
||||
// for a shorter time, then off again.
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,53 @@
|
||||
/* vector table section
|
||||
* __ASYST_STACK_TOP is defined in lcf file
|
||||
*/
|
||||
|
||||
.code 32
|
||||
|
||||
.extern __ASYST_STACK_TOP
|
||||
|
||||
/* startup
|
||||
* initialize mode
|
||||
* initialize stack pointer
|
||||
* jump to __asyst_main in crt_asyst.c
|
||||
*/
|
||||
|
||||
.section .text, "ax"
|
||||
|
||||
.global __asyst_start
|
||||
|
||||
__asyst_start:
|
||||
|
||||
mrs r0, cpsr
|
||||
bic r0, r0, #0x1F /* clear mode flags */
|
||||
orr r0, r0, #0x10 /* set user mode */
|
||||
msr cpsr, r0
|
||||
|
||||
/* Initialize MAM to Mode 2, 7 cycles flash: */
|
||||
|
||||
ldr r0,_MAMCR
|
||||
ldr r1,_MAMTIM
|
||||
ldr r2,=0
|
||||
str r2,[r0]
|
||||
ldr r2,=7
|
||||
str r2,[r1]
|
||||
ldr r2,=2
|
||||
str r2,[r0]
|
||||
|
||||
ldr sp,_Lstack_top
|
||||
|
||||
bl __asyst_main
|
||||
|
||||
|
||||
/* constants */
|
||||
|
||||
_MAMCR:
|
||||
.long 0xe01fc000 /* Address of MAM Control Register. */
|
||||
|
||||
_MAMTIM:
|
||||
.long 0xe01fc004 /* Address of MAM Timing register. */
|
||||
|
||||
_Lstack_top:
|
||||
.long __ASYST_STACK_TOP
|
||||
|
||||
.end
|
||||
@ -0,0 +1,99 @@
|
||||
typedef unsigned char byte;
|
||||
typedef unsigned int uint;
|
||||
typedef void ( *pfunc )( void );
|
||||
|
||||
int main( int argc, char *argv[ ] );
|
||||
extern byte __ASYST_DATA_LOAD[ ];
|
||||
extern byte __ASYST_DATA_START[ ];
|
||||
extern byte __ASYST_DATA_END[ ];
|
||||
extern byte __ASYST_BSS_START[ ];
|
||||
extern byte __ASYST_BSS_END[ ];
|
||||
extern pfunc __ASYST_CTOR_START[ ];
|
||||
extern pfunc __ASYST_CTOR_END[ ];
|
||||
extern pfunc __ASYST_DTOR_START[ ];
|
||||
extern pfunc __ASYST_DTOR_END[ ];
|
||||
extern byte __ASYST_HEAP_START[ ];
|
||||
|
||||
#define __ASYST_IS_ALIGNED(P) ((((uint)(P)) & (~(sizeof(uint) -1))) == ((uint)(P)))
|
||||
|
||||
void __asyst_memset_byte( byte *pbyDest, byte byValue, uint uiSize )
|
||||
{
|
||||
byte *pbyDestLast = pbyDest + uiSize;
|
||||
for ( ; pbyDest != pbyDestLast; pbyDest++ )
|
||||
pbyDest[ 0 ] = byValue;
|
||||
}
|
||||
|
||||
void __asyst_memset_uint( uint *puiDest, uint uiValue, uint uiSize )
|
||||
{
|
||||
uint *puiDestLast = puiDest + uiSize;
|
||||
for ( ; puiDest != puiDestLast; puiDest++ )
|
||||
puiDest[ 0 ] = uiValue;
|
||||
}
|
||||
|
||||
void __asyst_memset( byte *pbyDest, byte byValue, uint uiSize )
|
||||
{
|
||||
if ( __ASYST_IS_ALIGNED( pbyDest ) &&
|
||||
__ASYST_IS_ALIGNED( uiSize ) ) {
|
||||
uint uiValue = 0;
|
||||
__asyst_memset_byte( ( byte * )&uiValue, byValue, sizeof( uint ) );
|
||||
return __asyst_memset_uint( ( uint * )pbyDest, uiValue,
|
||||
uiSize / sizeof( uint ) );
|
||||
} else
|
||||
return __asyst_memset_byte( pbyDest, byValue, uiSize );
|
||||
|
||||
}
|
||||
|
||||
void *__asyst_memcpy_uint( uint *puiDest, const uint *puiSrc, uint uiSize )
|
||||
{
|
||||
uint *puiDestLast = puiDest + uiSize;
|
||||
for ( ; puiDest != puiDestLast; puiSrc++, puiDest++ )
|
||||
puiDest[ 0 ] = puiSrc[ 0 ];
|
||||
return puiDestLast;
|
||||
}
|
||||
|
||||
void *__asyst_memcpy_byte( byte *pbyDest, const byte *pbySrc, uint uiSize )
|
||||
{
|
||||
byte *pbyDestLast = pbyDest + uiSize;
|
||||
for ( ; pbyDest != pbyDestLast; pbySrc++, pbyDest++ )
|
||||
pbyDest[ 0 ] = pbySrc[ 0 ];
|
||||
return pbyDestLast;
|
||||
}
|
||||
|
||||
void *__asyst_memcpy( byte *pbyDest, const byte *pbySrc, uint uiSize )
|
||||
{
|
||||
if ( __ASYST_IS_ALIGNED( pbyDest ) &&
|
||||
__ASYST_IS_ALIGNED( pbySrc ) &&
|
||||
__ASYST_IS_ALIGNED( uiSize ) )
|
||||
return __asyst_memcpy_uint( ( uint * )pbyDest, ( uint * )pbySrc,
|
||||
uiSize / sizeof( uint ) );
|
||||
else
|
||||
return __asyst_memcpy_byte( pbyDest, pbySrc, uiSize );
|
||||
}
|
||||
|
||||
void __asyst_main()
|
||||
{
|
||||
pfunc *pfTable;
|
||||
// copy data
|
||||
if ( __ASYST_DATA_START != __ASYST_DATA_LOAD )
|
||||
__asyst_memcpy( __ASYST_DATA_START, __ASYST_DATA_LOAD,
|
||||
__ASYST_DATA_END - __ASYST_DATA_START );
|
||||
// zero bss
|
||||
__asyst_memset( __ASYST_BSS_START, 0, __ASYST_BSS_END - __ASYST_BSS_START );
|
||||
|
||||
/* Not used in C project
|
||||
// call constructors
|
||||
for(pfTable=__ASYST_CTOR_END-1; pfTable!=__ASYST_CTOR_START; pfTable--)
|
||||
pfTable[ 0 ]();
|
||||
*/
|
||||
|
||||
// main
|
||||
main( 0, 0 );
|
||||
|
||||
/* Not used in C project
|
||||
// call destructors
|
||||
//for(pfTable=__ASYST_DTOR_START; pfTable!=__ASYST_DTOR_END; pfTable++)
|
||||
//pfTable[ 0 ]();
|
||||
*/
|
||||
|
||||
while ( 1 );
|
||||
}
|
||||
@ -0,0 +1,19 @@
|
||||
.code 32
|
||||
|
||||
.section .vectors, "ax"
|
||||
|
||||
B __asyst_start /* RESET INTERRUPT */
|
||||
B __DefaultHandler /* UNDEFINED INSTRUCTION INTERRUPT */
|
||||
B __DefaultHandler /* SOFTWARE INTERRUPT */
|
||||
B __DefaultHandler /* ABORT (PREFETCH) INTERRUPT */
|
||||
B __DefaultHandler /* ABORT (DATA) INTERRUPT */
|
||||
B __DefaultHandler /* RESERVED */
|
||||
B __DefaultHandler /* IRQ INTERRUPT */
|
||||
B __DefaultHandler /* FIQ INTERRUPT */
|
||||
|
||||
.text
|
||||
|
||||
__DefaultHandler:
|
||||
b __DefaultHandler
|
||||
|
||||
.end
|
||||
@ -0,0 +1,173 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : keyword.h
|
||||
|
||||
Macro definitions for Keil specific keywords to be used
|
||||
in portable parts of the DEBIE DPU software.
|
||||
|
||||
This version adapted to the GNU ARM compiler for the ARM7 as
|
||||
delivered with the IF-DEV-LPC, no kernel.
|
||||
|
||||
Based on the SSF DHI file keyword.h, revision 1.9, Tue Mar 09 12:37:20 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
#ifndef KEYWORD_H
|
||||
#define KEYWORD_H
|
||||
|
||||
#include <string.h>
|
||||
/* For memcpy (). */
|
||||
|
||||
|
||||
/* Integer type definitions for native types that can hold integer
|
||||
values of at least a given number of bits. These types are used
|
||||
as loop counters to give the most natural and speedy code for
|
||||
the current target. This is Not the C99 stdint.h, but the types
|
||||
have similar names.
|
||||
|
||||
There is a particular form of this file for each (kind of) target
|
||||
processor. The present form is for ARM7/GCC, where the widths of
|
||||
the integer types are the following (as observed from the code of
|
||||
the function Check_Type_Size in harness.c):
|
||||
|
||||
Type Octets Bits
|
||||
char 1 8
|
||||
short 2 16
|
||||
int 4 32
|
||||
long 4 32
|
||||
|
||||
This processor/compiler also has alignment concerns, so here we
|
||||
define all telemetry data as octets and access it using memcpy()
|
||||
instead of direct assignment.
|
||||
|
||||
*/
|
||||
|
||||
/* General types */
|
||||
|
||||
typedef int int_least8_t;
|
||||
/* A signed integer covering at least -128 .. +127. */
|
||||
|
||||
typedef unsigned int uint_least8_t;
|
||||
/* An unsigned integer covering at least 0 .. 255. */
|
||||
|
||||
typedef unsigned short uint16_t;
|
||||
/* An unsigned 16-bit integer. */
|
||||
|
||||
typedef int int_least16_t;
|
||||
/* A signed integer covering at least -2**15 .. +2**15 - 1. */
|
||||
|
||||
typedef unsigned int uint_least16_t;
|
||||
/* An unsigned integer covering at least 0 .. 2**16 - 1. */
|
||||
|
||||
typedef uint16_t uskew16_t;
|
||||
/* A 16-bit type, perhaps not an integer, perhaps not 16-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
typedef unsigned int uint32_t;
|
||||
/* An unsigned 32-bit integer. */
|
||||
|
||||
typedef uint32_t uskew32_t;
|
||||
/* A 32-bit type, perhaps not an integer, perhaps not 32-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
|
||||
/* DEBIE-specific types */
|
||||
|
||||
typedef uint16_t data_address_t;
|
||||
/* An address into external data memory. */
|
||||
|
||||
typedef uint16_t code_address_t;
|
||||
/* An address into code memory. */
|
||||
|
||||
|
||||
/* Macros for accessing the DPU data memory by numeric address. */
|
||||
|
||||
extern unsigned char *Data_Pointer ( uint16_t address );
|
||||
|
||||
#define DATA_POINTER(ADDR) Data_Pointer (ADDR)
|
||||
|
||||
/* Macros for accessing and copying multi-octet data. */
|
||||
/* These may need target-specific adjustment if there are */
|
||||
/* alignment restrictions on multi-octet integer values, */
|
||||
/* because the operands in these macros may not be aligned */
|
||||
/* in the required way. */
|
||||
|
||||
#define COPY(DEST,SOURCE) memcpy (&(DEST), &(SOURCE), sizeof(DEST))
|
||||
/* Copies the value of SOURCE to the location DEST. */
|
||||
|
||||
extern unsigned short Short_Value ( uskew16_t *x );
|
||||
|
||||
#define VALUE_OF(SOURCE) Short_Value (&(SOURCE))
|
||||
/* Returns the (integer) value of SOURCE, type uskew16_t. */
|
||||
|
||||
/* Macros for struct (aggregate) assignment. Some compilers */
|
||||
/* may not support assignment statements for such types. */
|
||||
|
||||
#define STRUCT_ASSIGN(DEST,SOURCE,TYPE) DEST = SOURCE
|
||||
|
||||
/* Macros for calling "patch" functions */
|
||||
|
||||
typedef code_address_t fptr_t;
|
||||
/* A function that is to be called after patching code memory. */
|
||||
/* The function may or may not be part of the patched code. */
|
||||
/* In the real SW this is "typedef void (*fptr_t)(void);" */
|
||||
|
||||
extern void Call_Patch ( fptr_t func );
|
||||
/* "Call" the patch func. */
|
||||
|
||||
#define CALL_PATCH(FUNCTION) Call_Patch (FUNCTION)
|
||||
/* Jump to the patched memory. */
|
||||
|
||||
/* Some macros for task and interrupt management */
|
||||
|
||||
#define TASK(TASK_NUMBER)
|
||||
#define PRIORITY(LEVEL)
|
||||
#define INTERRUPT(SOURCE)
|
||||
#define USED_REG_BANK(BANK)
|
||||
|
||||
/* Macro for declaring re-entrant function */
|
||||
|
||||
#define REENTRANT_FUNC
|
||||
|
||||
/* Memory model handling macros */
|
||||
|
||||
#define COMPACT_DATA
|
||||
#define COMPACT
|
||||
|
||||
#define PROGRAM
|
||||
|
||||
#define EXTERNAL
|
||||
#define DIRECT_INTERNAL
|
||||
#define INDIRECT_INTERNAL
|
||||
|
||||
#define LOCATION(ADDRESS)
|
||||
|
||||
/* Dealing with the benchmark target system */
|
||||
|
||||
#include "cpulib.h"
|
||||
|
||||
#define TARGET_INIT { \
|
||||
cpulib_init_cpu (); \
|
||||
cpulib_blink_led (); \
|
||||
cpulib_go_fast (1); \
|
||||
cpulib_blink_led (); }
|
||||
|
||||
#define TARGET_MARK { cpulib_flash_led (); }
|
||||
#define TARGET_REBOOT { cpulib_blink_led (); }
|
||||
#define TARGET_START_TEST { cpulib_blink_led (); cpulib_blink_led (); }
|
||||
#define TARGET_REPEAT_TEST 1
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,816 @@
|
||||
Archive member included because of file (symbol)
|
||||
|
||||
c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_addsubdf3.o)
|
||||
class.o (__adddf3)
|
||||
c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_muldivdf3.o)
|
||||
class.o (__muldf3)
|
||||
c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_fixunsdfsi.o)
|
||||
class.o (__fixunsdfsi)
|
||||
c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_truncdfsf2.o)
|
||||
class.o (__truncdfsf2)
|
||||
c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_addsubsf3.o)
|
||||
class.o (__addsf3)
|
||||
c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_muldivsf3.o)
|
||||
class.o (__mulsf3)
|
||||
c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_cmpsf2.o)
|
||||
class.o (__gtsf2)
|
||||
c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2/../../../../arm-elf/lib\libc.a(lib_a-memcpy.o)
|
||||
health.o (memcpy)
|
||||
|
||||
Allocating common symbols
|
||||
Common symbol size file
|
||||
|
||||
event_queue 0x118 telem.o
|
||||
science_data 0x63b4 telem.o
|
||||
s_w_reset 0x4 hw_if.o
|
||||
ADC_result 0xa measure.o
|
||||
write_checksum 0x1 tc_hand.o
|
||||
failed_data_address
|
||||
0x2 hw_if.o
|
||||
telemetry_data 0x84 telem.o
|
||||
reference_checksum 0x1 hw_if.o
|
||||
memory_mode 0x4 hw_if.o
|
||||
telemetry_end_pointer
|
||||
0x4 telem.o
|
||||
free_slot_index 0x4 telem.o
|
||||
TC_state 0x4 tc_hand.o
|
||||
address_MSB 0x1 tc_hand.o
|
||||
read_memory_checksum
|
||||
0x1 telem.o
|
||||
confirm_hit_result 0x1 measure.o
|
||||
address_LSB 0x1 tc_hand.o
|
||||
code_checksum 0x1 health.o
|
||||
failed_code_address
|
||||
0x2 hw_if.o
|
||||
telemetry_pointer 0x4 telem.o
|
||||
event_queue_length 0x4 telem.o
|
||||
test_level 0x4 measure.o
|
||||
memory_transfer_buffer
|
||||
0x20 tc_hand.o
|
||||
previous_TC 0x4 tc_hand.o
|
||||
internal_time 0x4 health.o
|
||||
TC_look_up 0x80 tc_hand.o
|
||||
EA 0x1 harness.o
|
||||
max_events 0x4 telem.o
|
||||
test_channel 0x1 measure.o
|
||||
forbidden_area 0x100 hw_if.o
|
||||
memory_type 0x4 tc_hand.o
|
||||
code_not_patched 0x1 hw_if.o
|
||||
|
||||
Memory Configuration
|
||||
|
||||
Name Origin Length Attributes
|
||||
MEM_ROM_VECTORS 0x00000000 0x00000040
|
||||
MEM_ROM 0x00000040 0x0007ffc0
|
||||
MEM_RAM 0x40000000 0x00008000
|
||||
*default* 0x00000000 0xffffffff
|
||||
|
||||
Linker script and memory map
|
||||
|
||||
LOAD c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2/../../../../arm-elf/lib\libc.a
|
||||
LOAD c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2/../../../../arm-elf/lib\libnosys.a
|
||||
0x40007ffc __ASYST_STACK_TOP = 0x40007ffc
|
||||
0x00000000 __ASYST_HEAP_SIZE = 0x0
|
||||
|
||||
.vectors 0x00000000 0x20
|
||||
*(.vectors)
|
||||
.vectors 0x00000000 0x20 intvec.o
|
||||
|
||||
.text 0x00000040 0x8778
|
||||
0x00000040 __ASYST_TEXT_START = .
|
||||
*(.text)
|
||||
.text 0x00000040 0x4 intvec.o
|
||||
.text 0x00000044 0x44 crt0.o
|
||||
0x00000044 __asyst_start
|
||||
.text 0x00000088 0x198 crt_asyst.o
|
||||
0x0000015c __asyst_memcpy_byte
|
||||
0x00000088 __asyst_memset_byte
|
||||
0x000000a8 __asyst_memset_uint
|
||||
0x00000180 __asyst_memcpy
|
||||
0x000001cc __asyst_main
|
||||
0x00000134 __asyst_memcpy_uint
|
||||
0x000000c8 __asyst_memset
|
||||
.text 0x00000220 0x17c cpulib.o
|
||||
0x00000244 cpulib_go_fast
|
||||
0x00000314 cpulib_blink_led
|
||||
0x000002c4 cpulib_flash_led
|
||||
0x00000220 cpulib_init_cpu
|
||||
0x0000029c cpulib_set_led
|
||||
.text 0x0000039c 0x368 class.o
|
||||
0x000004a0 CalculateQualityNumber
|
||||
0x00000414 Init_SU_Settings
|
||||
0x0000039c RoughLogarithm
|
||||
0x00000458 InitClassification
|
||||
0x000003c0 GetQualityTerm
|
||||
0x00000584 ClassifyEvent
|
||||
.text 0x00000704 0x0 classtab.o
|
||||
.text 0x00000704 0x40 debie.o
|
||||
0x00000704 main
|
||||
.text 0x00000744 0x3518 harness.o
|
||||
0x00000ab0 Set_AD_Delay
|
||||
0x00000ec4 Enable_Hit_Trigger
|
||||
0x0000076c DisableInterrupt
|
||||
0x000008f8 Read_TC_MSB
|
||||
0x00002b84 StartSystem
|
||||
0x00000c8c End_Of_ADC
|
||||
0x00000780 WaitInterrupt
|
||||
0x00000eec Hit_Trigger_Flag
|
||||
0x00000770 SetInterruptMask
|
||||
0x00000784 SendTaskMail
|
||||
0x00000ad4 Random_AD_Delay
|
||||
0x00001b34 Monitor_Health
|
||||
0x000011b4 Clear_Errors
|
||||
0x00000a6c Next
|
||||
0x00000d98 Set_DAC_Output
|
||||
0x00000b7c Start_Conversion
|
||||
0x00000b78 Update_ADC_Channel_Reg
|
||||
0x00000f70 Set_Test_Pulse_Level
|
||||
0x00000d68 Report_End_Of_ADC_Count
|
||||
0x00000744 WaitInterval
|
||||
0x00000928 Write_TM_MSB
|
||||
0x00000918 Write_TM_LSB
|
||||
0x000008f0 TestMemSeq
|
||||
0x00000a90 Next_Rand
|
||||
0x000008e0 TestMemBits
|
||||
0x00000948 Clear_TC_Timer_Overflow_Flag
|
||||
0x00000764 AttachInterrupt
|
||||
0x00000750 ShortDelay
|
||||
0x000007f4 WaitMail
|
||||
0x00001088 Reboot
|
||||
0x00000f3c Rise_Time_Counter
|
||||
0x000008e8 TestMemData
|
||||
0x00000efc Event_Flag
|
||||
0x00000e0c Random_Event
|
||||
0x00000f80 V_Down
|
||||
0x000009b8 Set_AD_Nominal
|
||||
0x00000d7c Get_Result
|
||||
0x00000768 EnableInterrupt
|
||||
0x00003c34 CreateTask
|
||||
0x00000f1c Get_LSB1_Counter
|
||||
0x00000fa8 Call_Patch
|
||||
0x0000087c Check_Current
|
||||
0x000007d4 isr_send_message
|
||||
0x00000d9c Sim_Self_Test_Trigger
|
||||
0x000013b0 TM_Tests
|
||||
0x00000c78 Report_Start_Conversion_Count
|
||||
0x0000095c Set_TC_Timer_Overflow_Flag
|
||||
0x00003c1c Short_Value
|
||||
0x00000908 Read_TC_LSB
|
||||
0x00000fa4 SignalPeakDetectorReset
|
||||
0x00000fac Check_Type_Size
|
||||
0x00000970 Set_AD_Unlimited
|
||||
0x00000f0c Get_MSB_Counter
|
||||
0x00000f6c Set_SU_Self_Test_Ch
|
||||
0x00001084 Report_Event_Histo
|
||||
0x00001b70 SU_Self_Test_Tests
|
||||
0x00000f2c Get_LSB2_Counter
|
||||
0x00000ed8 Disable_Hit_Trigger
|
||||
0x00000f4c Trigger_Source_0
|
||||
0x00000938 TC_Timer_Overflow_Flag
|
||||
0x00002748 Monitoring_Task_Tests
|
||||
0x00000778 ResetInterruptMask
|
||||
0x00000748 WaitTimeout
|
||||
0x0000074c SetTimeSlice
|
||||
0x00000f5c Trigger_Source_1
|
||||
.text 0x00003c5c 0x1444 health.o
|
||||
0x00003da4 UpdateTime
|
||||
0x00004bb8 HighVoltageCurrent
|
||||
0x00004040 Set_SU_TriggerLevels
|
||||
0x00004b38 InitHealthMonitoring
|
||||
0x00003d60 Set_SU_Error
|
||||
0x000040a4 RestoreSettings
|
||||
0x00004900 MeasureTemperature
|
||||
0x00004640 Read_AD_Channel
|
||||
0x000048fc DPU_SelfTest
|
||||
0x00004e38 HandleHealthMonitoring
|
||||
0x00003c5c Clear_RTX_Errors
|
||||
0x00003dd4 VoltageFailure
|
||||
0x00003c88 SetSoftwareError
|
||||
0x00003dbc UpdatePeriodCounter
|
||||
0x000043ac SelfTestChannel
|
||||
0x00003d44 SetErrorStatus
|
||||
0x00004854 Monitor_DPU_Voltage
|
||||
0x00004e9c Boot
|
||||
0x00004c34 SelfTest_SU
|
||||
0x00003cd0 ClearModeStatusError
|
||||
0x0000473c MeasureVoltage
|
||||
0x00004c7c Monitor
|
||||
0x00003ce8 SetMode
|
||||
0x00004138 DelayAwhile
|
||||
0x00003ca0 ClearSoftwareError
|
||||
0x0000456c TemperatureFailure
|
||||
0x00003ef8 ExceedsLimit
|
||||
0x00003cb4 SetModeStatusError
|
||||
0x00004e88 HealthMonitoringTask
|
||||
0x000046fc DAC_SelfTest
|
||||
0x000045a4 Convert_AD
|
||||
0x00003d08 GetMode
|
||||
0x00004ab0 InitSystem
|
||||
0x00003d1c Clear_SU_Error
|
||||
0x00003f20 Monitor_SU_Voltage
|
||||
0x000049cc CalculateChecksum
|
||||
0x000041b8 ExecuteChannelTest
|
||||
0x00003d90 ClearErrorStatus
|
||||
0x00004b50 LowVoltageCurrent
|
||||
.text 0x000050a0 0x844 hw_if.o
|
||||
0x000051f8 EnableAnalogSwitch
|
||||
0x000052ac GetVoltageStatus
|
||||
0x00005288 ResetPeakDetector
|
||||
0x000053c8 Switch_SU_Off
|
||||
0x000051cc DisableAnalogSwitch
|
||||
0x000056ac CopyProgramCode
|
||||
0x00005864 Init_DPU
|
||||
0x00005260 SelectStartSwitchLevel
|
||||
0x000050b8 SignalMemoryErrors
|
||||
0x00005814 InitCode_RAM
|
||||
0x000050a0 GetResetClass
|
||||
0x000055bc PatchCode
|
||||
0x00005148 SetMemoryConfiguration
|
||||
0x000056f8 Check_RAM
|
||||
0x000052d0 SetTestPulseLevel
|
||||
0x000057b8 InitData_RAM
|
||||
0x0000516c SelectSelfTestChannel
|
||||
0x00005220 SelectTriggerSwitchLevel
|
||||
0x0000557c ReadDelayCounters
|
||||
0x000052d8 SetTriggerLevel
|
||||
0x0000556c ReadRiseTimeCounter
|
||||
0x00005498 Switch_SU_On
|
||||
0x00005168 ResetDelayCounters
|
||||
0x00005158 GetMemoryConfiguration
|
||||
.text 0x000058e4 0x594 measure.o
|
||||
0x00005c6c HandleHitTrigger
|
||||
0x00005aac HandleAcquisition
|
||||
0x00005c58 AcquisitionTask
|
||||
0x000059f8 SetSensorUnitOff
|
||||
0x000058e4 InitAcquisitionTask
|
||||
0x00005e64 HitTriggerTask
|
||||
0x00005a5c Start_SU_SwitchingOn
|
||||
0x000059a4 Update_SU_State
|
||||
0x00005e50 InitHitTriggerTask
|
||||
0x0000590c Switch_SU_State
|
||||
0x00005988 ReadSensorUnit
|
||||
.text 0x00005e78 0x34 target.o
|
||||
0x00005ea4 Get_Code_Byte
|
||||
0x00005e8c Get_Data_Byte
|
||||
0x00005e78 Data_Pointer
|
||||
0x00005e88 Set_Data_Byte
|
||||
.text 0x00005eac 0x13f8 tc_hand.o
|
||||
0x00006068 Set_TC_Error
|
||||
0x0000681c ExecuteCommand
|
||||
0x00006184 UpdateTarget
|
||||
0x00006ee8 TelecommandExecutionTask
|
||||
0x00006c14 MemoryPatch
|
||||
0x00006080 WriteMemory
|
||||
0x00006da8 HandleTelecommand
|
||||
0x00006028 PatchExecCommandOk
|
||||
0x00005eac InitTC_LookUp
|
||||
0x00006efc TC_InterruptService
|
||||
0x0000612c InitTelecommandTask
|
||||
.text 0x000072a4 0x46c telem.o
|
||||
0x000075f4 TM_InterruptService
|
||||
0x00007404 RecordEvent
|
||||
0x000072f0 FindMinQualityRecord
|
||||
0x000072a4 GetFreeRecord
|
||||
0x000072d4 GetElapsedTime
|
||||
0x0000738c IncrementCounters
|
||||
0x000075e0 ResetEventQueueLength
|
||||
0x000074fc ClearEvents
|
||||
.text 0x00007710 0x400 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_addsubdf3.o)
|
||||
0x00007aa4 __floatdidf
|
||||
0x00007a24 __floatsidf
|
||||
0x000079fc __aeabi_ui2d
|
||||
0x00007710 __aeabi_drsub
|
||||
0x00007a50 __extendsfdf2
|
||||
0x0000771c __adddf3
|
||||
0x000079fc __floatunsidf
|
||||
0x0000771c __aeabi_dadd
|
||||
0x00007a90 __aeabi_ul2d
|
||||
0x00007718 __aeabi_dsub
|
||||
0x00007a90 __floatundidf
|
||||
0x00007a24 __aeabi_i2d
|
||||
0x00007aa4 __aeabi_l2d
|
||||
0x00007a50 __aeabi_f2d
|
||||
0x00007718 __subdf3
|
||||
.text 0x00007b10 0x470 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_muldivdf3.o)
|
||||
0x00007d7c __aeabi_ddiv
|
||||
0x00007b10 __aeabi_dmul
|
||||
0x00007d7c __divdf3
|
||||
0x00007b10 __muldf3
|
||||
.text 0x00007f80 0x54 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_fixunsdfsi.o)
|
||||
0x00007f80 __fixunsdfsi
|
||||
0x00007f80 __aeabi_d2uiz
|
||||
.text 0x00007fd4 0xa0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_truncdfsf2.o)
|
||||
0x00007fd4 __aeabi_d2f
|
||||
0x00007fd4 __truncdfsf2
|
||||
.text 0x00008074 0x2ac c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_addsubsf3.o)
|
||||
0x00008080 __aeabi_fadd
|
||||
0x0000807c __subsf3
|
||||
0x00008244 __aeabi_i2f
|
||||
0x0000807c __aeabi_fsub
|
||||
0x00008274 __floatdisf
|
||||
0x00008244 __floatsisf
|
||||
0x00008264 __floatundisf
|
||||
0x0000823c __aeabi_ui2f
|
||||
0x00008274 __aeabi_l2f
|
||||
0x00008264 __aeabi_ul2f
|
||||
0x00008074 __aeabi_frsub
|
||||
0x0000823c __floatunsisf
|
||||
0x00008080 __addsf3
|
||||
.text 0x00008320 0x2f8 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_muldivsf3.o)
|
||||
0x000084b8 __divsf3
|
||||
0x000084b8 __aeabi_fdiv
|
||||
0x00008320 __mulsf3
|
||||
0x00008320 __aeabi_fmul
|
||||
.text 0x00008618 0xf8 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_cmpsf2.o)
|
||||
0x000086fc __aeabi_fcmpgt
|
||||
0x00008620 __lesf2
|
||||
0x00008628 __nesf2
|
||||
0x000086e8 __aeabi_fcmpge
|
||||
0x00008618 __gtsf2
|
||||
0x000086d4 __aeabi_fcmple
|
||||
0x00008628 __eqsf2
|
||||
0x00008628 __cmpsf2
|
||||
0x00008620 __ltsf2
|
||||
0x00008698 __aeabi_cfcmple
|
||||
0x00008618 __gesf2
|
||||
0x000086ac __aeabi_fcmpeq
|
||||
0x00008688 __aeabi_cfrcmple
|
||||
0x000086c0 __aeabi_fcmplt
|
||||
0x00008698 __aeabi_cfcmpeq
|
||||
.text 0x00008710 0xa8 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2/../../../../arm-elf/lib\libc.a(lib_a-memcpy.o)
|
||||
0x00008710 memcpy
|
||||
*(.text.*)
|
||||
*(.glue_7t)
|
||||
.glue_7t 0x000087b8 0x0 intvec.o
|
||||
.glue_7t 0x000087b8 0x0 crt0.o
|
||||
.glue_7t 0x000087b8 0x0 crt_asyst.o
|
||||
.glue_7t 0x000087b8 0x0 cpulib.o
|
||||
.glue_7t 0x000087b8 0x0 class.o
|
||||
.glue_7t 0x000087b8 0x0 classtab.o
|
||||
.glue_7t 0x000087b8 0x0 debie.o
|
||||
.glue_7t 0x000087b8 0x0 harness.o
|
||||
.glue_7t 0x000087b8 0x0 health.o
|
||||
.glue_7t 0x000087b8 0x0 hw_if.o
|
||||
.glue_7t 0x000087b8 0x0 measure.o
|
||||
.glue_7t 0x000087b8 0x0 target.o
|
||||
.glue_7t 0x000087b8 0x0 tc_hand.o
|
||||
.glue_7t 0x000087b8 0x0 telem.o
|
||||
.glue_7t 0x000087b8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_addsubdf3.o)
|
||||
.glue_7t 0x000087b8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_muldivdf3.o)
|
||||
.glue_7t 0x000087b8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_fixunsdfsi.o)
|
||||
.glue_7t 0x000087b8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_truncdfsf2.o)
|
||||
.glue_7t 0x000087b8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_addsubsf3.o)
|
||||
.glue_7t 0x000087b8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_muldivsf3.o)
|
||||
.glue_7t 0x000087b8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_cmpsf2.o)
|
||||
.glue_7t 0x000087b8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2/../../../../arm-elf/lib\libc.a(lib_a-memcpy.o)
|
||||
*(.glue_7)
|
||||
.glue_7 0x000087b8 0x0 intvec.o
|
||||
.glue_7 0x000087b8 0x0 crt0.o
|
||||
.glue_7 0x000087b8 0x0 crt_asyst.o
|
||||
.glue_7 0x000087b8 0x0 cpulib.o
|
||||
.glue_7 0x000087b8 0x0 class.o
|
||||
.glue_7 0x000087b8 0x0 classtab.o
|
||||
.glue_7 0x000087b8 0x0 debie.o
|
||||
.glue_7 0x000087b8 0x0 harness.o
|
||||
.glue_7 0x000087b8 0x0 health.o
|
||||
.glue_7 0x000087b8 0x0 hw_if.o
|
||||
.glue_7 0x000087b8 0x0 measure.o
|
||||
.glue_7 0x000087b8 0x0 target.o
|
||||
.glue_7 0x000087b8 0x0 tc_hand.o
|
||||
.glue_7 0x000087b8 0x0 telem.o
|
||||
.glue_7 0x000087b8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_addsubdf3.o)
|
||||
.glue_7 0x000087b8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_muldivdf3.o)
|
||||
.glue_7 0x000087b8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_fixunsdfsi.o)
|
||||
.glue_7 0x000087b8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_truncdfsf2.o)
|
||||
.glue_7 0x000087b8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_addsubsf3.o)
|
||||
.glue_7 0x000087b8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_muldivsf3.o)
|
||||
.glue_7 0x000087b8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_cmpsf2.o)
|
||||
.glue_7 0x000087b8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2/../../../../arm-elf/lib\libc.a(lib_a-memcpy.o)
|
||||
*(.init)
|
||||
*(.fini)
|
||||
*(.gnu.linkonce.t*)
|
||||
0x000087b8 __ASYST_TEXT_END = .
|
||||
0x000087b8 . = ALIGN (0x4)
|
||||
0x000087b8 __ASYST_CTOR_START = .
|
||||
*(.ctors)
|
||||
0x000087b8 __ASYST_CTOR_END = .
|
||||
0x000087b8 . = ALIGN (0x4)
|
||||
0x000087b8 __ASYST_DTOR_START = .
|
||||
*(.dtors)
|
||||
0x000087b8 __ASYST_DTOR_END = .
|
||||
|
||||
.vfp11_veneer 0x00000000 0x0
|
||||
.vfp11_veneer 0x00000000 0x0 intvec.o
|
||||
.vfp11_veneer 0x00000000 0x0 crt0.o
|
||||
.vfp11_veneer 0x00000000 0x0 crt_asyst.o
|
||||
.vfp11_veneer 0x00000000 0x0 cpulib.o
|
||||
.vfp11_veneer 0x00000000 0x0 class.o
|
||||
.vfp11_veneer 0x00000000 0x0 classtab.o
|
||||
.vfp11_veneer 0x00000000 0x0 debie.o
|
||||
.vfp11_veneer 0x00000000 0x0 harness.o
|
||||
.vfp11_veneer 0x00000000 0x0 health.o
|
||||
.vfp11_veneer 0x00000000 0x0 hw_if.o
|
||||
.vfp11_veneer 0x00000000 0x0 measure.o
|
||||
.vfp11_veneer 0x00000000 0x0 target.o
|
||||
.vfp11_veneer 0x00000000 0x0 tc_hand.o
|
||||
.vfp11_veneer 0x00000000 0x0 telem.o
|
||||
.vfp11_veneer 0x00000000 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_addsubdf3.o)
|
||||
.vfp11_veneer 0x00000000 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_muldivdf3.o)
|
||||
.vfp11_veneer 0x00000000 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_fixunsdfsi.o)
|
||||
.vfp11_veneer 0x00000000 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_truncdfsf2.o)
|
||||
.vfp11_veneer 0x00000000 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_addsubsf3.o)
|
||||
.vfp11_veneer 0x00000000 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_muldivsf3.o)
|
||||
.vfp11_veneer 0x00000000 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_cmpsf2.o)
|
||||
.vfp11_veneer 0x00000000 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2/../../../../arm-elf/lib\libc.a(lib_a-memcpy.o)
|
||||
|
||||
.rodata 0x000087b8 0x184
|
||||
0x000087b8 . = ALIGN (0x4)
|
||||
*(.rodata)
|
||||
.rodata 0x000087b8 0x13f harness.o
|
||||
*fill* 0x000088f7 0x1 00
|
||||
.rodata 0x000088f8 0x24 health.o
|
||||
.rodata 0x0000891c 0x1 hw_if.o
|
||||
0x0000891c checksum_nullifier
|
||||
*(.rodata.*)
|
||||
*fill* 0x0000891d 0x3 00
|
||||
.rodata.str1.4
|
||||
0x00008920 0x1c harness.o
|
||||
*(.rdata)
|
||||
*(.rdata.*)
|
||||
*(.sdata2)
|
||||
*(.sdata2.*)
|
||||
*(.gnu.linkonce.r*)
|
||||
|
||||
.data 0x40000000 0x1e8 load address 0x0000893c
|
||||
0x40000000 . = ALIGN (0x4)
|
||||
0x40000000 __ASYST_DATA_START = .
|
||||
0x0000893c __ASYST_DATA_LOAD = LOADADDR (.data)
|
||||
*(.data)
|
||||
.data 0x40000000 0x0 intvec.o
|
||||
.data 0x40000000 0x0 crt0.o
|
||||
.data 0x40000000 0x0 crt_asyst.o
|
||||
.data 0x40000000 0x0 cpulib.o
|
||||
.data 0x40000000 0x0 class.o
|
||||
.data 0x40000000 0x100 classtab.o
|
||||
0x40000000 event_class
|
||||
.data 0x40000100 0x0 debie.o
|
||||
.data 0x40000100 0xac harness.o
|
||||
0x40000100 switch_su_cmd
|
||||
.data 0x400001ac 0x14 health.o
|
||||
0x400001ac temp_meas_count
|
||||
0x400001bc health_mon_round
|
||||
0x400001b4 checksum_count
|
||||
0x400001b0 voltage_meas_count
|
||||
0x400001b8 ADC_channel_register
|
||||
.data 0x400001c0 0x4 hw_if.o
|
||||
0x400001c0 analog_switch_bit
|
||||
.data 0x400001c4 0x10 measure.o
|
||||
0x400001cc hit_task
|
||||
0x400001c4 hit_budget
|
||||
0x400001c8 hit_budget_left
|
||||
0x400001d0 acq_task
|
||||
.data 0x400001d4 0x0 target.o
|
||||
.data 0x400001d4 0x14 tc_hand.o
|
||||
0x400001d4 SU_config
|
||||
0x400001e4 TC_task
|
||||
.data 0x400001e8 0x0 telem.o
|
||||
.data 0x400001e8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_addsubdf3.o)
|
||||
.data 0x400001e8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_muldivdf3.o)
|
||||
.data 0x400001e8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_fixunsdfsi.o)
|
||||
.data 0x400001e8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_truncdfsf2.o)
|
||||
.data 0x400001e8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_addsubsf3.o)
|
||||
.data 0x400001e8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_muldivsf3.o)
|
||||
.data 0x400001e8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_cmpsf2.o)
|
||||
.data 0x400001e8 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2/../../../../arm-elf/lib\libc.a(lib_a-memcpy.o)
|
||||
*(.data.*)
|
||||
*(.sdata)
|
||||
*(.sdata.*)
|
||||
*(.gnu.linkonce.d*)
|
||||
0x400001e8 __ASYST_DATA_END = .
|
||||
|
||||
.bss 0x400001e8 0x6854
|
||||
0x400001e8 . = ALIGN (0x4)
|
||||
0x400001e8 __ASYST_BSS_START = .
|
||||
*(.bss)
|
||||
.bss 0x400001e8 0x0 intvec.o
|
||||
.bss 0x400001e8 0x0 crt0.o
|
||||
.bss 0x400001e8 0x0 crt_asyst.o
|
||||
.bss 0x400001e8 0x4 cpulib.o
|
||||
.bss 0x400001ec 0x0 class.o
|
||||
.bss 0x400001ec 0x0 classtab.o
|
||||
.bss 0x400001ec 0x0 debie.o
|
||||
.bss 0x400001ec 0xb4 harness.o
|
||||
.bss 0x400002a0 0x1 health.o
|
||||
0x400002a0 self_test_flag
|
||||
.bss 0x400002a1 0x2 hw_if.o
|
||||
0x400002a2 SU_self_test_channel
|
||||
0x400002a1 SU_ctrl_register
|
||||
*fill* 0x400002a3 0x1 00
|
||||
.bss 0x400002a4 0x34 measure.o
|
||||
0x400002a8 SU_state
|
||||
0x400002a4 self_test_SU_number
|
||||
.bss 0x400002d8 0x0 target.o
|
||||
.bss 0x400002d8 0x18 tc_hand.o
|
||||
0x400002dc memory_buffer_index
|
||||
0x400002d8 TC_timeout
|
||||
.bss 0x400002f0 0x0 telem.o
|
||||
.bss 0x400002f0 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_addsubdf3.o)
|
||||
.bss 0x400002f0 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_muldivdf3.o)
|
||||
.bss 0x400002f0 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_fixunsdfsi.o)
|
||||
.bss 0x400002f0 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_truncdfsf2.o)
|
||||
.bss 0x400002f0 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_addsubsf3.o)
|
||||
.bss 0x400002f0 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_muldivsf3.o)
|
||||
.bss 0x400002f0 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_cmpsf2.o)
|
||||
.bss 0x400002f0 0x0 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2/../../../../arm-elf/lib\libc.a(lib_a-memcpy.o)
|
||||
*(.bss.*)
|
||||
*(.sbss)
|
||||
*(.sbss.*)
|
||||
*(COMMON)
|
||||
COMMON 0x400002f0 0x1 harness.o
|
||||
0x400002f0 EA
|
||||
*fill* 0x400002f1 0x3 00
|
||||
COMMON 0x400002f4 0x8 health.o
|
||||
0x400002f4 code_checksum
|
||||
0x400002f8 internal_time
|
||||
COMMON 0x400002fc 0x10f hw_if.o
|
||||
0x400002fc s_w_reset
|
||||
0x40000300 failed_data_address
|
||||
0x40000302 reference_checksum
|
||||
0x40000304 memory_mode
|
||||
0x40000308 failed_code_address
|
||||
0x4000030a forbidden_area
|
||||
0x4000040a code_not_patched
|
||||
*fill* 0x4000040b 0x1 00
|
||||
COMMON 0x4000040c 0x11 measure.o
|
||||
0x4000040c ADC_result
|
||||
0x40000416 confirm_hit_result
|
||||
0x40000418 test_level
|
||||
0x4000041c test_channel
|
||||
*fill* 0x4000041d 0x3 00
|
||||
COMMON 0x40000420 0xb4 tc_hand.o
|
||||
0x40000420 write_checksum
|
||||
0x40000424 TC_state
|
||||
0x40000428 address_MSB
|
||||
0x40000429 address_LSB
|
||||
0x4000042a memory_transfer_buffer
|
||||
0x4000044c previous_TC
|
||||
0x40000450 TC_look_up
|
||||
0x400004d0 memory_type
|
||||
COMMON 0x400004d4 0x6568 telem.o
|
||||
0x400004d4 event_queue
|
||||
0x400005ec science_data
|
||||
0x400069a0 telemetry_data
|
||||
0x40006a24 telemetry_end_pointer
|
||||
0x40006a28 free_slot_index
|
||||
0x40006a2c read_memory_checksum
|
||||
0x40006a30 telemetry_pointer
|
||||
0x40006a34 event_queue_length
|
||||
0x40006a38 max_events
|
||||
*(.gnu.linkonce.b*)
|
||||
0x40006a3c __ASYST_BSS_END = .
|
||||
0x40006a3c end = ALIGN (0x4)
|
||||
|
||||
.heap 0x40006a3c 0x0
|
||||
0x40006a3c . = ALIGN (0x4)
|
||||
0x40006a3c __ASYST_HEAP_START = .
|
||||
0x40006a3c . = (. + __ASYST_HEAP_SIZE)
|
||||
LOAD intvec.o
|
||||
LOAD crt0.o
|
||||
LOAD crt_asyst.o
|
||||
LOAD cpulib.o
|
||||
LOAD class.o
|
||||
LOAD classtab.o
|
||||
LOAD debie.o
|
||||
LOAD harness.o
|
||||
LOAD health.o
|
||||
LOAD hw_if.o
|
||||
LOAD measure.o
|
||||
LOAD target.o
|
||||
LOAD tc_hand.o
|
||||
LOAD telem.o
|
||||
START GROUP
|
||||
LOAD c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a
|
||||
LOAD c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2/../../../../arm-elf/lib\libc.a
|
||||
END GROUP
|
||||
OUTPUT(debie1.exe elf32-littlearm)
|
||||
|
||||
.ARM.attributes
|
||||
0x00000000 0x10
|
||||
.ARM.attributes
|
||||
0x00000000 0x10 intvec.o
|
||||
.ARM.attributes
|
||||
0x00000010 0x10 crt0.o
|
||||
.ARM.attributes
|
||||
0x00000020 0x10 crt_asyst.o
|
||||
.ARM.attributes
|
||||
0x00000030 0x10 cpulib.o
|
||||
.ARM.attributes
|
||||
0x00000040 0x10 class.o
|
||||
.ARM.attributes
|
||||
0x00000050 0x10 classtab.o
|
||||
.ARM.attributes
|
||||
0x00000060 0x10 debie.o
|
||||
.ARM.attributes
|
||||
0x00000070 0x10 harness.o
|
||||
.ARM.attributes
|
||||
0x00000080 0x10 health.o
|
||||
.ARM.attributes
|
||||
0x00000090 0x10 hw_if.o
|
||||
.ARM.attributes
|
||||
0x000000a0 0x10 measure.o
|
||||
.ARM.attributes
|
||||
0x000000b0 0x10 target.o
|
||||
.ARM.attributes
|
||||
0x000000c0 0x10 tc_hand.o
|
||||
.ARM.attributes
|
||||
0x000000d0 0x10 telem.o
|
||||
.ARM.attributes
|
||||
0x000000e0 0x10 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_addsubdf3.o)
|
||||
.ARM.attributes
|
||||
0x000000f0 0x10 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_muldivdf3.o)
|
||||
.ARM.attributes
|
||||
0x00000100 0x10 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_fixunsdfsi.o)
|
||||
.ARM.attributes
|
||||
0x00000110 0x10 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_truncdfsf2.o)
|
||||
.ARM.attributes
|
||||
0x00000120 0x10 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_addsubsf3.o)
|
||||
.ARM.attributes
|
||||
0x00000130 0x10 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_muldivsf3.o)
|
||||
.ARM.attributes
|
||||
0x00000140 0x10 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2\libgcc.a(_cmpsf2.o)
|
||||
.ARM.attributes
|
||||
0x00000150 0x10 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2/../../../../arm-elf/lib\libc.a(lib_a-memcpy.o)
|
||||
|
||||
.debug_line 0x00000000 0x1b8f
|
||||
.debug_line 0x00000000 0x6f intvec.o
|
||||
.debug_line 0x0000006f 0x66 crt0.o
|
||||
.debug_line 0x000000d5 0x97 crt_asyst.o
|
||||
.debug_line 0x0000016c 0x8a cpulib.o
|
||||
.debug_line 0x000001f6 0x110 class.o
|
||||
.debug_line 0x00000306 0x31 classtab.o
|
||||
.debug_line 0x00000337 0x67 debie.o
|
||||
.debug_line 0x0000039e 0x8dc harness.o
|
||||
.debug_line 0x00000c7a 0x4fd health.o
|
||||
.debug_line 0x00001177 0x24c hw_if.o
|
||||
.debug_line 0x000013c3 0x1dc measure.o
|
||||
.debug_line 0x0000159f 0x4d target.o
|
||||
.debug_line 0x000015ec 0x460 tc_hand.o
|
||||
.debug_line 0x00001a4c 0x143 telem.o
|
||||
|
||||
.debug_info 0x00000000 0x6005
|
||||
.debug_info 0x00000000 0x9b intvec.o
|
||||
.debug_info 0x0000009b 0x9d crt0.o
|
||||
.debug_info 0x00000138 0x2e4 crt_asyst.o
|
||||
.debug_info 0x0000041c 0xd1 cpulib.o
|
||||
.debug_info 0x000004ed 0x6d2 class.o
|
||||
.debug_info 0x00000bbf 0x91 classtab.o
|
||||
.debug_info 0x00000c50 0x94 debie.o
|
||||
.debug_info 0x00000ce4 0x1886 harness.o
|
||||
.debug_info 0x0000256a 0xfdd health.o
|
||||
.debug_info 0x00003547 0xb5c hw_if.o
|
||||
.debug_info 0x000040a3 0x9d5 measure.o
|
||||
.debug_info 0x00004a78 0x147 target.o
|
||||
.debug_info 0x00004bbf 0xc19 tc_hand.o
|
||||
.debug_info 0x000057d8 0x82d telem.o
|
||||
|
||||
.debug_abbrev 0x00000000 0x11b9
|
||||
.debug_abbrev 0x00000000 0x12 intvec.o
|
||||
.debug_abbrev 0x00000012 0x14 crt0.o
|
||||
.debug_abbrev 0x00000026 0x130 crt_asyst.o
|
||||
.debug_abbrev 0x00000156 0x90 cpulib.o
|
||||
.debug_abbrev 0x000001e6 0x16d class.o
|
||||
.debug_abbrev 0x00000353 0x56 classtab.o
|
||||
.debug_abbrev 0x000003a9 0x5b debie.o
|
||||
.debug_abbrev 0x00000404 0x361 harness.o
|
||||
.debug_abbrev 0x00000765 0x1ee health.o
|
||||
.debug_abbrev 0x00000953 0x222 hw_if.o
|
||||
.debug_abbrev 0x00000b75 0x1ea measure.o
|
||||
.debug_abbrev 0x00000d5f 0xc7 target.o
|
||||
.debug_abbrev 0x00000e26 0x1bd tc_hand.o
|
||||
.debug_abbrev 0x00000fe3 0x1d6 telem.o
|
||||
|
||||
.debug_aranges 0x00000000 0x1a8
|
||||
.debug_aranges
|
||||
0x00000000 0x28 intvec.o
|
||||
.debug_aranges
|
||||
0x00000028 0x20 crt0.o
|
||||
.debug_aranges
|
||||
0x00000048 0x20 crt_asyst.o
|
||||
.debug_aranges
|
||||
0x00000068 0x20 cpulib.o
|
||||
.debug_aranges
|
||||
0x00000088 0x20 class.o
|
||||
.debug_aranges
|
||||
0x000000a8 0x20 debie.o
|
||||
.debug_aranges
|
||||
0x000000c8 0x20 harness.o
|
||||
.debug_aranges
|
||||
0x000000e8 0x20 health.o
|
||||
.debug_aranges
|
||||
0x00000108 0x20 hw_if.o
|
||||
.debug_aranges
|
||||
0x00000128 0x20 measure.o
|
||||
.debug_aranges
|
||||
0x00000148 0x20 target.o
|
||||
.debug_aranges
|
||||
0x00000168 0x20 tc_hand.o
|
||||
.debug_aranges
|
||||
0x00000188 0x20 telem.o
|
||||
|
||||
.debug_ranges 0x00000000 0x58
|
||||
.debug_ranges 0x00000000 0x20 intvec.o
|
||||
.debug_ranges 0x00000020 0x38 harness.o
|
||||
|
||||
.debug_frame 0x00000000 0x1198
|
||||
.debug_frame 0x00000000 0x9c crt_asyst.o
|
||||
.debug_frame 0x0000009c 0x70 cpulib.o
|
||||
.debug_frame 0x0000010c 0x9c class.o
|
||||
.debug_frame 0x000001a8 0x2c debie.o
|
||||
.debug_frame 0x000001d4 0x680 harness.o
|
||||
.debug_frame 0x00000854 0x3b8 health.o
|
||||
.debug_frame 0x00000c0c 0x210 hw_if.o
|
||||
.debug_frame 0x00000e1c 0x12c measure.o
|
||||
.debug_frame 0x00000f48 0x58 target.o
|
||||
.debug_frame 0x00000fa0 0x11c tc_hand.o
|
||||
.debug_frame 0x000010bc 0xdc telem.o
|
||||
|
||||
.debug_loc 0x00000000 0x2359
|
||||
.debug_loc 0x00000000 0x1de crt_asyst.o
|
||||
.debug_loc 0x000001de 0x3e cpulib.o
|
||||
.debug_loc 0x0000021c 0x1be class.o
|
||||
.debug_loc 0x000003da 0x1f debie.o
|
||||
.debug_loc 0x000003f9 0xa0e harness.o
|
||||
.debug_loc 0x00000e07 0x7ad health.o
|
||||
.debug_loc 0x000015b4 0x510 hw_if.o
|
||||
.debug_loc 0x00001ac4 0x278 measure.o
|
||||
.debug_loc 0x00001d3c 0x6e target.o
|
||||
.debug_loc 0x00001daa 0x3bc tc_hand.o
|
||||
.debug_loc 0x00002166 0x1f3 telem.o
|
||||
|
||||
.debug_pubnames
|
||||
0x00000000 0x12e8
|
||||
.debug_pubnames
|
||||
0x00000000 0xa9 crt_asyst.o
|
||||
.debug_pubnames
|
||||
0x000000a9 0x76 cpulib.o
|
||||
.debug_pubnames
|
||||
0x0000011f 0x91 class.o
|
||||
.debug_pubnames
|
||||
0x000001b0 0x22 classtab.o
|
||||
.debug_pubnames
|
||||
0x000001d2 0x1b debie.o
|
||||
.debug_pubnames
|
||||
0x000001ed 0x525 harness.o
|
||||
.debug_pubnames
|
||||
0x00000712 0x3b6 health.o
|
||||
.debug_pubnames
|
||||
0x00000ac8 0x2f6 hw_if.o
|
||||
.debug_pubnames
|
||||
0x00000dbe 0x1a4 measure.o
|
||||
.debug_pubnames
|
||||
0x00000f62 0x59 target.o
|
||||
.debug_pubnames
|
||||
0x00000fbb 0x1be tc_hand.o
|
||||
.debug_pubnames
|
||||
0x00001179 0x16f telem.o
|
||||
|
||||
.debug_str 0x00000000 0x21b1
|
||||
.debug_str 0x00000000 0x1c4 crt_asyst.o
|
||||
0x1db (size before relaxing)
|
||||
.debug_str 0x000001c4 0x88 cpulib.o
|
||||
0xf9 (size before relaxing)
|
||||
.debug_str 0x0000024c 0x611 class.o
|
||||
0x710 (size before relaxing)
|
||||
.debug_str 0x0000085d 0x11 classtab.o
|
||||
0xf3 (size before relaxing)
|
||||
.debug_str 0x0000086e 0xe debie.o
|
||||
0xe9 (size before relaxing)
|
||||
.debug_str 0x0000087c 0xb1c harness.o
|
||||
0x1134 (size before relaxing)
|
||||
.debug_str 0x00001398 0x59b health.o
|
||||
0xd8d (size before relaxing)
|
||||
.debug_str 0x00001933 0x39f hw_if.o
|
||||
0x9f0 (size before relaxing)
|
||||
.debug_str 0x00001cd2 0x15d measure.o
|
||||
0x948 (size before relaxing)
|
||||
.debug_str 0x00001e2f 0x45 target.o
|
||||
0x150 (size before relaxing)
|
||||
.debug_str 0x00001e74 0x253 tc_hand.o
|
||||
0xaff (size before relaxing)
|
||||
.debug_str 0x000020c7 0xea telem.o
|
||||
0x825 (size before relaxing)
|
||||
|
||||
.comment 0x00000000 0xea
|
||||
.comment 0x00000000 0x12 crt_asyst.o
|
||||
.comment 0x00000012 0x12 cpulib.o
|
||||
.comment 0x00000024 0x12 class.o
|
||||
.comment 0x00000036 0x12 classtab.o
|
||||
.comment 0x00000048 0x12 debie.o
|
||||
.comment 0x0000005a 0x12 harness.o
|
||||
.comment 0x0000006c 0x12 health.o
|
||||
.comment 0x0000007e 0x12 hw_if.o
|
||||
.comment 0x00000090 0x12 measure.o
|
||||
.comment 0x000000a2 0x12 target.o
|
||||
.comment 0x000000b4 0x12 tc_hand.o
|
||||
.comment 0x000000c6 0x12 telem.o
|
||||
.comment 0x000000d8 0x12 c:/ifdev/2007/gcc/arm/bin/../lib/gcc/arm-elf/4.2.2/../../../../arm-elf/lib\libc.a(lib_a-memcpy.o)
|
||||
@ -0,0 +1,98 @@
|
||||
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
|
||||
OUTPUT_ARCH(arm)
|
||||
ENTRY(__asyst_start)
|
||||
|
||||
/*
|
||||
Memory layout for NXP LPC2138:
|
||||
- 512 KiB FLASH from 0x00000000 to 0x0007ffff
|
||||
- 32 KiB SRAM from 0x40000000 to 0x40007fff
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_ROM_VECTORS :
|
||||
ORIGIN = 0x00000000, LENGTH = 0x00000040
|
||||
MEM_ROM :
|
||||
ORIGIN = ORIGIN(MEM_ROM_VECTORS) + LENGTH(MEM_ROM_VECTORS), LENGTH = 512k - LENGTH(MEM_ROM_VECTORS)
|
||||
MEM_RAM :
|
||||
ORIGIN = 0x40000000, LENGTH = 32k
|
||||
}
|
||||
__ASYST_STACK_TOP = ORIGIN(MEM_RAM) + LENGTH(MEM_RAM) - 4;
|
||||
__ASYST_HEAP_SIZE = 0x0;
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
.vectors : /* vector table */
|
||||
{
|
||||
*(.vectors)
|
||||
} > MEM_ROM_VECTORS
|
||||
|
||||
.text :
|
||||
{
|
||||
__ASYST_TEXT_START = .; /* executable code */
|
||||
*(.text)
|
||||
*(.text.*)
|
||||
*(.glue_7t) *(.glue_7)
|
||||
*(.init)
|
||||
*(.fini)
|
||||
*(.gnu.linkonce.t*)
|
||||
__ASYST_TEXT_END = .;
|
||||
|
||||
. = ALIGN(4);
|
||||
__ASYST_CTOR_START = .; /* constructors */
|
||||
*(.ctors)
|
||||
__ASYST_CTOR_END = .;
|
||||
|
||||
. = ALIGN(4);
|
||||
__ASYST_DTOR_START = .; /* destructors */
|
||||
*(.dtors)
|
||||
__ASYST_DTOR_END = .;
|
||||
} > MEM_ROM
|
||||
|
||||
.rodata :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
*(.rodata) /* read-only data */
|
||||
*(.rodata.*)
|
||||
*(.rdata)
|
||||
*(.rdata.*)
|
||||
*(.sdata2) /* small constant data */
|
||||
*(.sdata2.*)
|
||||
*(.gnu.linkonce.r*)
|
||||
} > MEM_ROM
|
||||
|
||||
.data :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
__ASYST_DATA_START = .; /* start of the data */
|
||||
__ASYST_DATA_LOAD = LOADADDR(.data);
|
||||
*(.data) /* data */
|
||||
*(.data.*)
|
||||
*(.sdata) /* small data */
|
||||
*(.sdata.*)
|
||||
*(.gnu.linkonce.d*)
|
||||
__ASYST_DATA_END = .; /* end of the data */
|
||||
} >MEM_RAM AT>MEM_ROM
|
||||
|
||||
.bss (NOLOAD) :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
__ASYST_BSS_START = .; /* start of the bss */
|
||||
*(.bss)
|
||||
*(.bss.*)
|
||||
*(.sbss)
|
||||
*(.sbss.*)
|
||||
*(COMMON)
|
||||
*(.gnu.linkonce.b*)
|
||||
__ASYST_BSS_END = .; /* end of the bss */
|
||||
end = ALIGN(4) ;
|
||||
} > MEM_RAM
|
||||
|
||||
.heap (NOLOAD) :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
__ASYST_HEAP_START = .; /* start of the heap */
|
||||
. += __ASYST_HEAP_SIZE;
|
||||
} > MEM_RAM
|
||||
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
/*
|
||||
problems.h for arm7/gcc-if07
|
||||
|
||||
Part of the DEBIE-1 benchmark.
|
||||
|
||||
$Id: problems.h,v 1.1 2008/04/09 11:26:38 niklas Exp $
|
||||
*/
|
||||
|
||||
|
||||
#ifndef PROBLEMS_H
|
||||
#define PROBLEMS_H
|
||||
|
||||
#define FOR_PROBLEM(P)
|
||||
/* A marker to indicate that the program is about to execute */
|
||||
/* a test case that is to be included in the analysis problem */
|
||||
/* identified by P. */
|
||||
|
||||
#define END_PROBLEM
|
||||
/* A marker to indicate the end of a test case that is to be */
|
||||
/* included in the analysis problem identified by the last */
|
||||
/* executed FOR_PROBLEM. */
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,46 @@
|
||||
echo off
|
||||
Rem Batch file to set up environment for GCC ARM7 C compiler from iSYSTEMS
|
||||
Rem for the iF-DEV-LPC kit, for all test programs.
|
||||
Rem
|
||||
Rem Copyright (c) 2008 Tidorum Ltd.
|
||||
Rem
|
||||
Rem $Revision: 1.2 $
|
||||
|
||||
|
||||
Rem GCC installation paths:
|
||||
|
||||
set IFDEVD=C:\iFDEV\2007
|
||||
set GCCD=%IFDEVD%\gcc\arm
|
||||
set GCCbin=%GCCD%\bin
|
||||
set GCClib=%GCCD%\lib
|
||||
|
||||
set PATH=%GCCbin%;%PATH%
|
||||
|
||||
Rem C compiler and options:
|
||||
|
||||
set CC=arm-elf-gcc.exe
|
||||
|
||||
set CCOPT=-c -mcpu=arm7tdmi -g -O2
|
||||
|
||||
set ASOPT=-c -mcpu=arm7tdmi -g
|
||||
|
||||
Rem Linker and options:
|
||||
|
||||
set LD=arm-elf-gcc.exe
|
||||
|
||||
set LDOPT=-nostartfiles ^
|
||||
-mlittle-endian ^
|
||||
-mcpu=arm7tdmi ^
|
||||
-Xlinker -lc ^
|
||||
-lnosys ^
|
||||
-Xlinker -Map=link.map ^
|
||||
-Xlinker -n
|
||||
|
||||
Rem Common runtime files to be included in the link:
|
||||
Rem crt0.s (use ASOPT)
|
||||
Rem intvec.s (use ASOPT)
|
||||
Rem crt_asyst.c (use CCOPT)
|
||||
Rem cpulib.c (use CCOPT)
|
||||
Rem
|
||||
Rem Use the linker script file link.txt, with the LD option
|
||||
Rem -Xlinker --script=%dir%\link.txt.
|
||||
@ -0,0 +1,67 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW, test harness for WCET analysis
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : target.c
|
||||
|
||||
Target-specific implementations of the DNI operations, specifically
|
||||
for the iF-DEV-LPC kit and the LPC2138 processor.
|
||||
|
||||
Based, with extensive changes, on parts of the SSF file rtx_if.c,
|
||||
rev 1.13, Fri May 21 00:14:00 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* This file contains one set of operations, as follows:
|
||||
|
||||
> memory operations: dpu_ctrl.h
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#include "keyword.h"
|
||||
|
||||
|
||||
/* Memory operations : dpu_ctrl.h */
|
||||
|
||||
|
||||
#include "dpu_ctrl.h"
|
||||
|
||||
|
||||
#define DATA_MEM_BASE 0x40000000L
|
||||
/* The SRAM starts at this address. */
|
||||
|
||||
|
||||
unsigned char *Data_Pointer ( uint16_t address )
|
||||
{
|
||||
return ( unsigned char * )( DATA_MEM_BASE + ( uint32_t )address );
|
||||
}
|
||||
|
||||
|
||||
void Set_Data_Byte ( data_address_t addr, unsigned char value )
|
||||
{
|
||||
/* *(Data_Pointer (addr)) = value; */
|
||||
/* Safer to do nothing. */
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Data_Byte ( data_address_t addr )
|
||||
{
|
||||
return *( Data_Pointer ( addr ) );
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Code_Byte ( code_address_t addr )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Module : target_tm_data.h
|
||||
|
||||
The target-specific aspects of the Telemetry Data Structure.
|
||||
This version for the target arm7/gcc-if07.
|
||||
|
||||
Based on the SSF file tm_data.h, rev 1.22, Mon May 31 10:10:12 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef TARGET_TM_DATA_H
|
||||
#define TARGET_TM_DATA_H
|
||||
|
||||
#define MAX_EVENTS 910
|
||||
/* Set to make the entire program fit in 32 KiB of data memory. */
|
||||
|
||||
#endif
|
||||
165
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7-x1/keyword.h
Normal file
165
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7-x1/keyword.h
Normal file
@ -0,0 +1,165 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : keyword.h
|
||||
|
||||
Macro definitions for Keil specific keywords to be used
|
||||
in portable parts of the DEBIE DPU software.
|
||||
|
||||
This version adapted to the GNU ARM compiler for the ARM7 as
|
||||
delivered with the IF-DEV-LPC, no kernel.
|
||||
|
||||
Based on the SSF DHI file keyword.h, revision 1.9, Tue Mar 09 12:37:20 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
#ifndef KEYWORD_H
|
||||
#define KEYWORD_H
|
||||
|
||||
|
||||
/* Integer type definitions for native types that can hold integer
|
||||
values of at least a given number of bits. These types are used
|
||||
as loop counters to give the most natural and speedy code for
|
||||
the current target. This is Not the C99 stdint.h, but the types
|
||||
have similar names.
|
||||
|
||||
There is a particular form of this file for each (kind of) target
|
||||
processor. The present form is for ARM7/GCC, where the widths of
|
||||
the integer types are the following (as observed from the code of
|
||||
the function Check_Type_Size in harness.c):
|
||||
|
||||
Type Octets Bits
|
||||
char 1 8
|
||||
short 2 16
|
||||
int 4 32
|
||||
long 4 32
|
||||
|
||||
This processor/compiler also has alignment concerns, so here we
|
||||
define all telemetry data as octets and access it using memcpy()
|
||||
instead of direct assignment.
|
||||
|
||||
*/
|
||||
|
||||
/* General types */
|
||||
|
||||
typedef int int_least8_t;
|
||||
/* A signed integer covering at least -128 .. +127. */
|
||||
|
||||
typedef unsigned int uint_least8_t;
|
||||
/* An unsigned integer covering at least 0 .. 255. */
|
||||
|
||||
typedef unsigned short uint16_t;
|
||||
/* An unsigned 16-bit integer. */
|
||||
|
||||
typedef int int_least16_t;
|
||||
/* A signed integer covering at least -2**15 .. +2**15 - 1. */
|
||||
|
||||
typedef unsigned int uint_least16_t;
|
||||
/* An unsigned integer covering at least 0 .. 2**16 - 1. */
|
||||
|
||||
typedef uint16_t uskew16_t;
|
||||
/* A 16-bit type, perhaps not an integer, perhaps not 16-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
typedef unsigned int uint32_t;
|
||||
/* An unsigned 32-bit integer. */
|
||||
|
||||
typedef uint32_t uskew32_t;
|
||||
/* A 32-bit type, perhaps not an integer, perhaps not 32-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
|
||||
/* DEBIE-specific types */
|
||||
|
||||
typedef uint16_t data_address_t;
|
||||
/* An address into external data memory. */
|
||||
|
||||
typedef uint16_t code_address_t;
|
||||
/* An address into code memory. */
|
||||
|
||||
|
||||
/* Macros for accessing the DPU data memory by numeric address. */
|
||||
|
||||
extern unsigned char *Data_Pointer ( uint16_t address );
|
||||
|
||||
#define DATA_POINTER(ADDR) Data_Pointer (ADDR)
|
||||
|
||||
/* Macros for accessing and copying multi-octet data. */
|
||||
/* These may need target-specific adjustment if there are */
|
||||
/* alignment restrictions on multi-octet integer values, */
|
||||
/* because the operands in these macros may not be aligned */
|
||||
/* in the required way. */
|
||||
|
||||
extern void wcc_memcpy( void *, void *, int );
|
||||
|
||||
#define COPY(DEST,SOURCE) wcc_memcpy (&(DEST), &(SOURCE), sizeof(DEST))
|
||||
/* Copies the value of SOURCE to the location DEST. */
|
||||
|
||||
extern unsigned short Short_Value ( uskew16_t *x );
|
||||
|
||||
#define VALUE_OF(SOURCE) Short_Value (&(SOURCE))
|
||||
/* Returns the (integer) value of SOURCE, type uskew16_t. */
|
||||
|
||||
/* Macros for struct (aggregate) assignment. Some compilers */
|
||||
/* may not support assignment statements for such types. */
|
||||
|
||||
#define STRUCT_ASSIGN(DEST,SOURCE,TYPE) DEST = SOURCE
|
||||
|
||||
/* Macros for calling "patch" functions */
|
||||
|
||||
typedef code_address_t fptr_t;
|
||||
/* A function that is to be called after patching code memory. */
|
||||
/* The function may or may not be part of the patched code. */
|
||||
/* In the real SW this is "typedef void (*fptr_t)(void);" */
|
||||
|
||||
extern void Call_Patch ( fptr_t func );
|
||||
/* "Call" the patch func. */
|
||||
|
||||
#define CALL_PATCH(FUNCTION) Call_Patch (FUNCTION)
|
||||
/* Jump to the patched memory. */
|
||||
|
||||
/* Some macros for task and interrupt management */
|
||||
|
||||
#define TASK(TASK_NUMBER)
|
||||
#define PRIORITY(LEVEL)
|
||||
#define INTERRUPT(SOURCE)
|
||||
#define USED_REG_BANK(BANK)
|
||||
|
||||
/* Macro for declaring re-entrant function */
|
||||
|
||||
#define REENTRANT_FUNC
|
||||
|
||||
/* Memory model handling macros */
|
||||
|
||||
#define COMPACT_DATA
|
||||
#define COMPACT
|
||||
|
||||
#define PROGRAM
|
||||
|
||||
#define EXTERNAL
|
||||
#define DIRECT_INTERNAL
|
||||
#define INDIRECT_INTERNAL
|
||||
|
||||
#define LOCATION(ADDRESS)
|
||||
|
||||
/* Dealing with the benchmark target system */
|
||||
|
||||
#define TARGET_INIT
|
||||
#define TARGET_MARK
|
||||
#define TARGET_REBOOT
|
||||
#define TARGET_START_TEST
|
||||
#define TARGET_REPEAT_TEST 0
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,23 @@
|
||||
/*
|
||||
problems.h for arm7/gcc-if07
|
||||
|
||||
Part of the DEBIE-1 benchmark.
|
||||
|
||||
$Id: problems.h,v 1.1 2008/04/09 11:26:38 niklas Exp $
|
||||
*/
|
||||
|
||||
|
||||
#ifndef PROBLEMS_H
|
||||
#define PROBLEMS_H
|
||||
|
||||
#define FOR_PROBLEM(P)
|
||||
/* A marker to indicate that the program is about to execute */
|
||||
/* a test case that is to be included in the analysis problem */
|
||||
/* identified by P. */
|
||||
|
||||
#define END_PROBLEM
|
||||
/* A marker to indicate the end of a test case that is to be */
|
||||
/* included in the analysis problem identified by the last */
|
||||
/* executed FOR_PROBLEM. */
|
||||
|
||||
#endif
|
||||
67
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7-x1/target.c
Normal file
67
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7-x1/target.c
Normal file
@ -0,0 +1,67 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW, test harness for WCET analysis
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : target.c
|
||||
|
||||
Target-specific implementations of the DNI operations, specifically
|
||||
for the iF-DEV-LPC kit and the LPC2138 processor.
|
||||
|
||||
Based, with extensive changes, on parts of the SSF file rtx_if.c,
|
||||
rev 1.13, Fri May 21 00:14:00 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* This file contains one set of operations, as follows:
|
||||
|
||||
> memory operations: dpu_ctrl.h
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#include "keyword.h"
|
||||
|
||||
|
||||
/* Memory operations : dpu_ctrl.h */
|
||||
|
||||
|
||||
#include "dpu_ctrl.h"
|
||||
|
||||
|
||||
#define DATA_MEM_BASE 0x38000000L
|
||||
/* The SRAM starts at this address. */
|
||||
|
||||
|
||||
unsigned char *Data_Pointer ( uint16_t address )
|
||||
{
|
||||
return ( unsigned char * )( DATA_MEM_BASE + ( uint32_t )address );
|
||||
}
|
||||
|
||||
|
||||
void Set_Data_Byte ( data_address_t addr, unsigned char value )
|
||||
{
|
||||
/* *(Data_Pointer (addr)) = value; */
|
||||
/* Safer to do nothing. */
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Data_Byte ( data_address_t addr )
|
||||
{
|
||||
return *( Data_Pointer ( addr ) );
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Code_Byte ( code_address_t addr )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Module : target_tm_data.h
|
||||
|
||||
The target-specific aspects of the Telemetry Data Structure.
|
||||
|
||||
Based on the SSF file tm_data.h, rev 1.22, Mon May 31 10:10:12 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef TARGET_TM_DATA_H
|
||||
#define TARGET_TM_DATA_H
|
||||
|
||||
#define MAX_EVENTS 1261
|
||||
/* Same as in the original DEBIE-1 SW, although there limited
|
||||
by the size of the data memory.
|
||||
*/
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,10 @@
|
||||
#include "keyword.h"
|
||||
|
||||
void wcc_memcpy( void *dest, void *src, int size )
|
||||
{
|
||||
int i;
|
||||
_Pragma( "loopbound min 1 max 4" )
|
||||
for ( i = 0; i < size; i++ )
|
||||
( ( unsigned char * )dest )[ i ] = ( ( unsigned char * )src )[ i ];
|
||||
return;
|
||||
}
|
||||
165
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7-x2/keyword.h
Normal file
165
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7-x2/keyword.h
Normal file
@ -0,0 +1,165 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : keyword.h
|
||||
|
||||
Macro definitions for Keil specific keywords to be used
|
||||
in portable parts of the DEBIE DPU software.
|
||||
|
||||
This version adapted to the GNU ARM compiler for the ARM7 as
|
||||
delivered with the IF-DEV-LPC, no kernel.
|
||||
|
||||
Based on the SSF DHI file keyword.h, revision 1.9, Tue Mar 09 12:37:20 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
#ifndef KEYWORD_H
|
||||
#define KEYWORD_H
|
||||
|
||||
|
||||
/* Integer type definitions for native types that can hold integer
|
||||
values of at least a given number of bits. These types are used
|
||||
as loop counters to give the most natural and speedy code for
|
||||
the current target. This is Not the C99 stdint.h, but the types
|
||||
have similar names.
|
||||
|
||||
There is a particular form of this file for each (kind of) target
|
||||
processor. The present form is for ARM7/GCC, where the widths of
|
||||
the integer types are the following (as observed from the code of
|
||||
the function Check_Type_Size in harness.c):
|
||||
|
||||
Type Octets Bits
|
||||
char 1 8
|
||||
short 2 16
|
||||
int 4 32
|
||||
long 4 32
|
||||
|
||||
This processor/compiler also has alignment concerns, so here we
|
||||
define all telemetry data as octets and access it using memcpy()
|
||||
instead of direct assignment.
|
||||
|
||||
*/
|
||||
|
||||
/* General types */
|
||||
|
||||
typedef int int_least8_t;
|
||||
/* A signed integer covering at least -128 .. +127. */
|
||||
|
||||
typedef unsigned int uint_least8_t;
|
||||
/* An unsigned integer covering at least 0 .. 255. */
|
||||
|
||||
typedef unsigned short uint16_t;
|
||||
/* An unsigned 16-bit integer. */
|
||||
|
||||
typedef int int_least16_t;
|
||||
/* A signed integer covering at least -2**15 .. +2**15 - 1. */
|
||||
|
||||
typedef unsigned int uint_least16_t;
|
||||
/* An unsigned integer covering at least 0 .. 2**16 - 1. */
|
||||
|
||||
typedef uint16_t uskew16_t;
|
||||
/* A 16-bit type, perhaps not an integer, perhaps not 16-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
typedef unsigned int uint32_t;
|
||||
/* An unsigned 32-bit integer. */
|
||||
|
||||
typedef uint32_t uskew32_t;
|
||||
/* A 32-bit type, perhaps not an integer, perhaps not 32-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
|
||||
/* DEBIE-specific types */
|
||||
|
||||
typedef uint16_t data_address_t;
|
||||
/* An address into external data memory. */
|
||||
|
||||
typedef uint16_t code_address_t;
|
||||
/* An address into code memory. */
|
||||
|
||||
|
||||
/* Macros for accessing the DPU data memory by numeric address. */
|
||||
|
||||
extern unsigned char *Data_Pointer ( uint16_t address );
|
||||
|
||||
#define DATA_POINTER(ADDR) Data_Pointer (ADDR)
|
||||
|
||||
/* Macros for accessing and copying multi-octet data. */
|
||||
/* These may need target-specific adjustment if there are */
|
||||
/* alignment restrictions on multi-octet integer values, */
|
||||
/* because the operands in these macros may not be aligned */
|
||||
/* in the required way. */
|
||||
|
||||
extern void wcc_memcpy( void *, void *, int );
|
||||
|
||||
#define COPY(DEST,SOURCE) wcc_memcpy (&(DEST), &(SOURCE), sizeof(DEST))
|
||||
/* Copies the value of SOURCE to the location DEST. */
|
||||
|
||||
extern unsigned short Short_Value ( uskew16_t *x );
|
||||
|
||||
#define VALUE_OF(SOURCE) Short_Value (&(SOURCE))
|
||||
/* Returns the (integer) value of SOURCE, type uskew16_t. */
|
||||
|
||||
/* Macros for struct (aggregate) assignment. Some compilers */
|
||||
/* may not support assignment statements for such types. */
|
||||
|
||||
#define STRUCT_ASSIGN(DEST,SOURCE,TYPE) DEST = SOURCE
|
||||
|
||||
/* Macros for calling "patch" functions */
|
||||
|
||||
typedef code_address_t fptr_t;
|
||||
/* A function that is to be called after patching code memory. */
|
||||
/* The function may or may not be part of the patched code. */
|
||||
/* In the real SW this is "typedef void (*fptr_t)(void);" */
|
||||
|
||||
extern void Call_Patch ( fptr_t func );
|
||||
/* "Call" the patch func. */
|
||||
|
||||
#define CALL_PATCH(FUNCTION) Call_Patch (FUNCTION)
|
||||
/* Jump to the patched memory. */
|
||||
|
||||
/* Some macros for task and interrupt management */
|
||||
|
||||
#define TASK(TASK_NUMBER)
|
||||
#define PRIORITY(LEVEL)
|
||||
#define INTERRUPT(SOURCE)
|
||||
#define USED_REG_BANK(BANK)
|
||||
|
||||
/* Macro for declaring re-entrant function */
|
||||
|
||||
#define REENTRANT_FUNC
|
||||
|
||||
/* Memory model handling macros */
|
||||
|
||||
#define COMPACT_DATA
|
||||
#define COMPACT
|
||||
|
||||
#define PROGRAM
|
||||
|
||||
#define EXTERNAL
|
||||
#define DIRECT_INTERNAL
|
||||
#define INDIRECT_INTERNAL
|
||||
|
||||
#define LOCATION(ADDRESS)
|
||||
|
||||
/* Dealing with the benchmark target system */
|
||||
|
||||
#define TARGET_INIT
|
||||
#define TARGET_MARK
|
||||
#define TARGET_REBOOT
|
||||
#define TARGET_START_TEST
|
||||
#define TARGET_REPEAT_TEST 0
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,23 @@
|
||||
/*
|
||||
problems.h for arm7/gcc-if07
|
||||
|
||||
Part of the DEBIE-1 benchmark.
|
||||
|
||||
$Id: problems.h,v 1.1 2008/04/09 11:26:38 niklas Exp $
|
||||
*/
|
||||
|
||||
|
||||
#ifndef PROBLEMS_H
|
||||
#define PROBLEMS_H
|
||||
|
||||
#define FOR_PROBLEM(P)
|
||||
/* A marker to indicate that the program is about to execute */
|
||||
/* a test case that is to be included in the analysis problem */
|
||||
/* identified by P. */
|
||||
|
||||
#define END_PROBLEM
|
||||
/* A marker to indicate the end of a test case that is to be */
|
||||
/* included in the analysis problem identified by the last */
|
||||
/* executed FOR_PROBLEM. */
|
||||
|
||||
#endif
|
||||
67
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7-x2/target.c
Normal file
67
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7-x2/target.c
Normal file
@ -0,0 +1,67 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW, test harness for WCET analysis
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : target.c
|
||||
|
||||
Target-specific implementations of the DNI operations, specifically
|
||||
for the iF-DEV-LPC kit and the LPC2138 processor.
|
||||
|
||||
Based, with extensive changes, on parts of the SSF file rtx_if.c,
|
||||
rev 1.13, Fri May 21 00:14:00 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* This file contains one set of operations, as follows:
|
||||
|
||||
> memory operations: dpu_ctrl.h
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#include "keyword.h"
|
||||
|
||||
|
||||
/* Memory operations : dpu_ctrl.h */
|
||||
|
||||
|
||||
#include "dpu_ctrl.h"
|
||||
|
||||
|
||||
#define DATA_MEM_BASE 0x38000000L
|
||||
/* The SRAM starts at this address. */
|
||||
|
||||
|
||||
unsigned char *Data_Pointer ( uint16_t address )
|
||||
{
|
||||
return ( unsigned char * )( DATA_MEM_BASE + ( uint32_t )address );
|
||||
}
|
||||
|
||||
|
||||
void Set_Data_Byte ( data_address_t addr, unsigned char value )
|
||||
{
|
||||
/* *(Data_Pointer (addr)) = value; */
|
||||
/* Safer to do nothing. */
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Data_Byte ( data_address_t addr )
|
||||
{
|
||||
return *( Data_Pointer ( addr ) );
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Code_Byte ( code_address_t addr )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Module : target_tm_data.h
|
||||
|
||||
The target-specific aspects of the Telemetry Data Structure.
|
||||
|
||||
Based on the SSF file tm_data.h, rev 1.22, Mon May 31 10:10:12 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef TARGET_TM_DATA_H
|
||||
#define TARGET_TM_DATA_H
|
||||
|
||||
#define MAX_EVENTS 1261
|
||||
/* Same as in the original DEBIE-1 SW, although there limited
|
||||
by the size of the data memory.
|
||||
*/
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,10 @@
|
||||
#include "keyword.h"
|
||||
|
||||
void wcc_memcpy( void *dest, void *src, int size )
|
||||
{
|
||||
int i;
|
||||
_Pragma( "loopbound min 1 max 4" )
|
||||
for ( i = 0; i < size; i++ )
|
||||
( ( unsigned char * )dest )[ i ] = ( ( unsigned char * )src )[ i ];
|
||||
return;
|
||||
}
|
||||
165
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7-x4/keyword.h
Normal file
165
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7-x4/keyword.h
Normal file
@ -0,0 +1,165 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : keyword.h
|
||||
|
||||
Macro definitions for Keil specific keywords to be used
|
||||
in portable parts of the DEBIE DPU software.
|
||||
|
||||
This version adapted to the GNU ARM compiler for the ARM7 as
|
||||
delivered with the IF-DEV-LPC, no kernel.
|
||||
|
||||
Based on the SSF DHI file keyword.h, revision 1.9, Tue Mar 09 12:37:20 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
#ifndef KEYWORD_H
|
||||
#define KEYWORD_H
|
||||
|
||||
|
||||
/* Integer type definitions for native types that can hold integer
|
||||
values of at least a given number of bits. These types are used
|
||||
as loop counters to give the most natural and speedy code for
|
||||
the current target. This is Not the C99 stdint.h, but the types
|
||||
have similar names.
|
||||
|
||||
There is a particular form of this file for each (kind of) target
|
||||
processor. The present form is for ARM7/GCC, where the widths of
|
||||
the integer types are the following (as observed from the code of
|
||||
the function Check_Type_Size in harness.c):
|
||||
|
||||
Type Octets Bits
|
||||
char 1 8
|
||||
short 2 16
|
||||
int 4 32
|
||||
long 4 32
|
||||
|
||||
This processor/compiler also has alignment concerns, so here we
|
||||
define all telemetry data as octets and access it using memcpy()
|
||||
instead of direct assignment.
|
||||
|
||||
*/
|
||||
|
||||
/* General types */
|
||||
|
||||
typedef int int_least8_t;
|
||||
/* A signed integer covering at least -128 .. +127. */
|
||||
|
||||
typedef unsigned int uint_least8_t;
|
||||
/* An unsigned integer covering at least 0 .. 255. */
|
||||
|
||||
typedef unsigned short uint16_t;
|
||||
/* An unsigned 16-bit integer. */
|
||||
|
||||
typedef int int_least16_t;
|
||||
/* A signed integer covering at least -2**15 .. +2**15 - 1. */
|
||||
|
||||
typedef unsigned int uint_least16_t;
|
||||
/* An unsigned integer covering at least 0 .. 2**16 - 1. */
|
||||
|
||||
typedef uint16_t uskew16_t;
|
||||
/* A 16-bit type, perhaps not an integer, perhaps not 16-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
typedef unsigned int uint32_t;
|
||||
/* An unsigned 32-bit integer. */
|
||||
|
||||
typedef uint32_t uskew32_t;
|
||||
/* A 32-bit type, perhaps not an integer, perhaps not 32-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
|
||||
/* DEBIE-specific types */
|
||||
|
||||
typedef uint16_t data_address_t;
|
||||
/* An address into external data memory. */
|
||||
|
||||
typedef uint16_t code_address_t;
|
||||
/* An address into code memory. */
|
||||
|
||||
|
||||
/* Macros for accessing the DPU data memory by numeric address. */
|
||||
|
||||
extern unsigned char *Data_Pointer ( uint16_t address );
|
||||
|
||||
#define DATA_POINTER(ADDR) Data_Pointer (ADDR)
|
||||
|
||||
/* Macros for accessing and copying multi-octet data. */
|
||||
/* These may need target-specific adjustment if there are */
|
||||
/* alignment restrictions on multi-octet integer values, */
|
||||
/* because the operands in these macros may not be aligned */
|
||||
/* in the required way. */
|
||||
|
||||
extern void wcc_memcpy( void *, void *, int );
|
||||
|
||||
#define COPY(DEST,SOURCE) wcc_memcpy (&(DEST), &(SOURCE), sizeof(DEST))
|
||||
/* Copies the value of SOURCE to the location DEST. */
|
||||
|
||||
extern unsigned short Short_Value ( uskew16_t *x );
|
||||
|
||||
#define VALUE_OF(SOURCE) Short_Value (&(SOURCE))
|
||||
/* Returns the (integer) value of SOURCE, type uskew16_t. */
|
||||
|
||||
/* Macros for struct (aggregate) assignment. Some compilers */
|
||||
/* may not support assignment statements for such types. */
|
||||
|
||||
#define STRUCT_ASSIGN(DEST,SOURCE,TYPE) DEST = SOURCE
|
||||
|
||||
/* Macros for calling "patch" functions */
|
||||
|
||||
typedef code_address_t fptr_t;
|
||||
/* A function that is to be called after patching code memory. */
|
||||
/* The function may or may not be part of the patched code. */
|
||||
/* In the real SW this is "typedef void (*fptr_t)(void);" */
|
||||
|
||||
extern void Call_Patch ( fptr_t func );
|
||||
/* "Call" the patch func. */
|
||||
|
||||
#define CALL_PATCH(FUNCTION) Call_Patch (FUNCTION)
|
||||
/* Jump to the patched memory. */
|
||||
|
||||
/* Some macros for task and interrupt management */
|
||||
|
||||
#define TASK(TASK_NUMBER)
|
||||
#define PRIORITY(LEVEL)
|
||||
#define INTERRUPT(SOURCE)
|
||||
#define USED_REG_BANK(BANK)
|
||||
|
||||
/* Macro for declaring re-entrant function */
|
||||
|
||||
#define REENTRANT_FUNC
|
||||
|
||||
/* Memory model handling macros */
|
||||
|
||||
#define COMPACT_DATA
|
||||
#define COMPACT
|
||||
|
||||
#define PROGRAM
|
||||
|
||||
#define EXTERNAL
|
||||
#define DIRECT_INTERNAL
|
||||
#define INDIRECT_INTERNAL
|
||||
|
||||
#define LOCATION(ADDRESS)
|
||||
|
||||
/* Dealing with the benchmark target system */
|
||||
|
||||
#define TARGET_INIT
|
||||
#define TARGET_MARK
|
||||
#define TARGET_REBOOT
|
||||
#define TARGET_START_TEST
|
||||
#define TARGET_REPEAT_TEST 0
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,23 @@
|
||||
/*
|
||||
problems.h for arm7/gcc-if07
|
||||
|
||||
Part of the DEBIE-1 benchmark.
|
||||
|
||||
$Id: problems.h,v 1.1 2008/04/09 11:26:38 niklas Exp $
|
||||
*/
|
||||
|
||||
|
||||
#ifndef PROBLEMS_H
|
||||
#define PROBLEMS_H
|
||||
|
||||
#define FOR_PROBLEM(P)
|
||||
/* A marker to indicate that the program is about to execute */
|
||||
/* a test case that is to be included in the analysis problem */
|
||||
/* identified by P. */
|
||||
|
||||
#define END_PROBLEM
|
||||
/* A marker to indicate the end of a test case that is to be */
|
||||
/* included in the analysis problem identified by the last */
|
||||
/* executed FOR_PROBLEM. */
|
||||
|
||||
#endif
|
||||
67
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7-x4/target.c
Normal file
67
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7-x4/target.c
Normal file
@ -0,0 +1,67 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW, test harness for WCET analysis
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : target.c
|
||||
|
||||
Target-specific implementations of the DNI operations, specifically
|
||||
for the iF-DEV-LPC kit and the LPC2138 processor.
|
||||
|
||||
Based, with extensive changes, on parts of the SSF file rtx_if.c,
|
||||
rev 1.13, Fri May 21 00:14:00 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* This file contains one set of operations, as follows:
|
||||
|
||||
> memory operations: dpu_ctrl.h
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#include "keyword.h"
|
||||
|
||||
|
||||
/* Memory operations : dpu_ctrl.h */
|
||||
|
||||
|
||||
#include "dpu_ctrl.h"
|
||||
|
||||
|
||||
#define DATA_MEM_BASE 0x38000000L
|
||||
/* The SRAM starts at this address. */
|
||||
|
||||
|
||||
unsigned char *Data_Pointer ( uint16_t address )
|
||||
{
|
||||
return ( unsigned char * )( DATA_MEM_BASE + ( uint32_t )address );
|
||||
}
|
||||
|
||||
|
||||
void Set_Data_Byte ( data_address_t addr, unsigned char value )
|
||||
{
|
||||
/* *(Data_Pointer (addr)) = value; */
|
||||
/* Safer to do nothing. */
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Data_Byte ( data_address_t addr )
|
||||
{
|
||||
return *( Data_Pointer ( addr ) );
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Code_Byte ( code_address_t addr )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Module : target_tm_data.h
|
||||
|
||||
The target-specific aspects of the Telemetry Data Structure.
|
||||
|
||||
Based on the SSF file tm_data.h, rev 1.22, Mon May 31 10:10:12 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef TARGET_TM_DATA_H
|
||||
#define TARGET_TM_DATA_H
|
||||
|
||||
#define MAX_EVENTS 1261
|
||||
/* Same as in the original DEBIE-1 SW, although there limited
|
||||
by the size of the data memory.
|
||||
*/
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,10 @@
|
||||
#include "keyword.h"
|
||||
|
||||
void wcc_memcpy( void *dest, void *src, int size )
|
||||
{
|
||||
int i;
|
||||
_Pragma( "loopbound min 1 max 4" )
|
||||
for ( i = 0; i < size; i++ )
|
||||
( ( unsigned char * )dest )[ i ] = ( ( unsigned char * )src )[ i ];
|
||||
return;
|
||||
}
|
||||
165
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7-x8/keyword.h
Normal file
165
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7-x8/keyword.h
Normal file
@ -0,0 +1,165 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : keyword.h
|
||||
|
||||
Macro definitions for Keil specific keywords to be used
|
||||
in portable parts of the DEBIE DPU software.
|
||||
|
||||
This version adapted to the GNU ARM compiler for the ARM7 as
|
||||
delivered with the IF-DEV-LPC, no kernel.
|
||||
|
||||
Based on the SSF DHI file keyword.h, revision 1.9, Tue Mar 09 12:37:20 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
#ifndef KEYWORD_H
|
||||
#define KEYWORD_H
|
||||
|
||||
|
||||
/* Integer type definitions for native types that can hold integer
|
||||
values of at least a given number of bits. These types are used
|
||||
as loop counters to give the most natural and speedy code for
|
||||
the current target. This is Not the C99 stdint.h, but the types
|
||||
have similar names.
|
||||
|
||||
There is a particular form of this file for each (kind of) target
|
||||
processor. The present form is for ARM7/GCC, where the widths of
|
||||
the integer types are the following (as observed from the code of
|
||||
the function Check_Type_Size in harness.c):
|
||||
|
||||
Type Octets Bits
|
||||
char 1 8
|
||||
short 2 16
|
||||
int 4 32
|
||||
long 4 32
|
||||
|
||||
This processor/compiler also has alignment concerns, so here we
|
||||
define all telemetry data as octets and access it using memcpy()
|
||||
instead of direct assignment.
|
||||
|
||||
*/
|
||||
|
||||
/* General types */
|
||||
|
||||
typedef int int_least8_t;
|
||||
/* A signed integer covering at least -128 .. +127. */
|
||||
|
||||
typedef unsigned int uint_least8_t;
|
||||
/* An unsigned integer covering at least 0 .. 255. */
|
||||
|
||||
typedef unsigned short uint16_t;
|
||||
/* An unsigned 16-bit integer. */
|
||||
|
||||
typedef int int_least16_t;
|
||||
/* A signed integer covering at least -2**15 .. +2**15 - 1. */
|
||||
|
||||
typedef unsigned int uint_least16_t;
|
||||
/* An unsigned integer covering at least 0 .. 2**16 - 1. */
|
||||
|
||||
typedef uint16_t uskew16_t;
|
||||
/* A 16-bit type, perhaps not an integer, perhaps not 16-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
typedef unsigned int uint32_t;
|
||||
/* An unsigned 32-bit integer. */
|
||||
|
||||
typedef uint32_t uskew32_t;
|
||||
/* A 32-bit type, perhaps not an integer, perhaps not 32-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
|
||||
/* DEBIE-specific types */
|
||||
|
||||
typedef uint16_t data_address_t;
|
||||
/* An address into external data memory. */
|
||||
|
||||
typedef uint16_t code_address_t;
|
||||
/* An address into code memory. */
|
||||
|
||||
|
||||
/* Macros for accessing the DPU data memory by numeric address. */
|
||||
|
||||
extern unsigned char *Data_Pointer ( uint16_t address );
|
||||
|
||||
#define DATA_POINTER(ADDR) Data_Pointer (ADDR)
|
||||
|
||||
/* Macros for accessing and copying multi-octet data. */
|
||||
/* These may need target-specific adjustment if there are */
|
||||
/* alignment restrictions on multi-octet integer values, */
|
||||
/* because the operands in these macros may not be aligned */
|
||||
/* in the required way. */
|
||||
|
||||
extern void wcc_memcpy( void *, void *, int );
|
||||
|
||||
#define COPY(DEST,SOURCE) wcc_memcpy (&(DEST), &(SOURCE), sizeof(DEST))
|
||||
/* Copies the value of SOURCE to the location DEST. */
|
||||
|
||||
extern unsigned short Short_Value ( uskew16_t *x );
|
||||
|
||||
#define VALUE_OF(SOURCE) Short_Value (&(SOURCE))
|
||||
/* Returns the (integer) value of SOURCE, type uskew16_t. */
|
||||
|
||||
/* Macros for struct (aggregate) assignment. Some compilers */
|
||||
/* may not support assignment statements for such types. */
|
||||
|
||||
#define STRUCT_ASSIGN(DEST,SOURCE,TYPE) DEST = SOURCE
|
||||
|
||||
/* Macros for calling "patch" functions */
|
||||
|
||||
typedef code_address_t fptr_t;
|
||||
/* A function that is to be called after patching code memory. */
|
||||
/* The function may or may not be part of the patched code. */
|
||||
/* In the real SW this is "typedef void (*fptr_t)(void);" */
|
||||
|
||||
extern void Call_Patch ( fptr_t func );
|
||||
/* "Call" the patch func. */
|
||||
|
||||
#define CALL_PATCH(FUNCTION) Call_Patch (FUNCTION)
|
||||
/* Jump to the patched memory. */
|
||||
|
||||
/* Some macros for task and interrupt management */
|
||||
|
||||
#define TASK(TASK_NUMBER)
|
||||
#define PRIORITY(LEVEL)
|
||||
#define INTERRUPT(SOURCE)
|
||||
#define USED_REG_BANK(BANK)
|
||||
|
||||
/* Macro for declaring re-entrant function */
|
||||
|
||||
#define REENTRANT_FUNC
|
||||
|
||||
/* Memory model handling macros */
|
||||
|
||||
#define COMPACT_DATA
|
||||
#define COMPACT
|
||||
|
||||
#define PROGRAM
|
||||
|
||||
#define EXTERNAL
|
||||
#define DIRECT_INTERNAL
|
||||
#define INDIRECT_INTERNAL
|
||||
|
||||
#define LOCATION(ADDRESS)
|
||||
|
||||
/* Dealing with the benchmark target system */
|
||||
|
||||
#define TARGET_INIT
|
||||
#define TARGET_MARK
|
||||
#define TARGET_REBOOT
|
||||
#define TARGET_START_TEST
|
||||
#define TARGET_REPEAT_TEST 0
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,23 @@
|
||||
/*
|
||||
problems.h for arm7/gcc-if07
|
||||
|
||||
Part of the DEBIE-1 benchmark.
|
||||
|
||||
$Id: problems.h,v 1.1 2008/04/09 11:26:38 niklas Exp $
|
||||
*/
|
||||
|
||||
|
||||
#ifndef PROBLEMS_H
|
||||
#define PROBLEMS_H
|
||||
|
||||
#define FOR_PROBLEM(P)
|
||||
/* A marker to indicate that the program is about to execute */
|
||||
/* a test case that is to be included in the analysis problem */
|
||||
/* identified by P. */
|
||||
|
||||
#define END_PROBLEM
|
||||
/* A marker to indicate the end of a test case that is to be */
|
||||
/* included in the analysis problem identified by the last */
|
||||
/* executed FOR_PROBLEM. */
|
||||
|
||||
#endif
|
||||
67
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7-x8/target.c
Normal file
67
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7-x8/target.c
Normal file
@ -0,0 +1,67 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW, test harness for WCET analysis
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : target.c
|
||||
|
||||
Target-specific implementations of the DNI operations, specifically
|
||||
for the iF-DEV-LPC kit and the LPC2138 processor.
|
||||
|
||||
Based, with extensive changes, on parts of the SSF file rtx_if.c,
|
||||
rev 1.13, Fri May 21 00:14:00 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* This file contains one set of operations, as follows:
|
||||
|
||||
> memory operations: dpu_ctrl.h
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#include "keyword.h"
|
||||
|
||||
|
||||
/* Memory operations : dpu_ctrl.h */
|
||||
|
||||
|
||||
#include "dpu_ctrl.h"
|
||||
|
||||
|
||||
#define DATA_MEM_BASE 0x38000000L
|
||||
/* The SRAM starts at this address. */
|
||||
|
||||
|
||||
unsigned char *Data_Pointer ( uint16_t address )
|
||||
{
|
||||
return ( unsigned char * )( DATA_MEM_BASE + ( uint32_t )address );
|
||||
}
|
||||
|
||||
|
||||
void Set_Data_Byte ( data_address_t addr, unsigned char value )
|
||||
{
|
||||
/* *(Data_Pointer (addr)) = value; */
|
||||
/* Safer to do nothing. */
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Data_Byte ( data_address_t addr )
|
||||
{
|
||||
return *( Data_Pointer ( addr ) );
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Code_Byte ( code_address_t addr )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Module : target_tm_data.h
|
||||
|
||||
The target-specific aspects of the Telemetry Data Structure.
|
||||
|
||||
Based on the SSF file tm_data.h, rev 1.22, Mon May 31 10:10:12 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef TARGET_TM_DATA_H
|
||||
#define TARGET_TM_DATA_H
|
||||
|
||||
#define MAX_EVENTS 1261
|
||||
/* Same as in the original DEBIE-1 SW, although there limited
|
||||
by the size of the data memory.
|
||||
*/
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,10 @@
|
||||
#include "keyword.h"
|
||||
|
||||
void wcc_memcpy( void *dest, void *src, int size )
|
||||
{
|
||||
int i;
|
||||
_Pragma( "loopbound min 1 max 4" )
|
||||
for ( i = 0; i < size; i++ )
|
||||
( ( unsigned char * )dest )[ i ] = ( ( unsigned char * )src )[ i ];
|
||||
return;
|
||||
}
|
||||
165
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7/keyword.h
Normal file
165
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7/keyword.h
Normal file
@ -0,0 +1,165 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : keyword.h
|
||||
|
||||
Macro definitions for Keil specific keywords to be used
|
||||
in portable parts of the DEBIE DPU software.
|
||||
|
||||
This version adapted to the GNU ARM compiler for the ARM7 as
|
||||
delivered with the IF-DEV-LPC, no kernel.
|
||||
|
||||
Based on the SSF DHI file keyword.h, revision 1.9, Tue Mar 09 12:37:20 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
#ifndef KEYWORD_H
|
||||
#define KEYWORD_H
|
||||
|
||||
|
||||
/* Integer type definitions for native types that can hold integer
|
||||
values of at least a given number of bits. These types are used
|
||||
as loop counters to give the most natural and speedy code for
|
||||
the current target. This is Not the C99 stdint.h, but the types
|
||||
have similar names.
|
||||
|
||||
There is a particular form of this file for each (kind of) target
|
||||
processor. The present form is for ARM7/GCC, where the widths of
|
||||
the integer types are the following (as observed from the code of
|
||||
the function Check_Type_Size in harness.c):
|
||||
|
||||
Type Octets Bits
|
||||
char 1 8
|
||||
short 2 16
|
||||
int 4 32
|
||||
long 4 32
|
||||
|
||||
This processor/compiler also has alignment concerns, so here we
|
||||
define all telemetry data as octets and access it using memcpy()
|
||||
instead of direct assignment.
|
||||
|
||||
*/
|
||||
|
||||
/* General types */
|
||||
|
||||
typedef int int_least8_t;
|
||||
/* A signed integer covering at least -128 .. +127. */
|
||||
|
||||
typedef unsigned int uint_least8_t;
|
||||
/* An unsigned integer covering at least 0 .. 255. */
|
||||
|
||||
typedef unsigned short uint16_t;
|
||||
/* An unsigned 16-bit integer. */
|
||||
|
||||
typedef int int_least16_t;
|
||||
/* A signed integer covering at least -2**15 .. +2**15 - 1. */
|
||||
|
||||
typedef unsigned int uint_least16_t;
|
||||
/* An unsigned integer covering at least 0 .. 2**16 - 1. */
|
||||
|
||||
typedef uint16_t uskew16_t;
|
||||
/* A 16-bit type, perhaps not an integer, perhaps not 16-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
typedef unsigned int uint32_t;
|
||||
/* An unsigned 32-bit integer. */
|
||||
|
||||
typedef uint32_t uskew32_t;
|
||||
/* A 32-bit type, perhaps not an integer, perhaps not 32-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
|
||||
/* DEBIE-specific types */
|
||||
|
||||
typedef uint16_t data_address_t;
|
||||
/* An address into external data memory. */
|
||||
|
||||
typedef uint16_t code_address_t;
|
||||
/* An address into code memory. */
|
||||
|
||||
|
||||
/* Macros for accessing the DPU data memory by numeric address. */
|
||||
|
||||
extern unsigned char *Data_Pointer ( uint16_t address );
|
||||
|
||||
#define DATA_POINTER(ADDR) Data_Pointer (ADDR)
|
||||
|
||||
/* Macros for accessing and copying multi-octet data. */
|
||||
/* These may need target-specific adjustment if there are */
|
||||
/* alignment restrictions on multi-octet integer values, */
|
||||
/* because the operands in these macros may not be aligned */
|
||||
/* in the required way. */
|
||||
|
||||
extern void wcc_memcpy( void *, void *, int );
|
||||
|
||||
#define COPY(DEST,SOURCE) wcc_memcpy (&(DEST), &(SOURCE), sizeof(DEST))
|
||||
/* Copies the value of SOURCE to the location DEST. */
|
||||
|
||||
extern unsigned short Short_Value ( uskew16_t *x );
|
||||
|
||||
#define VALUE_OF(SOURCE) Short_Value (&(SOURCE))
|
||||
/* Returns the (integer) value of SOURCE, type uskew16_t. */
|
||||
|
||||
/* Macros for struct (aggregate) assignment. Some compilers */
|
||||
/* may not support assignment statements for such types. */
|
||||
|
||||
#define STRUCT_ASSIGN(DEST,SOURCE,TYPE) DEST = SOURCE
|
||||
|
||||
/* Macros for calling "patch" functions */
|
||||
|
||||
typedef code_address_t fptr_t;
|
||||
/* A function that is to be called after patching code memory. */
|
||||
/* The function may or may not be part of the patched code. */
|
||||
/* In the real SW this is "typedef void (*fptr_t)(void);" */
|
||||
|
||||
extern void Call_Patch ( fptr_t func );
|
||||
/* "Call" the patch func. */
|
||||
|
||||
#define CALL_PATCH(FUNCTION) Call_Patch (FUNCTION)
|
||||
/* Jump to the patched memory. */
|
||||
|
||||
/* Some macros for task and interrupt management */
|
||||
|
||||
#define TASK(TASK_NUMBER)
|
||||
#define PRIORITY(LEVEL)
|
||||
#define INTERRUPT(SOURCE)
|
||||
#define USED_REG_BANK(BANK)
|
||||
|
||||
/* Macro for declaring re-entrant function */
|
||||
|
||||
#define REENTRANT_FUNC
|
||||
|
||||
/* Memory model handling macros */
|
||||
|
||||
#define COMPACT_DATA
|
||||
#define COMPACT
|
||||
|
||||
#define PROGRAM
|
||||
|
||||
#define EXTERNAL
|
||||
#define DIRECT_INTERNAL
|
||||
#define INDIRECT_INTERNAL
|
||||
|
||||
#define LOCATION(ADDRESS)
|
||||
|
||||
/* Dealing with the benchmark target system */
|
||||
|
||||
#define TARGET_INIT
|
||||
#define TARGET_MARK
|
||||
#define TARGET_REBOOT
|
||||
#define TARGET_START_TEST
|
||||
#define TARGET_REPEAT_TEST 0
|
||||
|
||||
#endif
|
||||
23
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7/problems.h
Normal file
23
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7/problems.h
Normal file
@ -0,0 +1,23 @@
|
||||
/*
|
||||
problems.h for arm7/gcc-if07
|
||||
|
||||
Part of the DEBIE-1 benchmark.
|
||||
|
||||
$Id: problems.h,v 1.1 2008/04/09 11:26:38 niklas Exp $
|
||||
*/
|
||||
|
||||
|
||||
#ifndef PROBLEMS_H
|
||||
#define PROBLEMS_H
|
||||
|
||||
#define FOR_PROBLEM(P)
|
||||
/* A marker to indicate that the program is about to execute */
|
||||
/* a test case that is to be included in the analysis problem */
|
||||
/* identified by P. */
|
||||
|
||||
#define END_PROBLEM
|
||||
/* A marker to indicate the end of a test case that is to be */
|
||||
/* included in the analysis problem identified by the last */
|
||||
/* executed FOR_PROBLEM. */
|
||||
|
||||
#endif
|
||||
67
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7/target.c
Normal file
67
targets/wasm-tacle/parallel/DEBIE/code/arch/arm7/target.c
Normal file
@ -0,0 +1,67 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW, test harness for WCET analysis
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : target.c
|
||||
|
||||
Target-specific implementations of the DNI operations, specifically
|
||||
for the iF-DEV-LPC kit and the LPC2138 processor.
|
||||
|
||||
Based, with extensive changes, on parts of the SSF file rtx_if.c,
|
||||
rev 1.13, Fri May 21 00:14:00 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* This file contains one set of operations, as follows:
|
||||
|
||||
> memory operations: dpu_ctrl.h
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#include "keyword.h"
|
||||
|
||||
|
||||
/* Memory operations : dpu_ctrl.h */
|
||||
|
||||
|
||||
#include "dpu_ctrl.h"
|
||||
|
||||
|
||||
#define DATA_MEM_BASE 0x40000000L
|
||||
/* The SRAM starts at this address. */
|
||||
|
||||
|
||||
unsigned char *Data_Pointer ( uint16_t address )
|
||||
{
|
||||
return ( unsigned char * )( DATA_MEM_BASE + ( uint32_t )address );
|
||||
}
|
||||
|
||||
|
||||
void Set_Data_Byte ( data_address_t addr, unsigned char value )
|
||||
{
|
||||
/* *(Data_Pointer (addr)) = value; */
|
||||
/* Safer to do nothing. */
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Data_Byte ( data_address_t addr )
|
||||
{
|
||||
return *( Data_Pointer ( addr ) );
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Code_Byte ( code_address_t addr )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Module : target_tm_data.h
|
||||
|
||||
The target-specific aspects of the Telemetry Data Structure.
|
||||
|
||||
Based on the SSF file tm_data.h, rev 1.22, Mon May 31 10:10:12 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef TARGET_TM_DATA_H
|
||||
#define TARGET_TM_DATA_H
|
||||
|
||||
#define MAX_EVENTS 1261
|
||||
/* Same as in the original DEBIE-1 SW, although there limited
|
||||
by the size of the data memory.
|
||||
*/
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,10 @@
|
||||
#include "keyword.h"
|
||||
|
||||
void wcc_memcpy( void *dest, void *src, int size )
|
||||
{
|
||||
int i;
|
||||
_Pragma( "loopbound min 1 max 4" )
|
||||
for ( i = 0; i < size; i++ )
|
||||
( ( unsigned char * )dest )[ i ] = ( ( unsigned char * )src )[ i ];
|
||||
return;
|
||||
}
|
||||
52
targets/wasm-tacle/parallel/DEBIE/code/arch/mpc5554/host-build.sh
Executable file
52
targets/wasm-tacle/parallel/DEBIE/code/arch/mpc5554/host-build.sh
Executable file
@ -0,0 +1,52 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Script to compile "debie1" on the host Intel/Linux system
|
||||
# using the target-specific code for mpc5554/gcc. This is
|
||||
# meant to check that the MPC5554 port has no target-specific
|
||||
# behaviour and (by default) no output; it does not generate
|
||||
# an executable for the MPC5554.
|
||||
#
|
||||
# Any command-line arguments go into the CCOPT (eg. -Wpadded).
|
||||
# As default, the trace output from the harness and target
|
||||
# modules are disabled.
|
||||
|
||||
|
||||
# Set tpd to the Test Program Directory:
|
||||
tpd=../..
|
||||
|
||||
# Set hnd to the "harness" directory:
|
||||
|
||||
hnd=${tpd}/harness
|
||||
|
||||
# Native gcc and options:
|
||||
|
||||
export CC="gcc"
|
||||
export CCOPT="-g -O2 -I. -I${hnd} -Wall $*"
|
||||
export LD="gcc"
|
||||
export LDOPT=
|
||||
|
||||
${CC} ${CCOPT} -c ${tpd}/class.c
|
||||
${CC} ${CCOPT} -c ${tpd}/classtab.c
|
||||
${CC} ${CCOPT} -c ${tpd}/debie.c
|
||||
${CC} ${CCOPT} -c -I${tpd} ${hnd}/harness.c
|
||||
${CC} ${CCOPT} -c ${tpd}/health.c
|
||||
${CC} ${CCOPT} -c ${tpd}/hw_if.c
|
||||
${CC} ${CCOPT} -c ${tpd}/measure.c
|
||||
${CC} ${CCOPT} -c -I${tpd} target.c
|
||||
${CC} ${CCOPT} -c ${tpd}/tc_hand.c
|
||||
${CC} ${CCOPT} -c ${tpd}/telem.c
|
||||
|
||||
|
||||
${CC} ${LDOPT} \
|
||||
-o debie1 \
|
||||
class.o \
|
||||
classtab.o \
|
||||
debie.o \
|
||||
harness.o \
|
||||
health.o \
|
||||
hw_if.o \
|
||||
measure.o \
|
||||
target.o \
|
||||
tc_hand.o \
|
||||
telem.o
|
||||
|
||||
166
targets/wasm-tacle/parallel/DEBIE/code/arch/mpc5554/keyword.h
Normal file
166
targets/wasm-tacle/parallel/DEBIE/code/arch/mpc5554/keyword.h
Normal file
@ -0,0 +1,166 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : keyword.h
|
||||
|
||||
Macro definitions for Keil specific keywords to be used
|
||||
in portable parts of the DEBIE DPU software.
|
||||
|
||||
This version adapted to the GNU C compiler for the MPC5554.
|
||||
|
||||
Based on the SSF DHI file keyword.h, revision 1.9, Tue Mar 09 12:37:20 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
#ifndef KEYWORD_H
|
||||
#define KEYWORD_H
|
||||
|
||||
#include <string.h>
|
||||
/* For memcpy (). */
|
||||
|
||||
|
||||
/* Integer type definitions for native types that can hold integer
|
||||
values of at least a given number of bits. These types are used
|
||||
as loop counters to give the most natural and speedy code for
|
||||
the current target. This is Not the C99 stdint.h, but the types
|
||||
have similar names.
|
||||
|
||||
There is a particular form of this file for each (kind of) target
|
||||
processor. The present form is for MPC5554/gcc, where the
|
||||
widths the integer types are the following (as observed from the
|
||||
code of the function Check_Type_Size in harness.c):
|
||||
|
||||
Type Octets Bits
|
||||
char 1 8
|
||||
short 2 16
|
||||
int 4 32
|
||||
long 4 32
|
||||
|
||||
This processor/compiler also has alignment concerns, so here we
|
||||
define all telemetry data as octets and access it using memcpy()
|
||||
instead of direct assignment.
|
||||
|
||||
*/
|
||||
|
||||
/* General types */
|
||||
|
||||
typedef int int_least8_t;
|
||||
/* A signed integer covering at least -128 .. +127. */
|
||||
|
||||
typedef unsigned int uint_least8_t;
|
||||
/* An unsigned integer covering at least 0 .. 255. */
|
||||
|
||||
typedef unsigned short uint16_t;
|
||||
/* An unsigned 16-bit integer. */
|
||||
|
||||
typedef int int_least16_t;
|
||||
/* A signed integer covering at least -2**15 .. +2**15 - 1. */
|
||||
|
||||
typedef unsigned int uint_least16_t;
|
||||
/* An unsigned integer covering at least 0 .. 2**16 - 1. */
|
||||
|
||||
typedef uint16_t uskew16_t;
|
||||
/* A 16-bit type, perhaps not an integer, perhaps not 16-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
typedef unsigned int uint32_t;
|
||||
/* An unsigned 32-bit integer. */
|
||||
|
||||
typedef uint32_t uskew32_t;
|
||||
/* A 32-bit type, perhaps not an integer, perhaps not 32-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
|
||||
/* DEBIE-specific types */
|
||||
|
||||
typedef uint16_t data_address_t;
|
||||
/* An address into external data memory. */
|
||||
|
||||
typedef uint16_t code_address_t;
|
||||
/* An address into code memory. */
|
||||
|
||||
|
||||
/* Macros for accessing the DPU data memory by numeric address. */
|
||||
|
||||
extern unsigned char *Data_Pointer ( uint16_t address );
|
||||
|
||||
#define DATA_POINTER(ADDR) Data_Pointer (ADDR)
|
||||
|
||||
/* Macros for accessing and copying multi-octet data. */
|
||||
/* These may need target-specific adjustment if there are */
|
||||
/* alignment restrictions on multi-octet integer values, */
|
||||
/* because the operands in these macros may not be aligned */
|
||||
/* in the required way. */
|
||||
|
||||
#define COPY(DEST,SOURCE) memcpy (&(DEST), &(SOURCE), sizeof(DEST))
|
||||
/* Copies the value of SOURCE to the location DEST. */
|
||||
|
||||
extern unsigned short Short_Value ( uskew16_t *x );
|
||||
|
||||
#define VALUE_OF(SOURCE) Short_Value (&(SOURCE))
|
||||
/* Returns the (integer) value of SOURCE, type uskew16_t. */
|
||||
|
||||
/* Macros for struct (aggregate) assignment. Some compilers */
|
||||
/* may not support assignment statements for such types. */
|
||||
|
||||
#define STRUCT_ASSIGN(DEST,SOURCE,TYPE) DEST = SOURCE
|
||||
|
||||
/* Macros for calling "patch" functions */
|
||||
|
||||
typedef code_address_t fptr_t;
|
||||
/* A function that is to be called after patching code memory. */
|
||||
/* The function may or may not be part of the patched code. */
|
||||
/* In the real SW this is "typedef void (*fptr_t)(void);" */
|
||||
|
||||
extern void Call_Patch ( fptr_t func );
|
||||
/* "Call" the patch func. */
|
||||
|
||||
#define CALL_PATCH(FUNCTION) Call_Patch (FUNCTION)
|
||||
/* Jump to the patched memory. */
|
||||
|
||||
/* Some macros for task and interrupt management */
|
||||
|
||||
#define TASK(TASK_NUMBER)
|
||||
#define PRIORITY(LEVEL)
|
||||
#define INTERRUPT(SOURCE)
|
||||
#define USED_REG_BANK(BANK)
|
||||
|
||||
/* Macro for declaring re-entrant function */
|
||||
|
||||
#define REENTRANT_FUNC
|
||||
|
||||
/* Memory model handling macros */
|
||||
|
||||
#define COMPACT_DATA
|
||||
#define COMPACT
|
||||
|
||||
#define PROGRAM
|
||||
|
||||
#define EXTERNAL
|
||||
#define DIRECT_INTERNAL
|
||||
#define INDIRECT_INTERNAL
|
||||
|
||||
#define LOCATION(ADDRESS)
|
||||
|
||||
/* Dealing with the benchmark target system */
|
||||
|
||||
#define TARGET_INIT {}
|
||||
|
||||
#define TARGET_MARK {}
|
||||
#define TARGET_REBOOT {}
|
||||
#define TARGET_START_TEST {}
|
||||
#define TARGET_REPEAT_TEST 0
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,254 @@
|
||||
/* Default linker script, for normal executables */
|
||||
OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc", "elf32-powerpc")
|
||||
OUTPUT_ARCH(powerpc:common)
|
||||
ENTRY(_start)
|
||||
|
||||
/* where to search for stuff */
|
||||
SEARCH_DIR("=/usr/local/lib");
|
||||
SEARCH_DIR("=/lib");
|
||||
SEARCH_DIR("=/usr/lib");
|
||||
|
||||
/* end of stack */
|
||||
__stack = 0x4000fff8;
|
||||
___stack = 0x4000fff8;
|
||||
|
||||
/* sections */
|
||||
SECTIONS
|
||||
{
|
||||
/* read-only sections, merged into text segment: */
|
||||
PROVIDE (__executable_start = 0x000002000);
|
||||
. = 0x00002000 + SIZEOF_HEADERS;
|
||||
|
||||
.interp : { *(.interp) }
|
||||
.hash : { *(.hash) }
|
||||
.dynsym : { *(.dynsym) }
|
||||
.dynstr : { *(.dynstr) }
|
||||
.gnu.version : { *(.gnu.version) }
|
||||
.gnu.version_d : { *(.gnu.version_d) }
|
||||
.gnu.version_r : { *(.gnu.version_r) }
|
||||
.rel.init : { *(.rel.init) }
|
||||
.rela.init : { *(.rela.init) }
|
||||
.rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) }
|
||||
.rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
|
||||
.rel.fini : { *(.rel.fini) }
|
||||
.rela.fini : { *(.rela.fini) }
|
||||
.rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) }
|
||||
.rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }
|
||||
.rel.data.rel.ro : { *(.rel.data.rel.ro*) }
|
||||
.rela.data.rel.ro : { *(.rel.data.rel.ro*) }
|
||||
.rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) }
|
||||
.rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
|
||||
.rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
|
||||
.rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
|
||||
.rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
|
||||
.rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
|
||||
.rel.ctors : { *(.rel.ctors) }
|
||||
.rela.ctors : { *(.rela.ctors) }
|
||||
.rel.dtors : { *(.rel.dtors) }
|
||||
.rela.dtors : { *(.rela.dtors) }
|
||||
.rel.got : { *(.rel.got) }
|
||||
.rela.got : { *(.rela.got) }
|
||||
.rela.got1 : { *(.rela.got1) }
|
||||
.rela.got2 : { *(.rela.got2) }
|
||||
.rel.sdata : { *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) }
|
||||
.rela.sdata : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) }
|
||||
.rel.sbss : { *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) }
|
||||
.rela.sbss : { *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) }
|
||||
.rel.sdata2 : { *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) }
|
||||
.rela.sdata2 : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) }
|
||||
.rel.sbss2 : { *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) }
|
||||
.rela.sbss2 : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) }
|
||||
.rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) }
|
||||
.rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }
|
||||
.rel.plt : { *(.rel.plt) }
|
||||
.rela.plt : { *(.rela.plt) }
|
||||
.init :
|
||||
{
|
||||
KEEP (*(.init))
|
||||
} =0
|
||||
.text :
|
||||
{
|
||||
*(.text .stub .text.* .gnu.linkonce.t.*)
|
||||
KEEP (*(.text.*personality*))
|
||||
/* .gnu.warning sections are handled specially by elf32.em. */
|
||||
*(.gnu.warning)
|
||||
} =0
|
||||
.fini :
|
||||
{
|
||||
KEEP (*(.fini))
|
||||
} =0
|
||||
|
||||
PROVIDE (__etext = .);
|
||||
PROVIDE (_etext = .);
|
||||
PROVIDE (etext = .);
|
||||
|
||||
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
|
||||
.rodata1 : { *(.rodata1) }
|
||||
.sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) }
|
||||
.sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) }
|
||||
.eh_frame_hdr : { *(.eh_frame_hdr) }
|
||||
.eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table : ONLY_IF_RO { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }
|
||||
|
||||
/* Exception handling */
|
||||
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table : ONLY_IF_RW { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }
|
||||
|
||||
/* Ensure the __preinit_array_start label is properly aligned. We
|
||||
could instead move the label definition inside the section, but
|
||||
the linker would then create the section even if it turns out to
|
||||
be empty, which isn't pretty. */
|
||||
. = ALIGN(32 / 8);
|
||||
|
||||
PROVIDE (__preinit_array_start = .);
|
||||
|
||||
.preinit_array : { KEEP (*(.preinit_array)) }
|
||||
|
||||
PROVIDE (__preinit_array_end = .);
|
||||
PROVIDE (__init_array_start = .);
|
||||
|
||||
.init_array : { KEEP (*(.init_array)) }
|
||||
|
||||
PROVIDE (__init_array_end = .);
|
||||
PROVIDE (__fini_array_start = .);
|
||||
|
||||
.fini_array : { KEEP (*(.fini_array)) }
|
||||
|
||||
PROVIDE (__fini_array_end = .);
|
||||
|
||||
.ctors :
|
||||
{
|
||||
/* gcc uses crtbegin.o to find the start of
|
||||
the constructors, so we make sure it is
|
||||
first. Because this is a wildcard, it
|
||||
doesn't matter if the user does not
|
||||
actually link against crtbegin.o; the
|
||||
linker won't look for a file to match a
|
||||
wildcard. The wildcard also means that it
|
||||
doesn't matter which directory crtbegin.o
|
||||
is in. */
|
||||
KEEP (*crtbegin*.o(.ctors))
|
||||
|
||||
/* We don't want to include the .ctor section from
|
||||
from the crtend.o file until after the sorted ctors.
|
||||
The .ctor section from the crtend file contains the
|
||||
end of ctors marker and it must be last */
|
||||
KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
}
|
||||
.dtors :
|
||||
{
|
||||
KEEP (*crtbegin*.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
}
|
||||
.jcr : { KEEP (*(.jcr)) }
|
||||
.data.rel.ro : { *(.data.rel.ro.local) *(.data.rel.ro*) }
|
||||
.fixup : { *(.fixup) }
|
||||
.got1 : { *(.got1) }
|
||||
.got2 : { *(.got2) }
|
||||
.dynamic : { *(.dynamic) }
|
||||
.got : { *(.got.plt) *(.got) }
|
||||
.plt : { *(.plt) }
|
||||
|
||||
/* put some stuff into external ram */
|
||||
. = 0x20000000;
|
||||
.externalram : { *(.externalram) }
|
||||
|
||||
/* put data segment into internal sram */
|
||||
. = 0x40000000;
|
||||
. = DATA_SEGMENT_ALIGN (0x10000, 0x1000);
|
||||
|
||||
/* thread Local Storage sections */
|
||||
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
||||
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
||||
.data :
|
||||
{
|
||||
*(.data .data.* .gnu.linkonce.d.*)
|
||||
KEEP (*(.gnu.linkonce.d.*personality*))
|
||||
SORT(CONSTRUCTORS)
|
||||
}
|
||||
.data1 : { *(.data1) }
|
||||
|
||||
/* We want the small data sections together, so single-instruction offsets
|
||||
can access them all, and initialized data all before uninitialized, so
|
||||
we can shorten the on-disk segment size. */
|
||||
.sdata :
|
||||
{
|
||||
*(.sdata .sdata.* .gnu.linkonce.s.*)
|
||||
}
|
||||
_edata = .;
|
||||
|
||||
PROVIDE (edata = .);
|
||||
|
||||
__bss_start = .;
|
||||
.sbss :
|
||||
{
|
||||
PROVIDE (__sbss_start = .);
|
||||
PROVIDE (___sbss_start = .);
|
||||
*(.dynsbss)
|
||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||
*(.scommon)
|
||||
PROVIDE (__sbss_end = .);
|
||||
PROVIDE (___sbss_end = .);
|
||||
}
|
||||
.bss :
|
||||
{
|
||||
*(.dynbss)
|
||||
*(.bss .bss.* .gnu.linkonce.b.*)
|
||||
*(COMMON)
|
||||
|
||||
/* Align here to ensure that the .bss section occupies space up to
|
||||
_end. Align after .bss to ensure correct alignment even if the
|
||||
.bss section disappears because there are no input sections. */
|
||||
. = ALIGN(32 / 8);
|
||||
}
|
||||
. = ALIGN(32 / 8);
|
||||
_end = .;
|
||||
__end = .;
|
||||
|
||||
PROVIDE (end = .);
|
||||
. = DATA_SEGMENT_END (.);
|
||||
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
/DISCARD/ : { *(.note.GNU-stack) }
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
/*
|
||||
problems.h for mpc5554/gcc.
|
||||
Part of the DEBIE-1 benchmark.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef PROBLEMS_H
|
||||
#define PROBLEMS_H
|
||||
|
||||
#define FOR_PROBLEM(P) {}
|
||||
/* A marker to indicate that the program is about to execute */
|
||||
/* a test case that is to be included in the analysis problem */
|
||||
/* identified by P. */
|
||||
|
||||
#define END_PROBLEM {}
|
||||
/* A marker to indicate the end of a test case that is to be */
|
||||
/* included in the analysis problem identified by the last */
|
||||
/* executed FOR_PROBLEM. */
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,12 @@
|
||||
This folder contains header files and a build script
|
||||
that compile and link the DEBIE-1 DPU SW benchmark for
|
||||
execution on an MPC5554 processor. The completed
|
||||
executable file is also provided.
|
||||
|
||||
The generated executable runs the test cases defined
|
||||
in harness.c once and then stops. The executable does not
|
||||
generate any output.
|
||||
|
||||
This port was contributed by Simon Wegener of AbsInt Angewandte
|
||||
Informatik GmbH.
|
||||
|
||||
49
targets/wasm-tacle/parallel/DEBIE/code/arch/mpc5554/target-build.sh
Executable file
49
targets/wasm-tacle/parallel/DEBIE/code/arch/mpc5554/target-build.sh
Executable file
@ -0,0 +1,49 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Script to cross-compile "debie1" for the MPC5554 with the
|
||||
# CodeSourcery "G++ lite" GCC package.
|
||||
#
|
||||
# Any command-line arguments go into the CCOPT (eg. -Wpadded).
|
||||
# As default, the trace output from the harness and target
|
||||
# modules are disabled.
|
||||
#
|
||||
# One has to set the path to the compiler (i.e. CC) accordingly.
|
||||
|
||||
|
||||
# Set tpd to the Test Program Directory:
|
||||
tpd=../..
|
||||
|
||||
# Set hnd to the "harness" directory:
|
||||
hnd=${tpd}/harness
|
||||
|
||||
# Target gcc and options:
|
||||
export CC="/local/swegener/CodeSourcery/Sourcery_G++_Lite/bin/powerpc-eabi-gcc"
|
||||
export CCOPT="-te500v1 -fshort-double -g -O2 -I. -I${hnd} -Wall -Wextra $*"
|
||||
export LD="/local/swegener/CodeSourcery/Sourcery_G++_Lite/bin/powerpc-eabi-gcc"
|
||||
export LDOPT="-te500v1 -fshort-double -Wl,-T./linker-mpc55xx-gcc.ld -static"
|
||||
|
||||
${CC} ${CCOPT} -c ${tpd}/class.c
|
||||
${CC} ${CCOPT} -c ${tpd}/classtab.c
|
||||
${CC} ${CCOPT} -c ${tpd}/debie.c
|
||||
${CC} ${CCOPT} -c -I${tpd} ${hnd}/harness.c
|
||||
${CC} ${CCOPT} -c ${tpd}/health.c
|
||||
${CC} ${CCOPT} -c ${tpd}/hw_if.c
|
||||
${CC} ${CCOPT} -c ${tpd}/measure.c
|
||||
${CC} ${CCOPT} -c -I${tpd} target.c
|
||||
${CC} ${CCOPT} -c ${tpd}/tc_hand.c
|
||||
${CC} ${CCOPT} -c ${tpd}/telem.c
|
||||
|
||||
|
||||
${CC} ${LDOPT} \
|
||||
-o debie1.elf \
|
||||
class.o \
|
||||
classtab.o \
|
||||
debie.o \
|
||||
harness.o \
|
||||
health.o \
|
||||
hw_if.o \
|
||||
measure.o \
|
||||
target.o \
|
||||
tc_hand.o \
|
||||
telem.o
|
||||
|
||||
84
targets/wasm-tacle/parallel/DEBIE/code/arch/mpc5554/target.c
Normal file
84
targets/wasm-tacle/parallel/DEBIE/code/arch/mpc5554/target.c
Normal file
@ -0,0 +1,84 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW, test harness for WCET analysis
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : target.c
|
||||
|
||||
Target-specific implementations of the DNI operations, specifically
|
||||
for the mpc5554/gcc target.
|
||||
|
||||
Options: if the preprocessor symbol TRACE_TARGET is defined,
|
||||
these operations generate trace message on stdout.
|
||||
|
||||
Based, with extensive changes, on parts of the SSF file rtx_if.c,
|
||||
rev 1.13, Fri May 21 00:14:00 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* This file contains one set of operations, as follows:
|
||||
|
||||
> memory operations: dpu_ctrl.h
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#if defined(TRACE_TARGET)
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
|
||||
#include "keyword.h"
|
||||
|
||||
|
||||
/* Memory operations : dpu_ctrl.h */
|
||||
|
||||
|
||||
#include "dpu_ctrl.h"
|
||||
|
||||
|
||||
static char data_memory[ 65536 ] __attribute__( ( section( ".externalram" ) ) );
|
||||
/* Simulated 80C32 external data RAM. */
|
||||
|
||||
|
||||
unsigned char *Data_Pointer ( uint16_t address )
|
||||
{
|
||||
return &data_memory[ address ];
|
||||
}
|
||||
|
||||
|
||||
void Set_Data_Byte ( data_address_t addr, unsigned char value )
|
||||
{
|
||||
#if defined(TRACE_TARGET)
|
||||
printf ( "Set_Data_Byte 0x%x to %d = 0x%x\n", addr, value, value );
|
||||
#endif
|
||||
data_memory[ addr ] = value;
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Data_Byte ( data_address_t addr )
|
||||
{
|
||||
unsigned char value = data_memory[ addr ];
|
||||
#if defined(TRACE_TARGET)
|
||||
printf ( "Get_Data_Byte 0x%x is %d = 0x%x\n", addr, value, value );
|
||||
#endif
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Code_Byte ( code_address_t addr )
|
||||
{
|
||||
#if defined(TRACE_TARGET)
|
||||
/* printf ("Get_Code_Byte 0x%x\n", addr); */
|
||||
/* This would be to much output. Skip. */
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,31 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Module : target_tm_data.h
|
||||
|
||||
The target-specific aspects of the Telemetry Data Structure.
|
||||
This version for the target mpc5554/gcc.
|
||||
|
||||
Based on the SSF file tm_data.h, rev 1.22, Mon May 31 10:10:12 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef TARGET_TM_DATA_H
|
||||
#define TARGET_TM_DATA_H
|
||||
|
||||
#define MAX_EVENTS 1261
|
||||
/* Same as in the original DEBIE-1 SW, although there limited
|
||||
by the size of the data memory.
|
||||
*/
|
||||
|
||||
#endif
|
||||
165
targets/wasm-tacle/parallel/DEBIE/code/arch/tc1796/keyword.h
Normal file
165
targets/wasm-tacle/parallel/DEBIE/code/arch/tc1796/keyword.h
Normal file
@ -0,0 +1,165 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : keyword.h
|
||||
|
||||
Macro definitions for Keil specific keywords to be used
|
||||
in portable parts of the DEBIE DPU software.
|
||||
|
||||
This version adapted to GNU GCC on host Intel/Linux.
|
||||
|
||||
Based on the SSF DHI file keyword.h, revision 1.9, Tue Mar 09 12:37:20 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
#ifndef KEYWORD_H
|
||||
#define KEYWORD_H
|
||||
|
||||
|
||||
/* Integer type definitions for native types that can hold integer
|
||||
values of at least a given number of bits. These types are used
|
||||
as loop counters to give the most natural and speedy code for
|
||||
the current target. This is Not the C99 stdint.h, but the types
|
||||
have similar names.
|
||||
|
||||
There is a particular form of this file for each (kind of) target
|
||||
processor. The present form is for GCC on 32-bit Intel/Linux, where
|
||||
the widths of the integer types are the following:
|
||||
|
||||
Type Octets Bits
|
||||
char 1 8
|
||||
short 2 16
|
||||
int 4 32
|
||||
long 4 32
|
||||
|
||||
This processor/compiler accepts unaliged multi-octet data, although
|
||||
access is slower. However, we still access possibly misaligned
|
||||
telemetry data using memcpy() instead of direct assignment,
|
||||
just to test that this approach works.
|
||||
|
||||
*/
|
||||
|
||||
/* General types */
|
||||
|
||||
typedef int int_least8_t;
|
||||
/* A signed integer covering at least -128 .. +127. */
|
||||
|
||||
typedef unsigned int uint_least8_t;
|
||||
/* An unsigned integer covering at least 0 .. 255. */
|
||||
|
||||
typedef unsigned short uint16_t;
|
||||
/* An unsigned 16-bit integer. */
|
||||
|
||||
typedef int int_least16_t;
|
||||
/* A signed integer covering at least -2**15 .. +2**15 - 1. */
|
||||
|
||||
typedef unsigned int uint_least16_t;
|
||||
/* An unsigned integer covering at least 0 .. 2**16 - 1. */
|
||||
|
||||
typedef uint16_t uskew16_t;
|
||||
/* A 16-bit type, perhaps not an integer, perhaps not 16-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
typedef unsigned int uint32_t;
|
||||
/* An unsigned 32-bit integer. */
|
||||
|
||||
typedef uint32_t uskew32_t;
|
||||
/* A 32-bit type, perhaps not an integer, perhaps not 32-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
|
||||
/* DEBIE-specific types */
|
||||
|
||||
typedef uint32_t data_address_t;
|
||||
/* An address into external data memory. */
|
||||
|
||||
typedef uint32_t code_address_t;
|
||||
/* An address into code memory. */
|
||||
|
||||
|
||||
/* Macros for accessing the DPU data memory by numeric address. */
|
||||
|
||||
extern unsigned char *Data_Pointer ( uint16_t address );
|
||||
|
||||
#define DATA_POINTER(ADDR) Data_Pointer (ADDR)
|
||||
|
||||
/* Macros for accessing and copying multi-octet data. */
|
||||
/* These may need target-specific adjustment if there are */
|
||||
/* alignment restrictions on multi-octet integer values, */
|
||||
/* because the operands in these macros may not be aligned */
|
||||
/* in the required way. */
|
||||
|
||||
extern void wcc_memcpy( void *dest, void *src, int size );
|
||||
|
||||
#define COPY(DEST,SOURCE) wcc_memcpy (&(DEST), &(SOURCE), sizeof(DEST))
|
||||
/* Copies the value of SOURCE to the location DEST. */
|
||||
|
||||
extern unsigned short Short_Value ( uskew16_t *x );
|
||||
|
||||
#define VALUE_OF(SOURCE) Short_Value (&(SOURCE))
|
||||
/* Returns the (integer) value of SOURCE, type uskew16_t. */
|
||||
|
||||
/* Macros for struct (aggregate) assignment. Some compilers */
|
||||
/* may not support assignment statements for such types. */
|
||||
|
||||
#define STRUCT_ASSIGN(DEST,SOURCE,TYPE) DEST = SOURCE
|
||||
|
||||
/* Macros for calling "patch" functions */
|
||||
|
||||
typedef code_address_t fptr_t;
|
||||
/* A function that is to be called after patching code memory. */
|
||||
/* The function may or may not be part of the patched code. */
|
||||
/* In the real SW this is "typedef void (*fptr_t)(void);" */
|
||||
|
||||
extern void Call_Patch ( fptr_t func );
|
||||
/* "Call" the patch func. */
|
||||
|
||||
#define CALL_PATCH(FUNCTION) Call_Patch (FUNCTION)
|
||||
/* Jump to the patched memory. */
|
||||
|
||||
/* Some macros for task and interrupt management */
|
||||
|
||||
#define TASK(TASK_NUMBER)
|
||||
#define PRIORITY(LEVEL)
|
||||
#define INTERRUPT(SOURCE)
|
||||
#define USED_REG_BANK(BANK)
|
||||
|
||||
/* Macro for declaring re-entrant function */
|
||||
|
||||
#define REENTRANT_FUNC
|
||||
|
||||
/* Memory model handling macros */
|
||||
|
||||
#define COMPACT_DATA
|
||||
#define COMPACT
|
||||
|
||||
#define PROGRAM
|
||||
|
||||
#define EXTERNAL
|
||||
#define DIRECT_INTERNAL
|
||||
#define INDIRECT_INTERNAL
|
||||
|
||||
#define LOCATION(ADDRESS)
|
||||
|
||||
/* Dealing with the benchmark target system */
|
||||
|
||||
|
||||
#define TARGET_INIT
|
||||
#define TARGET_MARK
|
||||
#define TARGET_REBOOT
|
||||
#define TARGET_START_TEST
|
||||
#define TARGET_REPEAT_TEST 0
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,23 @@
|
||||
/*
|
||||
problems.h for intel/linux
|
||||
|
||||
Part of the DEBIE-1 benchmark.
|
||||
|
||||
$Id: problems.h,v 1.1 2008/03/28 08:22:17 niklas Exp $
|
||||
*/
|
||||
|
||||
|
||||
#ifndef PROBLEMS_H
|
||||
#define PROBLEMS_H
|
||||
|
||||
#define FOR_PROBLEM(P)
|
||||
/* A marker to indicate that the program is about to execute */
|
||||
/* a test case that is to be included in the analysis problem */
|
||||
/* identified by P. */
|
||||
|
||||
#define END_PROBLEM
|
||||
/* A marked to indicate the end of a test case that is to be */
|
||||
/* included in the analysis problem identified by the last */
|
||||
/* executed FOR_PROBLEM. */
|
||||
|
||||
#endif
|
||||
67
targets/wasm-tacle/parallel/DEBIE/code/arch/tc1796/target.c
Normal file
67
targets/wasm-tacle/parallel/DEBIE/code/arch/tc1796/target.c
Normal file
@ -0,0 +1,67 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW, test harness for WCET analysis
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : target.c
|
||||
|
||||
Target-specific implementations of the DNI operations, specifically
|
||||
for the iF-DEV-LPC kit and the LPC2138 processor.
|
||||
|
||||
Based, with extensive changes, on parts of the SSF file rtx_if.c,
|
||||
rev 1.13, Fri May 21 00:14:00 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* This file contains one set of operations, as follows:
|
||||
|
||||
> memory operations: dpu_ctrl.h
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#include "keyword.h"
|
||||
|
||||
|
||||
/* Memory operations : dpu_ctrl.h */
|
||||
|
||||
|
||||
#include "dpu_ctrl.h"
|
||||
|
||||
|
||||
#define DATA_MEM_BASE 0xc0000000L
|
||||
/* The SRAM starts at this address. */
|
||||
|
||||
|
||||
unsigned char *Data_Pointer ( uint16_t address )
|
||||
{
|
||||
return ( unsigned char * )( DATA_MEM_BASE + ( uint32_t )address );
|
||||
}
|
||||
|
||||
|
||||
void Set_Data_Byte ( data_address_t addr, unsigned char value )
|
||||
{
|
||||
/* *(Data_Pointer (addr)) = value; */
|
||||
/* Safer to do nothing. */
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Data_Byte ( data_address_t addr )
|
||||
{
|
||||
return *( Data_Pointer ( addr ) );
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Code_Byte ( code_address_t addr )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Module : target_tm_data.h
|
||||
|
||||
The target-specific aspects of the Telemetry Data Structure.
|
||||
|
||||
Based on the SSF file tm_data.h, rev 1.22, Mon May 31 10:10:12 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef TARGET_TM_DATA_H
|
||||
#define TARGET_TM_DATA_H
|
||||
|
||||
#define MAX_EVENTS 1261
|
||||
/* Same as in the original DEBIE-1 SW, although there limited
|
||||
by the size of the data memory.
|
||||
*/
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,10 @@
|
||||
#include "keyword.h"
|
||||
|
||||
void wcc_memcpy( void *dest, void *src, int size )
|
||||
{
|
||||
int i;
|
||||
_Pragma( "loopbound min 1 max 4" )
|
||||
for ( i = 0; i < size; i++ )
|
||||
( ( unsigned char * )dest )[ i ] = ( ( unsigned char * )src )[ i ];
|
||||
return;
|
||||
}
|
||||
165
targets/wasm-tacle/parallel/DEBIE/code/arch/tc1797/keyword.h
Normal file
165
targets/wasm-tacle/parallel/DEBIE/code/arch/tc1797/keyword.h
Normal file
@ -0,0 +1,165 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : keyword.h
|
||||
|
||||
Macro definitions for Keil specific keywords to be used
|
||||
in portable parts of the DEBIE DPU software.
|
||||
|
||||
This version adapted to GNU GCC on host Intel/Linux.
|
||||
|
||||
Based on the SSF DHI file keyword.h, revision 1.9, Tue Mar 09 12:37:20 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
#ifndef KEYWORD_H
|
||||
#define KEYWORD_H
|
||||
|
||||
|
||||
/* Integer type definitions for native types that can hold integer
|
||||
values of at least a given number of bits. These types are used
|
||||
as loop counters to give the most natural and speedy code for
|
||||
the current target. This is Not the C99 stdint.h, but the types
|
||||
have similar names.
|
||||
|
||||
There is a particular form of this file for each (kind of) target
|
||||
processor. The present form is for GCC on 32-bit Intel/Linux, where
|
||||
the widths of the integer types are the following:
|
||||
|
||||
Type Octets Bits
|
||||
char 1 8
|
||||
short 2 16
|
||||
int 4 32
|
||||
long 4 32
|
||||
|
||||
This processor/compiler accepts unaliged multi-octet data, although
|
||||
access is slower. However, we still access possibly misaligned
|
||||
telemetry data using memcpy() instead of direct assignment,
|
||||
just to test that this approach works.
|
||||
|
||||
*/
|
||||
|
||||
/* General types */
|
||||
|
||||
typedef int int_least8_t;
|
||||
/* A signed integer covering at least -128 .. +127. */
|
||||
|
||||
typedef unsigned int uint_least8_t;
|
||||
/* An unsigned integer covering at least 0 .. 255. */
|
||||
|
||||
typedef unsigned short uint16_t;
|
||||
/* An unsigned 16-bit integer. */
|
||||
|
||||
typedef int int_least16_t;
|
||||
/* A signed integer covering at least -2**15 .. +2**15 - 1. */
|
||||
|
||||
typedef unsigned int uint_least16_t;
|
||||
/* An unsigned integer covering at least 0 .. 2**16 - 1. */
|
||||
|
||||
typedef uint16_t uskew16_t;
|
||||
/* A 16-bit type, perhaps not an integer, perhaps not 16-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
typedef unsigned int uint32_t;
|
||||
/* An unsigned 32-bit integer. */
|
||||
|
||||
typedef uint32_t uskew32_t;
|
||||
/* A 32-bit type, perhaps not an integer, perhaps not 32-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
|
||||
/* DEBIE-specific types */
|
||||
|
||||
typedef uint32_t data_address_t;
|
||||
/* An address into external data memory. */
|
||||
|
||||
typedef uint32_t code_address_t;
|
||||
/* An address into code memory. */
|
||||
|
||||
|
||||
/* Macros for accessing the DPU data memory by numeric address. */
|
||||
|
||||
extern unsigned char *Data_Pointer ( uint16_t address );
|
||||
|
||||
#define DATA_POINTER(ADDR) Data_Pointer (ADDR)
|
||||
|
||||
/* Macros for accessing and copying multi-octet data. */
|
||||
/* These may need target-specific adjustment if there are */
|
||||
/* alignment restrictions on multi-octet integer values, */
|
||||
/* because the operands in these macros may not be aligned */
|
||||
/* in the required way. */
|
||||
|
||||
extern void wcc_memcpy( void *dest, void *src, int size );
|
||||
|
||||
#define COPY(DEST,SOURCE) wcc_memcpy (&(DEST), &(SOURCE), sizeof(DEST))
|
||||
/* Copies the value of SOURCE to the location DEST. */
|
||||
|
||||
extern unsigned short Short_Value ( uskew16_t *x );
|
||||
|
||||
#define VALUE_OF(SOURCE) Short_Value (&(SOURCE))
|
||||
/* Returns the (integer) value of SOURCE, type uskew16_t. */
|
||||
|
||||
/* Macros for struct (aggregate) assignment. Some compilers */
|
||||
/* may not support assignment statements for such types. */
|
||||
|
||||
#define STRUCT_ASSIGN(DEST,SOURCE,TYPE) DEST = SOURCE
|
||||
|
||||
/* Macros for calling "patch" functions */
|
||||
|
||||
typedef code_address_t fptr_t;
|
||||
/* A function that is to be called after patching code memory. */
|
||||
/* The function may or may not be part of the patched code. */
|
||||
/* In the real SW this is "typedef void (*fptr_t)(void);" */
|
||||
|
||||
extern void Call_Patch ( fptr_t func );
|
||||
/* "Call" the patch func. */
|
||||
|
||||
#define CALL_PATCH(FUNCTION) Call_Patch (FUNCTION)
|
||||
/* Jump to the patched memory. */
|
||||
|
||||
/* Some macros for task and interrupt management */
|
||||
|
||||
#define TASK(TASK_NUMBER)
|
||||
#define PRIORITY(LEVEL)
|
||||
#define INTERRUPT(SOURCE)
|
||||
#define USED_REG_BANK(BANK)
|
||||
|
||||
/* Macro for declaring re-entrant function */
|
||||
|
||||
#define REENTRANT_FUNC
|
||||
|
||||
/* Memory model handling macros */
|
||||
|
||||
#define COMPACT_DATA
|
||||
#define COMPACT
|
||||
|
||||
#define PROGRAM
|
||||
|
||||
#define EXTERNAL
|
||||
#define DIRECT_INTERNAL
|
||||
#define INDIRECT_INTERNAL
|
||||
|
||||
#define LOCATION(ADDRESS)
|
||||
|
||||
/* Dealing with the benchmark target system */
|
||||
|
||||
|
||||
#define TARGET_INIT
|
||||
#define TARGET_MARK
|
||||
#define TARGET_REBOOT
|
||||
#define TARGET_START_TEST
|
||||
#define TARGET_REPEAT_TEST 0
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,23 @@
|
||||
/*
|
||||
problems.h for intel/linux
|
||||
|
||||
Part of the DEBIE-1 benchmark.
|
||||
|
||||
$Id: problems.h,v 1.1 2008/03/28 08:22:17 niklas Exp $
|
||||
*/
|
||||
|
||||
|
||||
#ifndef PROBLEMS_H
|
||||
#define PROBLEMS_H
|
||||
|
||||
#define FOR_PROBLEM(P)
|
||||
/* A marker to indicate that the program is about to execute */
|
||||
/* a test case that is to be included in the analysis problem */
|
||||
/* identified by P. */
|
||||
|
||||
#define END_PROBLEM
|
||||
/* A marked to indicate the end of a test case that is to be */
|
||||
/* included in the analysis problem identified by the last */
|
||||
/* executed FOR_PROBLEM. */
|
||||
|
||||
#endif
|
||||
67
targets/wasm-tacle/parallel/DEBIE/code/arch/tc1797/target.c
Normal file
67
targets/wasm-tacle/parallel/DEBIE/code/arch/tc1797/target.c
Normal file
@ -0,0 +1,67 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW, test harness for WCET analysis
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : target.c
|
||||
|
||||
Target-specific implementations of the DNI operations, specifically
|
||||
for the iF-DEV-LPC kit and the LPC2138 processor.
|
||||
|
||||
Based, with extensive changes, on parts of the SSF file rtx_if.c,
|
||||
rev 1.13, Fri May 21 00:14:00 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* This file contains one set of operations, as follows:
|
||||
|
||||
> memory operations: dpu_ctrl.h
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#include "keyword.h"
|
||||
|
||||
|
||||
/* Memory operations : dpu_ctrl.h */
|
||||
|
||||
|
||||
#include "dpu_ctrl.h"
|
||||
|
||||
|
||||
#define DATA_MEM_BASE 0xd0006000L
|
||||
/* The SRAM starts at this address. */
|
||||
|
||||
|
||||
unsigned char *Data_Pointer ( uint16_t address )
|
||||
{
|
||||
return ( unsigned char * )( DATA_MEM_BASE + ( uint32_t )address );
|
||||
}
|
||||
|
||||
|
||||
void Set_Data_Byte ( data_address_t addr, unsigned char value )
|
||||
{
|
||||
/* *(Data_Pointer (addr)) = value; */
|
||||
/* Safer to do nothing. */
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Data_Byte ( data_address_t addr )
|
||||
{
|
||||
return *( Data_Pointer ( addr ) );
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Code_Byte ( code_address_t addr )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Module : target_tm_data.h
|
||||
|
||||
The target-specific aspects of the Telemetry Data Structure.
|
||||
|
||||
Based on the SSF file tm_data.h, rev 1.22, Mon May 31 10:10:12 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef TARGET_TM_DATA_H
|
||||
#define TARGET_TM_DATA_H
|
||||
|
||||
#define MAX_EVENTS 1261
|
||||
/* Same as in the original DEBIE-1 SW, although there limited
|
||||
by the size of the data memory.
|
||||
*/
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,10 @@
|
||||
#include "keyword.h"
|
||||
|
||||
void wcc_memcpy( void *dest, void *src, int size )
|
||||
{
|
||||
int i;
|
||||
_Pragma( "loopbound min 1 max 4" )
|
||||
for ( i = 0; i < size; i++ )
|
||||
( ( unsigned char * )dest )[ i ] = ( ( unsigned char * )src )[ i ];
|
||||
return;
|
||||
}
|
||||
48
targets/wasm-tacle/parallel/DEBIE/code/arch/x86/build.sh
Executable file
48
targets/wasm-tacle/parallel/DEBIE/code/arch/x86/build.sh
Executable file
@ -0,0 +1,48 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Script to compile debie1 on the host Intel/Linux system.
|
||||
#
|
||||
# Any arguments go into the CCOPT (eg. -Wpadded).
|
||||
|
||||
|
||||
# Set tpd to the Test Program Directory:
|
||||
tpd=../..
|
||||
|
||||
# Set hnd to the "harness" directory:
|
||||
|
||||
hnd=${tpd}/harness
|
||||
|
||||
# Native gcc and options:
|
||||
|
||||
export CC="gcc"
|
||||
export CCOPT="-g -O2 -I. -I${hnd} -Wall $*"
|
||||
export LD="gcc"
|
||||
export LDOPT=
|
||||
|
||||
${CC} ${CCOPT} -c ${tpd}/class.c
|
||||
${CC} ${CCOPT} -c ${tpd}/classtab.c
|
||||
${CC} ${CCOPT} -c ${tpd}/debie.c
|
||||
${CC} ${CCOPT} -c -I${tpd} ${hnd}/harness.c -DTRACE_HARNESS
|
||||
${CC} ${CCOPT} -c ${tpd}/health.c
|
||||
${CC} ${CCOPT} -c ${tpd}/hw_if.c
|
||||
${CC} ${CCOPT} -c ${tpd}/measure.c
|
||||
${CC} ${CCOPT} -c -I${tpd} target.c -DTRACE_TARGET
|
||||
${CC} ${CCOPT} -c ${tpd}/tc_hand.c
|
||||
${CC} ${CCOPT} -c ${tpd}/telem.c
|
||||
${CC} ${CCOPT} -c wcc_memcpy.c
|
||||
|
||||
|
||||
${CC} ${LDOPT} \
|
||||
-o debie1 \
|
||||
class.o \
|
||||
classtab.o \
|
||||
debie.o \
|
||||
harness.o \
|
||||
health.o \
|
||||
hw_if.o \
|
||||
measure.o \
|
||||
target.o \
|
||||
tc_hand.o \
|
||||
telem.o \
|
||||
wcc_memcpy.o
|
||||
|
||||
166
targets/wasm-tacle/parallel/DEBIE/code/arch/x86/keyword.h
Normal file
166
targets/wasm-tacle/parallel/DEBIE/code/arch/x86/keyword.h
Normal file
@ -0,0 +1,166 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : keyword.h
|
||||
|
||||
Macro definitions for Keil specific keywords to be used
|
||||
in portable parts of the DEBIE DPU software.
|
||||
|
||||
This version adapted to GNU GCC on host Intel/Linux.
|
||||
|
||||
Based on the SSF DHI file keyword.h, revision 1.9, Tue Mar 09 12:37:20 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
#ifndef KEYWORD_H
|
||||
#define KEYWORD_H
|
||||
|
||||
|
||||
/* Integer type definitions for native types that can hold integer
|
||||
values of at least a given number of bits. These types are used
|
||||
as loop counters to give the most natural and speedy code for
|
||||
the current target. This is Not the C99 stdint.h, but the types
|
||||
have similar names.
|
||||
|
||||
There is a particular form of this file for each (kind of) target
|
||||
processor. The present form is for GCC on 32-bit Intel/Linux, where
|
||||
the widths of the integer types are the following:
|
||||
|
||||
Type Octets Bits
|
||||
char 1 8
|
||||
short 2 16
|
||||
int 4 32
|
||||
long 4 32
|
||||
|
||||
This processor/compiler accepts unaliged multi-octet data, although
|
||||
access is slower. However, we still access possibly misaligned
|
||||
telemetry data using memcpy() instead of direct assignment,
|
||||
just to test that this approach works.
|
||||
|
||||
*/
|
||||
|
||||
/* General types */
|
||||
|
||||
typedef int int_least8_t;
|
||||
/* A signed integer covering at least -128 .. +127. */
|
||||
|
||||
typedef unsigned int uint_least8_t;
|
||||
/* An unsigned integer covering at least 0 .. 255. */
|
||||
|
||||
typedef unsigned short uint16_t;
|
||||
/* An unsigned 16-bit integer. */
|
||||
|
||||
typedef int int_least16_t;
|
||||
/* A signed integer covering at least -2**15 .. +2**15 - 1. */
|
||||
|
||||
typedef unsigned int uint_least16_t;
|
||||
/* An unsigned integer covering at least 0 .. 2**16 - 1. */
|
||||
|
||||
typedef uint16_t uskew16_t;
|
||||
/* A 16-bit type, perhaps not an integer, perhaps not 16-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
typedef unsigned int uint32_t;
|
||||
/* An unsigned 32-bit integer. */
|
||||
|
||||
typedef uint32_t uskew32_t;
|
||||
/* A 32-bit type, perhaps not an integer, perhaps not 32-bit aligned. */
|
||||
/* If it is an integer type, it is unsigned. */
|
||||
|
||||
|
||||
/* DEBIE-specific types */
|
||||
|
||||
typedef uint16_t data_address_t;
|
||||
/* An address into external data memory. */
|
||||
|
||||
typedef uint16_t code_address_t;
|
||||
/* An address into code memory. */
|
||||
|
||||
|
||||
/* Macros for accessing the DPU data memory by numeric address. */
|
||||
|
||||
extern unsigned char *Data_Pointer ( uint16_t address );
|
||||
|
||||
#define DATA_POINTER(ADDR) Data_Pointer (ADDR)
|
||||
|
||||
/* Macros for accessing and copying multi-octet data. */
|
||||
/* These may need target-specific adjustment if there are */
|
||||
/* alignment restrictions on multi-octet integer values, */
|
||||
/* because the operands in these macros may not be aligned */
|
||||
/* in the required way. */
|
||||
|
||||
extern void wcc_memcpy( void *, void *, int );
|
||||
|
||||
#define COPY(DEST,SOURCE) wcc_memcpy (&(DEST), &(SOURCE), sizeof(DEST))
|
||||
/* Copies the value of SOURCE to the location DEST. */
|
||||
|
||||
extern unsigned short Short_Value ( uskew16_t *x );
|
||||
|
||||
#define VALUE_OF(SOURCE) Short_Value (&(SOURCE))
|
||||
/* Returns the (integer) value of SOURCE, type uskew16_t. */
|
||||
|
||||
/* Macros for struct (aggregate) assignment. Some compilers */
|
||||
/* may not support assignment statements for such types. */
|
||||
|
||||
#define STRUCT_ASSIGN(DEST,SOURCE,TYPE) DEST = SOURCE
|
||||
|
||||
/* Macros for calling "patch" functions */
|
||||
|
||||
typedef code_address_t fptr_t;
|
||||
/* A function that is to be called after patching code memory. */
|
||||
/* The function may or may not be part of the patched code. */
|
||||
/* In the real SW this is "typedef void (*fptr_t)(void);" */
|
||||
|
||||
extern void Call_Patch ( fptr_t func );
|
||||
/* "Call" the patch func. */
|
||||
|
||||
#define CALL_PATCH(FUNCTION) Call_Patch (FUNCTION)
|
||||
/* Jump to the patched memory. */
|
||||
|
||||
/* Some macros for task and interrupt management */
|
||||
|
||||
#define TASK(TASK_NUMBER)
|
||||
#define PRIORITY(LEVEL)
|
||||
#define INTERRUPT(SOURCE)
|
||||
#define USED_REG_BANK(BANK)
|
||||
|
||||
/* Macro for declaring re-entrant function */
|
||||
|
||||
#define REENTRANT_FUNC
|
||||
|
||||
/* Memory model handling macros */
|
||||
|
||||
#define COMPACT_DATA
|
||||
#define COMPACT
|
||||
|
||||
#define PROGRAM
|
||||
|
||||
#define EXTERNAL
|
||||
#define DIRECT_INTERNAL
|
||||
#define INDIRECT_INTERNAL
|
||||
|
||||
#define LOCATION(ADDRESS)
|
||||
|
||||
/* Dealing with the benchmark target system */
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#define TARGET_INIT printf ("Target Init.\n")
|
||||
#define TARGET_MARK printf ("Target Mark.\n")
|
||||
#define TARGET_REBOOT printf ("Target Reboot.\n")
|
||||
#define TARGET_START_TEST printf ("Target Start Test.\n")
|
||||
#define TARGET_REPEAT_TEST 0
|
||||
|
||||
#endif
|
||||
27
targets/wasm-tacle/parallel/DEBIE/code/arch/x86/problems.h
Normal file
27
targets/wasm-tacle/parallel/DEBIE/code/arch/x86/problems.h
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
problems.h for intel/linux
|
||||
|
||||
Part of the DEBIE-1 benchmark.
|
||||
|
||||
$Id: problems.h,v 1.1 2008/03/28 08:22:17 niklas Exp $
|
||||
*/
|
||||
|
||||
|
||||
#ifndef PROBLEMS_H
|
||||
#define PROBLEMS_H
|
||||
|
||||
#include "rpt_ipoint.h"
|
||||
|
||||
#define FOR_PROBLEM(P) { RPT_Ipoint(3); RPT_Ipoint(P); }
|
||||
/* A marker to indicate that the program is about to execute */
|
||||
/* a test case that is to be included in the analysis problem */
|
||||
/* identified by P. */
|
||||
/* For RapiTime, ipoint 3 shall be defined as an "escape", and */
|
||||
/* the associated info (P) shall be used to "demux" the trace. */
|
||||
|
||||
#define END_PROBLEM { RPT_Ipoint(3); RPT_Ipoint(0); }
|
||||
/* A marked to indicate the end of a test case that is to be */
|
||||
/* included in the analysis problem identified by the last */
|
||||
/* executed FOR_PROBLEM. */
|
||||
|
||||
#endif
|
||||
60396
targets/wasm-tacle/parallel/DEBIE/code/arch/x86/probs.txt
Normal file
60396
targets/wasm-tacle/parallel/DEBIE/code/arch/x86/probs.txt
Normal file
File diff suppressed because it is too large
Load Diff
18
targets/wasm-tacle/parallel/DEBIE/code/arch/x86/rpt_ipoint.h
Normal file
18
targets/wasm-tacle/parallel/DEBIE/code/arch/x86/rpt_ipoint.h
Normal file
@ -0,0 +1,18 @@
|
||||
/*
|
||||
rpt_ipoint.h for intel/linux
|
||||
|
||||
Part of the DEBIE-1 benchmark.
|
||||
|
||||
$Id: rpt_ipoint.h,v 1.1 2008/03/28 08:22:18 niklas Exp $
|
||||
*/
|
||||
|
||||
|
||||
#ifndef RPT_IPOINT_H
|
||||
#define RPT_IPOINT_H
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
//#define RPT_Ipoint(N) printf ("RPT_Ipoint %d\n", N)
|
||||
#define RPT_Ipoint(N)
|
||||
|
||||
#endif
|
||||
84
targets/wasm-tacle/parallel/DEBIE/code/arch/x86/target.c
Normal file
84
targets/wasm-tacle/parallel/DEBIE/code/arch/x86/target.c
Normal file
@ -0,0 +1,84 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW, test harness for WCET analysis
|
||||
Subsystem : DNI (DEBIE Null Interface)
|
||||
Module : target.c
|
||||
|
||||
Target-specific implementations of the DNI operations, specifically
|
||||
for the intel/linux target.
|
||||
|
||||
Options: if the preprocessor symbol TRACE_TARGET is defined,
|
||||
these operations generate trace message on stdout.
|
||||
|
||||
Based, with extensive changes, on parts of the SSF file rtx_if.c,
|
||||
rev 1.13, Fri May 21 00:14:00 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* This file contains one set of operations, as follows:
|
||||
|
||||
> memory operations: dpu_ctrl.h
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#if defined(TRACE_TARGET)
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
|
||||
#include "keyword.h"
|
||||
|
||||
|
||||
/* Memory operations : dpu_ctrl.h */
|
||||
|
||||
|
||||
#include "dpu_ctrl.h"
|
||||
|
||||
|
||||
static char data_memory[ 65536 ];
|
||||
/* Simulated 80C32 external data RAM. */
|
||||
|
||||
|
||||
unsigned char *Data_Pointer ( uint16_t address )
|
||||
{
|
||||
return &data_memory[ address ];
|
||||
}
|
||||
|
||||
|
||||
void Set_Data_Byte ( data_address_t addr, unsigned char value )
|
||||
{
|
||||
#if defined(TRACE_TARGET)
|
||||
printf ( "Set_Data_Byte 0x%x to %d = 0x%x\n", addr, value, value );
|
||||
#endif
|
||||
data_memory[ addr ] = value;
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Data_Byte ( data_address_t addr )
|
||||
{
|
||||
unsigned char value = data_memory[ addr ];
|
||||
#if defined(TRACE_TARGET)
|
||||
printf ( "Get_Data_Byte 0x%x is %d = 0x%x\n", addr, value, value );
|
||||
#endif
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
unsigned char Get_Code_Byte ( code_address_t addr )
|
||||
{
|
||||
#if defined(TRACE_TARGET)
|
||||
/* printf ("Get_Code_Byte 0x%x\n", addr); */
|
||||
/* This would be to much output. Skip. */
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1998 : Space Systems Finland Ltd.
|
||||
|
||||
Space Systems Finland Ltd (SSF) allows you to use this version of
|
||||
the DEBIE-I DPU software for the specific purpose and under the
|
||||
specific conditions set forth in the Terms Of Use document enclosed
|
||||
with or attached to this software. In particular, the software
|
||||
remains the property of SSF and you must not distribute the software
|
||||
to third parties without written and signed authorization from SSF.
|
||||
|
||||
System Name: DEBIE DPU SW
|
||||
Module : target_tm_data.h
|
||||
|
||||
The target-specific aspects of the Telemetry Data Structure.
|
||||
|
||||
Based on the SSF file tm_data.h, rev 1.22, Mon May 31 10:10:12 1999.
|
||||
|
||||
- * --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef TARGET_TM_DATA_H
|
||||
#define TARGET_TM_DATA_H
|
||||
|
||||
#define MAX_EVENTS 1261
|
||||
/* Same as in the original DEBIE-1 SW, although there limited
|
||||
by the size of the data memory.
|
||||
*/
|
||||
|
||||
#endif
|
||||
10
targets/wasm-tacle/parallel/DEBIE/code/arch/x86/wcc_memcpy.c
Normal file
10
targets/wasm-tacle/parallel/DEBIE/code/arch/x86/wcc_memcpy.c
Normal file
@ -0,0 +1,10 @@
|
||||
#include "keyword.h"
|
||||
|
||||
void wcc_memcpy( void *dest, void *src, int size )
|
||||
{
|
||||
int i;
|
||||
_Pragma( "loopbound min 2 max 4" )
|
||||
for ( i = 0; i < size; i++ )
|
||||
( ( unsigned char * )dest )[ i ] = ( ( unsigned char * )src )[ i ];
|
||||
return;
|
||||
}
|
||||
Reference in New Issue
Block a user