Embedded_bootloader.h and embedded_bootloader.c, Nv_data.c and nv_data.h, Isr_vectors.c – Freescale Semiconductor 802.15.4 User Manual

Page 41: Embedded_bootloader.h and embedded_bootloader.c -5, Nv_data.c and nv_data.h -5, Isr_vectors.c -5, Section 5.3.5, nv_data.c and, Nv_data.h, If they, 4 embedded_bootloader.h and embedded_bootloader.c

Advertising
background image

Freescale Semiconductor Embedded Bootloader Reference Manual, Rev. 0.0

5-5

5.3.4 Embedded_Bootloader.h and Embedded_Bootloader.c

These are the interface files for the 802.14.4/Zigbee application. They contain function pointers to
functions accessible in the Embedded Bootloader. These files also contain absolute addresses, which
should not be changed.

Ensure that the two Embedded Bootloader control flags, which control whether the 802.15.4/Zigbee
application starts or not, are included in the 802.15.4/Zigbee application build. See

Section 5.2.2

for more

details.

#pragma CONST_SEG APP_BOOTLOADER_FLAGS

// Default setting for how BootLoader downloads firmware

const uint8_t boot_loader_control = ALL_BIT_ENABLED;

const uint8_t boot_loader_flag = EXECUTE_APPLICATION;

#pragma CONST_SEG DEFAULT

The 802.15.4/Zigbee application must also call the “void BootLoader_Interface_Init(void)” function to
set up pointers to the Embedded Bootloader accessible function. The function must be called once during
system initialization.

NOTE

In earlier versions, these files were titled “FreeLoader_inf.c” and
“FreeLoader_inf.h”. Do not user the “FreeLoader_inf.c” and
“FreeLoader_inf.h” files with the Embedded Bootloader.

5.3.5 NV_Data.c and NV_Data.h

The NVM is not a part of the Embedded Bootloader. However, it is advised to make the NVM a part of
the 802.15.4/Zigbee application.

The Embedded Bootloader can use the information in NV memory, but it has default values (safe mode
boot) to cover scenarios where no NV memory is available, that is, the Embedded Bootloader would be
locked to use the default values.

5.3.6 ISR_Vectors.c

The Embedded Bootloader redirects the ISR vector table to 0x0EFC0, i.e. the 802.15.4/Zigbee application
ISR vector table must be locate at 0x0EFC0 to 0xEFFD (see linker file).

The file also contains a reset vector. The reset vector is not used (defined out) when using the Embedded
Bootloader. The system reset vector is in the Embedded Bootloader address space (0xFFFE). The
Embedded Bootloader has two system variables located where the redirected “reset vector” is locate at
0xEFFE to 0xEFFF. The variables control the startup of the Embedded Bootloader.

Advertising