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.

Committer:
mbed_official
Date:
Fri Jul 29 22:45:07 2016 +0100
Revision:
3:297fe5b2279f
Parent:
1:846c97078558
Child:
14:e4cde3e77fdc
Merge pull request #14 from ARMmbed/MS-patch-1

Minor fixes on mbed export command

Commit copied from https://github.com/ARMmbed/mbed-os-example-blinky

Who changed what in which revision?

UserRevisionLine numberNew 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 1:846c97078558 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 1:846c97078558 62 mbed export -m K64F -i uvision
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:
mbed_official 3:297fe5b2279f 69 * K64F::uvision .\projectfiles\uvision_K64F\Unnamed_Project
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
mbed_official 3:297fe5b2279f 84 1. Make sure `mbed-cli` is working correctly and its version is greater than `0.8.9`
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.