Close
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 );
}
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.