155 lines
4.2 KiB
Markdown
155 lines
4.2 KiB
Markdown
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
|
|
root@:/# projpp -l
|
|
|
|
$$$***
|
|
!common()
|
|
!mx-stage()
|
|
#4$
|
|
#4j/
|
|
#4k
|
|
|
|
Start IDE
|
|
New Project, PowerBrick_LV
|
|
makefile and output at:
|
|
C:\Documents and Settings\user\Desktop\scratch\PowerBrick_LVUserServoLoop\PowerBrick_LVUserServoLoop\C Language\Realtime Routines
|
|
|
|
Update Firmware
|
|
---------------
|
|
|
|
we are using: 2.0.2.14, IDE wants newer, probably 2.1.1.3 (http://forums.deltatau.com/filedepot/)
|
|
With IDE the new firmware can be installed (tools->...->download firmware)
|
|
|
|
|
|
|
|
User Servo Loop
|
|
---------------
|
|
|
|
build usralgo.ko (or copy from IDE after build)
|
|
|
|
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)
|
|
a47e448b r __kstrtab_user_pid_ctrl [usralgo]
|
|
a47e4458 r __ksymtab_user_pid_ctrl [usralgo]
|
|
a47e4068 T user_pid_ctrl [usralgo]
|
|
|
|
|
|
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
|
|
--------------------
|
|
|
|
http://www.thegeekstuff.com/2013/07/write-linux-kernel-module/
|
|
https://linux.die.net/lkmpg/x121.html
|
|
|
|
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
|
|
rmmod hello.ko
|
|
dmesg
|
|
|
|
Try to 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
|
|
gcc fixdep.c -o fixdep
|
|
cd /opt/powerpc-465-rootfs/usr/src/linux-3.2.21-serengeti-smp/scripts/mod
|
|
gcc modpost.c file2alias.c sumversion.c -o modpost
|
|
ln -sfT Makefile.Deltatau Makefile
|
|
make clean
|
|
make
|
|
scp hello.ko root@SAROP11-CPPM-MOT6871:/tmp
|
|
|
|
|
|
|
|
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 ***********
|
|
|
|
|
|
|
|
|
|
insmod /opt/ppmac/usrflash/Project/Bin/Debug/usralgo.ko
|
|
insmod /tmp/usralgo.ko
|
|
|
|
286 dmesg
|
|
287 rmmod hello.ko
|
|
288 dmesg
|
|
289 cat /proc/kallsyms | grep user_pid_ctrl
|
|
290 rmmod usralgo
|
|
291 cat /proc/kallsyms | grep user_pid_ctrl
|
|
292 insmod /opt/ppmac/usrflash/Project/Bin/Debug/usralgo.ko
|
|
293 cat /proc/kallsyms | grep user_pid_ctrl
|
|
294 rmmod usralgo
|
|
295 insmod /tmp/usralgo.ko
|
|
296 cat /proc/kallsyms | grep user_pid_ctrl
|
|
297 history
|
|
|
|
THIS ALSO WORKED !!!
|
|
|
|
|
|
|
|
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)
|
|
|