This is the DEBIE-1 DPU SW benchmark, version "e" This software is provided by courtesy of its developers and IP owners: Patria Aviation Oy, Space Systems Finland Oy, and Tidorum Ltd. The software is provided under the specific conditions set forth in the Terms Of Use document enclosed with or attached to this software. The Terms Of Use document should be in a file called terms_of_use-2014-05.pdf; if you do not find that file near this README file, ask for it from the source from where you got this README. Do not use the SW before you have read the Terms Of Use. Note that, prior to May 2014, this same benchmark was distributed under much less permissive Terms of Use. Check that the Terms of Use that you find are signed on 5.5.2014 by Harri Lähti for Patria Aviation Oy and on 8.5.2014 by Tuomas TalviOja for Space Systems Finland Oy and by Niklas Holsti for Tidorum Ltd. The DEBIE-1 DPU SW was developed by Space Systems Finland for Patria Aviation, to control the DEBIE-1 instrument, which was carried on the European Space Agency'S PROBA-1 satellite. The DEBIE-1 instrument observes micro-meteoroids and small space debris by detecting impacts on its sensors, both mechanically and electrically. A later version, DEBIE-2, was mounted on the International Space Station. This version of the DEBIE-1 DPU SW has been modified by Tidorum to adapt it for use as a benchmark (originally for the WCET Tool Challenge, http://www.mrtc.mdh.se/projects/WTC/). To distinguish the original SW from the benchmark, we suggest that the benchmark should be called the "debie1 benchmark" (lower case, omit "DPU"). This version of the benchmark includes a port to the MPC5554 target contributed by Simon Wegener of AbsInt Angewandte Informatik GmbH. The port consists of some target-specific header files, a build script, and an executable binary file. The Terms of Use apply to this port, too. For more information about the DEBIE-1 benchmark, please refer to the Wiki site of the WCET Tool Challenge 2014, at: http://www.irit.fr/wiki/doku.php?id=wtc:benchmarks:debie1 (However, it may be a while before that web page is updated for the new, less restrictive Terms of Use, so please ignore any out-of-date information regarding earlier terms of use on that web page.) CHANGES RELATIVE TO VERSION "d" - The port to the mpc5554/gcc target is changed to place the 64-ko array "data_memory", that simulates the "external data memory" of the original DEBIE-1 computer (an 80C32), in the ".externalram" segment, that is, in memory that is not on the MPC5554 chip. The reason for this change is that the 64-ko array is too large to fit in the internal SRAM. This change is again courtesy of Simon Wegener, AbsInt GmbH. The change is in the target-specific source file "target.c". A new binary (debie1.elf) is included. CONTENTS The folder "orig-docs" contains some development documentation for the original DEBIE-1 DPU SW. It is provided as a help to understanding the architecture and functionality of the debie1 benchmark, but NOTE that the benchmark is, in many respects, significantly different from the original DEBIE-1 DPU SW -- for one thing, the benchmark has been reduced to a single-threaded program, where the original SW was multi-threaded and ran under a pre-emptive real-time kernel. So some parts of these documents do not apply to the benchmark. The folder "code" contains the 'C' source-code of the debie1 benchmark. The main "code" folder contains the target-independent (portable) parts of the source-code, without the test-cases, too. The subfolder code/harness contains the source-code parts that simulate the DEBIE-1 DPU (Data Processing Unit) peripherals and run the test-cases. This code is portable, too, but it is not part of the original DEBIE-1 DPU flight software. The main module is harness.c; the rest of the files in code/harness are headers that introduce the harness interface into the DEBIE-1 DPU SW header files. For example, the header file code/harness/target_ad_conv.h extends code/ad_conv.h and makes the software use the simulated A/D conversion functions in harness.c. There are subfolders for each target and cross-compiler as follows: code/intel/linux Compilation for an Intel/Linux system using the native GCC compiler. The compiled program (debie1, not included in this archive) runs the test cases currently written in the harness module once. If the macro TRACE_HARNESS is defined, the benchmark then stops, otherwise it sticks in the eternal loop in debie1.c. The code should be fully portable to other 32-bit computers, eg Intel/Windows, but the build script may need adjustments. code/arm7-lpc2138-mam/gcc-if07 Cross-compilation for the NXP LPC2138 using the GNU ARM compiler that comes with the IF-DEV-LPC development kit, updated to Build 118 from www.isystem.com. The build script needs files (start-up and run-time code) from the folder arm7-lpc2138-mam/gcc-if07, see below. The LPC2138 is configured with MAM enabled (mode 2) and the PLL set to generate a 60 MHz clock frequency. The compiled program (debie1.elf, included in this archive) repeatedly runs the test cases in harness.c, and blinks the LED now and then (about every 25 sec). code/mpc5554/gcc Cross-compilation for the MPC5554 target using GCC. This port was contributed by Simon Wegener of AbsInt Angewandte Informatik GmbH. The build script target-build.sh generates an executable that runs the test cases in harness.c once and then enters the eternal loop in the main() function. By default this executable generates no output (and no RapiTime trace). The folder contains an ELF binary called debie1.elf that Simon generated with target-build.sh and the GNU crosstools from CodeSourcery's G++ lite gcc package (available at http://www.codesourcery.com/sgpp/lite/power). In this version of the benchmark, both internal SRAM and external RAM are used. Each target subfolder contains the following target- and compiler-specific files: keyword.h Type and macro definitions for this target and cross-compiler. problems.h Macro definitions for marking the start and end of specific WCC'08 "analysis problems" in the test part of harness.c. May need other header files, eg. for RapiTime. target.c Target-specific test-harness operations. target_xxx.h Target-specific parts of the DEBIE-1 header files, if it is necessary to override those in code/harness. build.sh, build.bat, or target-build.sh etc. A script to compile and link the benchmark. The folder "arm7-lpc218-mam/gcc-if07" (note, this is not the one under "code") contains files needed by "code/arm7-lpc2183-mam/gcc-if07": a setup script, a linker script, and run-time support files: crt0.s, crt_asyst.c, intvec.s, cpulib.c. To generate the binary executable for a given target and cross-compiler, "cd" to the corresponding subfolder of "code", check that the path definitions in the build script (build.sh, target-build.sh, or build.bat and the corresponding setup.sh or setup.bat) are suitable for your workstation, and execute the build script. For running and debugging the program on the iF-DEV-LPC, the winIDEA IDE from iSYSTEM is convenient. -- Tidorum/NH 2014-05-13
Name | Last commit | Last update |
---|---|---|
.. | ||
.frama-c | ||
arm7-lpc2138-mam/gcc-if07 | ||
code | ||
orig-docs | ||
.gitignore | ||
Makefile | ||
OSCS-README.txt | ||
README.txt | ||
terms_of_use-2014-05.pdf |