<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 9/9/2013 9:29 AM, Alan Cudmore
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAJrjN71E_M81-7Z7LnH85TJD6ibzhgiLK1yMJ1musKSxZeD3BQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">Simon,
        <div style="">In my experience, there is no single place to get
          all of the information you need, especially for specific
          device driver development. In addition, it has taken me a
          while to feel comfortable navigating the RTEMS source tree and
          being able to quickly locate BSPs, drivers, and libraries. </div>
        <div style=""><br>
        </div>
      </div>
    </blockquote>
    RTEMS is a very large collection of software for a lot of hardware<br>
    combinations. I include a source tree walk through as part of <br>
    teaching the class. <br>
    <br>
    My walk through has two sections -- one that is BSP and target<br>
    hardware INDEPENDENT-- and another that is BSP and target<br>
    hardware DEPENDENT.<br>
    <blockquote
cite="mid:CAJrjN71E_M81-7Z7LnH85TJD6ibzhgiLK1yMJ1musKSxZeD3BQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div style="">Here are the docs that I know of:</div>
        <div style="">Starting point: <a moz-do-not-send="true"
            href="http://www.rtems.org/onlinedocs.html">http://www.rtems.org/onlinedocs.html</a><br>
        </div>
        <div style=""><br>
        </div>
      </div>
    </blockquote>
    That's the main starting point and includes historical versions.<br>
    <blockquote
cite="mid:CAJrjN71E_M81-7Z7LnH85TJD6ibzhgiLK1yMJ1musKSxZeD3BQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div style="">
          Manuals for developing RTEMS applications:</div>
        <div style=""><a moz-do-not-send="true"
            href="http://rtems.org/onlinedocs/doc-current/share/rtems/html/">http://rtems.org/onlinedocs/doc-current/share/rtems/html/</a><br>
        </div>
        <div style=""><br>
        </div>
      </div>
    </blockquote>
    That is built twice a day off the git head. <br>
    <br>
    In addition, the C library is newlib and the manual for the methods<br>
    in libc/libm are documented by that project.<br>
    <blockquote
cite="mid:CAJrjN71E_M81-7Z7LnH85TJD6ibzhgiLK1yMJ1musKSxZeD3BQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div style="">
          Doxygen for the cpukit ( but why is that directory called
          cpukit? )</div>
        <div style=""><a moz-do-not-send="true"
            href="http://www.rtems.org/onlinedocs/doxygen/cpukit/html/">http://www.rtems.org/onlinedocs/doxygen/cpukit/html/</a><br>
        </div>
        <div style="">
          <br>
        </div>
      </div>
    </blockquote>
    Well.. the other parts of the tree are thought of as  BSP Kit and
    tests.<br>
    But CVS didn't let us easily move things around. libcpu, libchip,
    and<br>
    libbsp are a "BSP Kit"<br>
    <br>
    Everything in cpukit is supposed to be applicable to all BSPs and<br>
    not be dependent on any particular cpu mdoel.<br>
    <br>
    Although it does include the Classic and POSIX APIs, the Doxygen is<br>
    probably best avoided unless you are curious about the internals of<br>
    RTEMS or modifying it. :)<br>
    the Doxygen is <br>
    <blockquote
cite="mid:CAJrjN71E_M81-7Z7LnH85TJD6ibzhgiLK1yMJ1musKSxZeD3BQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div style="">For the Raspberry Pi: I was hoping to start with
          the I2C driver shortly. It seems there are two options:</div>
        <div style="">1. A standalone I2C driver similar to the one in
          the arm/lpc32xx BSP:</div>
        <div style="">
          <a moz-do-not-send="true"
