Save the planet! Program in C, avoid Python, Perl

interpreted languages poor efficiency

As a former software engineer who’s mostly worked with C programming, and to a lesser extent assembler, I know in my heart that those are the two most efficient programming languages since they are so close to the hardware. But to remove any doubts, a team of Portuguese university researchers attempted to quantify the energy efficiency of different programming languages (and of their compiler/interpreter) in a paper entitled Energy Efficiency across Programming Languages published in 2017, where they looked at the runtime, memory usage, and energy consumption of twenty-seven well-known programming languages. C is the uncontested winner here being the most efficient, while Python, which I’ll now call the polluters’ programming language :), is right at the bottom of the scale together with Perl. The study goes through the methodology and various benchmarks, but let’s pick the binary-trees results to illustrate the point starting with compiled code. To the surprise […]

Cortex-M55 based Arm Virtual Hardware is now available in AWS Cloud

Arm Virtual Hardware Components

The Arm DevSummit 2021 is taking place on October 19-21, and the first announcements from Arm are related to IoT with “Arm Total Solutions for IoT delivering a full-stack solution to significantly accelerate IoT product development and improve product ROI”, “Project Centauri” aiming to achieve for an extensive Arm Cortex-M software ecosystem in the way that Project Cassini does for the Cortex-A ecosystem, starting with support for PSA Certified and Open-CMSIS-CDI cloud-to-device specification, and Arm Virtual Hardware based on Corstone-300 IoT platform with a Cortex-M55 MCU core and an Ethos-U55 microNPU accessible from Amazon Web Services. The first two are quite abstract right now, and more information may become available in the future, but the Arm Virtual Hardware is available now from AWS as a public beta, with 100 hours of free AWS EC2 CPU credits for the first 1,000 qualified users. The virtual hardware does not emulate only the […]

Android 12 source code pushed to AOSP

Android 12 source code AOSP

Google has now pushed Android 12 source code to AOSP (Android Open Source Project), after introducing Android 12 new features and the developer preview in February, and the first Android 12 Beta in May. The latest version of the mobile operating system should become available on recent Google Pixel phones in the next few weeks, followed by phones from Samsung, OnePlus, Oppo, Realme, Tecno, Vivo, and Xiaomi. You can download the code with the following command :

Eventually, there should be an Android 12 tag in the manifest similar to android-12.0.0.0_r1. But that still means developers can start retrieving the source code to adapt the operating system to their needs, for example, to implement support for single board computers or TV boxes that do not use Android TV OS. The release notes for the source code list of the changes made to Android 12 OS including: Support for Android […]

AIfES for Arduino high-efficiency AI framework for microcontrollers becomes open source

AlFes for Arduino

AIfES (AI for Embedded Systems) is a standalone, high-efficiency, AI framework, which allows the Fraunhofer Institute for Microelectronic Circuits and Systems, or Fraunhofer IMS for short, to train and run machine learning algorithms on resource-constrained microcontrollers. So far the framework was closed-source and only used internally by Fraunhofer IMS, but following a collaboration with Arduino, AIfES for Arduino is now open-source and free to use for non-commercial projects. The framework has been optimized to allow 8-bit microcontrollers such as the one found in Arduino Uno to implement an Artificial Neural Network (ANN) that can be trained in moderate time. That means offline inference and training on small self-learning battery-powered devices is possible with AIfES without relying on the cloud or other devices. The library implements Feedforward Neural Networks (FNN) that can be freely parameterized, trained, modified, or reloaded at runtime. Programmed in C language, AIfES uses only standard libraries based […]

ARM64EC mixes Arm and x64 emulated code in Windows 11 for higher performance on Arm

ARM64EC Windows 11

Windows has been available on Arm for a few years, and while software support has progressed there have always been some limitations, and emulated x86/x64 code on Arm does not usually run as fast as native ARM32/ARM64 code. So far developers had a binary choice: run their x86/x64 app on Arm using emulation, or port the entire app to Arm, But Microsoft has now come up with a solution that mixes x64 emulation and native Arm with ARM64EC (Emulation Compatible). That means developers won’t need to port the complete app to Arm, but instead could do so step-by-step and focus on part of the code where native Arm support makes the most difference. Microsoft explains: ARM64EC is a new application binary interface (ABI) for Windows 11 on ARM that runs with native speed and is interoperable with x64. An app, process, or even a module can freely mix and match […]

Arm introduces Open-CMSIS-Pack and Keil Studio Cloud for MCU software development

Keil Studio Cloud Beta

Arm has just announced two new initiatives that aim to boost the productivity embedded, IoT, ML, and MCU software developers: the Open-CMSIS-Pack project and Keil Studio Cloud. The Open-CMSIS-Pack Project The Cortex Microcontroller Software Interface Standard (CMSIS) packs have been around for years providing a vendor-independent hardware abstraction layer for microcontrollers, mostly Cortex-M based, but others too, and currently support close to 9000 different microcontrollers. I always assumed CMSIS was open-source as the source code is available in Github under an Apache 2.0 license. But apparently, not all components are, and Arm has now announced the Open-CMSIS-Pack project that will move part of CMSIS into the open project in collaboration with the Linaro IoT and Embedded Group. Linaro, Arm, and other partners like STMicro and NXP will initially focus their work on command-line tools and CMake workflows, with the ultimate goal of making the CMSIS-Pack technology into a true open […]

HybridOS is an open-source operating system designed for smart IoT devices and cloud computing environment

HybridOS

As I wrote about the “Summer 2021 of Open Source Promotion Plan” earlier, I noticed a new open-source operating system called HybridOS described as “totally new” and designed for “smart IoT devices and cloud computing environment”. It’s actually more of an ecosystem than an operating system, as it offers three main components with a device side running on devices running Linux kernel or another POSIX-compatible kernel, a server side running on servers in the cloud, and a client side to manage the cloud and devices from Windows, Linux distributions, iOS, or Android. HybridOS Device Side relies on several open-source projects including: hiWebKit, the HybridOS derivative of WebKit: hiACEJS, the HybridOS derivative of OpenHarmony ACELite hiViewRenders, the renderers for hiview tag of hiWebKit hiShell, the app running environment (the shell) Various Graphics stacks including hiMesa, the HybridOS derivative of Mesa hiCairo, the HybridOS derivative of Cairo: hiDRMDrivers, DRM Drivers for HybridOS […]

Summer 2021 of Open Source Promotion Plan is China’s alternative to Google Summer of Code

Summer 2021 Open Source Promotion Plan

China has now an alternative to the Google Summer of Code, an international annual program in which Google awards stipends to students who successfully complete a free and open-source software coding project during the summer. China’s alternative is called “Summer 2021 of Open Source Promotion Plan”, also known as “summer 2021” for short, and is organized by the Institute of Software Chinese Academy of Sciences and the openEuler community. It’s a global program open to college students around the world who want to participate in the development and maintenance of open-source software. There’s only one specific requirement to be able to apply:  be at least 18 years old at the time of registration. Selected students will be paid according to the complexity of the project with 12000 RMB ($1,867), 9000 RMB ($1,400), or 6000 RMB ($933) “bonuses” to be distributed at the end of the project. Other stakeholders include the […]