You are here

Mbed OS 5.13.1 released | Cypress Semiconductor

Mbed OS 5.13.1 released

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 );

    }


 }

 

ALL CONTENT AND MATERIALS ON THIS SITE ARE PROVIDED "AS IS". CYPRESS SEMICONDUCTOR AND ITS RESPECTIVE SUPPLIERS MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY OF THESE MATERIALS FOR ANY PURPOSE AND DISCLAIM ALL WARRANTIES AND CONDITIONS WITH REGARD TO THESE MATERIALS, INCLUDING BUT NOT LIMITED TO, ALL IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT OF ANY THIRD PARTY INTELLECTUAL PROPERTY RIGHT. NO LICENSE, EITHER EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, IS GRANTED BY CYPRESS SEMICONDUCTOR. USE OF THE INFORMATION ON THIS SITE MAY REQUIRE A LICENSE FROM A THIRD PARTY, OR A LICENSE FROM CYPRESS SEMICONDUCTOR.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms and Conditions of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms and Conditions of this site. Cypress Semiconductor and its suppliers reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.