href="http://git.rtems.org/rtems/tree/c/src/lib/libbsp/arm/lpc32xx/misc/i2c.c">http://git.rtems.org/rtems/tree/c/src/lib/libbsp/arm/lpc32xx/misc/i2c.c</a><br>
        </div>
        <div style=""><br>
        </div>
        <div style="">2. A driver for libi2c similar to the one in the
          arm/lpc24xx BSP:</div>
        <div style=""><a moz-do-not-send="true"
            href="http://git.rtems.org/rtems/tree/c/src/lib/libbsp/arm/lpc24xx/i2c">http://git.rtems.org/rtems/tree/c/src/lib/libbsp/arm/lpc24xx/i2c</a><br>
        </div>
        <div style=""><br>
        </div>
        <div style="">This readme file gives a pretty good overview of
          libi2c:</div>
        <div style=""><a moz-do-not-send="true"
            href="http://git.rtems.org/rtems/tree/cpukit/libi2c/README_libi2c">http://git.rtems.org/rtems/tree/cpukit/libi2c/README_libi2c</a><br>
        </div>
        <div style=""><br>
        </div>
        <div style="">I was going to start with a simple i2c driver for
          the Rpi, then try to implement a libi2c driver when I had a
          little more experience with it.</div>
        <div style=""><br>
        </div>
        <div style="">Same with the SPI/SD card access: I'm pretty sure
          I saw a good example of using the SPI bus to access a SD card
          , but I can't find it right now ( exactly your point! ) </div>
        <div style="">
          <br>
        </div>
        <div style="">Also, here is another GPIO driver for the
          Raspberry Pi. I was able to use this for reading button states
          and lighting multiple LEDs. </div>
        <div style=""><a moz-do-not-send="true"
            href="https://github.com/pficheux/raspberry_pi">https://github.com/pficheux/raspberry_pi</a><br>
        </div>
        <div style=""><br>
        </div>
        <div style="">But feel free to ask more questions: I would like
          to help with the I2c implementation. </div>
        <div style=""><br>
        </div>
      </div>
    </blockquote>
    And this block of questions is a good example of why there is no
    single source<br>
    for all your RTEMS answers.  At some point, you need a board or chip
    manual. :)<br>
    <blockquote
cite="mid:CAJrjN71E_M81-7Z7LnH85TJD6ibzhgiLK1yMJ1musKSxZeD3BQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div style="">Alan</div>
        <div style=""><br>
        </div>
        <div style=""><br>
        </div>
        <div style="">
          <br>
        </div>
        <div style=""><br>
        </div>
        <div style=""><br>
        </div>
        <div style=""><br>
        </div>
        <div style=""><br>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">On Mon, Sep 9, 2013 at 5:20 AM, Simon
          Williams <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:williamssimonp@gmail.com" target="_blank">williamssimonp@gmail.com</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div dir="ltr">
              <div>I have made some progress with the work I have been
                doing for the Raspberry Pi, but I am finding that
                progress is being held up due to lack of information
                about RTEMS.  Is there a repository of information I am
                not aware of?</div>
              <div><br>
              </div>
              <div>I have a GPIO driver which allows me to have an RTEMS
                task that switches an external LED on and off.  The is
                based on the description of the discrete driver in the
                BSP and Device Driver Development Guide, but that
                description is almost non-existent!  There also does not
                appear to be any sample implementation anywhere.  I have
                one specific issue with my implementation, which is that
                stat() does not return anything useful and so I have to
                use the deprecated RTEMS specific call to get
                information about the devices.  This leads me to believe
                that I have not got it quite right!  </div>
              <div><br>
              </div>
              <div>My next targets are I2C, followed by a driver to put
                the console on an <span
style="color:rgb(68,68,68);font-family:arial,sans-serif;line-height:16px">HD44780
                  compatible display and keyboard attached to the I2C
                  bus.  After that, I will be looking at an SD card
                  filesystem and other I2C devices I need for my
                  application.  I would be extremely grateful if anyone
                  could point me towards some well documented examples
                  of these sort of drivers for other boards, I would be
                  grateful.  The problem with most of the examples I
                  have found in the repository is that any documentation
                  that they contain assumes that the reader has a good
                  knowledge of RTEMS and it's requirements and it is
                  that knowledge that I am trying to gain!</span></div>
              <div><span
style="color:rgb(68,68,68);font-family:arial,sans-serif;line-height:16px"><br>
                </span></div>
              <div><span
style="color:rgb(68,68,68);font-family:arial,sans-serif;line-height:16px">I
                  would also be interested to know if there is any
                  documentation I have not been able to find on using
                  the C++ class library as my application level code
                  will be written in C++.</span></div>
              <div><span
style="color:rgb(68,68,68);font-family:arial,sans-serif;line-height:16px"><br>
                </span></div>
              <div><span
style="color:rgb(68,68,68);font-family:arial,sans-serif;line-height:16px">Thanks
                  in advance for your help.</span></div>
              <div><br>
              </div>
            </div>
            <br>
            _______________________________________________<br>
            rtems-users mailing list<br>
            <a moz-do-not-send="true"
              href="mailto:rtems-users@rtems.org">rtems-users@rtems.org</a><br>
            <a moz-do-not-send="true"
              href="http://www.rtems.org/mailman/listinfo/rtems-users"
              target="_blank">http://www.rtems.org/mailman/listinfo/rtems-users</a><br>
            <br>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
Joel Sherrill, Ph.D.             Director of Research & Development 
<a class="moz-txt-link-abbreviated" href="mailto:joel.sherrill@OARcorp.com">joel.sherrill@OARcorp.com</a>        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805 
Support Available                (256) 722-9985 </pre>
  </body>
</html>