Forums

Multi-ICE and AT91R40008: Trouble with vector table from Addr 0x00

Started by strut911 June 21, 2004
Hi everyone.
I have a custom board using the AT91R40008. It is actually quite
similar to the AT91EB40A board so I am trying to port the Flash memory
uploader code from the AT91 software library to it. Unfortunately, I
am having problems because the flash memory uploader has a file called
cstartup_flash.s which is linked to address 0x00. The 0x00 address
read only and is used for the flash. Because of that, the startup
vector table cannot be written and it is causing problems.

I thought it would help to remap so that 0x00 could be read however I
get a data abort exception because the startup code assumes that remap
has not been performed yet. It accesses data from the "pre-remap" sram
addresses (0x0030 0000) which is now invalid.

In short, I am wondering how to handle this. My goal is to load the
Flash Memory Uploader code into SRAM, run it once to load my flash,
and then from there, run the flash memory loader from flash. I am
quite frustrated right now, but I would appreciate any help or advice
people can offer.
Steve Rut
strut911 wrote:
> Hi everyone. > I have a custom board using the AT91R40008. It is actually quite > similar to the AT91EB40A board so I am trying to port the Flash memory > uploader code from the AT91 software library to it. Unfortunately, I > am having problems because the flash memory uploader has a file called > cstartup_flash.s which is linked to address 0x00. The 0x00 address > read only and is used for the flash. Because of that, the startup > vector table cannot be written and it is causing problems. > > I thought it would help to remap so that 0x00 could be read however I > get a data abort exception because the startup code assumes that remap > has not been performed yet. It accesses data from the "pre-remap" sram > addresses (0x0030 0000) which is now invalid. > > In short, I am wondering how to handle this. My goal is to load the > Flash Memory Uploader code into SRAM, run it once to load my flash, > and then from there, run the flash memory loader from flash. I am > quite frustrated right now, but I would appreciate any help or advice > people can offer. > Steve Rut
On an AT91R40008, set up the chip select and the remap before attempting to load the RAM. The chip select unit is always writeable like a block of RAM, so you can start with it. The only chip select that absolutely needs to be set up is NCS0 for the Flash with the final Flash address (I'm using 0x01000000). Been there - done that. Tauno Voipio tauno voipio @ iki fi