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

Linaro 15.02 Release with Linux 3.19 and Android 5.0

Linaro 15.02 has just been released with Linux 3.19 (baseline), Linux 3.10.68 and 3.14.34 (LSK), Android 5.0.2, and Ubuntu Linaro Utopic. Listed changes for Linux Linaro are exactly the same as last month, except they’ve used Linux 3.9 release. Power management tools have been added to their AOSP build, and some work has been done for Android 5.0 on the new Hikey board. Here are the highlights of this release: Linux Linaro 3.19-2015.02 GATOR topic: version 5.20.1 updated integration-linaro-vexpress64 topic by ARM LT (FVP Base and Foundation models, and Juno support) updated topic from Qualcomm LT (ifc6410 board support) updated topic from HiSilicon LT (Hi36xx, HiP04, and X5HD2 families support) updated LLVM topic (the community llvmlinux-latest branch) included ILP32 patch set v3 rebased onto 3.19. Initial tests using syscalls LTP tests done. When using ILP32 userland, a few tests have to be skipped (msgctl07, msgrcv0[1-7], msgsnd01) to avoid the stalls, and to make the testing to complete. No stalls with …

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

Linaro 15.01 Release with Linux 3.19 and Android 5.0

Linaro has just announced the first release of the year with Linux 3.19-rc3 (baseline), Linux 3.10.65 and 3.14.29 (LSK), Android 5.0.2, and Ubuntu Linaro Utopic. Changes seem to have focused on ARM, Qualcomm, and HiSilicon hardware platforms such as Juno, and IFC6410, and some work has been done on Debian ARM64 rootfs. Here are the highlights of this release: Linux Linaro 3.19-rc5-2015.01 GATOR topic updated to version 5.20.1 builddeb topic: fixes for the dtb files location changes in 3.19 (vendor subdir introduced) updated integration-linaro-vexpress64 topic by ARM LT (FVP Base and Foundation models, and Juno support) updated topic from Qualcomm LT (IFC6410 board support) updated topic from HiSilicon LT (Hi36xx, HiP04, and X5HD2 families support) updated LLVM topic (uses the community llvmlinux-latest branch) Included ILP32 patch set v3 rebased on 3.19-rc5. Initial tests using syscalls LTP tests are done: msgctl07 stalls when using ILP32 userland (no stall with LP64 userland). config fragments updated:  audit.conf added to enable the audit feature …

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

Linaro 14.09 Release with Kernel 3.17 and Android 4.4.4

Linaro 14.09 has just been released with Linux kernel 3.17-rc4 (baseline), Linux 3.10.54 & 3.14.19 (LSK), and Android 4.4.2 & 4.4.4. Linaro has kept working on their member boards such as IFC6410 (Qualcomm), D01 (Huawei/Hisilicon), Ardnale (Samsung), and Juno (ARM). They’ve also announced they’ll change the tools to build GCC by using cbuild2 instead of cbuild1 for next release, and they’ve enabled a build with gcov (for code coverage analysis) which may mean they’ll work on reducing the kernel size by getting rid off unused code. I’ve also noticed the Arndale and Arndale Octa Ubuntu images are now based on Linux LSK with Mali GPU support since last month. Here are the highlights of this release: Linux Linaro 3.17-rc4-2014.09 GATOR version 5.19 updated topic from Qualcomm LT (ifc6410 board support) and HiSilicon LT updated Versatile Express ARM64 support (FVP Base and Foundation models, Juno) from ARM LT. updated Versatile Express patches from ARM LT updated LLVM topic (follows the community …

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