ts-7000
[Top] [All Lists]

[ts-7000] Re: RTAI on TS-7260 and usleep()

To:
Subject: [ts-7000] Re: RTAI on TS-7260 and usleep()
From: "ronis_br" <>
Date: Sat, 01 Aug 2009 15:23:25 -0000
Thanks for you answer!

One more question: in the RTAI project website, there is a newer version, is it 
good to use that new version or it doesn't work?

Thanks,
Ronan.

--- In   wrote:
>
> I do have a data logger than runs rtai on the 7250 every 1msec.  It isn't
> rock solid (for example if you look at a dio on an oscilliscope you see
> some flicker).
>
> But rtai in the configuration will do rock solid square waves at 3 msec...
> so you know that in spite of the little flicker, you are pretty much
> running 1000 cylces per second... even though not necessarily every 1 msec
> on the dot.
>
> I'm fairly certain that rtai revises the code for nanosleep to be pretty
> hard time (if you configure the thread correctly).  If not, they would
> have their own rt_sleep type function... I don't do it in my code so never
> really tried it (although I have experience with rtai on other platforms
> where nanosleep is very much deterministic).
>
> I wasn't anal about writing the steps taken to compile the 7250 code
> (which required the NAND stuff) but I did do a pretty anal write up for
> the 7200... maybe this will help
>
> ===============================================================================================
> This document details how to setup and build a rtai patch for a TS-7200
> SBC.
> The kernel and rtai library were built in cygwin.
>
> Download from ts ftp site
>         tskernel-2.4.26-ts11-src.tar.gz
> rtai-3.2-magma-src.tar.gz
>         rt-tskernel-2.4.26-tsX-adeos.patch
>
>         Also get a current rfs, e.g.
> tslinux-08-24-2006.tar.bz2
>
>
> un-tar in /usr/src directory
>         tar zxvf tskernel-2.4.26-ts11-src.tar.gz
>                 This creates /usr/src/linux24
>                 rename folder to linux-23-artai-7200
>
>         tar zxvf rtai-3.2-magma-src.tar.gz
>                 This creates /usr/src/rtai-3.2
>                 rename folder to rtai-3.2-7200
>
> linux
> 1.  Edit Makefile EXTRAVERSION
> Existing:       EXTRAVERSION =-ts11
>         Revised:        EXTRAVERSION =-ts11-artai
>
>         NOTE: Some packages/libraries required to build kernel:
>         - libncurses-devel      Development files for ncurses (Devel
> group)
>
> 2.  Patch kernel with RTAI
>         cd /usr/src/ linux-23-artai-7200
>         e.g.    patch -p1 < ../ rt-tskernel-2.4.26-tsX-adeos.patch
>
> 3.  More changes to Makefile
> CROSS_COMPILE    =
> /usr/src/ts11/crosstool/gcc-3.3.4-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-
> DEPMOD          = /usr/src/ts11/modutils-2.4.7/depmod
>                 NOTE: Still a little foggy on depmodâ?¦
> may not matter since it doesnâ??t work anyway (see later steps)
>
> 4.      make ts7200_config
> 5.      make menuconfig
>         Enable rtai by selecting General Setup->Adeos support (NEW) for
> built-in kernel
> support.
>
> 6.      make dep
>
> 7.      make zImage && make modules
>         ** NOTE: type case of zImage
>
> NOTE: Depmod, the utility that builds the modules dependencies, is not
> designed to deal with cross compileed modules and will failâ?¦
> Get depmod.pl from busybox source and type
>
> 8.      ./depmod.pl â?"k ./vmlinux â?"b
> ./modules/lib/modules/2.4.26-ts11-artai \
> > ./modules/lib/modules/2.4.26-ts11-artai/modules.dep
>
> 9.      cd ./modules
>
> 10.     tar cvzf mods.tgz lib/*
>
> 11.     copy file to root of rts and type
>         tar zxvf mods.tgz
>
> rtai
> 1.      Add to makefile
> ARCH           = arm
>         CROSS_COMPILE =
> /usr/src/ts11/crosstool/gcc-3.3.4-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-
> RTAI_LINUX_DIR = /usr/src/rtai-3.2-7200
>
> 2.      make ARCH=arm \
> CROSS_COMPILE  =
> /usr/src/ts11/crosstool/gcc-3.3.4-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-
> RTAI_LINUX_DIR = /usr/src/ts11/linux24-artai-7200
>
> 3.      Makedir ./install
>
> 4.      make install DESTDIR=/usr/src/ts11/rtai-3.2-7200/install
>
> 5.      cd ./install
>
> 6.      tar cvzf rt.tgz usr/*
>
> 11.     copy file to root of rts and type
>         tar zxvf rt.tgz
>
> 12.     copy
> /usr/src/ts11/crosstool/gcc-3.3.4-glibc-2.3.2/arm-unknown-linux-gnu/lib/
> libpthread-0.10.so to {rfs}/lib
>
> 13.     change directory to {rfs}/lib
>
> 14.     ln â?"s libpthread-0.10.so ./libpthread.so.0
>
> ===============================================================================================
>
> I'm pretty sure I took very similar steps with the 7250 -- except
> additionally setting up or running a patch for the NAND support....
> unfortunately I don't recall the details.
>
> Good luck.
>
>  wrote on 07/31/2009 02:07:54 PM:
>
> > Thanks for you answer!
> >
> > I'm almost sure that I can handle what I have to if I could make
> > RTAI works on TS-7260.
> >
> > What I need is just a 10us resolution to change the logic level on a
> > specif pin of DIO1. I don't mean that there will be a process
> > interrupting every 10us, but there will be a process that could
> > interrupt after 1,01ms or 1,02ms and so. That's why I need usleep
> > with the resolution of microsecond, but with RTAI it is completely
> > different and I think I shouldn't use usleep anymore.
> >
> > I'm having troubles to compile the new kernel. I just could with an
> > old gcc version in cross toolchains (3.3.4).
> >
> >
> > --- In  sjanisch@ wrote:
> > > > I'm trying to put RTAI kernel in a TS-7260 and I'm getting the
> > > > following kernel panic:
> > > >
> > > > Kernel panic: VFS: Unable to mount root fs on 1f:01
> > > >
> > > > The command that I'm passing to RedBoot is:
> > > >
> > > > exec -c "console=ttyAM0,115200 root=/dev/mtdblock1"
> > > >
> > > > I have already tried many different versions of RTAI kernel from
> > > > Embedded ARM (ts8, ts9 and ts11) and everyone show the same error.
> > >
> > > I had similar issue with getting rtai up and running on 7250.
> > >
> > > In my case it had to do with the on board NAND flash.  The
> pre-compiled
> > > rtai kernels from ts web site didn't include the patch to use the
> flash,
> > > so I had to get the kernel source and then patch with the supplied
> rtai
> > > patch AND the mtd 2k flash patch (I think all the flash patch did was
> set
> > > some options for the MTD device in the .config file for the kernel).
> The
> > > kernel sends the panic message because it doesn't find a file system
> > > because it doesn't know how to read the NAND flash.
> > >
> > > This was all many moons ago, and I am not really sure the 7260 uses
> the
> > > same flash (I switched production to the 7200 so haven't repeated the
> > > process).
> >
> > When you mean mtd 2k flash patch is to enable the option
> > CONFIG_MTD2K=y, isn't it?
> >
> > Another thing that I think to be strange is that in the initial
> > configuration proposed for TS-7200, the support for YAFFS file
> > system was configured to be built as a module. I think I have to
> > compile the kernel with this support built-in, is it correct?
> >
> > > > I'm also having the problem already described at this forum about
> > > > the resolution of usleep (10ms). But I really need something that
> > > > sleep my program with a resolution of, at least, 10us, because I
> > > > have to generate a very specif wave at DIO1.
> > >
> > > On the performance of 10us sleep... this might be pushing it on the
> > > platform, although I've never really tried it.  I have done 40usec
> timed
> > > interrupt routines on rtai, but those were using P3 intel processors
> and
> > > more modern 2.6 kernels.  Since 2.6 kernels are better with
> interrupts,
> > > rtai is better (although it could be limitations of the hardware
> also... I
> > > don't know enough to really say).  usleep -- at least with later rtai
> > > versions -- is improved but I don't know if it will give you hard
> > > determination at that rate.... but again I never attempted this.
> > >
> >
> > Thank you for the help,
> > Ronan.
> >
> >
> >
> > ------------------------------------
> >
> > Yahoo! Groups Links
> >
> >
> >
>




------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/ts-7000/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/ts-7000/join
    (Yahoo! ID required)

<*> To change settings via email:
    
    

<*> To unsubscribe from this group, send an email to:
    

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU