beautypg.com

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

Page 24: Constraints

background image

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.