I want to participate in GSoC from RTEMS

Daron Chabot daron.chabot at usask.ca
Thu Mar 20 06:23:02 UTC 2008


Madhusudan C.S wrote:
> So I checked out the CVS HEAD and then 
> installed all the prebuilt tools from ftp for F8-RTEMS-4.9. Since I have 
> Ubuntu installed on my PC, I converted those rpms to debs using alien 
> and installed all the prebuilt tools. When I did bootstrap and configure 
> there were no errors as such, I did all these for sparc CPU.

What options did you pass to configure RTEMS ?

  When I did
> "make all" it said compiler cannot create executables, 

Have you added the install location of the rtems tool-chain to your PATH 
    ?

as its given in
> the wiki I installed libc6-dev package, since thats the Ubuntu version 
> of libc-dev. But still the make fails. Can someone help me please. If 
> there is no other go, I will install F8 through XEN. But somehow I want 
> to get this working on Ubuntu, so in later stages we can also provide 
> debian packages along with rpms. I can help you with this, maybe after SoC.
> 
>     That project in particular requires more knowledge of C and more
>     attention
>     to detail than deep algorithmic knowledge.  
> 
> 
>  I have a fair knowledge of C. I hope I have the requirements you have 
> mentioned above. 
> 
>     Remember the issue is that
>     RTEMS used to have all time based upon clock ticks, then we added
>     nanosecond
>     time granularity and kept the time in structure timespec.  It isn't
>     easy or
>     particularly efficient to do math on struct timespec so this project is
>     adding the capability to configure on a per-target basis 64-bit time.
>     You do
>     have to implement it but since the math will be on the native type
>     "unsigned
>     long long" instead of int or long, that part isn't rough.
> 
> 
> I did not understand what "per-target basis" means here. Can you please 
> explain?

I think "per-target basis" here means "per BSP supported by RTEMS".

> 
>     The rougher side of the effort is in adding a supercore (cpukit/score)
>     timestamp handler (e.g. roughly an opaque C "class") and going through
>     the supercore and using that instead of struct timespec where
>     appropriate.
> 
> 
> I am reading the Documentation of Super Core to understand how the APIs 
> are structured.
> 
>     As the Wiki description states, some times need to be native, others
>     have to
>     be in API formats.  Each case has to be evaluated so the conversions are
>     minimized.
> 
>  
> Ok I got a rough idea. But I still need to work on it.
> 
>     Follow the code from one of the clock get time or set time routines
>     down the
>     layers to the lowest core methods and you will get a feel.  You will see
>     routines
>     with "convert" in their name or a name like "from XXX" or "to XXX" as
>     the names.
>     Start at cpukit/rtems/src/clockset.c for one case.  There are similar
>     routines
>     in cpukit/posix/src/clock*.c
> 
>     Does that make sense at all?
> 
>  
> I went through the code in those files. I also quickly skimmed through 
> the code I have COed from HEAD and have got a rough idea of how the code 
> is structured. Now I am feeling somewhat better. But still to get a real 
> feel of how Timestamps are working now I want to get it compiled and see 
> how they work. Please help me.
> 
> Moreover thanks a lot to both Joel for all the above suggestions and 
> Daron for that timecounters pdf.

You're welcome. That document was merely meant to serve as a reference 
to some of the issues you may encounter with this project.

-- dc



More information about the users mailing list