2010-06-24 02:25:08     understanding bare metal toolchain

Document created by Aaronwu Employee on Sep 26, 2013
Version 1Show Document
  • View in full screen mode

2010-06-24 02:25:08     understanding bare metal toolchain

Prasanth Rajagopal (INDIA)

Message: 90576   


I am trying to understand the build and execution stages of bare metal tool chain in windows. It is a bit high level, bascally trying to get a picture of the whole process.


1. bare metal -> would mean, no OS is loading the application. It says in readme that 'Also, please keep in mind that this is just a toolchain for compiling code. ' How about the linking stage? In VDSP I had the ldf concept, do I need to have a linkerscipt to specify the memory sections?


2. I have VDSP and I have all sorts of ADI emulators. If I interpret this text in readme 'It is certainly not an IDE, so do not expect some GUI system to help you edit code or manage your projects.' - it would mean that I can do loading of app image as how the GUI system support (e.g. VDSP supports JTAG)?


3. If I dont use VDSP, and stick on with eclipse (no jtag there), I can still load the app to the board, using serial or LAN. But I need to have U-boot running on it - is that true?


4. When I was running Linux, I could initiate gdb debugging with the invoking command at target end shell. In this case, what monitor program should be executed at the target end (Uboot is the only stuff I know)?


I have been reading stuffs, but could not link together the whole process. Thanks for any direction/links-to-read.


- Prasanth.




2010-06-24 14:25:37     Re: understanding bare metal toolchain

Mike Frysinger (UNITED STATES)

Message: 90603   


bare metal means it is the only thing running (no OS).  it doesnt mean something else cant boot it up.  so some people use u-boot as their bootloader and have it boot bare metal apps.


the bare metal toolchain covers everything from compiling to linking.  every processor has a default linker script which targets on-chip memory, but you're obviously free to write any custom memory layout you want.


no ADI emulators are supported today.  but urjtag+gdbproxy provides complete JTAG support from the command line.


eclipse is merely a GUI frontend.  it has no built in compiler/linker/jtag/whatever.  it shells out to external packages, of which we have full support in the GNU toolchain.


gdbproxy is the JTAG<->GDB glue so you can debug bare metal.




2010-08-26 08:48:16     Re: understanding bare metal toolchain

Prasanth Rajagopal (INDIA)

Message: 92807   




Just an updated question:


The Doc says 'ADI ICE 100B: The latest ADI USB ICEs will work with the GNU toolchain starting with the 2010R1 release. For detailed info, check out urjtag and gdbproxy".


Basically I am looking at the same scenario as with the VDSP GUI environment. Like, VDSP + ICE 100B works, I am allowed to debug without command lines. With eclipse debugging uClinux applications, I could do the same with serial/tcp. So I was wondering if I can do this exactly same for eclipse and debugging bare metal applications, but with jtag this time.


If we do not support this as of now, do we have plans to, in future? Should I be reading about gdbproxy with ICE 100B support using command line for now?


- Prasanth.




2010-08-26 10:59:24     Re: understanding bare metal toolchain

Mike Frysinger (UNITED STATES)

Message: 92810   


if you want to use Eclipse, then please read the documentation: