4 # Copyright (C) 2006 OREMEQ
6 # This file is part of canfestival, a library implementing the canopen
9 # This library is free software; you can redistribute it and/or
10 # modify it under the terms of the GNU Lesser General Public
11 # License as published by the Free Software Foundation; either
12 # version 2.1 of the License, or (at your option) any later version.
14 # This library is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 # Lesser General Public License for more details.
19 # You should have received a copy of the GNU Lesser General Public
20 # License along with this library; if not, write to the Free Software
21 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 OPT_CFLAGS = SUB_OPT_CFLAGS
27 PROG_CFLAGS = SUB_PROG_CFLAGS
29 SHAREDLIBOPT = -shared
31 ARCH_NAME = SUB_ARCH_NAME
34 INCLUDES = -I../../include -I../../examples/ecos_lpc2138_sja1000/include
36 ECOS_GLOBAL_CFLAGS=-mcpu=arm7tdmi -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Os -ffunction-sections -fdata-sections -fno-exceptions -finline-functions
37 ECOS_GLOBAL_LDFLAGS=-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -nostdlib
39 export CAN_CONTROLER_CLOCK_SPEED := 24.000 # Crystal frequency of the SJA1000 clock input.
40 export CAN_CONTROLER_PHASE_SHIFT_TOLERANCE := 3 #Synchronization Jump Width (SJW) (in SJA1000==> 0..3)
41 #To compensate for phase shifts between
42 #clock oscillators of different bus
43 # controllers, any bus controller must
44 #re-synchronize on any relevant signal
45 #edge of the current transmission.
48 OBJS = canOpenDriver.o lpc2138.o sja1000.o time_slicer.o
49 INCLUDE_H = applicfg.h baudrate_table.h canOpenDriver.h lpc2138.h lpc2138_defs.h \
50 lpc2138_pinout.h sja1000.h time_slicer.h
54 driver: build_baudrate $(OBJS)
57 gcc -o build_baudrate build_baudrate.c
58 @echo "Generate The baudrate register structure in canControler.h regarding the"
59 @echo "SJA1000 clock speed defined in the Makefile, CAN_CONTROLER_CLOCK_SPEED"
60 ./build_baudrate $(CAN_CONTROLER_CLOCK_SPEED) $(CAN_CONTROLER_PHASE_SHIFT_TOLERANCE)
63 libcandriver.a: $(OBJS)
65 @echo "*********************************************"
66 @echo "**Building [libcandriver]"
67 @echo "*********************************************"
68 $(BINUTILS_PREFIX)ar rc $@ $(OBJS)
69 $(BINUTILS_PREFIX)ranlib $@
73 @echo "*********************************************"
74 @echo "**Compiling $< -> $@"
75 @echo "*********************************************"
76 $(CC) -g -c $(ECOS_GLOBAL_CFLAGS) $(INCLUDES) -I. -c -o $@ $<
80 @echo "*********************************************"
81 @echo "**Compiling $< -> $@"
82 @echo "*********************************************"
83 $(CC) -c -x assembler-with-cpp $(ECOS_GLOBAL_CFLAGS) $(INCLUDES) -I. -o $@ $<
86 mkdir -p $(PREFIX)/lib
87 ln -s ../../../drivers/ecos_lpc2138_sja1000 $(PREFIX)/lib/driver
90 rm -f ../../examples/ecos_lpc2138_sja1000/lib/driver
93 rm -f $(OBJS) build_baudrate baudrate_table.h
96 rm -f ../../lib/ecos_lpc2138_sja1000/libcandriver.a