Hello, I try to get the a working gnat toolchain running to build binaries for the raspberry pi with rtems4.11. For debugging purposes the pi is emulated in qemu.
Currently I try to get the following basic tasking example to run: with Text_IO; use Text_IO; procedure Hello is task Hello_Task; task body Hello_Task is begin Put_Line ("*** GNAT/RTEMS Hello World Test ***"); New_Line; Put_Line ("Welcome to the World of Lady Ada"); New_Line; Put_Line ("Initiating 20 second delay"); delay 20.0; Put_Line ("Delay Complete"); Put_Line ("*** END OF GNAT/RTEMS Hello World Test ***"); end Hello_Task; begin Put_Line ("Main program"); null; end Hello; After rtems initialization a thread is created which calls the gnat_main function and then runs the rts and the task. What I see so far is that after the hello_tasks delays itself the Complete_Master procedure (s-tassta.adb:444) is called, but with Self_Id set to the Id of the hello_task. The call finishes and the runtime is cleaned before the task if able to wake up. If I debug the same program on my desktop pc Complete_Master is called with the Id of the main task. It then notices that it has to wait for its dependent task (hello_task), sleeps until it finishes and only then terminates the runtime. I would like to know from where Complete_Master is called to break there and find out why it uses the wrong id. Also general tips on how to debug that kind of thing would be greatly appreciated. Thank you very much, Jan