What is a BeagleBone?
The BeagleBone is the low-cost, high-expansion focused BeagleBoard using a low cost Sitara AM335x
Cortex A8 ARM processor. It is similar to the earlier BeagleBoards and can act as a USB or Ethernet
connected expansion companion for your current BeagleBoard and BeagleBoard-xM or work stand-alone.
The BeagleBone is small even by BeagleBoard standards and with the high-performance ARM capabilities
you expect from a BeagleBoard, the BeagleBone brings full-featured Linux to places it has never gone
before. (Source: circuitco)
Personal I use the BeagleBone for Bare-Metal development and not for Linux. Here the JTAG is needed
for debugging, and I would like to show different ways to use it.
The easiest way to use JTAG could be done by the onboard JTAG adapter. This can be realized by
using the "USB Client" connector. The connector is at the front, downside the PCB:
Onboard JTAG adapter
For more informatione take a look at the "BeagleBone System Reference Manual". If more
performance is needed compared to the integrated JTAG adapter, an external adapter could be used. It is
possible to modify the BeagleBone to use an optional 20 pin CTI JTAG header. More information about the
modification can be found here, Optional JTAG Header. After the modification an additional adapter is needed too. The
complete solution looks like:
Here the additional adapter is a "J-Link TI-CTI-20 Adapter" from Segger which can be find
here. An external JTAG hardware
like a FT2232H based hardware can be used to increase the JTAG performance now.
If you prefer a DIY solution, it might look as follows:
This solution based on the "Optional JTAG Header" but without the Samtec connector. A direct connection
is soldered to the bottom of the circuit board. It looks like:
(Click inside the picture to expand)
If the bootloader is active on the BeagleBone, you will be asked for a SUBARCTIC driver by the Windows
system. This is the case for example when the SD card is not used. It is annoying and I could not
find any official driver. That is why I decided to create a dummy driver with libusb-win. You will
find the dummy driver in the download section. The driver is for VID: 0451 and PID: 6141.
CrossWorks for ARM
I like to work with CrossWorks for ARM. You don't know CrossWorks for ARM? Take a look
here. If the onboard JTAG adapter
is used from the BeagleBone board, the "Texas Instruments XDS100" target which is supported
by CrossWorks for ARM must be used.
It is also possible to use the external or DIY adapter with e.g. the
target, which is faster than the onboard JTAG adapter. But in this case it is very important
to set the
"JTAG Clock divider" to 2 in the target properties. I am using
CrossWorks for ARM v2.3.5. But unfortunately it was not possible to use the J-Link JTAG
A major advantage of the CrossWorks for ARM solution is that the CPU and SDRAM is being initialized
before the actual start of the debugging session. Therefore it is possible to load the application
into the external SDRAM. This is realized by load and execute of a Sitara StarterWare "Bootloader"
before the application to debug.
SUBARCTIC Dummy v20131013
CW-B2Test CrossWorks for ARM project