A demonstration of a simple bootloader with SD card. Binary folder already contains precompiled two Firmware files for Nucleo-F767ZI under MbedOS 6.15.1. These files may be placed to a SD card (It will working with https://os.mbed.com/users/JohnnyK/code/SimpleBootloader/)
main.cpp@0:b8b091db9767, 2021-12-08 (annotated)
- Committer:
- JohnnyK
- Date:
- Wed Dec 08 21:16:45 2021 +0000
- Revision:
- 0:b8b091db9767
First release
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JohnnyK | 0:b8b091db9767 | 1 | /* |
JohnnyK | 0:b8b091db9767 | 2 | * Tested with Nudleo-F767Zi and Nudleo-F429ZI |
JohnnyK | 0:b8b091db9767 | 3 | * Builded with Mbed Studio 1.4.3 |
JohnnyK | 0:b8b091db9767 | 4 | */ |
JohnnyK | 0:b8b091db9767 | 5 | |
JohnnyK | 0:b8b091db9767 | 6 | #include "mbed.h" //MbedOS 6.15.5 |
JohnnyK | 0:b8b091db9767 | 7 | |
JohnnyK | 0:b8b091db9767 | 8 | #define DELAY 200ms |
JohnnyK | 0:b8b091db9767 | 9 | |
JohnnyK | 0:b8b091db9767 | 10 | DigitalOut myled1(LED1); |
JohnnyK | 0:b8b091db9767 | 11 | DigitalOut myled2(LED2); |
JohnnyK | 0:b8b091db9767 | 12 | DigitalOut myled3(LED3);*/ |
JohnnyK | 0:b8b091db9767 | 13 | InterruptIn iin(BUTTON1); |
JohnnyK | 0:b8b091db9767 | 14 | bool flag = false; |
JohnnyK | 0:b8b091db9767 | 15 | |
JohnnyK | 0:b8b091db9767 | 16 | void fall(){ |
JohnnyK | 0:b8b091db9767 | 17 | flag = true; |
JohnnyK | 0:b8b091db9767 | 18 | } |
JohnnyK | 0:b8b091db9767 | 19 | |
JohnnyK | 0:b8b091db9767 | 20 | int main() |
JohnnyK | 0:b8b091db9767 | 21 | { |
JohnnyK | 0:b8b091db9767 | 22 | printf("AppStart_Firm1\n"); |
JohnnyK | 0:b8b091db9767 | 23 | iin.fall(callback(fall)); |
JohnnyK | 0:b8b091db9767 | 24 | |
JohnnyK | 0:b8b091db9767 | 25 | while (true) { |
JohnnyK | 0:b8b091db9767 | 26 | myled1 = 1; myled2 = 0; myled3 = 0; ThisThread::sleep_for(DELAY); |
JohnnyK | 0:b8b091db9767 | 27 | myled1 = 0; myled2 = 1; myled3 = 0; ThisThread::sleep_for(DELAY); |
JohnnyK | 0:b8b091db9767 | 28 | myled1 = 0; myled2 = 0; myled3 = 1; ThisThread::sleep_for(DELAY); |
JohnnyK | 0:b8b091db9767 | 29 | myled1 = 0; myled2 = 1; myled3 = 0; ThisThread::sleep_for(DELAY); |
JohnnyK | 0:b8b091db9767 | 30 | ThisThread::sleep_for(DELAY); |
JohnnyK | 0:b8b091db9767 | 31 | if(flag){printf("Restarting...\n"); ThisThread::sleep_for(1s); NVIC_SystemReset();} |
JohnnyK | 0:b8b091db9767 | 32 | } |
JohnnyK | 0:b8b091db9767 | 33 | } |