Boot mode header examples
Below you will find two examples of boot mode headers (bmhd), one for tc39x and one for tc49x.
Example tc39x
1. Example #pragma section
#pragma section ".bmhd_0_orig" a
const IfxCpu_Bmhd bmhd_0_orig=
{
.bmi= 0x00FE, /**< \brief Boot Mode Index (BMI)*/
.bmhdid= 0xB359, /**< \brief Boot Mode Header ID (CODE) = B359H*/
.stad= 0xA0000000, /**< \brief User Code start address*/
.crc= 0x31795570, /**< \brief Check Result for the BMI Header (offset 000H - 007H)*/
.crcInv= 0xCE86AA8F, /**< \brief Inverted Check Result for the BMI Header (offset 000H - 007H)*/
.confirmation= 0x43211234, /**< \brief 32-bit CODE, (always same)*/
};
#pragma section
2. Corresponding linker script example
SECTIONS
{
/* Boot Mode Header - original values */
.bmhd_0_orig 0xaf400000 : { KEEP (*(.bmhd_0_orig)) } > BMHD_ORIG
}
Example tc49x
1. Example #pragma section
#pragma clang section rodata=".rtc_bmhd_0"
const IfxCpu_Bmhd rtc_bmhd_0 __attribute__((used)) =
{
.bmi= 0x000FU, /**< \brief Boot Mode Index (BMI)*/
.bmhdid= 0xB359U, /**< \brief Boot Mode Header ID (CODE) = B359H*/
.stad= 0xA0000000U, /**< \brief User Code start address - CPU_0*/
.crc= 0x442D2C9DU, /**< \brief Check Result for the BMI Header (offset 000H - 007H)*/
.crcInv= 0xBBD2D362U, /**< \brief Inverted Check Result for the BMI Header (offset 000H - 007H)*/
.confirmation= 0x43211234U, /**< \brief 32-bit CODE, (always same)*/
.confirmationCopy= 0x43211234U, /**< \brief 32-bit CODE, (always same)*/
};
#pragma clang section rodata=""
2. Corresponding linker script example
SECTIONS
{
/* Boot Mode Header - BMHD RTC */
.rtc_bmhd_0 0xae404800 : { KEEP (*(.rtc_bmhd_0)) } > UCB0
}