In-application programming/self- programming, Api call, Process – Rainbow Electronics AT89C5132 User Manual
Page 24: Constraints

24
AT89C5132
4256A–USB–06/03
In-Application
Programming/Self-
Programming
The IAP allows to reprogram the microcontroller on-chip Flash memory without remov-
ing it from the system and while the embedded application is running.
The user application can call 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:
C Flash Drivers for the AT89C5132
The flash_api routines on the package work only with the USB bootloader.
The flash_api routines are listed in APPENDIX-B.
API Call
Process
The application selects an API by setting the 4 variables available when the flash_api
library is linked to the application.
These four variables are located in RAM at fixed address:
•
api_command: 1Ch
•
api_value: 1Dh
•
api_dph: 1Eh
•
api_dpl: 1Fh
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 come-
back 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.
The user must take care of hardware watchdog before launching a Flash operation.
For more information regarding the Flash writing time see the AT89C5132 datasheet.