forked from Imagelibrary/rtems
I'm attaching a big patch for the ts_386ex BSP which adds and includes
the following:
1) Conversion to ELF format + minor code cleanups + documentation.
2) An Ada95 binding to FreeBSD sockets, based on Samuel Tardieu's
adasockets-0.1.3 package. This includes some sample applications.
3) Some Ada and C interfaces to add serial-port debugging to
programs. Comes with examples, too; the Ada one shows how
transparent adding the support can be. Note that Rosimildo sent me
the original C code.
The network stuff is not BSP specific, and could be added to your Ada
code collection. The debugging stuff is specific to the i386. Right
now, everything sits in my "tools" directory.
89 lines
2.8 KiB
INI
89 lines
2.8 KiB
INI
#
|
|
# Config file for the ts-386ex BSP
|
|
#
|
|
# $Id$
|
|
#
|
|
|
|
include $(RTEMS_ROOT)/make/custom/default.cfg
|
|
|
|
RTEMS_CPU=i386
|
|
RTEMS_CPU_MODEL=i386_nofp
|
|
|
|
# This is the actual bsp directory used during the build process.
|
|
RTEMS_BSP_FAMILY=ts_386ex
|
|
|
|
# This contains the compiler options necessary to select the CPU model
|
|
# and (hopefully) optimize for it. Enables software floating-point
|
|
# emulation since we don't have a i387 co-processor.
|
|
#
|
|
CPU_CFLAGS =-msoft-float -mno-fp-ret-in-387
|
|
|
|
# optimize flag: typically -0, could use -O4 or -fast
|
|
# -O4 is ok for RTEMS
|
|
# -fomit-frame-pointer breaks debugging and C++ exceptions
|
|
CFLAGS_OPTIMIZE_V= -O4
|
|
|
|
# This section makes the target dependent options file.
|
|
|
|
# NDEBUG (C library)
|
|
# if defined asserts do not generate code. This is commonly used
|
|
# as a command line option.
|
|
#
|
|
# RTEMS_TEST_NO_PAUSE (RTEMS tests)
|
|
# do not pause between screens of output in the rtems tests
|
|
#
|
|
# RTEMS_DEBUG (RTEMS)
|
|
# If defined, debug checks in RTEMS and support library code are enabled.
|
|
#
|
|
# BSP_DEBUG (BSP)
|
|
# Enables some debugging in the BSP package.
|
|
#
|
|
# LOAD_RTC_AT_START (BSP)
|
|
# Initialize RTC and load into system clock at startup. This will break
|
|
# some tests.
|
|
|
|
define make-target-options
|
|
@echo "/* #define NDEBUG 1 */ " >>$@
|
|
@echo "#define RTEMS_TEST_NO_PAUSE 1" >>$@
|
|
@echo "#define RTEMS_DEBUG 1" >>$@
|
|
@echo "/* #define UARTDEBUG 1 */" >>$@
|
|
@echo "/* #define BSP_DEBUG 1 */" >>$@
|
|
@echo "#define LOAD_RTC_AT_START 1" >>$@
|
|
endef
|
|
|
|
# Something like this should produce a map file but this does not work.
|
|
|
|
# -Xlinker "-Map $(basename $@).map" $(LINK_OBJS)
|
|
#
|
|
# This is a good way to get debug information. The rdmp file is large
|
|
# though (1.9 Mb for hello) and greatly slows the build process.
|
|
# $(OBJDUMP) -x -m i386 -d $(basename $@).coff > $(basename $@).rdmp
|
|
|
|
# The following are definitions of make-exe which will work using ld as
|
|
# is currently required. It is expected that as of gcc 2.8, the end user
|
|
# will be able to override parts of the compilers specs and link using gcc.
|
|
|
|
ifeq ($(RTEMS_USE_GCC272),yes)
|
|
define make-exe
|
|
$(LD) $(LDFLAGS) -N -T $(LINKCMDS) -o $(basename $@).coff \
|
|
-noinhibit-exec -Map $(basename $@).map \
|
|
$(START_FILE) $(LINK_OBJS) --start-group $(LINK_LIBS) --end-group
|
|
$(OBJCOPY) -O srec $(basename $@).coff $(basename $@).i
|
|
$(SED) -e 's/.$$//' -e '/^S0/d' $(basename $@).i | \
|
|
$(PACKHEX) > $(basename $@).exe
|
|
$(NM) -g -n $(basename $@).coff > $(basename $@).num
|
|
$(SIZE) $(basename $@).coff
|
|
endef
|
|
else
|
|
define make-exe
|
|
$(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_LD) -o $(basename $@).elf \
|
|
$(LINK_OBJS) $(LINK_LIBS)
|
|
$(OBJCOPY) -O binary $(basename $@).elf $(basename $@).exe
|
|
$(NM) -g -n $(basename $@).elf > $(basename $@).num
|
|
$(SIZE) $(basename $@).elf
|
|
endef
|
|
endif
|
|
|
|
# Miscellaneous additions go here
|
|
|