| Documentation |
|---|
| Related products |
|---|
| USB-I2C/SPI/GPIO Adapter - U2C-12 |
| USB-IO Interface Adapter - GPIO-12 |
To configure bootloader you have to define macros for LED, jumper and EEPROM mark. Detailed information about these marcoses can be found in the following sections.
Bootloader can run in 2 different modes:
in this mode, the device is recognized by computer as a standard HID device and user mode application can be reprogrammed;
in this mode, the management is passed to user mode application and the interrupt vectors are redirected to the user mode application interrupt vectors.
The mode is determined in the main subroutine:
global main
main
UD_INIT
UD_TX 'X'
; Decide what to run bootloader or application
#if USE_EEPROM_MARK
; Check EEPROM mark
movlw EEPROM_MARK_ADDR
movwf EEADR
movlw 0x01
movwf EECON1
movlw EEPROM_MARK
subwf EEDATA, W
bz bootloader
#endif
; Check bootloader enable jumper
#ifdef USE_JP_BOOTLOADER_EN
setf JP_BOOTLOADER_TRIS
btfsc JP_BOOTLOADER_PORT, JP_BOOTLOADER_PIN
goto APP_RESET_VECTOR ; Run Application FW
#endif
; Run bootloader
bra bootloader
reset
As you can see from the source code, bootloader first checks the EEPROM mark. If mark is present, bootloader starts in firmware update mode. For additional information about the EEPROM mark see the section called “ EEPROM Mark configuration (EEPROM Mark)”.
If EEPROM mark is absent, bootloader checks the jumper. If jumper is closed, bootloader starts in firmware update mode. If jumper is opened, bootloader starts in user mode and control is passed to user mode application. For additional information about jumper configuration see the section called “Jumper configuration (jumper)”.