Hi Charles
Thanks for looking into the Secondary JTAG application note.
Just want to comment on the issues you brought up regarding the
application note
* Does not set up exception vectors properly.
>>>> The code provided has been tested at our end and it works fine.
The interrupt vector table only provides a starting point for the
interrupt handling routines that have not been covered in this
application note. The "dummy" interrupt vectors provided in the
application note only support the signature computation that needs to
reside at 0x14. Please check the AN10254_1 application note for
understanding interrupt handling.
> * Does not do anything after the pin matrix is set up. This could
> cause a crash (exception) which could disturb the JTAG state
(perhaps)
>>>> Yes, if you are debugging from SRAM then nothing needs to be
done after configuring the pin matrix. A while(1) loop could be
added nevertheless.
If you are debugging your application from Flash then you need to
jump to your application after configuring the pin matrix.You could
also add a few seconds delay routine before the jump takes place so
that you have time to connect the debugger to the board after reset
so that you are absolutely sure that your application has not yet run.
Hope these comments are helpful.
Best Regards
Philips_apps
--- In lpc2000@yahoogroups.com, "embeddedjanitor" <manningc2@a...>
wrote:
> I know a few people have had the secondary JTAG working, but a lot
> have also struggled, so I post this with the hope of helping a few
> people.
>
> Firstly, the assembly code in the Philips App Note is wrong, but
will
> perhaps still work.I will take this up with Philips. I shall post
the
> code I used on the download area. The two things the Philips code
> does
> wrong are:
> * Does not set up exception vectors properly.
> * Does not do anything after the pin matrix is set up. This could
> cause a crash (exception) which could disturb the JTAG state
(perhaps)
> .
> I set up things pretty much according to the Philips app note, but
> then needed to do the following to get things working:
>
> * You should not reset the device under debugger command unless it
> lets you run the code for a while. The reason for this is that the
> flash code must run to set up JTAG2. Instead, the debugger should
be
> configured to stop the running code.
>
> * THe clock speed needs to be low enough. The JTAG interface can
only
> be clocked at up to 1/6 of the core clock. Therefore if you have a
> 10MHz crystal you don't want to be clocking much faster than 1MHz.
> Some debuggers let you initialise at one speed, then use a faster
> speed after initialisation. It might be worth adding the PLL speed
up
Show quoted textHide quoted text
> to the startup code to use a faster JTAG clock.
>
> -- Charles