Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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 | } |