Commit 6785c5b2 authored by Thanassis Tsiodras's avatar Thanassis Tsiodras
Browse files

Basic instructions

parent 9cc191db
Pipeline #28 skipped
This repository contains RTEMS scaffolds that cover the development workflows
required for ESA projects. The Makefiles and the example sources demonstrate
(for now) how to:
* support both debug and release compilations
* support compilation for native and emulated FPU usage
Application sources
The sources of your project must be set inside the Makefile, in the FPU_SRC and
NONFPU_SRC variables. As their names suggest, you add a file in the FPU_SRC list
if you want it to be compiled for native FPU use (i.e. without `-msoft-float`).
Whether native FPU compilation is performed on it or not, is selected during
build time, by the FPU=1 Makefile parameter (see below)
Compilation options
You can control 3 orthogonal options (for now):
* Debug/Release mode:
$ make CFG=debug
$ ls -l bin.debug/
-rwxr-xr-x 1 user user 645273 Mar 16 17:43 fputest
$ make CFG=release
$ ls -l bin.release/
-rwxr-xr-x 1 root root 47860 Mar 16 17:48 fputest
-rwxr-xr-x 1 root root 585178 Mar 16 17:48 fputest.debug
Notice that in release compilation, the process creates a small binary (containing
only the executable code) and separately, the debug information - for loading
from inside GDB via the `file` command.
* Native FPU usage for the FPU_SRC sources:
To use native FPU compilation for the FPU_SRC list of source files:
$ make CFG=release FPU=1
* Verbosity:
Compilation messages follow the semantics of the Linux kernel compilations,
emitting short messages by default (CC for compilation, LD for linking):
$ touch src/task1.c
$ make
[CC] objs.debug/FPU_task1.o
[LD] bin.debug/fputest
If you want to see the complete commands used, invoke `make` with V=1:
$ touch src/task1.c
$ make V=1
sparc-rtems4.8-gcc -c -B/home/user/development/rtems/sparc-rtems4.8/leon3/lib \
-specs bsp_specs -qrtems -nodefaultlibs -mcpu=cypress -DBSP_leon3 -g -Wall \
-D_DEBUG -I/home/user/development/build/rtems-impr/testsuites/support/include \
-I src -msoft-float -o objs.debug/FPU_task1.o src/task1.c
sparc-rtems4.8-gcc -g -o bin.debug/fputest objs.debug/NONFPU_init.o \
objs.debug/NONFPU_printk.o objs.debug/NONFPU_leon3.o objs.debug/FPU_task1.o \
-msoft-float -B/home/user/development/rtems/sparc-rtems4.8/leon3/lib \
-specs bsp_specs -qrtems -nodefaultlibs -mcpu=cypress -DBSP_leon3 \
-nodefaultlibs -Wl,--wrap,_IO_Initialize_all_drivers \
/home/user/development/rtems/sparc-rtems4.8/leon3/lib/libno_event.a \
/home/user/development/rtems/sparc-rtems4.8/leon3/lib/libno_msg.a \
/home/user/development/rtems/sparc-rtems4.8/leon3/lib/libno_sem.a \
/home/user/development/rtems/sparc-rtems4.8/leon3/lib/libno_timer.a \
/home/user/development/rtems/sparc-rtems4.8/leon3/lib/libno_rtmon.a \
/home/user/development/rtems/sparc-rtems4.8/leon3/lib/libno_ext.a \
-Wl,--start-group -lrtemscpu -lio -lno_event -lno_msg -lno_sem -lno_timer \
-lno_rtmon -lno_ext -lrtemsbsp -llibc -lrtemscpu -Wl,--end-group \
-Wl,--script=linkcmds -B/tmp/edilibtmp/edilib/library -lgcc
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment