This is a very simple guide, reviewing the steps required to get Blinky working on an Mbed OS platform.
Mbed OS Blinky
This example shows the use of a DigitalOut object to represent an LED and use of the nonblocking Thread::wait()
call. Using nonblocking calls is good practice because Mbed OS can schedule and run other threads while the first thread is waiting.
Building this example
Building with Arm Mbed CLI
To use Mbed CLI to build this example, follow the instructions in the documentation. The instructions here relate to using the Arm Online Compiler.
To use the Online Compiler, import this code into the Online Compiler, and select your platform from the top right. Compile the code using the compile button, load it onto your board and press the reset button on the board. The code will run on the board, and you will see the LED blink.
You can find more instructions for using the Mbed Online Compiler in the documentation.
README.md@0:2757d7abb7d9, 2016-07-28 (annotated)
- Committer:
- Jonathan Austin
- Date:
- Thu Jul 28 13:52:35 2016 +0100
- Revision:
- 0:2757d7abb7d9
- Child:
- 1:846c97078558
Update example to https://github.com/ARMmbed/mbed-os-example-blinky at tag mbed-os-5.1.0-rc1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Jonathan Austin |
0:2757d7abb7d9 | 1 | # Getting started with Blinky on mbed OS |
Jonathan Austin |
0:2757d7abb7d9 | 2 | |
Jonathan Austin |
0:2757d7abb7d9 | 3 | This is a very simple guide, reviewing the steps required to get Blinky working on an mbed OS platform. |
Jonathan Austin |
0:2757d7abb7d9 | 4 | |
Jonathan Austin |
0:2757d7abb7d9 | 5 | Please install [mbed CLI](https://github.com/ARMmbed/mbed-cli#installing-mbed-cli). |
Jonathan Austin |
0:2757d7abb7d9 | 6 | |
Jonathan Austin |
0:2757d7abb7d9 | 7 | ## Get the example application! |
Jonathan Austin |
0:2757d7abb7d9 | 8 | |
Jonathan Austin |
0:2757d7abb7d9 | 9 | From the command line, import the example: |
Jonathan Austin |
0:2757d7abb7d9 | 10 | |
Jonathan Austin |
0:2757d7abb7d9 | 11 | ``` |
Jonathan Austin |
0:2757d7abb7d9 | 12 | mbed import mbed-os-example-blinky |
Jonathan Austin |
0:2757d7abb7d9 | 13 | cd mbed-os-example-blinky |
Jonathan Austin |
0:2757d7abb7d9 | 14 | ``` |
Jonathan Austin |
0:2757d7abb7d9 | 15 | |
Jonathan Austin |
0:2757d7abb7d9 | 16 | ### Now compile |
Jonathan Austin |
0:2757d7abb7d9 | 17 | |
Jonathan Austin |
0:2757d7abb7d9 | 18 | Invoke `mbed compile` specifying the name of your platform and your favorite toolchain (`GCC_ARM`, `ARM`, `IAR`). For example, for the ARM Compiler 5: |
Jonathan Austin |
0:2757d7abb7d9 | 19 | |
Jonathan Austin |
0:2757d7abb7d9 | 20 | ``` |
Jonathan Austin |
0:2757d7abb7d9 | 21 | mbed compile -m K64F -t ARM |
Jonathan Austin |
0:2757d7abb7d9 | 22 | ``` |
Jonathan Austin |
0:2757d7abb7d9 | 23 | |
Jonathan Austin |
0:2757d7abb7d9 | 24 | Your PC may take a few minutes to compile your code. At the end you should get the following result: |
Jonathan Austin |
0:2757d7abb7d9 | 25 | |
Jonathan Austin |
0:2757d7abb7d9 | 26 | ``` |
Jonathan Austin |
0:2757d7abb7d9 | 27 | [snip] |
Jonathan Austin |
0:2757d7abb7d9 | 28 | +----------------------------+-------+-------+------+ |
Jonathan Austin |
0:2757d7abb7d9 | 29 | | Module | .text | .data | .bss | |
Jonathan Austin |
0:2757d7abb7d9 | 30 | +----------------------------+-------+-------+------+ |
Jonathan Austin |
0:2757d7abb7d9 | 31 | | Misc | 13939 | 24 | 1372 | |
Jonathan Austin |
0:2757d7abb7d9 | 32 | | core/hal | 16993 | 96 | 296 | |
Jonathan Austin |
0:2757d7abb7d9 | 33 | | core/rtos | 7384 | 92 | 4204 | |
Jonathan Austin |
0:2757d7abb7d9 | 34 | | features/FEATURE_IPV4 | 80 | 0 | 176 | |
Jonathan Austin |
0:2757d7abb7d9 | 35 | | frameworks/greentea-client | 1830 | 60 | 44 | |
Jonathan Austin |
0:2757d7abb7d9 | 36 | | frameworks/utest | 2392 | 512 | 292 | |
Jonathan Austin |
0:2757d7abb7d9 | 37 | | Subtotals | 42618 | 784 | 6384 | |
Jonathan Austin |
0:2757d7abb7d9 | 38 | +----------------------------+-------+-------+------+ |
Jonathan Austin |
0:2757d7abb7d9 | 39 | Allocated Heap: unknown |
Jonathan Austin |
0:2757d7abb7d9 | 40 | Allocated Stack: unknown |
Jonathan Austin |
0:2757d7abb7d9 | 41 | Total Static RAM memory (data + bss): 7168 bytes |
Jonathan Austin |
0:2757d7abb7d9 | 42 | Total RAM memory (data + bss + heap + stack): 7168 bytes |
Jonathan Austin |
0:2757d7abb7d9 | 43 | Total Flash memory (text + data + misc): 43402 bytes |
Jonathan Austin |
0:2757d7abb7d9 | 44 | Image: .\.build\K64F\ARM\mbed-os-example-blinky.bin |
Jonathan Austin |
0:2757d7abb7d9 | 45 | ``` |
Jonathan Austin |
0:2757d7abb7d9 | 46 | |
Jonathan Austin |
0:2757d7abb7d9 | 47 | ### Program your board |
Jonathan Austin |
0:2757d7abb7d9 | 48 | |
Jonathan Austin |
0:2757d7abb7d9 | 49 | 1. Connect your mbed device to the computer over USB. |
Jonathan Austin |
0:2757d7abb7d9 | 50 | 1. Copy the binary file to the mbed device . |
Jonathan Austin |
0:2757d7abb7d9 | 51 | 1. Press the reset button to start the program. |
Jonathan Austin |
0:2757d7abb7d9 | 52 | |
Jonathan Austin |
0:2757d7abb7d9 | 53 | You should see the LED of your platform turning on and off. |
Jonathan Austin |
0:2757d7abb7d9 | 54 | |
Jonathan Austin |
0:2757d7abb7d9 | 55 | Congratulations if you managed to complete this test! |
Jonathan Austin |
0:2757d7abb7d9 | 56 | |
Jonathan Austin |
0:2757d7abb7d9 | 57 | ## Export the project to Keil MDK and debug your application |
Jonathan Austin |
0:2757d7abb7d9 | 58 | |
Jonathan Austin |
0:2757d7abb7d9 | 59 | From the command line, run the following command: |
Jonathan Austin |
0:2757d7abb7d9 | 60 | |
Jonathan Austin |
0:2757d7abb7d9 | 61 | ``` |
Jonathan Austin |
0:2757d7abb7d9 | 62 | mbed export -m K64F -i uvision -n mbed-os-example-blinky |
Jonathan Austin |
0:2757d7abb7d9 | 63 | ``` |
Jonathan Austin |
0:2757d7abb7d9 | 64 | |
Jonathan Austin |
0:2757d7abb7d9 | 65 | You should see the following output: |
Jonathan Austin |
0:2757d7abb7d9 | 66 | |
Jonathan Austin |
0:2757d7abb7d9 | 67 | ``` |
Jonathan Austin |
0:2757d7abb7d9 | 68 | Successful exports: |
Jonathan Austin |
0:2757d7abb7d9 | 69 | * K64F::uvision .\projectfiles\uvision_K64F\mbed-os-example-blinky |
Jonathan Austin |
0:2757d7abb7d9 | 70 | ``` |
Jonathan Austin |
0:2757d7abb7d9 | 71 | |
Jonathan Austin |
0:2757d7abb7d9 | 72 | To debug the application: |
Jonathan Austin |
0:2757d7abb7d9 | 73 | |
Jonathan Austin |
0:2757d7abb7d9 | 74 | 1. Start uVision. |
Jonathan Austin |
0:2757d7abb7d9 | 75 | 1. Import the uVision project generated earlier. |
Jonathan Austin |
0:2757d7abb7d9 | 76 | 1. Compile your application and generate an `.axf` file. |
Jonathan Austin |
0:2757d7abb7d9 | 77 | 1. Make sure uVision is configured to debug over CMSIS-DAP (From the Project menu > Options for Target '...' > Debug tab > Use CMSIS-DAP Debugger). |
Jonathan Austin |
0:2757d7abb7d9 | 78 | 1. Set breakpoints and start a debug session. |
Jonathan Austin |
0:2757d7abb7d9 | 79 | |
Jonathan Austin |
0:2757d7abb7d9 | 80 | ![Image of uVision](img/uvision.png) |
Jonathan Austin |
0:2757d7abb7d9 | 81 | |
Jonathan Austin |
0:2757d7abb7d9 | 82 | ## Troubleshooting |
Jonathan Austin |
0:2757d7abb7d9 | 83 | |
Jonathan Austin |
0:2757d7abb7d9 | 84 | 1. Make sure `mbed-cli` is working correctly and its version is greater than `0.8.0` |
Jonathan Austin |
0:2757d7abb7d9 | 85 | |
Jonathan Austin |
0:2757d7abb7d9 | 86 | ``` |
Jonathan Austin |
0:2757d7abb7d9 | 87 | mbed --version |
Jonathan Austin |
0:2757d7abb7d9 | 88 | ``` |
Jonathan Austin |
0:2757d7abb7d9 | 89 | |
Jonathan Austin |
0:2757d7abb7d9 | 90 | If not, you can update it easily: |
Jonathan Austin |
0:2757d7abb7d9 | 91 | |
Jonathan Austin |
0:2757d7abb7d9 | 92 | ``` |
Jonathan Austin |
0:2757d7abb7d9 | 93 | pip install mbed-cli --upgrade |
Jonathan Austin |
0:2757d7abb7d9 | 94 | ``` |
Jonathan Austin |
0:2757d7abb7d9 | 95 | |
Jonathan Austin |
0:2757d7abb7d9 | 96 | 2. If using Keil MDK, make sure you have a license installed. [MDK-Lite](http://www.keil.com/arm/mdk.asp) has a 32KB restriction on code size. |