aboutsummaryrefslogtreecommitdiff
path: root/init_high.cpp
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2016-01-02 21:13:31 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2016-01-02 21:13:31 +0100
commitbaedda497d16c5096971eee83a0c467fe663fe6d (patch)
tree2f8925c68d94aed7d5fc7022462abbb359200b9e /init_high.cpp
parent9129af503c8211d713c8a160a3b6f3f86b328639 (diff)
downloadstm32f103-playground-baedda497d16c5096971eee83a0c467fe663fe6d.tar.gz
stm32f103-playground-baedda497d16c5096971eee83a0c467fe663fe6d.tar.bz2
stm32f103-playground-baedda497d16c5096971eee83a0c467fe663fe6d.tar.xz
stm32f103-playground-baedda497d16c5096971eee83a0c467fe663fe6d.zip
o Moving around a lot of files.
Diffstat (limited to 'init_high.cpp')
-rw-r--r--init_high.cpp315
1 files changed, 0 insertions, 315 deletions
diff --git a/init_high.cpp b/init_high.cpp
deleted file mode 100644
index 700d17a..0000000
--- a/init_high.cpp
+++ /dev/null
@@ -1,315 +0,0 @@
-#include <cstdint>
-#include <cstddef>
-#include "stm32f10x.h"
-#include "debug.h"
-#include "init_high.h"
-#include "playground.h"
-
-/**
- * Symbols that are defined by the linker
- */
-extern uint32_t _copy_data_load, _copy_data_store, _copy_data_store_end;
-extern uint32_t _bss_start, _bss_end;
-
-extern int main();
-
-void init_high() {
- // Copy data from flash to ram
- uint32_t *src = &_copy_data_load;
- uint32_t *dest = &_copy_data_store;
- uint32_t *end = &_copy_data_store_end;
-
- while (dest <= end) {
- *dest++ = *src++;
- }
-
- // Clear the BSS segment
- dest = &_bss_start;
- end = &_bss_end;
- while (dest <= end) {
- *dest++ = 0;
- }
-
- main();
-}
-
-__attribute__((used))
-struct {
- uint32_t CFSR;
- uint32_t HFSR;
- uint32_t DFSR;
- uint32_t AFSR;
-// uint32_t MMAR;
- uint32_t BFAR;
-} Default_Handler_Info;
-
-__attribute__((used))
-void Default_Handler() {
- Default_Handler_Info = {
- CFSR: SCB->CFSR,
- HFSR: SCB->HFSR,
- DFSR: SCB->DFSR,
- AFSR: SCB->AFSR,
- BFAR: SCB->BFAR,
- };
-
- dbg_printf("Default handler:\n");
-
- dbg_printf("HFSR: 0x%08lx\n", Default_Handler_Info.HFSR);
- if (Default_Handler_Info.HFSR & SCB_HFSR_DEBUGEVT) {
- dbg_printf(" HFSR.DEBUGEVT\n");
- }
- if (Default_Handler_Info.HFSR & SCB_HFSR_FORCED) {
- dbg_printf(" HFSR.FORCED\n");
- }
- if (Default_Handler_Info.HFSR & SCB_HFSR_VECTTBL) {
- dbg_printf(" HFSR.VECTTBL\n");
- }
-
- dbg_printf("CFSR: 0x%08lx\n", Default_Handler_Info.CFSR);
- if (Default_Handler_Info.CFSR & SCB_CFSR_DIVBYZERO) {
- dbg_printf(" UFSR.DIVBYZERO\n");
- }
- if (Default_Handler_Info.CFSR & SCB_CFSR_UNALIGNED) {
- dbg_printf(" UFSR.UNALIGED\n");
- }
- if (Default_Handler_Info.CFSR & SCB_CFSR_NOCP) {
- dbg_printf(" UFSR.NOCP\n");
- }
- if (Default_Handler_Info.CFSR & SCB_CFSR_INVPC) {
- dbg_printf(" UFSR.INVPC\n");
- }
- if (Default_Handler_Info.CFSR & SCB_CFSR_INVSTATE) {
- dbg_printf(" UFSR.INVSTATE\n");
- }
- if (Default_Handler_Info.CFSR & SCB_CFSR_UNDEFINSTR) {
- dbg_printf(" UFSR.UNDEFINSTR\n");
- }
- if (Default_Handler_Info.CFSR & SCB_CFSR_BFARVALID) {
- dbg_printf(" BFSR.BFARVALID\n");
- }
- if (Default_Handler_Info.CFSR & SCB_CFSR_STKERR) {
- dbg_printf(" BFSR.STKERR\n");
- }
- if (Default_Handler_Info.CFSR & SCB_CFSR_UNSTKERR) {
- dbg_printf(" BFSR.UNSTKERR\n");
- }
- if (Default_Handler_Info.CFSR & SCB_CFSR_IMPRECISERR) {
- dbg_printf(" BFSR.IMPRECISERR\n");
- }
- if (Default_Handler_Info.CFSR & SCB_CFSR_IMPRECISERR) {
- dbg_printf(" BFSR.IMPRECISERR\n");
- }
- if (Default_Handler_Info.CFSR & SCB_CFSR_PRECISERR) {
- dbg_printf(" BFSR.PRECISERR\n");
- }
- if (Default_Handler_Info.CFSR & SCB_CFSR_IBUSERR) {
- dbg_printf(" BFSR.IBUSERR\n");
- }
- if (Default_Handler_Info.CFSR & SCB_CFSR_MMARVALID) {
- dbg_printf(" MMFSR.MMARVALID\n");
- }
- if (Default_Handler_Info.CFSR & SCB_CFSR_MSTKERR) {
- dbg_printf(" MMFSR.MSTKERR\n");
- }
- if (Default_Handler_Info.CFSR & SCB_CFSR_MUNSTKERR) {
- dbg_printf(" MMFSR.MUNSTKERR\n");
- }
- if (Default_Handler_Info.CFSR & SCB_CFSR_DACCVIOL) {
- dbg_printf(" MMFSR.DACCVIOL\n");
- }
- if (Default_Handler_Info.CFSR & SCB_CFSR_IACCVIOL) {
- dbg_printf(" MMFSR.IACCVIOL\n");
- }
- dbg_printf("DFSR: 0x%08lx\n", Default_Handler_Info.DFSR);
- dbg_printf("AFSR: 0x%08lx\n", Default_Handler_Info.AFSR);
-
- if (Default_Handler_Info.CFSR & SCB_CFSR_BFARVALID) {
- dbg_printf("BFAR: 0x%08lx\n", Default_Handler_Info.BFAR);
- } else {
- dbg_printf("BFAR: <invalid>\n");
- }
-
- dbg_printf("NVIC:\n");
- for (size_t i = 0; i < SizeOfArray(NVIC->IABR); i++) {
- dbg_printf(" IABR[%d]: 0x%08lx\n", i, NVIC->IABR[i]);
- }
-
- halt();
-}
-
-void _Reset_Handler() __attribute__ ((weak, alias("Default_Handler")));
-
-void NMI_Handler() __attribute__ ((weak, alias("Default_Handler")));
-
-void HardFault_Handler() __attribute__ ((weak, alias("Default_Handler")));
-
-void MemManage_Handler() __attribute__ ((weak, alias("Default_Handler")));
-
-void BusFault_Handler() __attribute__ ((weak, alias("Default_Handler")));
-
-void UsageFault_Handler() __attribute__ ((weak, alias("Default_Handler")));
-
-void SVC_Handler() __attribute__ ((weak, alias("Default_Handler")));
-
-void DebugMon_Handler() __attribute__ ((weak, alias("Default_Handler")));
-
-void PendSV_Handler() __attribute__ ((weak, alias("Default_Handler")));
-
-void SysTick_Handler() __attribute__ ((weak, alias("Default_Handler")));
-
-void WWDG_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void PVD_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void TAMPER_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void RTC_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void FLASH_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void RCC_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void EXTI0_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void EXTI1_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void EXTI2_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void EXTI3_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void EXTI4_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void DMA1_Channel1_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void DMA1_Channel2_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void DMA1_Channel3_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void DMA1_Channel4_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void DMA1_Channel5_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void DMA1_Channel6_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void DMA1_Channel7_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void ADC1_2_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void USB_HP_CAN1_TX_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void USB_LP_CAN1_RX0_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void CAN1_RX1_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void CAN1_SCE_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void EXTI9_5_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void TIM1_BRK_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void TIM1_UP_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void TIM1_TRG_COM_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void TIM1_CC_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void TIM2_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void TIM3_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void TIM4_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void I2C1_EV_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void I2C1_ER_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void I2C2_EV_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void I2C2_ER_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void SPI1_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void SPI2_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void USART1_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void USART2_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void USART3_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void EXTI15_10_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void RTCAlarm_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-void USBWakeUp_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
-
-__attribute__((section(".isr_vectors"), used))
-uint32_t isr_vectors[74] = {
- (uint32_t) _Reset_Handler,
- (uint32_t) NMI_Handler,
- (uint32_t) HardFault_Handler,
- (uint32_t) MemManage_Handler,
- (uint32_t) BusFault_Handler,
- (uint32_t) UsageFault_Handler,
- 0,
- 0,
- 0,
- 0,
- (uint32_t) SVC_Handler,
- (uint32_t) DebugMon_Handler,
- 0,
- (uint32_t) PendSV_Handler,
- (uint32_t) SysTick_Handler,
- (uint32_t) WWDG_IRQHandler,
- (uint32_t) PVD_IRQHandler,
- (uint32_t) TAMPER_IRQHandler,
- (uint32_t) RTC_IRQHandler,
- (uint32_t) FLASH_IRQHandler,
- (uint32_t) RCC_IRQHandler,
- (uint32_t) EXTI0_IRQHandler,
- (uint32_t) EXTI1_IRQHandler,
- (uint32_t) EXTI2_IRQHandler,
- (uint32_t) EXTI3_IRQHandler,
- (uint32_t) EXTI4_IRQHandler,
- (uint32_t) DMA1_Channel1_IRQHandler,
- (uint32_t) DMA1_Channel2_IRQHandler,
- (uint32_t) DMA1_Channel3_IRQHandler,
- (uint32_t) DMA1_Channel4_IRQHandler,
- (uint32_t) DMA1_Channel5_IRQHandler,
- (uint32_t) DMA1_Channel6_IRQHandler,
- (uint32_t) DMA1_Channel7_IRQHandler,
- (uint32_t) ADC1_2_IRQHandler,
- (uint32_t) USB_HP_CAN1_TX_IRQHandler,
- (uint32_t) USB_LP_CAN1_RX0_IRQHandler,
- (uint32_t) CAN1_RX1_IRQHandler,
- (uint32_t) CAN1_SCE_IRQHandler,
- (uint32_t) EXTI9_5_IRQHandler,
- (uint32_t) TIM1_BRK_IRQHandler,
- (uint32_t) TIM1_UP_IRQHandler,
- (uint32_t) TIM1_TRG_COM_IRQHandler,
- (uint32_t) TIM1_CC_IRQHandler,
- (uint32_t) TIM2_IRQHandler,
- (uint32_t) TIM3_IRQHandler,
- (uint32_t) TIM4_IRQHandler,
- (uint32_t) I2C1_EV_IRQHandler,
- (uint32_t) I2C1_ER_IRQHandler,
- (uint32_t) I2C2_EV_IRQHandler,
- (uint32_t) I2C2_ER_IRQHandler,
- (uint32_t) SPI1_IRQHandler,
- (uint32_t) SPI2_IRQHandler,
- (uint32_t) USART1_IRQHandler,
- (uint32_t) USART2_IRQHandler,
- (uint32_t) USART3_IRQHandler,
- (uint32_t) EXTI15_10_IRQHandler,
- (uint32_t) RTCAlarm_IRQHandler,
- (uint32_t) USBWakeUp_IRQHandler,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
-};