<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2017-06-12 23:10 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"><div dir="ltr"><div><div class="h5"><br><br>On Tue, Jun 13, 2017 at 2:09 AM, Denis Obrezkov <<a href="mailto:denisobrezkov@gmail.com" target="_blank">denisobrezkov@gmail.com</a>> wrote:<br>> Hello all,<br>><br>> I was able to debug my program on top of HiFive1 board.<br>> I found out that I can't use next and until commands from gdb,<br>> they just hang gdb.<br>> And now I have a problem, this is my backtrace:<br>><br>> #0  0x2041d728 in _User_extensions_Iterate (arg=0x80002eb8,<br>> visitor=0x2041d64e <_User_extensions_Fatal_<wbr>visitor>,<br>> direction=CHAIN_ITERATOR_<wbr>FORWARD)<br>>     at<br>> /home/reprofy/Projects/riscv/<wbr>rtems/development/rtems/<wbr>kernel/rtems-riscv/c/src/../..<wbr>/cpukit/score/src/<wbr>userextiterate.c:155<br>> #1  0x20410ed4 in _User_extensions_Fatal (source=INTERNAL_ERROR_CORE,<br>> error=2) at<br>> ../../cpukit/../../../hifive1/<wbr>lib/include/rtems/score/<wbr>userextimpl.h:307<br>> #2  0x20410ef8 in _Terminate (the_source=INTERNAL_ERROR_<wbr>CORE, the_error=2)<br>> at<br>> /home/reprofy/Projects/riscv/<wbr>rtems/development/rtems/<wbr>kernel/rtems-riscv/c/src/../..<wbr>/cpukit/score/src/interr.c:35<br>> #3  0x20410f40 in _Internal_error<br>> (core_error=INTERNAL_ERROR_<wbr>TOO_LITTLE_WORKSPACE) at<br>> /home/reprofy/Projects/riscv/<wbr>rtems/development/rtems/<wbr>kernel/rtems-riscv/c/src/../..<wbr>/cpukit/score/src/interr.c:44<br>> #4  0x2041e484 in _Workspace_Handler_<wbr>initialization (areas=0x80002f78,<br>> area_count=1, extend=0x0) at<br>> /home/reprofy/Projects/riscv/<wbr>rtems/development/rtems/<wbr>kernel/rtems-riscv/c/src/../..<wbr>/cpukit/score/src/wkspace.c:<wbr>123<br>> #5  0x2040031c in bsp_work_area_initialize_<wbr>default (area_begin=0x80001d58,<br>> area_size=8872) at<br>> ../../../../../.././hifive1/<wbr>lib/include/bsp/bootcard.h:147<br>> #6  0x20400372 in bsp_work_area_initialize () at<br>> /home/reprofy/Projects/riscv/<wbr>rtems/development/rtems/<wbr>kernel/rtems-riscv/c/src/lib/<wbr>libbsp/riscv32/hifive1/../../<wbr>shared/bspgetworkarea.c:61<br>> #7  0x2040f3ce in rtems_initialize_executive () at<br>> /home/reprofy/Projects/riscv/<wbr>rtems/development/rtems/<wbr>kernel/rtems-riscv/c/src/../..<wbr>/cpukit/sapi/src/exinit.c:95<br>> #8  0x204002cc in boot_card (cmdline=0x0) at<br>> /home/reprofy/Projects/riscv/<wbr>rtems/development/rtems/<wbr>kernel/rtems-riscv/c/src/lib/<wbr>libbsp/riscv32/hifive1/../../<wbr>shared/bootcard.c:76<br>> #9  0x20400064 in _end_clear_bss () at<br>> /home/reprofy/Projects/riscv/<wbr>rtems/development/rtems/<wbr>kernel/rtems-riscv/c/src/lib/<wbr>libbsp/riscv32/hifive1/start/<wbr>start.S:116<br>><br>> So, I think I should increase a workspace.<br>> Now, I have some questions:<br>> I took Hesham's linker file for riscv-generic, and there were no stack<br>> space,<br>> I allocated 0x1000 for stack. Should I make it zero again, or should I<br>> decrease its size?<br>> what size for stack should be enough?<br></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">                /*<br>                 * The stack section will occupy the remaining REGION_STACK region and may<br>                 * contain the task stacks.  Depending on the region distribution this<br>                 * section may be of zero size.<br>                 */<br></blockquote>This means that the stack_end address is starting at your very top address space (i.e. 16KiB if you set your linker size to 16KiB). The stack grows dynamically downwards, so it might overflow other sections (e.g. work, heap, data, etc) if you don't have enough memory size to fit. You can try to see how much size each section occupies (riscv32-rtems4.12-objdump -h hello.exe), especially work space.<span class=""><br><br><div><br>> And why there were no space for stack? is it possible to work without stack<br>> allocated in<br>> linkcmd file?<br>> Can RTEMS work with a smaller workspace?<br>><br></div></span><div>As far as I remember, 4KiB was the smallest I could allocate for workspace to work (with Epiphany). As I suggested before, you might want to start saving up memory by using the local instruction memory (on HiFive) and compressed version of RISC-V ISA.<span class="HOEnZb"><font color="#888888"><br><br></font></span></div><span class="HOEnZb"><font color="#888888"><div>> --<br>> Regards, Denis Obrezkov<br><br><br><br>-- <br>Hesha</div></font></span></div>
</blockquote></div>I think that problem is that my bss section spends 0x1440 byte.</div><div class="gmail_extra">And rtems requires its workspace to be about 15 KiB.</div><div class="gmail_extra">(I have an error in wkspace.c:137 - 'remaining' is 7024 during the error).</div><div class="gmail_extra"><br></div><div class="gmail_extra">And I am not sure is it possible to store bss in ITIM,</div><div class="gmail_extra">details can be found in E31 Coreplex manual, 3.1.</div><div class="gmail_extra">I've tried to push bss to ITIM, but I had errors during clearing it.</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Do you think compressed ISA will help? or, how can we reduce the size of </div><div class="gmail_extra">the required space?</div><div class="gmail_extra"><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Regards, Denis Obrezkov</div>
</div></div>