Unless I locate my source buffer in IRAM1, the IAP function that copies to flash always returns the "source address not mapped error".
Is there some restriction on mapping when using IAP?
well, it is hard to understand what you did and what the problem exactly is, but I don't think your IAP can write on the flash bank from which it executes. you must either switch banks or execute from RAM.
I am flashing to a different bank. It's actually all part of a firmware upgrade functionality being developed. THe native firmware resides in low memory (address 0), the upgrade procedure flashes in the new firmware at high memory (0x10000).
Something seems to be sensitive to where the source buffer is located, the source buffer is the byte array passed to the IAP function to copy to flash. In my case I have to open the options dialog for the correspinding file and locate the memory in IRAM1, which in my configuration is a 0x2000 block starting at 0x40000000. If not, I get an IAP error stating that the source buffer is not mapped.
try AN2475 here: www.st.com/.../modules.php