I seem to be getting some incorrect data back from the PSOC when sending the Get Flash Size Command. In my .cyacd file its clear that the first row of data has the a row ID of 0x50 (80), but after calling the Get Flash Size Command the PSoC returns a valid row rand of 0x51(81) to 0xFF.
Does anyone have any ideas about this? Why would the row numbers be different? I'm just reprogramming the same .cyacd file to test this.
I'm using the API from AN86526.
Looking at the build results of the project. Flash used 12864 of 16384 bytes -> Bootloader: 5120 bytes (80 rows of 64 bytes) Application: 7680 bytes (120 rows of data) Metadata: 64 bytes(1 row)
Does the .cyacd file include the meta data? Also would it makes sense to add a row to each array ID to get the correct rows?
1)The command Get Flash Size(0x32) returns the "first row number of the bootloadable flash, 2 bytes. Last row number of the bootloadable flash, 2 bytes." In post#2 you have mentioned that bootloader is taking 80 rows. So the bootloadable application must start from row 81.Can you please confirm this. Also can you please confirm if you are using the latest version of PSoC Creator.
2)Yes, .cyacd file contains the metadata also.
I've been using PSoC Creator 3.3. Looks like there is a 4.0 now, so I'm going to try that one.
The Get Flash Size is returning row 81(0x51) when I call it. The problem is looking at the .cyacd file that is generated the first row ID is 80(0x50), so when I run my program its failing the valid row check. I'm wondering if it makes sense that to get around this that I can just add 1 to all the row IDs in my .cyacd file as they get parsed.
I attached an archive. APROM.cyacd is the file.
Is it possible for you to increase the delay between sending the Program Row command and reading back the result. It seems like PSoC did not get time to perform FlashWrite operation and get back with the result.