GPNVM bit on Atmel SMA3U (Cortex M3) - How is it set?

Comments

6 comments

  • Avatar
    David Comer

    So, one other possibility that I see (relocating the vector table during startup) is the NVIC VTOR table. However, seems to me that the VTOR is more for dynamically changing the vector table at run time than at start up. Hence, I am still hopeful that someone can provide some insight into what really happens from compiler to reset with respect to the vector table relocation from the base address to 0x80000.

    0
    Comment actions Permalink
  • Avatar
    David Comer

    Sorry if this is sounding as if I am writing a blog. I'm Not, I'd like to receive input on topic. However, in the interest of others that may have the same question, I did find a good description of how OpenOCD handles this situation (see section 12.4.2 topic "Flash Driver: at91sam3") here: http://openocd.berlios.de/doc/html/Flash-Commands.html.

    That said, (Keep in mind I'm not looking for Rowley proprietary information) I have to believe that the CrossWorks code that drives the programming tool (e.g. CrossConnect) does the equivalent to program GPNVM bit 0 a program time.

    0
    Comment actions Permalink
  • Avatar
    Jon Elliott

    If you look at the SAM3 loader (click Tools > Show Installed Packages, click on the Atmel SAM3 CPU Support Package link followed by the SAM3 Loader Application Solution link) you'll see it sets the GPNVM bits as it starts up.

    0
    Comment actions Permalink
  • Avatar
    David Comer

    Jon, that's the tip I needed. Sometimes the obvious eludes :) I still have yet to understand, where in the IDE the bit can be observed. Sorry, but as I am new to the architecture (and the IDE, I haven't quite hit upon the right register set. The post I mentioned orginally mentioned "...the target menu item "Show, Set or Clear the GPNVM bits (specific to an Atmel AT91SAM9 device..." but I don't see that for the SAM3U. Can you suggest where to look?

    Thanks,

    Dave

    0
    Comment actions Permalink
  • Avatar
    Jon Elliott

    There is nothing in the SAM3 support package to do this directly through the IDE right now, you can however access the EEFC registers through the registers window or memory window.

    0
    Comment actions Permalink
  • Avatar
    David Comer

    Thanks for your help Jon. For the benefit of others that my have this same question, and based on your guidence Jon, I found that section 9.1.4 "Boot Strategies" of the SAM3U4 data sheet describes the functionality of the GPNVM bit with regards to relocating the vector table, and section 21.3.3.5 "GPNVM bit" describes the mackup of the EEFC register(s) and how to read the bits.

    Dave

    0
    Comment actions Permalink

Please sign in to leave a comment.