Datasheet

20
4266C–CAN–03/08
AT89C51CC03 UART Bootloader
In-Application
Programming/S
elf-
Programming
The IAP allows to reprogram a microcontroller on-chip Flash memory without removing it from
the system and while the embedded application is running.
The user application can call some Application Programming Interface (API) routines allowing
IAP. These API are executed by the bootloader.
To call the corresponding API, the user must use a set of Flash_api routines which can be linked
with the application.
Example of Flash_api routines are available on the Atmel web site on the software package:
C Flash Drivers for the AT89C51CC03UA
The Flash_api routines on the package work only with the UART bootloader.
The Flash_api routines are listed in Appendix-2.
API Call
Process The application selects an API by setting R1, ACC, DPTR0 and DPTR1 registers.
All calls are made through a common interface “USER_CALL” at the address FFF0h.
The jump at the USER_CALL must be done by LCALL instruction to be able to comeback in the
application.
Before jump at the USER_CALL, the bit ENBOOT in AUXR1 register must be set.
Constraints The interrupts are not disabled by the bootloader.
Interrupts must be disabled by user prior to jump to the USER_CALL, then re-enabled when
returning.
Interrupts must also be disabled before accessing EEPROM Data then re-enabled after.
The user must take care of hardware watchdog before launching a Flash operation.
For more information regarding the Flash writing time see the AT89C51CC03 datasheet.