Riaan Cillie
/
103Blinky
TestApp
main.cpp@1:49ec3704c354, 2018-10-20 (annotated)
- Committer:
- riaancillie
- Date:
- Sat Oct 20 21:48:04 2018 +0000
- Revision:
- 1:49ec3704c354
- Parent:
- 0:3b55022dc9d3
two
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
riaancillie | 0:3b55022dc9d3 | 1 | #include "mbed.h" |
riaancillie | 0:3b55022dc9d3 | 2 | |
riaancillie | 0:3b55022dc9d3 | 3 | //------------------------------------ |
riaancillie | 0:3b55022dc9d3 | 4 | // Hyperterminal configuration |
riaancillie | 0:3b55022dc9d3 | 5 | // 9600 bauds, 8-bit data, no parity |
riaancillie | 0:3b55022dc9d3 | 6 | //------------------------------------ |
riaancillie | 0:3b55022dc9d3 | 7 | |
riaancillie | 0:3b55022dc9d3 | 8 | Serial pc(SERIAL_TX, SERIAL_RX); |
riaancillie | 0:3b55022dc9d3 | 9 | |
riaancillie | 1:49ec3704c354 | 10 | DigitalOut myled(PC_13); |
riaancillie | 0:3b55022dc9d3 | 11 | |
riaancillie | 0:3b55022dc9d3 | 12 | int main() |
riaancillie | 0:3b55022dc9d3 | 13 | { |
riaancillie | 1:49ec3704c354 | 14 | __disable_irq(); //Should still be disabled from when you jumped out of the bootloader, but disable again for safety. |
riaancillie | 1:49ec3704c354 | 15 | uint32_t *old_vectors = (uint32_t *)(0x08010000U); //Or wherever you placed your main application |
riaancillie | 1:49ec3704c354 | 16 | uint32_t *vectors = (uint32_t*)NVIC_RAM_VECTOR_ADDRESS; |
riaancillie | 1:49ec3704c354 | 17 | for (int i = 0; i < NVIC_NUM_VECTORS; i++) { |
riaancillie | 1:49ec3704c354 | 18 | vectors[i] = old_vectors[i]; |
riaancillie | 1:49ec3704c354 | 19 | } |
riaancillie | 1:49ec3704c354 | 20 | SCB->VTOR = (uint32_t)NVIC_RAM_VECTOR_ADDRESS; |
riaancillie | 1:49ec3704c354 | 21 | __enable_irq(); //Re-enable IRQ. In theory your vector table should now be copied and interrupt *should* work. |
riaancillie | 1:49ec3704c354 | 22 | |
riaancillie | 1:49ec3704c354 | 23 | |
riaancillie | 1:49ec3704c354 | 24 | pc.baud(115200); |
riaancillie | 0:3b55022dc9d3 | 25 | int i = 1; |
riaancillie | 0:3b55022dc9d3 | 26 | pc.printf("Hello World !\n"); |
riaancillie | 0:3b55022dc9d3 | 27 | while(1) { |
riaancillie | 0:3b55022dc9d3 | 28 | wait(1); |
riaancillie | 0:3b55022dc9d3 | 29 | pc.printf("This program runs since %d seconds.\n", i++); |
riaancillie | 0:3b55022dc9d3 | 30 | myled = !myled; |
riaancillie | 0:3b55022dc9d3 | 31 | } |
riaancillie | 0:3b55022dc9d3 | 32 | } |