MCCI Trusted Bootloader
Simple trusted bootloader and tools for small embedded systems
mcci_bootloader_stm32l0.h File Reference

Go to the source code of this file.

Macros

#define _mcci_bootloader_stm32l0_h_   /* prevent multiple includes */
 

Functions

void McciBootloader_Stm32L0_prepareForLaunch (void)
 
MCCI_BOOTLOADER_BEGIN_DECLS void McciBootloader_Stm32L0_systemInit (void)
 

Variables

const McciBootloader_CortexPageZero_t gk_McciBootloader_CortexVectors
 the CortexM0 vectors for the boot loader.
 
McciBootloaderPlatform_SystemFlashEraseFn_t McciBootloader_Stm32L0_systemFlashErase
 
McciBootloaderPlatform_SystemFlashWriteFn_t McciBootloader_Stm32L0_systemFlashWrite
 

Macro Definition Documentation

◆ _mcci_bootloader_stm32l0_h_

#define _mcci_bootloader_stm32l0_h_   /* prevent multiple includes */

Definition at line 23 of file mcci_bootloader_stm32l0.h.

Function Documentation

◆ McciBootloader_Stm32L0_prepareForLaunch()

void McciBootloader_Stm32L0_prepareForLaunch ( void  )

wait for clock to switch

Definition at line 73 of file mccibootloader_stm32l0_prepareforlaunch.c.

References MCCI_CM0PLUS_SYSTICK_CSR, MCCI_CM0PLUS_SYSTICK_CSR_ENABLE, MCCI_CM0PLUS_SYSTICK_CSR_TICKINT, MCCI_STM32L0_REG_FLASH_ACR, MCCI_STM32L0_REG_FLASH_ACR_DISAB_BUF, MCCI_STM32L0_REG_FLASH_ACR_LATENCY, MCCI_STM32L0_REG_FLASH_ACR_PRE_READ, MCCI_STM32L0_REG_FLASH_ACR_PRFTEN, MCCI_STM32L0_REG_FLASH_ACR_RUN_PD, MCCI_STM32L0_REG_FLASH_ACR_SLEEP_PD, MCCI_STM32L0_REG_RCC_AHBRSTR, MCCI_STM32L0_REG_RCC_APB1RSTR, MCCI_STM32L0_REG_RCC_APB2RSTR, MCCI_STM32L0_REG_RCC_CFGR, MCCI_STM32L0_REG_RCC_CFGR_HPRE, MCCI_STM32L0_REG_RCC_CFGR_MCOPRE, MCCI_STM32L0_REG_RCC_CFGR_MCOSEL, MCCI_STM32L0_REG_RCC_CFGR_PLLDIV, MCCI_STM32L0_REG_RCC_CFGR_PLLMUL, MCCI_STM32L0_REG_RCC_CFGR_PLLSRC, MCCI_STM32L0_REG_RCC_CFGR_PPRE1, MCCI_STM32L0_REG_RCC_CFGR_PPRE2, MCCI_STM32L0_REG_RCC_CFGR_SW, MCCI_STM32L0_REG_RCC_CFGR_SWS, MCCI_STM32L0_REG_RCC_CFGR_SWS_MSI, MCCI_STM32L0_REG_RCC_CIER, MCCI_STM32L0_REG_RCC_CR, MCCI_STM32L0_REG_RCC_CR_CSSHSEON, MCCI_STM32L0_REG_RCC_CR_HSEBYP, MCCI_STM32L0_REG_RCC_CR_HSEON, MCCI_STM32L0_REG_RCC_CR_HSI16DIVEN, MCCI_STM32L0_REG_RCC_CR_HSI16ON, MCCI_STM32L0_REG_RCC_CR_MSION, MCCI_STM32L0_REG_RCC_CR_MSIRDY, MCCI_STM32L0_REG_RCC_CR_PLLON, MCCI_STM32L0_REG_RCC_CRRCR, MCCI_STM32L0_REG_RCC_CRRCR_HSI48ON, MCCI_STM32L0_REG_RCC_ICSCR, MCCI_STM32L0_REG_RCC_ICSCR_MSIRANGE, MCCI_STM32L0_REG_RCC_ICSCR_MSIRANGE_4194k, MCCI_STM32L0_REG_RCC_IOPRSTR, McciArm_getReg(), McciArm_putReg(), McciArm_putRegClear(), McciArm_putRegMasked(), and McciArm_putRegOr().

Referenced by McciBootloaderBoard_CatenaAbz_prepareForLaunch().

◆ McciBootloader_Stm32L0_systemInit()

MCCI_BOOTLOADER_BEGIN_DECLS void McciBootloader_Stm32L0_systemInit ( void  )

wait for clock to switch

Definition at line 79 of file mccibootloader_stm32l0_systeminit.c.

