Remove Meowbit LSE flag, harsher failure for LSE issues
This commit is contained in:
parent
5771be9510
commit
c137a16121
@ -36,8 +36,7 @@
|
||||
#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000)
|
||||
|
||||
#define HSE_VALUE ((uint32_t)12000000U)
|
||||
#define LSE_VALUE ((uint32_t)32000U)
|
||||
#define BOARD_HAS_LOW_SPEED_CRYSTAL (1)
|
||||
#define BOARD_HAS_LOW_SPEED_CRYSTAL (0)
|
||||
|
||||
#define BOARD_NO_VBUS_SENSE (1)
|
||||
#define BOARD_VTOR_DEFER (1) //Leave VTOR relocation to bootloader
|
||||
|
@ -49,7 +49,6 @@ void stm32_peripherals_clocks_init(void) {
|
||||
RCC_ClkInitTypeDef RCC_ClkInitStruct;
|
||||
RCC_OscInitTypeDef RCC_OscInitStruct;
|
||||
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;
|
||||
bool lse_failure = false;
|
||||
|
||||
// Set voltage scaling in accordance with system clock speed
|
||||
__HAL_RCC_PWR_CLK_ENABLE();
|
||||
@ -76,16 +75,10 @@ void stm32_peripherals_clocks_init(void) {
|
||||
#endif
|
||||
|
||||
if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||
// Failure likely means a LSE issue - attempt to swap to LSI, and set to crash
|
||||
RCC_OscInitStruct.LSEState = RCC_LSE_OFF;
|
||||
RCC_OscInitStruct.OscillatorType |= RCC_OSCILLATORTYPE_LSI;
|
||||
RCC_OscInitStruct.LSIState = RCC_LSI_ON;
|
||||
if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||
// No HSE means no USB, so just fail forever
|
||||
// Clock issues are too problematic to even attempt recovery.
|
||||
// If you end up here, check whether your LSE settings match your board.
|
||||
while(1);
|
||||
}
|
||||
lse_failure = true;
|
||||
}
|
||||
|
||||
// Configure bus clock sources and divisors
|
||||
RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
|
||||
@ -113,8 +106,4 @@ void stm32_peripherals_clocks_init(void) {
|
||||
#endif
|
||||
|
||||
HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
|
||||
|
||||
if (lse_failure) {
|
||||
reset_into_safe_mode(HARD_CRASH); //TODO: make safe mode category CLOCK_FAULT?
|
||||
}
|
||||
}
|
||||
|
@ -40,7 +40,6 @@ void stm32_peripherals_clocks_init(void) {
|
||||
RCC_ClkInitTypeDef RCC_ClkInitStruct;
|
||||
RCC_OscInitTypeDef RCC_OscInitStruct;
|
||||
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;
|
||||
bool lse_failure = false;
|
||||
|
||||
// Configure LSE Drive
|
||||
HAL_PWR_EnableBkUpAccess();
|
||||
@ -68,16 +67,10 @@ void stm32_peripherals_clocks_init(void) {
|
||||
RCC_OscInitStruct.PLL.PLLQ = CPY_CLK_PLLQ;
|
||||
|
||||
if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||
// Failure likely means a LSE issue - attempt to swap to LSI, and set to crash
|
||||
RCC_OscInitStruct.LSEState = RCC_LSE_OFF;
|
||||
RCC_OscInitStruct.OscillatorType |= RCC_OSCILLATORTYPE_LSI;
|
||||
RCC_OscInitStruct.LSIState = RCC_LSI_ON;
|
||||
if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||
// No HSE means no USB, so just fail forever
|
||||
// Clock issues are too problematic to even attempt recovery.
|
||||
// If you end up here, check whether your LSE settings match your board.
|
||||
while(1);
|
||||
}
|
||||
lse_failure = true;
|
||||
}
|
||||
|
||||
/* Activate the OverDrive to reach the 216 MHz Frequency */
|
||||
HAL_PWREx_EnableOverDrive();
|
||||
@ -111,8 +104,4 @@ void stm32_peripherals_clocks_init(void) {
|
||||
#endif
|
||||
|
||||
HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
|
||||
|
||||
if (lse_failure) {
|
||||
reset_into_safe_mode(HARD_CRASH); //TODO: make safe mode category CLOCK_FAULT?
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,6 @@ void stm32_peripherals_clocks_init(void) {
|
||||
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
||||
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
|
||||
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
||||
bool lse_failure = false;
|
||||
|
||||
// Set voltage scaling in accordance with system clock speed
|
||||
HAL_PWREx_ConfigSupply(PWR_LDO_SUPPLY);
|
||||
@ -73,16 +72,10 @@ void stm32_peripherals_clocks_init(void) {
|
||||
RCC_OscInitStruct.PLL.PLLVCOSEL = RCC_PLL1VCOWIDE;
|
||||
RCC_OscInitStruct.PLL.PLLFRACN = 0;
|
||||
if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||
// Failure likely means a LSE issue - attempt to swap to LSI, and set to crash
|
||||
RCC_OscInitStruct.LSEState = RCC_LSE_OFF;
|
||||
RCC_OscInitStruct.OscillatorType |= RCC_OSCILLATORTYPE_LSI;
|
||||
RCC_OscInitStruct.LSIState = RCC_LSI_ON;
|
||||
if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||
// No HSE means no USB, so just fail forever
|
||||
// Clock issues are too problematic to even attempt recovery.
|
||||
// If you end up here, check whether your LSE settings match your board.
|
||||
while(1);
|
||||
}
|
||||
lse_failure = true;
|
||||
}
|
||||
|
||||
// Configure bus clock sources and divisors
|
||||
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|
||||
@ -116,8 +109,4 @@ void stm32_peripherals_clocks_init(void) {
|
||||
|
||||
// Enable USB Voltage detector
|
||||
HAL_PWREx_EnableUSBVoltageDetector();
|
||||
|
||||
if (lse_failure) {
|
||||
reset_into_safe_mode(HARD_CRASH); //TODO: make safe mode category CLOCK_FAULT?
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user