Descriptions of C Functions

Function Arguments Return
ReadFlashByte( ) MyAddressType flashAdr unsigned char
ReadFlashPage() MyAddressType flashStartAdr, unsigned char *dataPage unsigned char
WriteFlashByte( ) MyAddressType flashAddr, unsigned char data unsigned char
WriteFlashPage() MyAddressType flashStartAdr, unsigned char *dataPage unsigned char
RecoverFlash() Void unsigned char

The datatype MyAddressType is defined in Self_programming.h. The size of this datatype depends on the device that is being used. It can be defined as an long int when using devices with more than 64KB of Flash memory, and as an int (16 bit) using devices with 64KB or less of Flash memory. The datatypes are actually used as __flash or __farflash pointers (consequently 16 and 24 bit). The reason why a new datatype is defined is that integer types allow a much more flexible usage than pointer types.

The ReadFlashByte() returns one byte located on Flash address given by the input argument FlashAdr.

Figure 1. Flowchart for the ReadFlashByte() Function

The ReadFlashPage() reads one Flash page from address given by the input argument FlashStartAdr and stores data in array given by the input argument DataPage[]. The number of bytes stored is depending upon the Flash page size. The function returns FALSE if the input address is not a Flash page address, else TRUE.

Figure 2. Flowchart for the ReadFlashPage() Function

The WriteFlashByte() writes a byte given by the input argument Data to Flash address given by the input argument FlashAddr. The function returns FALSE if the input address is not a valid Flash byte address for writing, else TRUE.

Figure 3. Flowchart for the WriteFlashByte() Function

The WriteFlashPage() writes data from array given by the input argument DataPage[] to Flash page address given by the input argument FlashStartAdr. The number of bytes written is depending upon the Flash page size. The function returns FALSE if the input address is not a valid Flash page address for writing, else TRUE.

Figure 4. Flowchart for the WriteFlashPage() Function

The RecoverFlash() reads the status variable in EEPROM and restores Flash page if necessary. The function must be called at program start-up if the Flash recovery option is enabled. The function Returns TRUE if Flash recovery has taken place, else FALSE.

Figure 5. Flowchart for the RecoverFlash() Function