summaryrefslogtreecommitdiffstats
path: root/make/custom/mrm332.cfg
blob: d767955ce97b00f6a70787074f760531f35f1b18 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#
#  Config file for the mrm332 BSP
#
#  $Id$
#

include $(RTEMS_ROOT)/make/custom/default.cfg

RTEMS_CPU=m68k
RTEMS_CPU_MODEL=m68332

# This is the actual bsp directory used during the build process.
RTEMS_BSP_FAMILY=mrm332

#  This contains the compiler options necessary to select the CPU model
#  and (hopefully) optimize for it. 
CPU_CFLAGS = -mcpu=cpu32

# optimize flag: typically -O2
CFLAGS_OPTIMIZE_V = -O2 -g -fomit-frame-pointer

ifeq ($(MRM_IN_ROM),yes)
# Build a rommable image - move the .data section after the .text section
# in the image.
CPU_CFLAGS += -qnolinkcmds -T $(exec_prefix)/mrm332/lib/linkcmds_ROM
endif

ifeq ($(MRM_IN_ROM),yes)
define bsp-post-link
	$(OBJCOPY) --adjust-section-vma \
	  .data=`m68k-rtems-objdump --section-headers $(basename $@).pxe | \
	  awk 'function h2d(x) { x=toupper(x); digits=length(x); s=0 ; \
	       for (p=digits; p>0; p--) \
	       s += (16^(p-1)) * ( index("0123456789ABCDEF",\
	        substr(x,1+digits-p,1)) -1 );\
	        return s } ;\
	        /\.text/ { base = $$4 ; size = $$3 };\
	        END { printf("0x%x", h2d(base) + h2d(size)) }'\
	       ` $(basename $@).pxe $(basename $@).exe
	$(OBJCOPY) -O srec $(basename $@).exe $(basename $@).srec
	sed -e 's/.$$//' -e '/^S0/d' $(basename $@).srec | \
	    $(PACKHEX) > $(basename $@)$(DOWNEXT)
	$(NM) -g -n $(basename $@).pxe > $(basename $@).pnum
	rm -f $(basename $@).srec $(basename $@).srec
	$(default-bsp-post-link)
endef
else
define bsp-post-link
	$(OBJCOPY) -O srec $(basename $@).exe $(basename $@).srec
	sed -e 's/.$$//' -e '/^S0/d' $(basename $@).srec | \
	    $(PACKHEX) > $(basename $@)$(DOWNEXT)
	rm -f $(basename $@).srec
	$(default-bsp-post-link)
endef
endif