158 lines
5.7 KiB
Makefile
158 lines
5.7 KiB
Makefile
#------------------------------------------------------------------------------
|
|
# Copyright (C) Delta Tau Data Systems Inc., 2007
|
|
# All rights reserved.
|
|
#
|
|
# Generic makefile for any c realtime C plc 0, user servo or user phase
|
|
# For a new project change the following
|
|
#
|
|
# 1.) usralgo-objs should be assigned the 'C' source code files that need to be compiled
|
|
# 2.) issue the command 'make depend' the first time a project is created and
|
|
# (every time an additional 'C' file is added to the project the command
|
|
# 'make depend' must be issued)
|
|
# 3.) issue the command make clean
|
|
# 4.) issue the command make
|
|
#
|
|
# Notes
|
|
# --------
|
|
# Change DTDEBUG above to -O2 for release w/ optimization
|
|
# Change DTDEBUG above to -g3 for debug
|
|
# arm,i386,i385hv,ppc460-2,ppc460-1,ppc405
|
|
#------------------------------------------------------------------------------
|
|
|
|
PPMAC=SAR-CPPM-EXPMX1
|
|
#PPMAC=MOTTEST-CPPM-CRM0573
|
|
#PPMAC=SAROP11-CPPM-MOT6871
|
|
|
|
PMAC_ARCH=ppc465-2
|
|
|
|
ifeq ($(PMAC_ARCH),ppc465-2)
|
|
ARCH=powerpc
|
|
#CROSS_COMPILE=powerpc-meau-linux-gnu-
|
|
CROSS_COMPILE=/opt/eldk-4.2/usr/bin/ppc_4xxFP-
|
|
KDIR=/opt/powerpc-465-rootfs/usr/src/linux-3.2.21-serengeti-smp
|
|
KSRC=/opt/powerpc-465-rootfs/usr/src/linux-3.2.21-serengeti-smp
|
|
#CC=powerpc-meau-linux-gnu-gcc
|
|
#AS=powerpc-meau-linux-gnu-as
|
|
#LD=powerpc-meau-linux-gnu-gcc
|
|
CC=/opt/eldk-4.2/usr/bin/ppc_4xxFP-gcc
|
|
AS=/opt/eldk-4.2/usr/bin/ppc_4xxFP-gcc
|
|
LD=/opt/eldk-4.2/usr/bin/ppc_4xxFP-gcc
|
|
#STRIP=i686-meau-linux-gnu-strip
|
|
INCLUDE=/opt/powerpc-465-rootfs/usr/lib/gcc/powerpc-linux-gnu/4.6/include
|
|
XENOMAI_INC_DIR=/opt/powerpc-465-rootfs/usr/local/xenomai-2.6.2.1/include
|
|
XENOMAI_LIB_DIR=/opt/powerpc-465-rootfs/usr/local/xenomai-2.6.2.1/lib
|
|
RPATH=-Wl,-rpath-link,/opt/powerpc-465-rootfs/lib/powerpc-linux-gnu
|
|
ROOTFS_DIR=/opt/powerpc-465-rootfs
|
|
endif
|
|
|
|
#RTPMACINCLUDEDIR=/usr/local/dtlibs/rtpmac
|
|
#LIBPPMACINCLUDEDIR=/usr/local/dtlibs/libppmac
|
|
#THESE PATHS MUST BE ABSOLUTE !
|
|
RTPMACINCLUDEDIR=/opt/eldk-4.2/PPMAC_rootfs-7-wheezy/opt/ppmac/rtpmac/
|
|
LIBPPMACINCLUDEDIR=/opt/eldk-4.2/PPMAC_rootfs-7-wheezy/opt/ppmac/libppmac/
|
|
|
|
export ARCH
|
|
export CROSS_COMPILE
|
|
|
|
OBJS := ${patsubst %, %.o, $(MODULES)}
|
|
CLEANMOD := ${patsubst %, .%*, $(MODULES)}
|
|
PWD := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
|
|
|
|
|
|
obj-m += usralgo.o
|
|
usralgo-objs := usralgomain.o \
|
|
usrcode.o
|
|
|
|
LDFLAGS := -nostdlib
|
|
EXTRA_CFLAGS := -O2 -DCONFIG_460EX -D_GNU_SOURCE -D_REENTRANT -D__XENO__ -mhard-float -I$(RTPMACINCLUDEDIR) -I$(LIBPPMACINCLUDEDIR) -I$(XENOMAI_INC_DIR) -I$(XENOMAI_INC_DIR)/posix -I$(KSRC)/include/xenomai -I$(KSRC)/include/xenomai/posix -I$(INCLUDE) $(ADD_CFLAGS) --sysroot=$(ROOTFS_DIR)
|
|
KBUILD_EXTRA_SYMBOLS := /usr/local/dtlibs/libppmac/Module.symvers
|
|
|
|
%.o: %.S
|
|
$(CC) -s -D__KERNEL__ -x c -E $< -o $*.i
|
|
$(AS) -mbooke -o $@ $*.i
|
|
|
|
#all::
|
|
# cp -f /usr/local/usralgo/usralgomain.c $(PWD)
|
|
all:
|
|
$(MAKE) -C $(KSRC) SUBDIRS=$(PWD) modules
|
|
|
|
# $(MAKE) -C $(KSRC) SUBDIRS=$(PWD) modules V=1
|
|
# mv -f usralgo.ko ../../bin/Debug/
|
|
|
|
|
|
#modules:
|
|
# @echo "$(CFLAGS)"
|
|
|
|
bclean::
|
|
$(RM) *.o .*.o.d .*.o.cmd *.ko *.log
|
|
$(RM) -R .tmp*
|
|
$(RM) .runinfo
|
|
rm -rf .runinfo .tmp* .*.o.d .*.o.cmd .*.cmd *.o *.ko *.mod.c *.i *.so Module.symvers modules.order
|
|
|
|
clean::
|
|
$(RM) *.o .*.o.d .*.o.cmd *.ko
|
|
$(RM) -R .tmp*
|
|
$(RM) .runinfo
|
|
rm -rf .runinfo .tmp* .*.o.d .*.o.cmd .*.cmd *.o *.ko *.mod.c *.i *.so Module.symvers modules.order
|
|
|
|
dbg:
|
|
@echo PATH $(PATH)
|
|
|
|
.PHONY: tags
|
|
tags:
|
|
find . -type f -iname "*.[chS]" | xargs ctags -a -f .tags
|
|
find $(INCLUDE) -type f -iname "*.[chS]" | xargs ctags -a -f .tags
|
|
find $(XENOMAI_INC_DIR) -type f -iname "*.[chS]" | xargs ctags -a -f .tags
|
|
find $(RTPMACINCLUDEDIR) -type f -iname "*.[chS]" | xargs ctags -a -f .tags
|
|
|
|
|
|
Debug: all
|
|
|
|
install: all
|
|
scp usralgo.ko root@$(PPMAC):/tmp
|
|
scp /home/zamofing_t/Documents/prj/SwissFEL/PBTools/pbtools/usr_servo_phase/userservo_util root@$(PPMAC):/tmp
|
|
-ssh root@$(PPMAC) LD_LIBRARY_PATH=/opt/ppmac/libppmac/ /tmp/userservo_util -d 1
|
|
-ssh root@$(PPMAC) LD_LIBRARY_PATH=/opt/ppmac/libppmac/ /tmp/userservo_util -d 2
|
|
-ssh root@$(PPMAC) rmmod usralgo
|
|
-ssh root@$(PPMAC) insmod /tmp/usralgo.ko
|
|
gpasciiCommander --host $(PPMAC) -c 'Motor[1].Ctrl=Sys.ServoCtrl;Motor[2].Ctrl=Sys.ServoCtrl'
|
|
-ssh root@$(PPMAC) LD_LIBRARY_PATH=/opt/ppmac/libppmac/ /tmp/userservo_util -l 1 obsvr_servo_ctrl_1
|
|
-ssh root@$(PPMAC) LD_LIBRARY_PATH=/opt/ppmac/libppmac/ /tmp/userservo_util -l 2 obsvr_servo_ctrl_2
|
|
-ssh root@$(PPMAC) LD_LIBRARY_PATH=/opt/ppmac/libppmac/ /tmp/userservo_util -e 1
|
|
-ssh root@$(PPMAC) LD_LIBRARY_PATH=/opt/ppmac/libppmac/ /tmp/userservo_util -e 2
|
|
gpasciiCommander --host $(PPMAC) -c 'Motor[1].Ctrl=UserAlgo.ServoCtrlAddr[1];Motor[2].Ctrl=UserAlgo.ServoCtrlAddr[2]'
|
|
|
|
#Motor[1].Ctrl
|
|
#UserAlgo.ServoCtrlAddr[1]
|
|
#Motor[1].Ctrl=Sys.PidCtrl
|
|
#Motor[1].Ctrl=UserAlgo.ServoCtrlAddr[1]
|
|
#Motor[2].Ctrl=Sys.ServoCtrl
|
|
#Motor[1].Ctrl=Sys.ServoCtrl
|
|
#>>>>>>>> DO THIS TO ACTIVATE SERVO <<<<<<<<<<<
|
|
#Motor[1].Ctrl=Sys.ServoCtrl
|
|
#Motor[2].Ctrl=Sys.ServoCtrl
|
|
#make install
|
|
#Motor[1].Ctrl=UserAlgo.ServoCtrlAddr[1]
|
|
#Motor[1].Ctrl=UserAlgo.ServoCtrlAddr[2]
|
|
#position 0.407 results in ca 0mA output
|
|
|
|
|
|
#!common()
|
|
#!encoder_sim(enc=1,tbl=1,mot=1)
|
|
#!motor(mot=1,dirCur=0,contCur=100,peakCur=100,timeAtPeak=1,JogSpeed=8.,numPhase=3,invDir=True)
|
|
#Motor[1].pLimits=0;Motor[1].AmpFaultLevel=0;Motor[1].pAmpEnable=0;Motor[1].pAmpFault=0
|
|
|
|
#!common()
|
|
#!encoder_sim(enc=9,tbl=9,mot=9)
|
|
#Motor[9].pLimits=0;Motor[9].AmpFaultLevel=0;Motor[9].pAmpEnable=0;Motor[9].pAmpFault=0
|
|
#Motor[9].Ctrl=UserAlgo.ServoCtrlAddr[0]
|
|
|
|
|
|
|
|
#scp pp_proj.ini root@$(PPMAC):/var/ftp/usrflash/Project/Configuration/pp_proj.ini
|
|
#scp pp_proj.ini root@$(PPMAC):/tmp/pp_proj.ini
|
|
#ssh root@$(PPMAC) projpp
|
|
|
|
|
|
#MotorData
|