diff --git a/cfg/mx-stage.cfg b/cfg/mx-stage.cfg index f9bc282..442b062 100644 --- a/cfg/mx-stage.cfg +++ b/cfg/mx-stage.cfg @@ -36,7 +36,7 @@ //Mot 7: Test Stepper: Vextra PK244M 200 poles 1 rev = 100*2048 phase_step (2 stepper motor) //Enc 7: Test Stepper: ssi_enc multiturn 1 rev = 4096 enc_step -$$$*** +//$$$*** //!common() !common(PhaseFreq=20000,PhasePerServo=4) //!common(PhaseFreq=40000) diff --git a/usrServo/Readme.md b/src/Readme.md similarity index 76% rename from usrServo/Readme.md rename to src/Readme.md index bb5125f..8f9514e 100644 --- a/usrServo/Readme.md +++ b/src/Readme.md @@ -1,35 +1,7 @@ - scp -r root@SAROP11-CPPM-MOT6871:/opt/ppmac . - scp -r root@SAROP11-CPPM-MOT6871:/usr/local/xenomai/lib xenomai - scp -r root@SAROP11-CPPM-MOT6871:/usr/lib . - -LIB='-L ppmac/libppmac/ -Lxenomai -lppmac -lxenomai -lpthread_rt -lpthread -lrt -ldl' -LIB='-L/opt/eldk-4.2/PPMAC_rootfs-7-wheezy/opt/ppmac/libppmac -lppmac -L/opt/eldk-4.2/PPMAC_rootfs-7-wheezy/usr/local/xenomai-2.6.2.1/lib -lxenomai -lpthread_rt -lpthread -lrt -ldl' - - /opt/eldk-4.2/usr/bin/ppc_4xxFP-gcc -g main.o $LIB -o main - - -export LD_LIBRARY_PATH=/opt/ppmac/libppmac/ - - -Motor[4].Ctrl=Sys.ServoCtrl -Motor[4].Ctrl=UserAlgo.ServoCtrlAddr[0] - -UserAlgo.ServoCtrlAddr[0]=$.... - -Motor[4].IpbGain=2.9192927 - - -UserAlgo.ServoCtrlAddr[4]=$a1108068 - - -usrflash/Project/Bin/Debug/usralgo.so -usrflash/Project/Bin/Debug/usralgo.ko - - Helpfull Deltatau lines ----------------------- -cat /opt/ppmac/projpp/projpp_help.txt +cat /opt/ppmac/projpp/projpp_help.txt root@:/# projpp -l $$$*** @@ -70,19 +42,6 @@ cat /proc/kallsyms | grep MyUserAlgoFunctionName (e.g. cat /proc/kallsyms | grep UserAlgo.ServoCtrlAddr[4] = $a47e4068 Motor[4].Ctrl =UserAlgo.ServoCtrlAddr[4].a -build usralgo.ko ----------------- -The sources are from C:\Documents and Settings\user\Desktop\scratch\PowerBrick_LVUserServoLoop\PowerBrick_LVUserServoLoop\C Language\Realtime Routines -The Makefile was build with informations from the .../Realtime Routines/.usralgo.o.cmd etc. files - -rootfs files are on the powerbrick or in C:\DeltaTau\Power PMAC IDE\compilers\opt -> powerpc-465-rootfs.tar.gz -On the powerbrick the kernel sources are not installed -> therefore the rootfs from the IDE is needed - - -Make usralgo.ko - - - Sample Kernel Module -------------------- @@ -90,17 +49,18 @@ Sample Kernel Module http://www.thegeekstuff.com/2013/07/write-linux-kernel-module/ https://linux.die.net/lkmpg/x121.html + +cd /home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/usrServo/sampleKernelModule Do a module on Ubuntu works. - -> path usrServo/sampleKernelModul ln -sfT Makefile.Ubuntu Makefile make clean make dmesg - insmod /home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/usrServo/sampleKernelModule/hello.ko + insmod /home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/usrServo/sampleKernelModule/hello.ko rmmod hello.ko dmesg -Try to do a module for PowerBrick: +Do a module for PowerBrick: uncompress powerpc-465-rootfs.tar.gz (from PMAC IDE) to /opt -> /opt/powerpc-465-rootfs/usr/include/ etc. compile fixdep, modpost cd /opt/powerpc-465-rootfs/usr/src/linux-3.2.21-serengeti-smp/scripts/basic @@ -111,25 +71,37 @@ Try to do a module for PowerBrick: make clean make scp hello.ko root@SAROP11-CPPM-MOT6871:/tmp + dmesg + insmod /tmp/hello.ko + rmmod hello.ko + dmesg +Build test the user Servo kernel module +--------------------------------------- +The sources are from C:\Documents and Settings\user\Desktop\scratch\PowerBrick_LVUserServoLoop\PowerBrick_LVUserServoLoop\C Language\Realtime Routines +The Makefile calls the Lernel Makefile in /opt/powerpc-465-rootfs/usr/src/linux-3.2.21-serengeti-smp/Makefile +it generates files as .usralgo.o.cmd etc. + +rootfs files are on the powerbrick or in C:\DeltaTau\Power PMAC IDE\compilers\opt -> powerpc-465-rootfs.tar.gz +On the powerbrick the kernel sources are not installed -> therefore the rootfs from the IDE is needed (uncompressed to /opt/powerpc-465-rootfs) -Build test the Servo kernel module ----------------------------------- cd /home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/usrServo make clean make - scp usralgo.ko root@SAROP11-CPPM-MOT6871:/tmp - -build usralgo.ko (or copy from IDE after build) - -******** UP TO HERE IT WORKED *********** +scp usralgo.ko root@SAROP11-CPPM-MOT6871:/tmp - - -insmod /opt/ppmac/usrflash/Project/Bin/Debug/usralgo.ko +rmmod usralgo insmod /tmp/usralgo.ko +cat /proc/kallsyms | grep user_pid_ctrl +>>>> a35e812c T user_pid_ctrl [usralgo] + +UserAlgo.ServoCtrlAddr[4] = $a35e812c +Motor[4].Ctrl =UserAlgo.ServoCtrlAddr[4].a + + + 286 dmesg 287 rmmod hello.ko @@ -152,3 +124,45 @@ rmmod usralgo insmod /mypath/usralgo.ko (e.g. insmod /opt/ppmac/usrflash/Project/Bin/Debug/usralgo.ko) cat /proc/kallsyms | grep MyUserAlgoFunctionName (e.g. cat /proc/kallsyms | grep user_pid_ctrl) + + + + + + + + + + + +SCRATCH +------- + + + scp -r root@SAROP11-CPPM-MOT6871:/opt/ppmac . + scp -r root@SAROP11-CPPM-MOT6871:/usr/local/xenomai/lib xenomai + scp -r root@SAROP11-CPPM-MOT6871:/usr/lib . + +LIB='-L ppmac/libppmac/ -Lxenomai -lppmac -lxenomai -lpthread_rt -lpthread -lrt -ldl' +LIB='-L/opt/eldk-4.2/PPMAC_rootfs-7-wheezy/opt/ppmac/libppmac -lppmac -L/opt/eldk-4.2/PPMAC_rootfs-7-wheezy/usr/local/xenomai-2.6.2.1/lib -lxenomai -lpthread_rt -lpthread -lrt -ldl' +INC='-I/opt/eldk-4.2/PPMAC_rootfs-7-wheezy/opt/ppmac/libppmac -I/opt/eldk-4.2/PPMAC_rootfs-7-wheezy/opt/ppmac/rtpmac' + +/opt/eldk-4.2/usr/bin/ppc_4xxFP-gcc -g $INC -c main.c -o main.o +/opt/eldk-4.2/usr/bin/ppc_4xxFP-gcc -g main.o $LIB -o main +scp main root@SAROP11-CPPM-MOT6871:/tmp + +export LD_LIBRARY_PATH=/opt/ppmac/libppmac/ +./main + + +Motor[4].Ctrl=Sys.ServoCtrl +Motor[4].Ctrl=UserAlgo.ServoCtrlAddr[0] +UserAlgo.ServoCtrlAddr[0]=$.... +Motor[4].IpbGain=2.9192927 +UserAlgo.ServoCtrlAddr[4]=$a1108068 + +usrflash/Project/Bin/Debug/usralgo.so +usrflash/Project/Bin/Debug/usralgo.ko + + + diff --git a/src/sampleKernelModule/Makefile b/src/sampleKernelModule/Makefile new file mode 120000 index 0000000..fe177e1 --- /dev/null +++ b/src/sampleKernelModule/Makefile @@ -0,0 +1 @@ +Makefile.Deltatau \ No newline at end of file diff --git a/usrServo/sampleKernelModule/Makefile.Deltatau b/src/sampleKernelModule/Makefile.Deltatau similarity index 100% rename from usrServo/sampleKernelModule/Makefile.Deltatau rename to src/sampleKernelModule/Makefile.Deltatau diff --git a/usrServo/sampleKernelModule/Makefile.Ubuntu b/src/sampleKernelModule/Makefile.Ubuntu similarity index 100% rename from usrServo/sampleKernelModule/Makefile.Ubuntu rename to src/sampleKernelModule/Makefile.Ubuntu diff --git a/usrServo/sampleKernelModule/hello.c b/src/sampleKernelModule/hello.c similarity index 100% rename from usrServo/sampleKernelModule/hello.c rename to src/sampleKernelModule/hello.c diff --git a/src/setUsrServo/Makefile b/src/setUsrServo/Makefile new file mode 100644 index 0000000..c5a4454 --- /dev/null +++ b/src/setUsrServo/Makefile @@ -0,0 +1,18 @@ +INC=-I/opt/eldk-4.2/PPMAC_rootfs-7-wheezy/opt/ppmac/libppmac -I/opt/eldk-4.2/PPMAC_rootfs-7-wheezy/opt/ppmac/rtpmac + +LIB=-L/opt/eldk-4.2/PPMAC_rootfs-7-wheezy/opt/ppmac/libppmac -lppmac -L/opt/eldk-4.2/PPMAC_rootfs-7-wheezy/usr/local/xenomai-2.6.2.1/lib -lxenomai -lpthread_rt -lpthread -lrt -ldl + +CC=/opt/eldk-4.2/usr/bin/ppc_4xxFP-gcc +LD=$(CC) + +all: setUsrServo + +setUsrServo.o: setUsrServo.c + $(CC) -g $(INC) -c setUsrServo.c -o setUsrServo.o + +setUsrServo: setUsrServo.o + $(LD) -g $(LIB) setUsrServo.o -o setUsrServo + scp setUsrServo root@SAROP11-CPPM-MOT6871:/tmp + +clean: + rm setUsrServo setUsrServo.o \ No newline at end of file diff --git a/src/setUsrServo/main b/src/setUsrServo/main new file mode 100755 index 0000000..a161d22 Binary files /dev/null and b/src/setUsrServo/main differ diff --git a/src/setUsrServo/main.o b/src/setUsrServo/main.o new file mode 100644 index 0000000..9e21679 Binary files /dev/null and b/src/setUsrServo/main.o differ diff --git a/src/setUsrServo/setUsrServo b/src/setUsrServo/setUsrServo new file mode 100755 index 0000000..a3194d3 Binary files /dev/null and b/src/setUsrServo/setUsrServo differ diff --git a/src/setUsrServo/setUsrServo.c b/src/setUsrServo/setUsrServo.c new file mode 100644 index 0000000..4fca2dd --- /dev/null +++ b/src/setUsrServo/setUsrServo.c @@ -0,0 +1,61 @@ +#include +//http://forums.deltatau.com/showthread.php?tid=24 ->examples to write directly to shared memory +#include "RtGpShm.h" // Global Rt/Gp Shared memory pointers +#include "pRtGpShm.h" // Global Rt/Gp Shared memory pointers +//extern "C" +//{ + void mydbg(char* s, int a, int b); +//} +main() +{ + int i; + int status; + char buf[256]; + printf("hello\n"); + printf("there\n"); + InitLibrary(); + for (i=0;i<256;i++) + { + printf("hello %d\n",i); + snprintf(buf,sizeof(buf),"Gate3[0].GpioData[0].16.8=%d\n",i); + status=Command(buf); //ppmac gplib function + printf("%s ->%d\n",buf,status); + //mydbg("gugus", i, 2*i); + usleep(10000); + } + { + int i; + struct SHM *p; // Pointer to shared memory + p=pshm; + printf("Sys.ServoCtrl 0x%p\n",p->ServoCtrl); + + //p->Motor[4].Servo.Kp=123.f; + printf("Motor[4].Servo.Kp %f\n",p->Motor[4].Servo.Kp); + + printf("Motor[4].Ctrl 0x%p\n",p->Motor[4].Ctrl); + + printf("UserAlgo.ServoCtrlName[4] %s\n",p->UserAlgo.ServoCtrlName[4]); + printf("UserAlgo.ServoCtrlAddr[4] %x\n",p->UserAlgo.ServoCtrlAddr[4]); + + printf("Motor[4].UserPhase 0x%p\n",p->Motor[4].UserPhase); + printf("Motor[4].UserServo 0x%p\n",p->Motor[4].UserServo); + + + //for(i=0;i<8;i++) + //{ + // printf("UserAlgo.ServoName %s\n",p->UserAlgo.ServoName[i]); + // printf("UserAlgo.ServoAddr %x\n",p->UserAlgo.ServoAddr[i]); + // printf("UserAlgo.ServoCtrlName %s\n",p->UserAlgo.ServoCtrlName[i]); + // printf("UserAlgo.ServoCtrlAddr %x\n",p->UserAlgo.ServoCtrlAddr[i]); + //} + + strcpy(p->UserAlgo.ServoCtrlName[4],"user_pid_ctrl"); + p->UserAlgo.ServoCtrlAddr[4]= 0xa35e012c; + + + //p->Motor[4].Ctrl=0x123456; + //UserAlgo + } + + CloseLibrary(); +} diff --git a/src/setUsrServo/setUsrServo.o b/src/setUsrServo/setUsrServo.o new file mode 100644 index 0000000..02b226d Binary files /dev/null and b/src/setUsrServo/setUsrServo.o differ diff --git a/usrServo/Makefile b/src/usrServo/Makefile similarity index 80% rename from usrServo/Makefile rename to src/usrServo/Makefile index fb1de9c..2b95b4b 100644 --- a/usrServo/Makefile +++ b/src/usrServo/Makefile @@ -1,21 +1,21 @@ #------------------------------------------------------------------------------ # 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 +# (every time an additional 'C' file is added to the project the command # 'make depend' must be issued) -# 3.) issue the command make clean +# 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 +# Change DTDEBUG above to -g3 for debug # arm,i386,i385hv,ppc460-2,ppc460-1,ppc405 #------------------------------------------------------------------------------ @@ -44,8 +44,8 @@ endif #RTPMACINCLUDEDIR=/usr/local/dtlibs/rtpmac #LIBPPMACINCLUDEDIR=/usr/local/dtlibs/libppmac #THESE PATHS MUST BE ABSOLUTE ! -RTPMACINCLUDEDIR=/home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/usrServo/ppmac/rtpmac/ -LIBPPMACINCLUDEDIR=/home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/usrServo/ppmac/libppmac/ +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 @@ -70,10 +70,16 @@ KBUILD_EXTRA_SYMBOLS := /usr/local/dtlibs/libppmac/Module.symvers #all:: # cp -f /usr/local/usralgo/usralgomain.c $(PWD) all: -# $(MAKE) -C $(KSRC) SUBDIRS=$(PWD) modules - $(MAKE) -C $(KSRC) SUBDIRS=$(PWD) modules V=1 + $(MAKE) -C $(KSRC) SUBDIRS=$(PWD) modules + scp usralgo.ko root@SAROP11-CPPM-MOT6871:/tmp + scp pp_proj.ini root@SAROP11-CPPM-MOT6871:/var/ftp/usrflash/Project/Configuration/pp_proj.ini + scp pp_proj.ini root@SAROP11-CPPM-MOT6871:/tmp/pp_proj.ini + ssh root@SAROP11-CPPM-MOT6871 projpp + +# $(MAKE) -C $(KSRC) SUBDIRS=$(PWD) modules V=1 # mv -f usralgo.ko ../../bin/Debug/ + #modules: # @echo "$(CFLAGS)" @@ -90,4 +96,4 @@ clean:: rm -rf .runinfo .tmp* .*.o.d .*.o.cmd .*.cmd *.o *.ko *.mod.c *.i *.so Module.symvers modules.order dbg: - @echo PATH $(PATH) \ No newline at end of file + @echo PATH $(PATH) diff --git a/usrServo/pp_proj.h b/src/usrServo/pp_proj.h old mode 100644 new mode 100755 similarity index 67% rename from usrServo/pp_proj.h rename to src/usrServo/pp_proj.h index 69f926c..2dec7b8 --- a/usrServo/pp_proj.h +++ b/src/usrServo/pp_proj.h @@ -186,110 +186,4 @@ double GetEnumPtrArrayVar(enum ptrMarray var, unsigned index) // ***** Standard default mode ***** #endif #endif -//Kinematic defines for CfromScript -#define FWD_KIN 0 -#define INV_KIN 1 -#define RT_PLC 2 -#define BG_PLC 3 -#define RT_PROG 4 -#define KinPosMotor L -#define KinVelMotor R -#define KinEnaAxisA 0x1 -#define KinPosAxisA C[0] -#define KinVelAxisA C[32] -#define KinEnaAxisB 0x2 -#define KinPosAxisB C[1] -#define KinVelAxisB C[33] -#define KinEnaAxisC 0x4 -#define KinPosAxisC C[2] -#define KinVelAxisC C[34] -#define KinEnaAxisU 0x8 -#define KinPosAxisU C[3] -#define KinVelAxisU C[35] -#define KinEnaAxisV 0x10 -#define KinPosAxisV C[4] -#define KinVelAxisV C[36] -#define KinEnaAxisW 0x20 -#define KinPosAxisW C[5] -#define KinVelAxisW C[37] -#define KinEnaAxisX 0x40 -#define KinPosAxisX C[6] -#define KinVelAxisX C[38] -#define KinEnaAxisY 0x80 -#define KinPosAxisY C[7] -#define KinVelAxisY C[39] -#define KinEnaAxisZ 0x100 -#define KinPosAxisZ C[8] -#define KinVelAxisZ C[40] -#define KinEnaAxisAA 0x200 -#define KinPosAxisAA C[9] -#define KinVelAxisAA C[41] -#define KinEnaAxisBB 0x400 -#define KinPosAxisBB C[10] -#define KinVelAxisBB C[42] -#define KinEnaAxisCC 0x800 -#define KinPosAxisCC C[11] -#define KinVelAxisCC C[43] -#define KinEnaAxisDD 0x1000 -#define KinPosAxisDD C[12] -#define KinVelAxisDD C[44] -#define KinEnaAxisEE 0x2000 -#define KinPosAxisEE C[13] -#define KinVelAxisEE C[45] -#define KinEnaAxisFF 0x4000 -#define KinPosAxisFF C[14] -#define KinVelAxisFF C[46] -#define KinEnaAxisGG 0x8000 -#define KinPosAxisGG C[15] -#define KinVelAxisGG C[47] -#define KinEnaAxisHH 0x10000 -#define KinPosAxisHH C[16] -#define KinVelAxisHH C[48] -#define KinEnaAxisLL 0x20000 -#define KinPosAxisLL C[17] -#define KinVelAxisLL C[49] -#define KinEnaAxisMM 0x40000 -#define KinPosAxisMM C[18] -#define KinVelAxisMM C[50] -#define KinEnaAxisNN 0x80000 -#define KinPosAxisNN C[19] -#define KinVelAxisNN C[51] -#define KinEnaAxisOO 0x100000 -#define KinPosAxisOO C[20] -#define KinVelAxisOO C[52] -#define KinEnaAxisPP 0x200000 -#define KinPosAxisPP C[21] -#define KinVelAxisPP C[53] -#define KinEnaAxisQQ 0x400000 -#define KinPosAxisQQ C[22] -#define KinVelAxisQQ C[54] -#define KinEnaAxisRR 0x800000 -#define KinPosAxisRR C[23] -#define KinVelAxisRR C[55] -#define KinEnaAxisSS 0x1000000 -#define KinPosAxisSS C[24] -#define KinVelAxisSS C[56] -#define KinEnaAxisTT 0x2000000 -#define KinPosAxisTT C[25] -#define KinVelAxisTT C[57] -#define KinEnaAxisUU 0x4000000 -#define KinPosAxisUU C[26] -#define KinVelAxisUU C[58] -#define KinEnaAxisVV 0x8000000 -#define KinPosAxisVV C[27] -#define KinVelAxisVV C[59] -#define KinEnaAxisWW 0x10000000 -#define KinPosAxisWW C[28] -#define KinVelAxisWW C[60] -#define KinEnaAxisXX 0x20000000 -#define KinPosAxisXX C[29] -#define KinVelAxisXX C[61] -#define KinEnaAxisYY 0x40000000 -#define KinPosAxisYY C[30] -#define KinVelAxisYY C[62] -#define KinEnaAxisZZ 0x80000000 -#define KinPosAxisZZ C[31] -#define KinVelAxisZZ C[63] -#define KinAxisUsed D[0] -#define KinVelEna D[0] #endif //_PP_PROJ_H_ diff --git a/src/usrServo/pp_proj.ini b/src/usrServo/pp_proj.ini new file mode 100755 index 0000000..a1fe6ba --- /dev/null +++ b/src/usrServo/pp_proj.ini @@ -0,0 +1,5 @@ +# This section loads all Power PMAC programs & is run through the pre-processor/CmdProcessor. It is a sample project default load. +[RTUSRCCODE] +usrrtmodule=/tmp/usralgo.ko +ServoCtrlName4=user_pid_ctrl + diff --git a/usrServo/usralgomain.c b/src/usrServo/usralgomain.c similarity index 100% rename from usrServo/usralgomain.c rename to src/usrServo/usralgomain.c diff --git a/usrServo/usrcode.c b/src/usrServo/usrcode.c similarity index 95% rename from usrServo/usrcode.c rename to src/usrServo/usrcode.c index 88cb5b6..5fa87a4 100644 --- a/usrServo/usrcode.c +++ b/src/usrServo/usrcode.c @@ -63,8 +63,8 @@ double user_pid_ctrl( struct MotorData *Mptr) Mptr->Servo.Integrator+=Mptr->PosError*Mptr->Servo.Ki; // I term ctrl_out+=Mptr->Servo.Integrator; // Combine - if (ctrl_out>10)ctrl_out=10; - if (ctrl_out<-10)ctrl_out=-10; + if (ctrl_out>150)ctrl_out=150; + if (ctrl_out<-150)ctrl_out=-150; return ctrl_out; } else { diff --git a/usrServo/usrcode.h b/src/usrServo/usrcode.h similarity index 100% rename from usrServo/usrcode.h rename to src/usrServo/usrcode.h diff --git a/usrServo/Makefile.old b/usrServo/Makefile.old deleted file mode 100644 index c158bdf..0000000 --- a/usrServo/Makefile.old +++ /dev/null @@ -1,47 +0,0 @@ - -LIB='-L/opt/eldk-4.2/PPMAC_rootfs-7-wheezy/opt/ppmac/libppmac -lppmac -L/opt/eldk-4.2/PPMAC_rootfs-7-wheezy/usr/local/xenomai-2.6.2.1/lib -lxenomai -lpthread_rt -lpthread -lrt -ldl' - -#/opt/eldk-4.2/usr/bin/ppc_4xxFP-gcc -g main.o $LIB -o main -# -CC=/opt/eldk-4.2/usr/bin/ppc_4xxFP-gcc - -HOST=SAROP11-CPPM-MOT6871 - -ppmac: - scp -r root@$(HOST):/opt/ppmac . -xenomai: - scp -r root@$(HOST):/usr/local/xenomai/lib xenomai -lib: - scp -r root@$(HOST):/usr/lib . - -powerpc-465-rootfs: - tar -xvf powerpc-465-rootfs.tar.gz - -prerequisites: ppmac xenomai lib - -usralgo.ko: usralgo.mod.o usralgo.o usrcode.o - powerpc-meau-linux-gnu-gcc -r -nostdlib -T /opt/powerpc-465-rootfs/usr/src/linux-3.2.21-serengeti-smp/scripts/module-common.lds arch/powerpc/lib/crtsavres.o -o /REALTI~1/usralgo.ko /REALTI~1/usralgo.o /REALTI~1/usralgo.mod.o - -usralgo.mod.o: - powerpc-meau-linux-gnu-gcc -Wp,-MD,/REALTI~1/.usralgo.mod.o.d -nostdinc -isystem /usr/local/lib/gcc/powerpc-meau-linux-gnu/4.6.4/include -I/opt/powerpc-465-rootfs/usr/src/linux-3.2.21-serengeti-smp/arch/powerpc/include -Iarch/powerpc/include/generated -Iinclude -include /opt/powerpc-465-rootfs/usr/src/linux-3.2.21-serengeti-smp/include/linux/kconfig.h -D__KERNEL__ -Iarch/powerpc -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -msoft-float -pipe -Iarch/powerpc -ffixed-r2 -mmultiple -mno-altivec -mno-spe -mspe=no -funit-at-a-time -fno-dwarf2-cfi-asm -mno-string -Wa,-m405 -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -g -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -O2 -DCONFIG_460EX -D_GNU_SOURCE -D_REENTRANT -D__XENO__ -mhard-float -I/usr/local/dtlibs/rtpmac -I/usr/local/dtlibs/libppmac -I/opt/powerpc-465-rootfs/usr/local/xenomai-2.6.2.1/include -I/opt/powerpc-465-rootfs/usr/local/xenomai-2.6.2.1/include/posix -I/opt/powerpc-465-rootfs/usr/src/linux-3.2.21-serengeti-smp/include/xenomai -I/opt/powerpc-465-rootfs/usr/src/linux-3.2.21-serengeti-smp/include/xenomai/posix -I/opt/powerpc-465-rootfs/usr/lib/gcc/powerpc-linux-gnu/4.6/include --sysroot=/opt/powerpc-465-rootfs -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(usralgo.mod)" -D"KBUILD_MODNAME=KBUILD_STR(usralgo)" -DMODULE -c -o /REALTI~1/usralgo.mod.o /REALTI~1/usralgo.mod.c - -usralgo.o: - powerpc-meau-linux-gnu-gcc -nostdlib -r -o /REALTI~1/usralgo.o /REALTI~1/usralgomain.o /REALTI~1/usrcode.o - -usrcode.o: powerpc-465-rootfs - $(CC) -nostdinc \ - -Ipowerpc-465-rootfs/usr/src/linux-3.2.21-serengeti-smp/arch/powerpc/include \ - -Ipowerpc-465-rootfs/usr/src/linux-3.2.21-serengeti-smp/include \ - -include powerpc-465-rootfs/usr/src/linux-3.2.21-serengeti-smp/include/linux/kconfig.h \ - -D__KERNEL__ -Iarch/powerpc \ - -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -msoft-float -pipe -Iarch/powerpc -ffixed-r2 -mmultiple -mno-altivec -mno-spe -mspe=no -funit-at-a-time -mno-string -Wa,-m405 -fno-stack-protector -fomit-frame-pointer -g -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow \ - -DCC_HAVE_ASM_GOTO -O2 -DCONFIG_460EX -D_GNU_SOURCE -D_REENTRANT -D__XENO__ -mhard-float \ - -Ippmac/rtpmac -Ippmac/libppmac\ - -Ipowerpc-465-rootfs/usr/local/xenomai-2.6.2.1/include -Ipowerpc-465-rootfs/usr/local/xenomai-2.6.2.1/include/posix -Ipowerpc-465-rootfs/usr/src/linux-3.2.21-serengeti-smp/include/xenomai -Ipowerpc-465-rootfs/usr/src/linux-3.2.21-serengeti-smp/include/xenomai/posix -Ipowerpc-465-rootfs/usr/lib/gcc/powerpc-linux-gnu/4.6/include \ - --sysroot=powerpc-465-rootfs -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(usrcode)" -D"KBUILD_MODNAME=KBUILD_STR(usralgo)" \ - -c -o usrcode.o usrcode.c -# powerpc-meau-linux-gnu-gcc -Wp,-MD,/REALTI~1/.usrcode.o.d -nostdinc -isystem /usr/local/lib/gcc/powerpc-meau-linux-gnu/4.6.4/include -I/opt/powerpc-465-rootfs/usr/src/linux-3.2.21-serengeti-smp/arch/powerpc/include -Iarch/powerpc/include/generated -Iinclude -include /opt/powerpc-465-rootfs/usr/src/linux-3.2.21-serengeti-smp/include/linux/kconfig.h -D__KERNEL__ -Iarch/powerpc -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -msoft-float -pipe -Iarch/powerpc -ffixed-r2 -mmultiple -mno-altivec -mno-spe -mspe=no -funit-at-a-time -fno-dwarf2-cfi-asm -mno-string -Wa,-m405 -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -g -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -O2 -DCONFIG_460EX -D_GNU_SOURCE -D_REENTRANT -D__XENO__ -mhard-float -I/usr/local/dtlibs/rtpmac -I/usr/local/dtlibs/libppmac -I/opt/powerpc-465-rootfs/usr/local/xenomai-2.6.2.1/include -I/opt/powerpc-465-rootfs/usr/local/xenomai-2.6.2.1/include/posix -I/opt/powerpc-465-rootfs/usr/src/linux-3.2.21-serengeti-smp/include/xenomai -I/opt/powerpc-465-rootfs/usr/src/linux-3.2.21-serengeti-smp/include/xenomai/posix -I/opt/powerpc-465-rootfs/usr/lib/gcc/powerpc-linux-gnu/4.6/include --sysroot=/opt/powerpc-465-rootfs -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(usrcode)" -D"KBUILD_MODNAME=KBUILD_STR(usralgo)" -c -o /REALTI~1/usrcode.o /REALTI~1/usrcode.c - -debug: - echo CC: $(CC) - echo CPP: $(CPP) diff --git a/usrServo/Makefileso.mak b/usrServo/Makefileso.mak deleted file mode 100644 index 3f50ae3..0000000 --- a/usrServo/Makefileso.mak +++ /dev/null @@ -1,231 +0,0 @@ -#------------------------------------------------------------------------------ -# Copyright (C) Delta Tau Data Systems Inc., 2007 -# All rights reserved. -# -# Generic makefile for any c user mode plc -# For a new project change the following -# -# 1.) PROG should be assigned the name of the desired executable program -# 2.) SRCS should be assigned the 'C' source code files that need to be compiled -# 3.) 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) -# 4.) issue the command make clean -# 5.) issue the command make -# -# Notes -# -------- -# Change DTDEBUG above to -O2 for release w/ optimization -# Change DTDEBUG above to -g3 for debug -# PMAC_ARCH value can be one of the following -# arm,i386,i385hv,ppc460-2,ppc460-1,ppc405 -#------------------------------------------------------------------------------ - -PMAC_ARCH=ppc465-2 - -ifeq ($(PMAC_ARCH),arm) -ARCH=arm -CROSS_COMPILE=arm-omron-linux-gnueabihf- -KDIR=/opt/arm-rootfs/usr/src/linux-3.14.28 -KSRC=/opt/arm-rootfs/usr/src/linux-3.14.28 -CC=arm-omron-linux-gnueabihf-gcc -AS=arm-omron-linux-gnueabihf-as -LD=arm-omron-linux-gnueabihf-gcc -INCLUDE=/opt/arm-rootfs/usr/lib/gcc/arm-linux-gnueabihf/4.6/include -XENOMAI_INC_DIR=/opt/arm-rootfs/usr/xenomai/include -XENOMAI_LIB_DIR=/opt/arm-rootfs/usr/xenomai/lib -LIBMATHDIR=/usr/local/dtlibs/libmath -RPATH=-Wl,-rpath-link,/opt/arm-rootfs/lib/arm-linux-gnueabihf -LIBMATH_RPATH=-Wl,-rpath,/opt/ppmac/libmath -ROOTFS_DIR=/opt/arm-rootfs -LIBS= -shared -lrt -lpthread -lppmac -lpthread_rt -lm -lmath -L$(LIBMATHDIR) -endif - -ifeq ($(PMAC_ARCH),arm-usermode) -ARCH=arm -CROSS_COMPILE=arm-omron-linux-gnueabihf- -KDIR=/opt/arm-rootfs/usr/src/linux-3.14.28 -KSRC=/opt/arm-rootfs/usr/src/linux-3.14.28 -CC=arm-omron-linux-gnueabihf-gcc -AS=arm-omron-linux-gnueabihf-as -LD=arm-omron-linux-gnueabihf-gcc -INCLUDE=/opt/arm-rootfs/usr/lib/gcc/arm-linux-gnueabihf/4.6/include -#XENOMAI_INC_DIR=/opt/arm-rootfs/usr/xenomai/include -XENOMAI_LIB_DIR=/opt/arm-rootfs/usr/xenomai/lib -#LIBMATHDIR=/usr/local/dtlibs/libmath -RPATH=-Wl,-rpath-link,/opt/arm-rootfs/lib/arm-linux-gnueabihf -#LIBMATH_RPATH=-Wl,-rpath,/opt/ppmac/libmath -ROOTFS_DIR=/opt/arm-rootfs -LIBS= -shared -lrt -lppmac -lm -lpthread_rt -lxenomai -endif - -ifeq ($(PMAC_ARCH),i386) -ARCH=i386 -CROSS_COMPILE=i686-meau-linux-gnu- -KDIR=/opt/i386-linux-rootfs/usr/src/linux-headers-3.14.28-xenomai-2.6.4 -KSRC=/opt/i386-linux-rootfs/usr/src/linux-headers-3.14.28-xenomai-2.6.4 -CC=i686-meau-linux-gnu-gcc -AS=i686-meau-linux-gnu-as -LD=i686-meau-linux-gnu-gcc -INCLUDE=/opt/i386-linux-rootfs/usr/lib/gcc/i686-linux-gnu/4.6/include -XENOMAI_INC_DIR=/opt/i386-linux-rootfs/usr/include/xenomai -XENOMAI_LIB_DIR=/opt/i386-linux-rootfs/usr/lib -LIBMATHDIR=/usr/local/dtlibs/libmath -RPATH=-Wl,-rpath-link,/opt/i386-linux-rootfs/lib/i386-linux-gnu -LIBMATH_RPATH=-Wl,-rpath,/opt/ppmac/libmath -ROOTFS_DIR=/opt/i386-linux-rootfs -LIBS= -shared -lrt -lpthread -lppmac -lpthread_rt -lm -lmath -L$(LIBMATHDIR) -endif - -ifeq ($(PMAC_ARCH),i386-usermode) -ARCH=i386 -CROSS_COMPILE=i686-meau-linux-gnu- -KDIR=/opt/i386-linux-rootfs/usr/src/linux-headers-3.14.28-xenomai-2.6.4 -KSRC=/opt/i386-linux-rootfs/usr/src/linux-headers-3.14.28-xenomai-2.6.4 -CC=i686-meau-linux-gnu-gcc -AS=i686-meau-linux-gnu-as -LD=i686-meau-linux-gnu-gcc -INCLUDE=/opt/i386-linux-rootfs/usr/lib/gcc/i686-linux-gnu/4.6/include -XENOMAI_INC_DIR=/opt/i386-linux-rootfs/usr/include/xenomai -XENOMAI_LIB_DIR=/opt/i386-linux-rootfs/usr/lib -#LIBMATHDIR=/usr/local/dtlibs/libmath -RPATH=-Wl,-rpath-link,/opt/i386-linux-rootfs/lib/i386-linux-gnu -#LIBMATH_RPATH=-Wl,-rpath,/opt/ppmac/libmath -ROOTFS_DIR=/opt/i386-linux-rootfs -LIBS= -shared -lrt -lpthread -lppmac -lpthread_rt -lm -endif - -ifeq ($(PMAC_ARCH),i386hv) -ARCH=i386 -CROSS_COMPILE=i686-meau-linux-gnu- -KDIR=/opt/i386-preemptrt-rootfs/usr/src/linux-3.8.13 -KSRC=/opt/i386-preemptrt-rootfs/usr/src/linux-3.8.13 -CC=i686-meau-linux-gnu-gcc -AS=i686-meau-linux-gnu-as -LD=i686-meau-linux-gnu-gcc -INCLUDE=/opt/i386-preemptrt-rootfs/usr/lib/gcc/i686-redhat-linux/4.4.4/include -#XENOMAI_INC_DIR=/opt/i386-linux-rootfs/usr/include/xenomai -XENOMAI_LIB_DIR=/opt/i386-preemptrt-rootfs/lib -LIBMATHDIR=/usr/local/dtlibs/libmath -LIBMATH_RPATH=-Wl,-rpath,/opt/ppmac/libmath -ROOTFS_DIR=/opt/i386-preemptrt-rootfs -LIBS= -shared -lrt -lpthread -lppmac -lmath -L$(LIBMATHDIR) -endif - -ifeq ($(PMAC_ARCH),i386hv-usermode) -ARCH=i386 -CROSS_COMPILE=i686-meau-linux-gnu- -KDIR=/opt/i386-preemptrt-rootfs/usr/src/linux-3.8.13 -KSRC=/opt/i386-preemptrt-rootfs/usr/src/linux-3.8.13 -CC=i686-meau-linux-gnu-gcc -AS=i686-meau-linux-gnu-as -LD=i686-meau-linux-gnu-gcc -INCLUDE=/opt/i386-preemptrt-rootfs/usr/lib/gcc/i686-redhat-linux/4.4.4/include -#XENOMAI_INC_DIR=/opt/i386-linux-rootfs/usr/include/xenomai -XENOMAI_LIB_DIR=/opt/i386-preemptrt-rootfs/lib -#LIBMATHDIR=/usr/local/dtlibs/libmath -#LIBMATH_RPATH=-Wl,-rpath,/opt/ppmac/libmath -ROOTFS_DIR=/opt/i386-preemptrt-rootfs -LIBS= -shared -lrt -lpthread -lppmac -lm -endif - -ifeq ($(PMAC_ARCH),ppc465-2) -ARCH=powerpc -CROSS_COMPILE=powerpc-meau-linux-gnu- -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 -#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 -LIBS= -shared -lrt -lpthread -lppmac -lpthread_rt -lm -endif - -ifeq ($(PMAC_ARCH),ppc465-1) -ARCH=powerpc -CROSS_COMPILE=powerpc-meau-linux-gnu- -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 -#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 -LIBS= -shared -lrt -lpthread -lppmac -lpthread_rt -lm -endif - -ifeq ($(PMAC_ARCH),ppc405) -ARCH=powerpc -CROSS_COMPILE=powerpc-405-linux-gnu- -KDIR=/opt/powerpc-405-rootfs/usr/src/linux-2.6.30.3-xeno-2.5.6 -KSRC=/opt/powerpc-405-rootfs/usr/src/linux-2.6.30.3-xeno-2.5.6 -CC=powerpc-405-linux-gnu-gcc -AS=powerpc-405-linux-gnu-as -LD=powerpc-405-linux-gnu-gcc -INCLUDE=/usr/local/powerpc-405-linux-gnu/include -XENOMAI_INC_DIR=/opt/powerpc-405-rootfs/usr/local/xenomai-2.5.6/include -XENOMAI_LIB_DIR=/opt/powerpc-405-rootfs/usr/local/xenomai-2.5.6/lib -LIB_DIR=/opt/powerpc-405-rootfs/lib -ROOTFS_DIR=/opt/powerpc-405-rootfs -LIBS= -shared -lrt -lpthread -lppmac -lpthread_rt -lm -L$(LIB_DIR) -endif - -RTPMACINCLUDEDIR=/usr/local/dtlibs/rtpmac -LIBPPMACINCLUDEDIR=/usr/local/dtlibs/libppmac -export ARCH -export CROSS_COMPILE - -CFLAGS = -mhard-float -funsigned-char --sysroot=$(ROOTFS_DIR) \ --I$(RTPMACINCLUDEDIR) -I$(LIBPPMACINCLUDEDIR) -I$(XENOMAI_INC_DIR) -I$(XENOMAI_INC_DIR)/posix -I$(LIBMATHDIR) \ --D_GNU_SOURCE -D_REENTRANT -D__XENO__ -fPIC -DTDEBUG = -g3 - -LDFLAGS = $(LIBS) --sysroot=$(ROOTFS_DIR) \ - \ --L../../Bin/Debug/ \ --L$(XENOMAI_LIB_DIR) -L$(LIBPPMACINCLUDEDIR) \ --Wl,-rpath,/var/ftp/usrflash/Project/C\ Language/Libraries \ --Wl,-rpath,/var/ftp/usrflash/Project/Bin/Debug \ --Wl,-rpath,/opt/ppmac/libppmac \ --Wl,-z,defs \ -$(LIBMATH_RPATH) \ -$(RPATH) - -RM = rm -f -PROG = ../../Bin/Debug/usralgo.so -SRCS = \ -usrcode.c - -OBJS = $(SRCS:.c=.o) - -# now comes a meta-rule for compiling any C source file. -$(PROG): $(OBJS) - $(LD) -o $(PROG) $(OBJS) $(LDFLAGS) - -%.o: %.c clean - $(CC) $(CFLAGS) $(DTDEBUG) -c $< - - -bclean: - $(RM) $(PROG) $(OBJS) *.log - -clean: - $(RM) $(PROG) $(OBJS) - -depend: - $(RM) ../../Bin/Debug/dependencyko.lst - makedepend -f- -- $(CFLAGS) -- $(SRCS) > ../Bin/Debug/dependencyko.lst - -#ifneq ($(MAKECMDGOALS),depend) -#include ../Bin/Debug/dependencyko.lst -#endif - diff --git a/usrServo/usralgo.mod.c b/usrServo/usralgo.mod.c deleted file mode 100644 index 147b9f6..0000000 --- a/usrServo/usralgo.mod.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include - -MODULE_INFO(vermagic, VERMAGIC_STRING); - -struct module __this_module -__attribute__((section(".gnu.linkonce.this_module"))) = { - .name = KBUILD_MODNAME, - .init = init_module, -#ifdef CONFIG_MODULE_UNLOAD - .exit = cleanup_module, -#endif - .arch = MODULE_ARCH_INIT, -}; - -static const char __module_depends[] -__used -__attribute__((section(".modinfo"))) = -"depends="; -