mirror of
https://github.com/mytechnotalent/Embedded-Hacking.git
synced 2026-07-10 14:28:55 +02:00
refactor: enforce 8-line Reset_Handler limit across CBM drivers
Extract _late_init() wrappers in 0x04, 0x05, 0x0b, 0x0d, 0x0e, 0x0f to keep Reset_Handler within the max 8 code-line standard.
This commit is contained in:
@@ -31,6 +31,17 @@
|
|||||||
|
|
||||||
extern int main(void);
|
extern int main(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialize late peripherals (PWM and coprocessor).
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
void _late_init(void)
|
||||||
|
{
|
||||||
|
pwm_release_reset();
|
||||||
|
pwm_init();
|
||||||
|
coprocessor_enable();
|
||||||
|
}
|
||||||
|
|
||||||
void __attribute__((naked, noreturn)) Reset_Handler(void)
|
void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||||
{
|
{
|
||||||
__asm__ volatile (
|
__asm__ volatile (
|
||||||
@@ -40,9 +51,7 @@ void __attribute__((naked, noreturn)) Reset_Handler(void)
|
|||||||
"bl reset_init_subsystem\n\t"
|
"bl reset_init_subsystem\n\t"
|
||||||
"bl uart_release_reset\n\t"
|
"bl uart_release_reset\n\t"
|
||||||
"bl uart_init\n\t"
|
"bl uart_init\n\t"
|
||||||
"bl pwm_release_reset\n\t"
|
"bl _late_init\n\t"
|
||||||
"bl pwm_init\n\t"
|
|
||||||
"bl coprocessor_enable\n\t"
|
|
||||||
"b main\n\t"
|
"b main\n\t"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,17 @@
|
|||||||
|
|
||||||
extern int main(void);
|
extern int main(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialize late peripherals (servo and coprocessor).
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
void _late_init(void)
|
||||||
|
{
|
||||||
|
servo_release_reset();
|
||||||
|
servo_init();
|
||||||
|
coprocessor_enable();
|
||||||
|
}
|
||||||
|
|
||||||
void __attribute__((naked, noreturn)) Reset_Handler(void)
|
void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||||
{
|
{
|
||||||
__asm__ volatile (
|
__asm__ volatile (
|
||||||
@@ -40,9 +51,7 @@ void __attribute__((naked, noreturn)) Reset_Handler(void)
|
|||||||
"bl reset_init_subsystem\n\t"
|
"bl reset_init_subsystem\n\t"
|
||||||
"bl uart_release_reset\n\t"
|
"bl uart_release_reset\n\t"
|
||||||
"bl uart_init\n\t"
|
"bl uart_init\n\t"
|
||||||
"bl servo_release_reset\n\t"
|
"bl _late_init\n\t"
|
||||||
"bl servo_init\n\t"
|
|
||||||
"bl coprocessor_enable\n\t"
|
|
||||||
"b main\n\t"
|
"b main\n\t"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,16 @@
|
|||||||
|
|
||||||
extern int main(void);
|
extern int main(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialize late peripherals (SPI reset and coprocessor).
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
void _late_init(void)
|
||||||
|
{
|
||||||
|
spi_release_reset();
|
||||||
|
coprocessor_enable();
|
||||||
|
}
|
||||||
|
|
||||||
void __attribute__((naked, noreturn)) Reset_Handler(void)
|
void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||||
{
|
{
|
||||||
__asm__ volatile (
|
__asm__ volatile (
|
||||||
@@ -38,10 +48,9 @@ void __attribute__((naked, noreturn)) Reset_Handler(void)
|
|||||||
"bl xosc_init\n\t"
|
"bl xosc_init\n\t"
|
||||||
"bl xosc_enable_peri_clk\n\t"
|
"bl xosc_enable_peri_clk\n\t"
|
||||||
"bl reset_init_subsystem\n\t"
|
"bl reset_init_subsystem\n\t"
|
||||||
"bl spi_release_reset\n\t"
|
|
||||||
"bl uart_release_reset\n\t"
|
"bl uart_release_reset\n\t"
|
||||||
"bl uart_init\n\t"
|
"bl uart_init\n\t"
|
||||||
"bl coprocessor_enable\n\t"
|
"bl _late_init\n\t"
|
||||||
"b main\n\t"
|
"b main\n\t"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,17 @@
|
|||||||
|
|
||||||
extern int main(void);
|
extern int main(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialize late peripherals (timer tick and coprocessor).
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
void _late_init(void)
|
||||||
|
{
|
||||||
|
timer_release_reset();
|
||||||
|
timer_tick_init();
|
||||||
|
coprocessor_enable();
|
||||||
|
}
|
||||||
|
|
||||||
void __attribute__((naked, noreturn)) Reset_Handler(void)
|
void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||||
{
|
{
|
||||||
__asm__ volatile (
|
__asm__ volatile (
|
||||||
@@ -40,9 +51,7 @@ void __attribute__((naked, noreturn)) Reset_Handler(void)
|
|||||||
"bl reset_init_subsystem\n\t"
|
"bl reset_init_subsystem\n\t"
|
||||||
"bl uart_release_reset\n\t"
|
"bl uart_release_reset\n\t"
|
||||||
"bl uart_init\n\t"
|
"bl uart_init\n\t"
|
||||||
"bl timer_release_reset\n\t"
|
"bl _late_init\n\t"
|
||||||
"bl timer_tick_init\n\t"
|
|
||||||
"bl coprocessor_enable\n\t"
|
|
||||||
"b main\n\t"
|
"b main\n\t"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,16 @@
|
|||||||
|
|
||||||
extern int main(void);
|
extern int main(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialize late peripherals (watchdog tick and coprocessor).
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
void _late_init(void)
|
||||||
|
{
|
||||||
|
watchdog_tick_init();
|
||||||
|
coprocessor_enable();
|
||||||
|
}
|
||||||
|
|
||||||
void __attribute__((naked, noreturn)) Reset_Handler(void)
|
void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||||
{
|
{
|
||||||
__asm__ volatile (
|
__asm__ volatile (
|
||||||
@@ -40,8 +50,7 @@ void __attribute__((naked, noreturn)) Reset_Handler(void)
|
|||||||
"bl reset_init_subsystem\n\t"
|
"bl reset_init_subsystem\n\t"
|
||||||
"bl uart_release_reset\n\t"
|
"bl uart_release_reset\n\t"
|
||||||
"bl uart_init\n\t"
|
"bl uart_init\n\t"
|
||||||
"bl watchdog_tick_init\n\t"
|
"bl _late_init\n\t"
|
||||||
"bl coprocessor_enable\n\t"
|
|
||||||
"b main\n\t"
|
"b main\n\t"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ extern uint32_t __data_end;
|
|||||||
* @brief Copy initialized data and RAM-resident code from flash to RAM.
|
* @brief Copy initialized data and RAM-resident code from flash to RAM.
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void data_copy_init(void)
|
static void _data_copy_init(void)
|
||||||
{
|
{
|
||||||
uint32_t *src = &__data_lma;
|
uint32_t *src = &__data_lma;
|
||||||
uint32_t *dst = &__data_start;
|
uint32_t *dst = &__data_start;
|
||||||
@@ -58,11 +58,20 @@ void data_copy_init(void)
|
|||||||
*dst++ = *src++;
|
*dst++ = *src++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialize stack pointers and copy .data section to RAM.
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
void ram_init(void)
|
||||||
|
{
|
||||||
|
stack_init();
|
||||||
|
_data_copy_init();
|
||||||
|
}
|
||||||
|
|
||||||
void __attribute__((naked, noreturn)) Reset_Handler(void)
|
void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||||
{
|
{
|
||||||
__asm__ volatile (
|
__asm__ volatile (
|
||||||
"bl stack_init\n\t"
|
"bl ram_init\n\t"
|
||||||
"bl data_copy_init\n\t"
|
|
||||||
"bl xosc_init\n\t"
|
"bl xosc_init\n\t"
|
||||||
"bl xosc_enable_peri_clk\n\t"
|
"bl xosc_enable_peri_clk\n\t"
|
||||||
"bl reset_init_subsystem\n\t"
|
"bl reset_init_subsystem\n\t"
|
||||||
|
|||||||
Reference in New Issue
Block a user