1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-29 10:58:21 +00:00

firmware: extract periph_init into common.c

This commit is contained in:
Pavol Rusnak 2017-03-23 16:22:58 +01:00
parent e313234fe3
commit a9d16aa7fa
No known key found for this signature in database
GPG Key ID: 91F3B339B9A02A3D
5 changed files with 43 additions and 60 deletions

View File

@ -20,24 +20,6 @@ void pendsv_isr_handler(void) {
__fatal_error("pendsv");
}
void periph_init(void)
{
HAL_Init();
SystemClock_Config();
__GPIOA_CLK_ENABLE();
__GPIOB_CLK_ENABLE();
__GPIOC_CLK_ENABLE();
__GPIOD_CLK_ENABLE();
sdcard_init();
display_init();
display_clear();
display_backlight(255);
}
bool check_sdcard(void)
{
BOOTLOADER_PRINTLN("checking for SD card");
@ -136,6 +118,12 @@ int main(void)
{
periph_init();
sdcard_init();
display_init();
display_clear();
display_backlight(255);
BOOTLOADER_PRINTLN("TREZOR Bootloader");
BOOTLOADER_PRINTLN("=================");
BOOTLOADER_PRINTLN("starting bootloader");

View File

@ -23,33 +23,7 @@
int main(void) {
// STM32F4xx HAL library initialization:
// - configure the Flash prefetch, instruction and data caches
// - configure the Systick to generate an interrupt each 1 msec
// - set NVIC Group Priority to 4
// - global MSP (MCU Support Package) initialization
HAL_Init();
// Set the system clock to be HSE
SystemClock_Config();
// Enable GPIO clocks
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
// Enable the CCM RAM
__HAL_RCC_CCMDATARAMEN_CLK_ENABLE();
// Clear the reset flags
PWR->CR |= PWR_CR_CSBF;
RCC->CSR |= RCC_CSR_RMVF;
// Enable CPU ticks
CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk; // Enable DWT
DWT->CYCCNT = 0; // Reset Cycle Count Register
DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk; // Enable Cycle Count Register
periph_init();
pendsv_init();

View File

@ -15,25 +15,13 @@ void pendsv_isr_handler(void) {
__fatal_error("pendsv");
}
void periph_init(void)
int main(void)
{
HAL_Init();
SystemClock_Config();
__GPIOA_CLK_ENABLE();
__GPIOB_CLK_ENABLE();
__GPIOC_CLK_ENABLE();
__GPIOD_CLK_ENABLE();
periph_init();
display_init();
display_clear();
display_backlight(255);
}
int main(void)
{
periph_init();
__fatal_error("end reached");

View File

@ -23,3 +23,36 @@ void __attribute__((noreturn)) __fatal_error(const char *msg) {
void __attribute__((noreturn)) nlr_jump_fail(void *val) {
__fatal_error("uncaught exception");
}
extern void SystemClock_Config(void);
void periph_init(void) {
// STM32F4xx HAL library initialization:
// - configure the Flash prefetch, instruction and data caches
// - configure the Systick to generate an interrupt each 1 msec
// - set NVIC Group Priority to 4
// - global MSP (MCU Support Package) initialization
HAL_Init();
// Set the system clock to be HSE
SystemClock_Config();
// Enable GPIO clocks
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
// Enable the CCM RAM
__HAL_RCC_CCMDATARAMEN_CLK_ENABLE();
// Clear the reset flags
PWR->CR |= PWR_CR_CSBF;
RCC->CSR |= RCC_CSR_RMVF;
// Enable CPU ticks
CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk; // Enable DWT
DWT->CYCCNT = 0; // Reset Cycle Count Register
DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk; // Enable Cycle Count Register
}

View File

@ -1,7 +1,7 @@
#ifndef __TREZORHAL_COMMON_H__
#define __TREZORHAL_COMMON_H__
void SystemClock_Config(void); // defined in stm32_system.c
void periph_init(void);
void __attribute__((noreturn)) nlr_jump_fail(void *val);