<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 15, 2019 at 2:25 PM Michel Macena <<a href="mailto:mmacena.eng@gmail.com">mmacena.eng@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">Hi, I have compiled a code for an ERC32 target board and loaded it using gdb,<br>the code:<br><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">#include <bsp.h><br>#include <stdlib.h><br>#include <stdio.h><br><br><br>rtems_task Init(<br>  rtems_task_argument ignored<br>)<br>{<br><br>    printf( "Hello World Michel\n" );<br>    printf( "Hello World Michel\n" );<br>    printf( "Hello World Michel\n" );<br>    printf( "Hello World Michel\n" );<br>    printf( "Hello World Michel\n" );<br>    printf( "Hello World Michel\n" );<br>    printf( "Hello World Michel\n" );<br>    printf( "Hello World Michel\n" );<br>    printf( "Hello World Michel\n" );<br>    printf( "Hello World Michel\n" );<br><br>}<br><br>/* configuration information */<br><br>/* NOTICE: the clock driver is explicitly disabled */<br>#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER<br>#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER<br><br>#define CONFIGURE_RTEMS_INIT_TASKS_TABLE<br>#define CONFIGURE_MAXIMUM_TASKS 1<br><br>#define CONFIGURE_INIT<br><br>#include <rtems/confdefs.h><br></blockquote><br>the gdb commands:<br><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">sparc-rtems5-gdb /home/inpe/rtems_exemplos/compile_test/hello_test/hello_exp.exe<br>set serial baud 19200<br>target extended-remote /dev/ttyS0<br>load<br>run<br></blockquote><br>It loads the program perfectly, but I try the command "run" it says<br>that the program is already running. So I closed the session<br>and started a new one.  The session:<br><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">sparc-rtems5-gdb /home/inpe/rtems_exemplos/compile_test/hello_test/hello_exp.exe<br>GNU gdb (GDB) 8.2.1<br>Copyright (C) 2018 Free Software Foundation, Inc.<br>License GPLv3+: GNU GPL version 3 or later <<a href="http://gnu.org/licenses/gpl.html" target="_blank">http://gnu.org/licenses/gpl.html</a>><br>This is free software: you are free to change and redistribute it.<br>There is NO WARRANTY, to the extent permitted by law.<br>Type "show copying" and "show warranty" for details.<br>This GDB was configured as "--host=i686-linux-gnu --target=sparc-rtems5".<br>Type "show configuration" for configuration details.<br>For bug reporting instructions, please see:<br><<a href="http://www.gnu.org/software/gdb/bugs/" target="_blank">http://www.gnu.org/software/gdb/bugs/</a>>.<br>Find the GDB manual and other documentation resources online at:<br>    <<a href="http://www.gnu.org/software/gdb/documentation/" target="_blank">http://www.gnu.org/software/gdb/documentation/</a>>.<br><br>For help, type "help".<br>Type "apropos word" to search for commands related to "word"...<br>Reading symbols from /home/inpe/rtems_exemplos/compile_test/hello_test/hello_exp.exe...done.<br>(gdb) set serial baud 19200<br>(gdb) target extended-remote /dev/ttyS0<br>Remote debugging using /dev/ttyS0<br>trap_table ()<br>    at /home/inpe/masters_project/src/rtems/c/src/lib/libbsp/sparc/erc32/../../../../../../bsps/sparc/shared/start/start.S:107<br>107      RTRAP( 0, SYM(hard_reset) );                  ! 00 reset trap<br>(gdb) cont<br>Continuing.<br>[Inferior 1 (Remote target) exited normally]<br>../../gdb-8.2.1/gdb/thread.c:93: internal-error: thread_info* inferior_thread(): Assertion `tp' failed.<br>A problem internal to GDB has been detected,<br>further debugging may prove unreliable.<br>Quit this debugging session? (y or n) y<br><br>This is a bug, please report it.  For instructions, see:<br><<a href="http://www.gnu.org/software/gdb/bugs/" target="_blank">http://www.gnu.org/software/gdb/bugs/</a>>.<br><br>../../gdb-8.2.1/gdb/thread.c:93: internal-error: thread_info* inferior_thread(): Assertion `tp' failed.<br></blockquote><br>When I use the command "cont" the program ran, but his was the ERC32 board console output:<br><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello World Michel
<br>Hello World Michel
<br>Hello World Michel
<br>Hello World Michel
<br>Hello World Michel
<br>Hello World Michel
<br>Hello World Michel
<br>Hello World Michel
<br>Hello World Michel
<br>Hello World Michel
<br> <br>*** FATAL ***
<br>fatal source: 0 (INTERNAL_ERROR_CORE)
<br>fatal code: 5 (INTERNAL_ERROR_THREAD_EXITTED)
<br>RTEMS version: 5.0.0.0a9b45132c0144c1dc4b6b828a68608c21397ca4
<br>RTEMS tools: 7.4.0 20181206 (RTEMS 5, RSB 9a3e12e5820918057633798c3fe2a1f952fb4e56, Newlib 1d35a003f)
<br>executing thread ID: 0x08a010001
<br>executing thread name: UI1 <br></blockquote><br>It seems that that the code works but I don't get why the "FATAL" and also the "tp" error in GDB.<br>Do you know what may be happening ?<br></div></div></blockquote><div><br></div><div>Chris explained the gdb startup very well. The issue on the FATAL message is</div><div>an interesting aspect of embedded programming. What happens when a task/thread</div><div>falls off the bottom of its function body?</div><div><br></div><div>For POSIX, the thread is implicitly deleted.</div><div><br></div><div>In the Classic API, it is considered a fatal error. </div><div><br></div><div>Since you didn't call rtems_task_delete(RTEMS_SELF) to delete the calling</div><div>task or exit() to shutdown the application, you fell into the fatal error case. </div><div>If you had deleted the Init task, the application would have switched to the</div><div>IDLE thread and run forever.</div><div><br></div><div>--joel<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br>Thanks !<br></div></div>
_______________________________________________<br>
users mailing list<br>
<a href="mailto:users@rtems.org" target="_blank">users@rtems.org</a><br>
<a href="http://lists.rtems.org/mailman/listinfo/users" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/users</a></blockquote></div></div>