References gk_McciBootloader_CortexVectors, MCCI_BOOTLOADER_FIELD_SET_VALUE, MCCI_CM0PLUS_PRI_INDEX_SYSTICK, MCCI_CM0PLUS_SCB_VTOR, MCCI_CM0PLUS_SYSTICK_CSR, MCCI_CM0PLUS_SYSTICK_CSR_CLKSOURCE, MCCI_CM0PLUS_SYSTICK_CSR_ENABLE, MCCI_CM0PLUS_SYSTICK_CSR_TICKINT, MCCI_CM0PLUS_SYSTICK_CVR, MCCI_CM0PLUS_SYSTICK_RVR, MCCI_STM32L0_REG_FLASH_ACR, MCCI_STM32L0_REG_FLASH_ACR_DISAB_BUF, MCCI_STM32L0_REG_FLASH_ACR_LATENCY, MCCI_STM32L0_REG_FLASH_ACR_PRE_READ, MCCI_STM32L0_REG_FLASH_ACR_PRFTEN, MCCI_STM32L0_REG_PWR_CR, MCCI_STM32L0_REG_PWR_CR_DBP, MCCI_STM32L0_REG_PWR_CR_VOS, MCCI_STM32L0_REG_PWR_CR_VOS_1V8, MCCI_STM32L0_REG_RCC_AHBRSTR, MCCI_STM32L0_REG_RCC_APB1ENR, MCCI_STM32L0_REG_RCC_APB1ENR_PWREN, MCCI_STM32L0_REG_RCC_APB1RSTR, MCCI_STM32L0_REG_RCC_APB2RSTR, MCCI_STM32L0_REG_RCC_CFGR, MCCI_STM32L0_REG_RCC_CFGR_HPRE, MCCI_STM32L0_REG_RCC_CFGR_MCOPRE, MCCI_STM32L0_REG_RCC_CFGR_MCOSEL, MCCI_STM32L0_REG_RCC_CFGR_PLLDIV, MCCI_STM32L0_REG_RCC_CFGR_PLLDIV_2, MCCI_STM32L0_REG_RCC_CFGR_PLLMUL, MCCI_STM32L0_REG_RCC_CFGR_PLLMUL_4, MCCI_STM32L0_REG_RCC_CFGR_PLLSRC, MCCI_STM32L0_REG_RCC_CFGR_PLLSRC_HSI16, MCCI_STM32L0_REG_RCC_CFGR_PPRE1, MCCI_STM32L0_REG_RCC_CFGR_PPRE2, MCCI_STM32L0_REG_RCC_CFGR_SW, MCCI_STM32L0_REG_RCC_CFGR_SW_MSI, MCCI_STM32L0_REG_RCC_CFGR_SW_PLL, MCCI_STM32L0_REG_RCC_CFGR_SWS, MCCI_STM32L0_REG_RCC_CFGR_SWS_PLL, MCCI_STM32L0_REG_RCC_CIER, MCCI_STM32L0_REG_RCC_CR, MCCI_STM32L0_REG_RCC_CR_CSSHSEON, MCCI_STM32L0_REG_RCC_CR_HSEBYP, MCCI_STM32L0_REG_RCC_CR_HSEON, MCCI_STM32L0_REG_RCC_CR_HSI16DIVEN, MCCI_STM32L0_REG_RCC_CR_HSI16ON, MCCI_STM32L0_REG_RCC_CR_HSI16RDYF, MCCI_STM32L0_REG_RCC_CR_MSION, MCCI_STM32L0_REG_RCC_CR_PLLON, MCCI_STM32L0_REG_RCC_CR_PLLRDY, MCCI_STM32L0_REG_RCC_CRRCR, MCCI_STM32L0_REG_RCC_CRRCR_HSI48ON, MCCI_STM32L0_REG_RCC_CSR, MCCI_STM32L0_REG_RCC_CSR_LSEON, MCCI_STM32L0_REG_RCC_CSR_LSERDY, MCCI_STM32L0_REG_RCC_ICSCR, MCCI_STM32L0_REG_RCC_ICSCR_HSI16TRIM, MCCI_STM32L0_REG_RCC_IOPRSTR, McciArm_getReg(), McciArm_putReg(), McciArm_putRegClear(), McciArm_putRegMasked(), McciArm_putRegOr(), McciBootloaderError_ResetClockNotValid, McciBootloaderPlatform_fail(), McciCm0Plus_SCB_SHPR_getMask(), and McciCm0Plus_SCB_SHPR_getRegister().

Variable Documentation

◆ gk_McciBootloader_CortexVectors

const McciBootloader_CortexPageZero_t gk_McciBootloader_CortexVectors
extern

the CortexM0 vectors for the boot loader.

the Stm32 H7 vectors for the boot loader.

the CortexM7 vectors for the boot loader.

The vectors are put in section .McciBootloader_Vectors – be sure to research the link script when making changes here.

See also
mccibootloader.ld

Definition at line 45 of file mccibootloaderboard_catenaabz_vectors.c.

◆ McciBootloader_Stm32L0_systemFlashErase

McciBootloaderPlatform_SystemFlashEraseFn_t McciBootloader_Stm32L0_systemFlashErase

Definition at line 65 of file mcci_bootloader_stm32l0.h.

◆ McciBootloader_Stm32L0_systemFlashWrite

McciBootloaderPlatform_SystemFlashWriteFn_t McciBootloader_Stm32L0_systemFlashWrite

Definition at line 68 of file mcci_bootloader_stm32l0.h.