Sebastian,<br><br>Ok, i've got the latest GIT sources, but i still dont see how the rtl22xx BSP works (and it does not work for me).<br><br>start.s does not do any data section copy, it just does a zero'ing of the bss and then calls boot_card(), how can that work with initialised data ?<br>
<br>the start.s thats in the arm/shared folder calls the bsp_start_hook_1 which does the bsp_start_copy_sections() which uses the hand rolled memcpy function to copy data as well as other sections.<br><br>Is the rtl22xx just a broken BSP that i should not be using ?<br>
<br>- Matthew<br><br><br><div class="gmail_quote">On 21 February 2013 08:55, Sebastian Huber <span dir="ltr"><<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 02/20/2013 09:55 PM, Joel Sherrill wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 2/20/2013 2:39 PM, Matthew J Fletcher wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
Ok so looking at the rtl22xx BSP as an example i can see the linker<br>
creates a .data section like so,<br>
<br>
   .data :<br>
   {<br>
     *(.data)<br>
     *(.data.*)<br>
     *(.gnu.linkonce.d*)<br>
     *(.jcr)<br>
     SORT(CONSTRUCTORS)<br>
     _edata = .;<br>
   } > sdram<br>
<br>
but in start.s there is no reference to the data section or the _edata<br>
symbol, so i've got no idea how that could setup the data section with<br>
the initialised variables in it.<br>
<br>
Thinking for a minute, would the linker script not need a symbol for<br>
both the beginning and the end of the data section so start.s knows the<br>
range to copy ? and then a loop in start.s to copy the data.<br>
<br>
I wonder if these BSP's are only suitable for execute from flash systems<br>
where you dont need to do the store -> ram copy of initialised data.<br>
<br>
Thats ultimately how i will run but i am running from RAM at the moment<br>
to ease (i thought !) being up and debugging.<br>
<br>
</blockquote>
I don't know this BSP that well. If the .data section has the proper values in it<br>
when you get to boot_card(), then it is OK.<br>
<br>
In some systems, the RAM would be loaded from Flash by start.S or something<br>
similarly early.<br>
<br>
In all cases, if you get to rtems_initialize_executive_<u></u>early() (or even the<br>
bsp_get_work_area() methods) and .data isn't right, you are in trouble.<br>
<br>
Sebastian Huber should comment.<br>
</blockquote>
<br></div></div>
For ARM I would use the current RTEMS master branch and not RTEMS 4.10.  The ARM BSPs use now a shared linker command file and a BSP specific memory map definition.<br>
<br>
-- <br>
Sebastian Huber, embedded brains GmbH<br>
<br>
Address : Dornierstr. 4, D-82178 Puchheim, Germany<br>
Phone   : <a href="tel:%2B49%2089%20189%2047%2041-16" value="+4989189474116" target="_blank">+49 89 189 47 41-16</a><br>
Fax     : <a href="tel:%2B49%2089%20189%2047%2041-09" value="+4989189474109" target="_blank">+49 89 189 47 41-09</a><br>
E-Mail  : <a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-<u></u>brains.de</a><br>
PGP     : Public key available on request.<br>
<br>
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.<br>
______________________________<u></u>_________________<br>
rtems-users mailing list<br>
<a href="mailto:rtems-users@rtems.org" target="_blank">rtems-users@rtems.org</a><br>
<a href="http://www.rtems.org/mailman/listinfo/rtems-users" target="_blank">http://www.rtems.org/mailman/<u></u>listinfo/rtems-users</a><br>
</blockquote></div><br><br clear="all"><br>-- <br><div><br>regards</div><div>---</div><div>Matthew J Fletcher</div><br>