Dear group members,
Have an activation problem with the secondary JTAG interface.
Using the Philips application note AN10255 I tried to convert the
assembly code of their ARM assembler to the GNU assembler with some
support of Rowley. The evaluation board is from Olimex (P1).
The code is transferred via JTAG1 to the Flash memory and shows no
errors doing that.
But when changing connector to the JTAG2 interface (secondary) this
is not activated by the new code.
It seems to be a task of the right checksum.
But I don't know how to calculate it.
Can somebody explain this to me ?
Here the converted Philips code :
.section .vectors, "ax"
.code 32
.align 0
/*********************************************************************
********
* Exception
Vectors *
**********************************************************************
*******/
_vectors:
ldr pc, [pc, #reset_handler_address - . - 8] /* reset */
ldr pc, [pc, #undef_handler_address - . - 8] /* undefined
instruction */
ldr pc, [pc, #swi_handler_address - . - 8] /* swi handler */
ldr pc, [pc, #pabort_handler_address - . - 8] /* abort prefetch */
ldr pc, [pc, #dabort_handler_address - . - 8] /* abort data */
#ifdef VECTORED_IRQ_INTERRUPTS
.word 0xB9205F84 /* boot loader
checksum */
ldr pc, [pc, #-0xFF0] /* irq handler */
#else
.word 0xB8A06F60 /* boot loader
checksum */
ldr pc, [pc, #irq_handler_address - . - 8] /* irq handler */
#endif
ldr pc, [pc, #fiq_handler_address - . - 8] /* fiq handler */
reset_handler_address:
.word reset_handler
undef_handler_address:
.word undef_handler
swi_handler_address:
.word swi_handler
pabort_handler_address:
.word pabort_handler
dabort_handler_address:
.word dabort_handler
irq_handler_address:
.word irq_handler
fiq_handler_address:
.word fiq_handler
.section .init, "ax"
.code 32
.align 0
/*********************************************************************
*********
*
*
* Default exception
handlers *
*
*
**********************************************************************
********/
reset_handler:
LDR R0, JTAG2 /* Load R0 with 0x55400000 */
LDR R1, PINSEL1 /* Load R1 with oxE002C004 */
LDR R0, [R1] /* Load PINSEL1 with 0x55400000 */
loop:
b loop
JTAG2:
.word 0x55400000
PINSEL1:
.word 0xE002C004
/*********************************************************************
*********
*
*
* Default exception
handlers *
* These are declared weak symbols so they can be redefined in user
code. *
*
*
**********************************************************************
********/
undef_handler:
b undef_handler
swi_handler:
b swi_handler
pabort_handler:
b pabort_handler
dabort_handler:
b dabort_handler
irq_handler:
b irq_handler
fiq_handler:
b fiq_handler
.weak undef_handler, swi_handler, pabort_handler, dabort_handler,
irq_handler, fiq_handler
.end
Thank's for your help.
RolandMessage
Secondary JTAG activation fails (ARM7, Olimex-Board)
2004-12-29 by Roland Macho
Attachments
- No local attachments were found for this message.