aboutsummaryrefslogtreecommitdiff
path: root/02-usart/src/core/isr_vector.c
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2020-11-20 09:55:37 -0700
committerJosh Rahm <joshuarahm@gmail.com>2020-11-20 09:55:37 -0700
commit3b6018348d51c77f53adca90e498d7bf268c91c9 (patch)
tree45c52307d48a74b2ae57006d3b40f9a34c61c9ce /02-usart/src/core/isr_vector.c
parentd82837cb93b8675a6e589548e157f31e41aaa039 (diff)
downloadstm32l4-3b6018348d51c77f53adca90e498d7bf268c91c9.tar.gz
stm32l4-3b6018348d51c77f53adca90e498d7bf268c91c9.tar.bz2
stm32l4-3b6018348d51c77f53adca90e498d7bf268c91c9.zip
Move around the isr_vector files to be more consistent with the C standard and the rest of the project.
Diffstat (limited to '02-usart/src/core/isr_vector.c')
-rw-r--r--02-usart/src/core/isr_vector.c107
1 files changed, 0 insertions, 107 deletions
diff --git a/02-usart/src/core/isr_vector.c b/02-usart/src/core/isr_vector.c
deleted file mode 100644
index 9f3f560..0000000
--- a/02-usart/src/core/isr_vector.c
+++ /dev/null
@@ -1,107 +0,0 @@
-#include "core/isr_vector.h"
-#include "core/gpio.h"
-
-#include "arch.h"
-#include "delay.h"
-
-#ifdef ARCH_STM32L4
-
-#define IRQ_RESERVED(n)
-#define IRQ(name, n) \
- void WEAK name () { \
- unhandled_isr(n); \
- }
-#include "core/isrs.i"
-#undef IRQ_RESERVED
-#undef IRQ
-
-
-void isr_simple_pin_on()
-{
- __IO gpio_port_t* port_b = enable_gpio(GPIO_PORT_B);
- gpio_output_pin_t pin3 = set_gpio_pin_output(port_b, PIN_3);
-
- pin_on(pin3);
-}
-
-#define DEFINE_UNHANDLED_ISR(n) \
- int unhandled_isr_##n() \
- { \
- unhandled_isr(n); \
- }
-
-
-/* Flashes wildly. */
-void super_flash()
-{
- static int pin_on = 0;
- __IO gpio_port_t* port_b = enable_gpio(GPIO_PORT_B);
- gpio_output_pin_t pin3 = set_gpio_pin_output(port_b, PIN_3);
-
- if (pin_on) {
- pin_off(pin3);
- } else {
- pin_on(pin3);
- }
-
- pin_on = !pin_on;
-}
-
-#define IRQ_RESERVED(n) 0,
-#define IRQ(name, n) name,
-const void* vectors[] __attribute__((section(".vectors"))) = {
- (void*)0x2000c000, /* Top of stack at top of sram1. 48k */
-#include "core/isrs.i"
-};
-#undef IRQ_RESERVED
-#undef IRQ
-
-/* Encodes the provided number as a series of flashes on the on-board
- * LED. The flashes follow as such:
- *
- * Before the bits of the code are flashed, a rapid succession of 20 flashes
- * followed by a pause will occur indicating that the next 8 flashes indicate
- * the bits of the provided code.
- *
- * The next eight flashes are indicate either a 1 or 0 depending on the length
- * of the light being on. The first flash is the least-significant bit, the next
- * the second least, the third third least, etc.
- *
- * - A quick flash followed by a long pause indicates a 0 bit.
- * - A "long" flash followed by a equally long pause indicates a 1 bit.
- */
-void unhandled_isr(uint8_t number)
-{
- __IO gpio_port_t* port_b = enable_gpio(GPIO_PORT_B);
- gpio_output_pin_t pin3 = set_gpio_pin_output(port_b, PIN_3);
- for (;;) {
- for (int i = 0; i < 20; ++ i) {
- pin_on(pin3);
- delay(1000000);
- pin_off(pin3);
- delay(1000000);
- }
- delay(50000000);
-
- int n = number;
- for (int i = 0; i < 8; ++ i) {
- if (n & 1) {
- // LSB is a 1
- pin_on(pin3);
- delay(15000000);
- pin_off(pin3);
- delay(15000000);
- } else {
- // LSB is a 0
- pin_on(pin3);
- delay(1000000);
- pin_off(pin3);
- delay(29000000);
- }
-
- n >>= 1;
- }
- }
-}
-
-#endif