printf
or fgets
, for example) could be done from within the RealView Debugger (RVD) session itself. To my surprise, the GNUARM-compiled binaries would not show printf
output when ran using the RVD/ARMulator even though they worked just fine with GDB. I have customized my crt0.S
, so that was the first place I looked. In addition, writing a simple code using printf
and fgets
and compiling it using GNUARM without using my custom crt0.S
seemed to work. Lo and behold, after comparing my crt0.S
and the default one within the GNUARM distribution, I found that I had failed to call initialise_monitor_handles
in my crt0.S
. Doing this after stack initialization and BSS clearing fixed the problem.(Apparently, the problem above only appears in GNUARM toolchain from gnuarm.org. The toolchain from CodeSourcery does not exhibit this problem. In fact, the latter does not even have the
initialise_monitor_handles
function. Oh, well.)
No comments:
Post a Comment