On Wed, Jun 7, 2017 at 12:26 PM, Denis Obrezkov <denisobrez...@gmail.com> wrote: > 2017-06-07 14:44 GMT+03:00 Sebastian Huber > <sebastian.hu...@embedded-brains.de>: >> >> On 06/06/17 18:58, Hesham Almatary wrote: >> >>> Originally RTEMS had a one big linkcmd for each platform, which >>> defines linker symbols (used in C code) and required sections. This >>> has been improved with current BSPs (like ARM-based ones), by >>> splitting up shared linkcmd parts (linkcmd base) and BSP specific ones >>> that include the shared one. riscv_generic, given that it's old, >>> follows the old way of having a single big linkcmd. You can change >>> this for your new BSP. >> >> >> New ports/BSPs should definitely use a shared linkcmds.base (see ARM). Use >> "riscv-rtems4.12-ld --verbose" to get the default linker script. > > Ok. > > Now I have a problem: > https://github.com/embeddedden/rtems-riscv/blob/hifive1/c/src/lib/libbsp/riscv32/hifive1/start/start.S#L117 > When I step to that line, gdb hangs with a message: > (gdb) step > Note: automatically using hardware breakpoints for read-only addresses. > > Does somebody know what can be done here? > Check what is the value in s0 before the jr, and compare that with the symbol map / function addresses, which you can get with nm or objdump. (I usually use xxx-rtems4.xx-objdump -dA hello.exe > hello.txt and examine the text file.)
> Also, I don't like my initial linker file: > https://github.com/embeddedden/rtems-riscv/blob/hifive1/c/src/lib/libbsp/riscv32/hifive1/startup/linkcmds > Critique is very appreciated. > I can't look at this yet except to reiterate that it is worth it to mimic the arm/sparc BSPs and use a linkcmds.base file and then specialize it for each individual BSP. > > -- > Regards, Denis Obrezkov > > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel