Go Down

Topic: Debugging Arduino Due using SAM-ICE JTAG (an approach) (Read 14 times) previous topic - next topic

Palliser

I got today my SAM-ICE JTAG. I debugged a couple of solutions in SAM3X-EK and it's working OK. I still thinking to use SAMICE with Arduino Due for debugging. I have drawn the following connection diagram between Arduino Due Jtag and SAM-ICE JTAG theoretically based on SAM3X-EK design and other reference information. I haven't tested it yet but it looks like should work. The hard thing has been to find the way to interconnect them. In the meantime, I have modified a mini-sata conectors. I will keep posting progress in my attemp to start debugging Due.


neil12

Does this do the same thing
ARM-JTAG-20-10
http://microcontrollershop.com/product_info.php?products_id=4650
I haven't checked out the wiring - but there is an ARM spec for a 0.05" connector.

Palliser

Good catch neil. It should work but we need to see the schematics. I could order it today and try it. The cable I made has false contacts and is hard to keep the communication.
If you want to risk the $7 bucks, keep me posted!

M4nu

#3
Dec 06, 2012, 05:08 pm Last Edit: Dec 06, 2012, 05:11 pm by M4nu Reason: 1
Hello everybody,

this is my first post in this forum. First of all sorry for my bad English. I hope this post will give a small overview about debugging the Arduino Due.

Successful debugging:
I used the latest version of Atmel Studio 6, ARM-JTAG-20-10 from Olimex converting the jtag interface and the debugger SAM-ICE from Atmel. Atmel added the Arduino Board to Atmel Studio 6 IDE, so it is very easy to set up a project for due. For testing I wrote a small example which toggles the on board LED. Result: Stepping through code works great.

Code: [Select]

#define PIOB *((uint32_t volatile *)0x400E1000)
#define PIOB_OER *((uint32_t volatile *)0x400E1010)
#define PIOB_Set_Output *((uint32_t volatile *)0x400E1030)
#define PIOB_Clr_Output *((uint32_t volatile *)0x400E1034)

#include <asf.h>

int main (void)
{
//board_init();
PIOB_OER = 0x08000000;


// Insert application code here, after the board has been initialized.
while(1)
{
PIOB_Set_Output = 0x08000000;
PIOB_Clr_Output = 0x08000000;
}
}


Palliser

Remarkable M4nu!. It's awesome to know that you have tested it and it works. It's an expensive solution ($100+) but it worth the price to be able to track inside SAM3X8E's intricate labyrinth. By the way, few weeks ago Massimo recommended another solution.

http://arduino.cc/forum/index.php/topic,128609.msg967741.html#msg967741

I haven't checked the price but it looks like a less expensive solution.


Go Up