Skip navigation
Home > All Places > ModusToolbox > Blog > 2019 > July
2019
MarkS_11

Mbed OS 5.13.1 released

Posted by MarkS_11 Jul 18, 2019

Arm announced a patch release of Mbed OS yesterday. It is version 5.13.1 and it adds a few interesting items for PSoC users. The big change is a new Wi-Fi Host Driver (WHD), which replaces the monolithic build of our WICED stack used in previous releases with a smaller footprint, more flexible driver that will save memory in your applications and make it easier to support your own target boards. There is also a USB peripheral driver, which extends the choices you have for wired connectivity, and a new Cypress HAL that complements the C++ Mbed peripheral driver interface with an efficient, Mbed-friendly set of drivers in the C language. Lovely!

One of the nice things about an online ecosystem like Mbed is that you do not need to go through a lengthy installation process to get the new software. Simply creating a new application in Mbed CLI ("mbed new my-super-new-application") will pull in the latest and greatest version of Mbed OS. You can then confirm the OS version by running "mbed ls". Here is the output from my Mbed CLI session where I create and build a new application.

yfs@YFS-T550 MINGW64 ~/mbed4

$ mbed new my-super-new-application

[mbed] Working path "C:\Users\yfs\mbed4" (directory)

[mbed] Program path "C:\Users\yfs\mbed4"

[mbed] Creating new program "my-super-new-application" (git)

[mbed] Adding library "mbed-os" from "https://github.com/ARMmbed/mbed-os" at branch/tag "latest"

[mbed] Updating reference "mbed-os" -> "https://github.com/ARMmbed/mbed-os/#5941d1718339116cd12914238ec331c84da3..."

yfs@YFS-T550 MINGW64 ~/mbed4

$ cd my-super-new-application

yfs@YFS-T550 MINGW64 ~/mbed4/my-super-new-application (master)

$ mbed ls

[mbed] Working path "C:\Users\yfs\mbed4\my-super-new-application" (program)

my-super-new-application ( revision in the current branch)

`- mbed-os (#5941d1718339, tags: latest, mbed-os-5.13.1)

yfs@YFS-T550 MINGW64 ~/mbed4/my-super-new-application (master)

$ cp ../main.cpp .

yfs@YFS-T550 MINGW64 ~/mbed4/my-super-new-application (master)

$ mbed compile --target CY8CKIT_062_WIFI_BT --toolchain GCC_ARM

Building project my-super-new-application (CY8CKIT_062_WIFI_BT, GCC_ARM)

Scan: my-super-new-application

Compile [  0.1%]: mbed_tz_context.c

Compile [  0.2%]: MCR20Drv.c

Compile [  0.3%]: at24mac.cpp

Compile [  0.4%]: NanostackRfPhyAtmel.cpp

Compile [  0.5%]: NanostackRfPhyMcr20a.cpp

Compile [  0.6%]: rf_configuration.c

Compile [  0.7%]: fslittle_test.c

Compile [  0.8%]: main.cpp

<Lots of compilation - deleted!>

Compile [ 99.7%]: USBSerial.cpp

Compile [ 99.8%]: OperationListBase.cpp

Compile [ 99.9%]: PolledQueue.cpp

Compile [100.0%]: TaskBase.cpp

Link: my-super-new-application

Elf2Bin: my-super-new-application

Post-Build: my-super-new-application

| Module           |         .text |       .data |        .bss |

|------------------|---------------|-------------|-------------|

| [fill]           |       80(+80) |       9(+9) |     35(+35) |

| [lib]\c.a        | 16696(+16696) | 2472(+2472) |     89(+89) |

| [lib]\gcc.a      |   3168(+3168) |       0(+0) |       0(+0) |

| [lib]\misc       |     224(+224) |       4(+4) |     28(+28) |

| [misc]           |         0(+0) |       0(+0) |       0(+0) |

| main.o           |     192(+192) |       0(+0) |       4(+4) |

| mbed-os\drivers  |       74(+74) |       0(+0) |       0(+0) |

| mbed-os\features |     204(+204) |       0(+0) |     48(+48) |

| mbed-os\hal      |   1248(+1248) |       4(+4) |     67(+67) |

| mbed-os\platform |   2892(+2892) |   260(+260) |   220(+220) |

| mbed-os\rtos     |   6468(+6468) |   168(+168) | 5973(+5973) |

| mbed-os\targets  | 17578(+17578) |   107(+107) | 1236(+1236) |

| Subtotals        | 48824(+48824) | 3024(+3024) | 7700(+7700) |

Total Static RAM memory (data + bss): 10724(+10724) bytes

Total Flash memory (text + data): 51848(+51848) bytes

Image: .\BUILD\CY8CKIT_062_WIFI_BT\GCC_ARM\my-super-new-application.hex

[mbed] Working path "C:\Users\yfs\mbed4\my-super-new-application" (program)

 

Note that, after creating the application, I I just copy in a simple blinky application (main.cpp) to the my-super-new-application folder. Here is the code for that... isn't it super!?!

 

/* mbed Microcontroller Library
* Copyright (c) 2018 ARM Limited
* SPDX-License-Identifier: Apache-2.0
*/

#include "mbed.h"

DigitalOut led1(LED1);

#define SLEEP_TIME_MS 500

// main() runs in its own thread in the OS
int main()
{
    while( true )
    {
        // Blink LED and wait 0.5 seconds
        led1 = !led1;
        wait_ms( SLEEP_TIME_MS );
    }

}