Fantastic! That did the trick. Now I see the MSD device showing up. Thanks for finding this.
Now I just need to modify my user app to start at 0x8080. Is that correct? I'm using Processor Expert, and I've found where to change the parameters for the generated linker. I assume I just add 0x8080 to both the m_interrupts and m_text? Here is what the generated linker put out:
MEMORY {
m_interrupts (RX) : ORIGIN = 0x00008208, LENGTH = 0x00000188
m_text (RX) : ORIGIN = 0x00008490, LENGTH = 0x000F7B70
m_data (RW) : ORIGIN = 0x1FFF0000, LENGTH = 0x00010000
m_data_20000000 (RW) : ORIGIN = 0x20000000, LENGTH = 0x00010000
m_cfmprotrom (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010
}
I also setup my project to output raw binary bin file. At present I can copy the .bin file to the MSD and the file shows up, but it does not run after I power cycle the board. The loader shows back up empty.
I saw your article (
http://www.utasker.com/forum/index.php?topic=1869.0), and so I think I may be doing something wrong with the vector table address and 512 byte boundary. Can I make the start at 0x8000 instead or does this cause problems. Otherwise, I'm not following where I place the code to copy the vector table to SRAM.
By the way, for some reason I cannot get the bootloader to run on a cold power up. I have to toggle the reset line before it comes up. I have not done anything yet to the FORCE_BOOT(). It is always 1. I suspect it has to do with not setting up the crystal loads, but I can test that.
Thank you again for you help!