How to Sandbox an arm64 GCC on aarch64 Hardware with armv7 Userspace

Arm64 GCC Armv7 Userspace

CNXSoft: Guest post by Blu about setting up arm64 toolchain on 64-bit Arm hardware running a 32-bit Arm (Armv7) rootfs. Life is short and industry progress is never fast enough in areas we care about. That’s an observation most of us are familiar with. One would think that by now most aarch64 desktops would be running arm64 environments, with multi-arch support when needed. Alas, as of late 2019, chromeOS on aarch64 is still shipping an aarch64 kernel and an armhf userspace. And despite the fine job by the good folks at chromebrew, an aarch64 chromeOS machine in dev mode ‒ an otherwise excellent road-warrior ride, is stuck with 32-bit armhf. Is that a problem, some may ask? Yes, it is ‒ aarch64 is the objectively better arm ISA outside of MCUs, from gen-purpose code to all kinds of ISA extensions, SIMD in particular. That shows in contemporary compiler support and in the difference in quality of codegen. Particularly with the …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Linaro Connect San Diego 2019 Schedule – IoT, AI, Optimizations, Compilers and More

Linaro Connect San Diego 2019

Linaro has recently released the full schedule of Linaro Connect San Diego 2019 that will take place on  September 23-27. Even if you can’t attend, it’s always interested to check out the schedule to find out what interesting work is done on Arm Linux, Zephyr OS, and so on. So I’ve created my own virtual schedule with some of the most relevant and interesting sessions of the five-day event. Monday, September 23 14:00 – 14:25 – SAN19-101 Thermal Governors: How to pick the right one by Keerthy Jagadeesh, Software Engineer, Texas Instruments With higher Gigahertz and multiple cores packed in a SoC the need for thermal management for Arm based SoCs gets more and more critical. Thermal governors that define the policy for thermal management play a pivotal role in ensuring thermal safety of the device. Choosing the right one ensures the device performs optimally with in the thermal budget. In this presentation Keerthy Jagadeesh, co-maintainer of TI BANDGAP AND …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Embedded Linux Conference & Open Source Summit 2019 Schedule

Embedded Linux Conference 2019 Schedule

In the last few years, I covered the Embedded Linux Conference and IoT Summit schedules since both were happening at the same time and in the same location. But the Linux Foundation have recently announced the Embedded Linux Conference will combine with the Open Source Summit, so the IoT Summit appears to have been phased out. The full schedule for the events taking place on August 21 – 23, 2019 at the Hilton San Diego Bayfront, USA, has also been released, so I’ll create a virtual schedule with some of the sessions most relevant to this blog. Wednesday August 21, 2019 11:30 – 12:05 – What’s New with U-Boot? by Simon Glass, Google LLC U-Boot is a widely used bootloader in embedded systems. Many users are unaware of the wide feature-set of U-Boot, particularly features added in the last few years. This talk aims to bring users (and prospective users) up to speed on the state of the art in …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Facebook BOLT Speeds Up Large x86 & ARM64 Binaries by up to 15%

Facebook BOLT

Compilers like GCC OR LLVM normally do a good job at optimizing your code when processing your source code into assembly, and then binary format, but there’s still room for improvement – at least for larger binaries -, and Facebook has just released BOLT (Binary Optimization and Layout Tool) that has been found to reduce CPU execution time by 2 percent to 15 percent. The tool is mostly useful for binaries built from a large code base, with binary size over 10MB which are often too large to fit in instruction cache. The hardware normally spends lots of processing time getting an instruction stream from memory to the CPU, sometimes up to 30% of execution time, and BOLT optimizes placement of instructions in memory – as illustrated below – in order to address this issue also known as “instruction starvation”. BOLT works with applications built by any compiler, including the popular GCC and Clang compilers. The tool relies on Linux …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Getting Started with Pine64 PADI IoT Stamp – Part 2: Serial Console, GCC SDK, Flashing & Debugging Code

