<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2017-06-07 22:41 GMT+03:00 Hesham Almatary <span dir="ltr"><<a href="mailto:heshamelmatary@gmail.com" target="_blank">heshamelmatary@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Thu, Jun 8, 2017 at 2:26 AM, Denis Obrezkov <<a href="mailto:denisobrezkov@gmail.com">denisobrezkov@gmail.com</a>> wrote:<br>
> 2017-06-07 14:44 GMT+03:00 Sebastian Huber<br>
> <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-<wbr>brains.de</a>>:<br>
>><br>
>> On 06/06/17 18:58, Hesham Almatary wrote:<br>
>><br>
>>> Originally RTEMS had a one big linkcmd for each platform, which<br>
>>> defines linker symbols (used in C code) and required sections. This<br>
>>> has been improved with current BSPs (like ARM-based ones), by<br>
>>> splitting up shared linkcmd parts (linkcmd base) and BSP specific ones<br>
>>> that include the shared one. riscv_generic, given that it's old,<br>
>>> follows the old way of having a single big linkcmd. You can change<br>
>>> this for your new BSP.<br>
>><br>
>><br>
>> New ports/BSPs should definitely use a shared linkcmds.base (see ARM). Use<br>
>> "riscv-rtems4.12-ld --verbose" to get the default linker script.<br>
><br>
> Ok.<br>
><br>
> Now I have a problem:<br>
> <a href="https://github.com/embeddedden/rtems-riscv/blob/hifive1/c/src/lib/libbsp/riscv32/hifive1/start/start.S#L117" rel="noreferrer" target="_blank">https://github.com/<wbr>embeddedden/rtems-riscv/blob/<wbr>hifive1/c/src/lib/libbsp/<wbr>riscv32/hifive1/start/start.S#<wbr>L117</a><br>
> When I step to that line, gdb hangs with a message:<br>
> (gdb) step<br>
> Note: automatically using hardware breakpoints for read-only addresses.<br>
><br>
</span>How do you run/attach simulator (and which one do you use)? Do GDB and<br>
the simulator support 0x20400000 > addresses (where your text section<br>
is loaded to)? AFAIK, that's not the case. Spike's default machine<br>
only works with addresses >= 0x80000000. You've to look up if Spike,<br>
Qemu [1] or GDB target sim model your board.<br></blockquote><div>I will investigate this.</div><div>Could you also explain you .stack section in linkcmd file?</div><div>is it on purpose always of zero size (.work section consumes all remaining memory)? </div></div><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Regards, Denis Obrezkov</div>
</div></div>