Karl Palsson
12 years ago
7 changed files with 85 additions and 286 deletions
@ -0,0 +1,49 @@ |
|||
includeguard: LIBOPENCM3_STM32_L1_NVIC_H |
|||
partname_humanreadable: STM32 L1 series |
|||
partname_doxygen: STM32L1 |
|||
irqs: |
|||
- wwdg |
|||
- pvd |
|||
- tamper |
|||
- rtc |
|||
- flash |
|||
- rcc |
|||
- exti0 |
|||
- exti1 |
|||
- exti2 |
|||
- exti3 |
|||
- exti4 |
|||
- dma1_channel1 |
|||
- dma1_channel2 |
|||
- dma1_channel3 |
|||
- dma1_channel4 |
|||
- dma1_channel5 |
|||
- dma1_channel6 |
|||
- dma1_channel7 |
|||
- adc1 |
|||
- usb_hp |
|||
- usb_lp |
|||
- dac |
|||
- comp |
|||
- exti9_5 |
|||
- lcd |
|||
- tim9 |
|||
- tim10 |
|||
- tim11 |
|||
- tim2 |
|||
- tim3 |
|||
- tim4 |
|||
- i2c1_ev |
|||
- i2c1_er |
|||
- i2c2_ev |
|||
- i2c2_er |
|||
- spi1 |
|||
- spi2 |
|||
- usart1 |
|||
- usart2 |
|||
- usart3 |
|||
- exti15_10 |
|||
- rtc_alarm |
|||
- usb_wakeup |
|||
- tim6 |
|||
- tim7 |
@ -1,228 +0,0 @@ |
|||
/*
|
|||
* This file is part of the libopencm3 project. |
|||
* |
|||
* Copyright (C) 2010 Piotr Esden-Tempski <piotr@esden.net> |
|||
* Copyright (C) 2012 Karl Palsson <karlp@tweak.net.au> |
|||
* |
|||
* This library is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU Lesser General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* |
|||
* This library is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU Lesser General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU Lesser General Public License |
|||
* along with this library. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
#define WEAK __attribute__ ((weak)) |
|||
|
|||
/* Symbols exported by the linker script(s). */ |
|||
extern unsigned __exidx_end, _data, _edata, _ebss, _stack; |
|||
|
|||
void main(void); |
|||
void reset_handler(void); |
|||
void blocking_handler(void); |
|||
void null_handler(void); |
|||
|
|||
void WEAK nmi_handler(void); |
|||
void WEAK hard_fault_handler(void); |
|||
void WEAK mem_manage_handler(void); |
|||
void WEAK bus_fault_handler(void); |
|||
void WEAK usage_fault_handler(void); |
|||
void WEAK sv_call_handler(void); |
|||
void WEAK debug_monitor_handler(void); |
|||
void WEAK pend_sv_handler(void); |
|||
void WEAK sys_tick_handler(void); |
|||
void WEAK wwdg_isr(void); |
|||
void WEAK pvd_isr(void); |
|||
void WEAK tamper_isr(void); |
|||
void WEAK rtc_isr(void); |
|||
void WEAK flash_isr(void); |
|||
void WEAK rcc_isr(void); |
|||
void WEAK exti0_isr(void); |
|||
void WEAK exti1_isr(void); |
|||
void WEAK exti2_isr(void); |
|||
void WEAK exti3_isr(void); |
|||
void WEAK exti4_isr(void); |
|||
void WEAK dma1_channel1_isr(void); |
|||
void WEAK dma1_channel2_isr(void); |
|||
void WEAK dma1_channel3_isr(void); |
|||
void WEAK dma1_channel4_isr(void); |
|||
void WEAK dma1_channel5_isr(void); |
|||
void WEAK dma1_channel6_isr(void); |
|||
void WEAK dma1_channel7_isr(void); |
|||
void WEAK adc1_isr(void); |
|||
void WEAK usb_hp_isr(void); |
|||
void WEAK usb_lp_isr(void); |
|||
void WEAK dac_isr(void); |
|||
void WEAK comp_isr(void); |
|||
void WEAK exti9_5_isr(void); |
|||
void WEAK lcd_isr(void); |
|||
void WEAK tim9_isr(void); |
|||
void WEAK tim10_isr(void); |
|||
void WEAK tim11_isr(void); |
|||
void WEAK tim2_isr(void); |
|||
void WEAK tim3_isr(void); |
|||
void WEAK tim4_isr(void); |
|||
void WEAK i2c1_ev_isr(void); |
|||
void WEAK i2c1_er_isr(void); |
|||
void WEAK i2c2_ev_isr(void); |
|||
void WEAK i2c2_er_isr(void); |
|||
void WEAK spi1_isr(void); |
|||
void WEAK spi2_isr(void); |
|||
void WEAK usart1_isr(void); |
|||
void WEAK usart2_isr(void); |
|||
void WEAK usart3_isr(void); |
|||
void WEAK exti15_10_isr(void); |
|||
void WEAK rtc_alarm_isr(void); |
|||
void WEAK usb_wakeup_isr(void); |
|||
void WEAK tim6_isr(void); |
|||
void WEAK tim7_isr(void); |
|||
|
|||
|
|||
__attribute__ ((section(".vectors"))) |
|||
void (*const vector_table[]) (void) = { |
|||
(void*)&_stack, /* Addr: 0x0000_0000 */ |
|||
reset_handler, /* Addr: 0x0000_0004 */ |
|||
nmi_handler, /* Addr: 0x0000_0008 */ |
|||
hard_fault_handler, /* Addr: 0x0000_000C */ |
|||
mem_manage_handler, /* Addr: 0x0000_0010 */ |
|||
bus_fault_handler, /* Addr: 0x0000_0014 */ |
|||
usage_fault_handler, /* Addr: 0x0000_0018 */ |
|||
0, 0, 0, 0, /* Reserved Addr: 0x0000_001C - 0x0000_002B */ |
|||
sv_call_handler, /* Addr: 0x0000_002C */ |
|||
debug_monitor_handler, /* Addr: 0x0000_0030*/ |
|||
0, /* Reserved Addr: 0x0000_00034 */ |
|||
pend_sv_handler, /* Addr: 0x0000_0038 */ |
|||
sys_tick_handler, /* Addr: 0x0000_003C */ |
|||
wwdg_isr, /* Addr: 0x0000_0040 */ |
|||
pvd_isr, /* Addr: 0x0000_0044 */ |
|||
tamper_isr, /* Addr: 0x0000_0048 */ |
|||
rtc_isr, /* Addr: 0x0000_004C */ |
|||
flash_isr, /* Addr: 0x0000_0050 */ |
|||
rcc_isr, /* Addr: 0x0000_0054 */ |
|||
exti0_isr, /* Addr: 0x0000_0058 */ |
|||
exti1_isr, /* Addr: 0x0000_005C */ |
|||
exti2_isr, /* Addr: 0x0000_0060 */ |
|||
exti3_isr, /* Addr: 0x0000_0064 */ |
|||
exti4_isr, /* Addr: 0x0000_0068 */ |
|||
dma1_channel1_isr, /* Addr: 0x0000_006C */ |
|||
dma1_channel2_isr, /* Addr: 0x0000_0070 */ |
|||
dma1_channel3_isr, /* Addr: 0x0000_0074 */ |
|||
dma1_channel4_isr, /* Addr: 0x0000_0078 */ |
|||
dma1_channel5_isr, /* Addr: 0x0000_007C */ |
|||
dma1_channel6_isr, /* Addr: 0x0000_0080 */ |
|||
dma1_channel7_isr, /* Addr: 0x0000_0084 */ |
|||
adc1_isr, /* Addr: 0x0000_0088 */ |
|||
usb_hp_isr, /* Addr: 0x0000_008C */ |
|||
usb_lp_isr, /* Addr: 0x0000_0090 */ |
|||
dac_isr, /* Addr: 0x0000_0094 */ |
|||
comp_isr, /* Addr: 0x0000_0098 */ |
|||
exti9_5_isr, /* Addr: 0x0000_009C */ |
|||
lcd_isr, /* Addr: 0x0000_00A0 */ |
|||
tim9_isr, /* Addr: 0x0000_00A4 */ |
|||
tim10_isr, /* Addr: 0x0000_00A8 */ |
|||
tim11_isr, /* Addr: 0x0000_00AC */ |
|||
tim2_isr, /* Addr: 0x0000_00B0 */ |
|||
tim3_isr, /* Addr: 0x0000_00B4 */ |
|||
tim4_isr, /* Addr: 0x0000_00B8 */ |
|||
i2c1_ev_isr, /* Addr: 0x0000_00BC */ |
|||
i2c1_er_isr, /* Addr: 0x0000_00C0 */ |
|||
i2c2_ev_isr, /* Addr: 0x0000_00C4 */ |
|||
i2c2_er_isr, /* Addr: 0x0000_00C8 */ |
|||
spi1_isr, /* Addr: 0x0000_00CC */ |
|||
spi2_isr, /* Addr: 0x0000_00D0 */ |
|||
usart1_isr, /* Addr: 0x0000_00D4 */ |
|||
usart2_isr, /* Addr: 0x0000_00D8 */ |
|||
usart3_isr, /* Addr: 0x0000_00DC */ |
|||
exti15_10_isr, /* Addr: 0x0000_00E0 */ |
|||
rtc_alarm_isr, /* Addr: 0x0000_00E4 */ |
|||
usb_wakeup_isr, /* Addr: 0x0000_00E8 */ |
|||
tim6_isr, /* Addr: 0x0000_00EC */ |
|||
tim7_isr, /* Addr: 0x0000_00F0 */ |
|||
}; |
|||
|
|||
void reset_handler(void) |
|||
{ |
|||
volatile unsigned *src, *dest; |
|||
|
|||
__asm__("MSR msp, %0" : : "r"(&_stack)); |
|||
|
|||
for (src = &__exidx_end, dest = &_data; dest < &_edata; src++, dest++) |
|||
*dest = *src; |
|||
|
|||
while (dest < &_ebss) |
|||
*dest++ = 0; |
|||
|
|||
/* Call the application's entry point. */ |
|||
main(); |
|||
} |
|||
|
|||
void blocking_handler(void) |
|||
{ |
|||
while (1) ; |
|||
} |
|||
|
|||
void null_handler(void) |
|||
{ |
|||
/* Do nothing. */ |
|||
} |
|||
|
|||
#pragma weak nmi_handler = null_handler |
|||
#pragma weak hard_fault_handler = blocking_handler |
|||
#pragma weak mem_manage_handler = blocking_handler |
|||
#pragma weak bus_fault_handler = blocking_handler |
|||
#pragma weak usage_fault_handler = blocking_handler |
|||
#pragma weak sv_call_handler = null_handler |
|||
#pragma weak debug_monitor_handler = null_handler |
|||
#pragma weak pend_sv_handler = null_handler |
|||
#pragma weak sys_tick_handler = null_handler |
|||
#pragma weak wwdg_isr = null_handler |
|||
#pragma weak pvd_isr = null_handler |
|||
#pragma weak tamper_isr = null_handler |
|||
#pragma weak rtc_isr = null_handler |
|||
#pragma weak flash_isr = null_handler |
|||
#pragma weak rcc_isr = null_handler |
|||
#pragma weak exti0_isr = null_handler |
|||
#pragma weak exti1_isr = null_handler |
|||
#pragma weak exti2_isr = null_handler |
|||
#pragma weak exti3_isr = null_handler |
|||
#pragma weak exti4_isr = null_handler |
|||
#pragma weak dma1_channel1_isr = null_handler |
|||
#pragma weak dma1_channel2_isr = null_handler |
|||
#pragma weak dma1_channel3_isr = null_handler |
|||
#pragma weak dma1_channel4_isr = null_handler |
|||
#pragma weak dma1_channel5_isr = null_handler |
|||
#pragma weak dma1_channel6_isr = null_handler |
|||
#pragma weak dma1_channel7_isr = null_handler |
|||
#pragma weak adc1_isr = null_handler |
|||
#pragma weak usb_hp_isr = null_handler |
|||
#pragma weak usb_lp_isr = null_handler |
|||
#pragma weak dac_isr = null_handler |
|||
#pragma weak comp_isr = null_handler |
|||
#pragma weak exti9_5_isr = null_handler |
|||
#pragma weak lcd_isr = null_handler |
|||
#pragma weak tim9_isr = null_handler |
|||
#pragma weak tim10_isr = null_handler |
|||
#pragma weak tim11_isr = null_handler |
|||
#pragma weak tim2_isr = null_handler |
|||
#pragma weak tim3_isr = null_handler |
|||
#pragma weak tim4_isr = null_handler |
|||
#pragma weak i2c1_ev_isr = null_handler |
|||
#pragma weak i2c1_er_isr = null_handler |
|||
#pragma weak i2c2_ev_isr = null_handler |
|||
#pragma weak i2c2_er_isr = null_handler |
|||
#pragma weak spi1_isr = null_handler |
|||
#pragma weak spi2_isr = null_handler |
|||
#pragma weak usart1_isr = null_handler |
|||
#pragma weak usart2_isr = null_handler |
|||
#pragma weak usart3_isr = null_handler |
|||
#pragma weak exti15_10_isr = null_handler |
|||
#pragma weak rtc_alarm_isr = null_handler |
|||
#pragma weak usb_wakeup_isr = null_handler |
|||
#pragma weak tim6_isr = null_handler |
|||
#pragma weak tim7_isr = null_handler |
Loading…
Reference in new issue