PADI IoT Stamp module powered by Realtek RTL8710AF ARM Cortex M3 WiFi SoC is a potential competitor to Espressif ESP8266 modules.  Pine64, the manufacturer of the module, sent me their kit with a $2 IoT stamp, a breakout board, a USB to TTL debug board and a J-Link debug board. In the first part of the review I’ve shown the hardware and how to assemble PADI IoT stamp kit. In the second part I’m going to write a tutorial / getting start guide showing how to control the board with AT commands, build the firmware with GCC SDK, and finally demonstrate how to flash and debug the firmware with the J-Link debugger. The Quick Start Guide indicates you need to connect the USB to TTL debug board to UART2 instead of UART1 as I did on the very similar B&T RTL-00 RTL8710AF module, and set connection settings to 38400 8N1. This did not work for me, and I had indeed …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

OSHCHIP Breadboard Friendly Bluetooth Smart Board Comes in a Tiny 16-pin DIP Package

OSHCHIP is a tiny development board powered by a Nordic Semi ARM Cortex-M0 Bluetooth LE / ANT SoC that neatly fits on a breadboard, and beside wireless connectivity thanks to its 2.4 GHz radio, also provides up to 14 I/Os to interface with external hardware. OSHCHIP specifications: Nordic Semi nRF51822 ARM Cortex-M0 MCU @ 16 MHz with 256KB Flash Memory, 32KB SRAM Radio – 2.4 GHz Radio with support for 4 protocols: Bluetooth Low Energy (BLE) / Bluetooth Smart, Gazell, ESB (Enhanced Shock Burst), and optionally ANT Antenna – Built-in antenna, range is 10 to 20 feet, depending on environment (metal, desks, chairs, …) Expansion – 14 general purpose I/O pins. All peripherals (except the ADC) can use any I/O pin: UART, 10-bit ADC, Counter/Timers, SPI, I2C Security – AES Encryption, Random Number Generator. Misc – Temperature sensor, RTC, Watchdog Timer Quadrature Decoder, 3 LEDs, Power Supply – 1.8V to 3.6V Dimensions – N/A The board is programmed via Serial Wire …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Weightless Development Kits are Finally Available (Sort of)

The first version of the Weightless standard aiming at lowering cost of IoT communications was published in 2013, but so far development kits were nowhere to be found. Nwave has now launched a Weightless-N SDK using sub-GHz spectrum, but not the white space spectrum used by Weightless-W, probably due to regulatory hurdles. Specifications and features of Nwave development board: MCU – Silicon Labs EFM32G210F128 ARM Cortex M3 MCU @ 32 MHz with 128KB flash, 16KB SRAM Connectivity – RM3 radio module (868MHz) and antenna connector (X3) USB – X1 USB port for connection to PC or UART interface, X2 micro USB port Debugging – UART, and 10-pin JTAG connector (X4) Expansion header – 16 through holes for GND, 3.3V, GPIOs, ADC, Timers output, I2C, etc… (X5) Misc – Three Jumpers for UART and other selections (TBD), reset buttons for USB ports? Power – 5V via USB ? Dimensions – N/A I could not find any details about RM3 radio module, …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

STM32F746G-DISCO is a $49 Cortex-M7 Board with a 4.3″ LCD Display, Arduino Headers

We’ve already seen Atmel started shipping its SAM V71 Xplained Board based on its latest Cortex M7 a few days ago, but Atmel is not the company which recently introduced a Cortex M7 development kit, as ST Micro also launched an STM32F7 Cortex M7 development kit with Arduino headers and 4.3″ LCD at the end of June. The “Discovery Kit with STM32F746NG MCU” (STM32F746G-DISCO) comes with the following specifications: MCU – STMicro STM32F746NGH6 Cortex M7 MCU with 1 MB Flash, 340 KB RAM, in BGA216 package Memory – 128-Mbit (16 MB) SDRAM (64 Mbits accessible) Storage – 16 MB Quad-SPI Flash memory, and micro SD slot Display – 4.3″ 480×272 color LCD-TFT with capacitive touch screen Camera – Camera connector Connectivity – Ethernet connector compliant with IEEE-802.3-2002 USB USB OTG HS with Micro-AB connectors,  USB OTG FS with Micro-AB connectors USB functions: virtual COM port, mass storage, debug port Audio – SAI audio codec, line IN and OUT jacks, stereo …

Support CNX Software – Donate via PayPal or become a Patron on Patreon