It appears from our testing that ARMWSD.exe binary record page-counts for erasing flash are counter-intuitive: a page count of zero = 1, 512-byte, page to erase, and a page count of 1 = 2, 512-byte, pages to erase.
Is this a correct assumption from our testing?
ARMWSD.exe declared that it was erasing 2, 512-byte pages and sent us a binary record as follows:
0x07 0x0E 0x06 0x45 0x00 0x00 0x18 0x00 0x01 0x9C
The program being loaded had a ROMSTART address 0f 0x00081800 and was just under 1024 bytes in length.
Our loader interpreted the 0x01 page count to be for one-page, erased the 512-byte page starting at 0x00081800 and ACK'd ARMWSD.
ARMWSD.exe popped up an error box stating that there was a 512-byte FLASH erase error associated with the 0x00081A00 address. Our receive buffer did not show a binary command record for the 0x00081A00 address. What is bothersome is that it is not clear how ARMWSD.exe knew we did not erase the 512 bytes starting at 0x00081A00.
Does anyone have an idea as to what we are missing here?
Also, is there an explanation for how ARMWSD.exe retries after a FLASH erase, write, protect, or verify command/operation is NAK'd by a binary loader?
Thanks for any ideas anyone may have.