Embedded Linux Boot Time Optimizations – ELCE 2012

Alexandre Belloni, embedded Linux engineer and trainer at Adeneo Embedded, gives a presentation about different techniques to optimize boot time for Embedded Linux at ELCE 2012. He also explains how they’ve measured the boot time. Abstract: A common problem faced when embedding Linux is the long boot time before the system is functional. There are many ways to improve boot up time. For a particular project, we had to answer a CAN message from Linux userspace in less than 420 ms from going out of CPU reset. We will describe our methodology and the techniques we finally chose to implement in that particular use case. We will also detail how we measured the boot time efficiently. A live demo will show the results of our work. More specifically, Alexandre discusses two projects at Adeneo where boot time was critical: An automotive platform based on Freescale i.mx53 needs to reply to […]

SoC Power Measurement with ARM Energy Probes and Linux EAP Tools

Andy Green, TI Landing Team lead at Linaro,  gave an interesting presentation entitled “How to measure SoC power” at Linaro Connect Europe 2012. This talk was specifically aimed at software engineers, so that they know how to properly measure power consumption, and take actions to optimize the software to decrease it. In the first part of the presentation, he gives an overview of electronics basics with definition of voltage, load, current and power, units used for power measurements (Clue: you need to use Watts), and how voltage, current and power can be measured with voltmeters and ammeters. When you want to measure power in a rail, you would usually insert a shun resistor, use a multimeter and derive the power from the resistance and the measured voltage (P=V2/R). He also gives details about regulator efficiency, choosing measurement sampling… There are 4 common measurements strategies: DC IN – Easiest way, gives the complete […]

Big.LITTLE Processing Implementations and Current Status

There was a big,LITTLE mini-summit during Linaro Connect Europe 2012, where an update was given on current big.LITTLE implementations and the results of measurement of power vs performance. Big.LITTLE Processing Implementations Overview As briefly mentioned in “Versatile Express TC2 (2xA15, 3xA7) Development Board at ARM Techcon 2012“, there are 2 big.LITTLE implementations: In-kernel switcher (IKS) This implementation is already available through Linaro and only required minimal changed to the kernel as it mainly an augmentation to DVFS (Dynamic Voltage and Frequency Scaling) except instead of only adjusting voltage and frequency depending on the load, it will also move the load to different cores. The main drawback is that this implementation only uses half the cores. For example, on a 2x Cortex A15 / 2x Cortex A7 system, it can only use 2 cores at the same time (either A15 or A7 cores), as the load is managed between one type […]

IAR Systems Releases Embedded Workbench for ARM Version 6.40

Earlier today, IAR Systems has announced the release of version 6.40 of Embedded Workbench for ARM. This new version introduces several new features, enhancements and optimizations. The enhancements include a new source browser and text editor, with functionality such as auto-completion, code folding, block selection, block indentation, bracket matching, and zooming. Word/paragraph navigation have also been improved. IAR Systems also enhanced the compiler with improvements to the stack usage analysis functionality that provides calculations of the maximum stack depth for each call graph root and new features such as support for C++ source code and  recursion. A new linker directive check can be used to calculate the stack usage at link time to verify that the used stack space does not exceed the allocated memory. The inline assembler has also been improved and expanded with a large number of new operand constraints and modifiers. In a previous post “Green Hills […]

Linaro Android Puts Stock Android To Shame on TI Pandaboard (OMAP4430)

The team at Linaro has done an amazing job at optimizing Android 4.0 for ARM and Bernhard Rosenkränzer, Android Engineer at Linaro among other things, has put all those optimizations together to showcase a demo at Linaro Connect Q2.2012 in Hong Kong with 2 pandaboards: One running Stock Android 4.0.4, the one released by Google (AOSP) One running Linaro Android 4.0.4 Both hardware, android version and benchmark software (oxBench) are the same, and the results are quite amazing with Android Linaro achieving about 60 fps in all 0xBenchmark tests (OpenGL Cube, OpenGL Blending, OpenGL Fog and Flying Teapot) whereas Android stock achieving 30 fps. They selected a benchmark tool that is mainly CPU bound, as they cannot optimize the GPU code since they can only access binary blobs. Apparently, most of the improvements were possible thanks to toolchain and code optimization (to be able to build) such as using gcc […]

Linux on eMMC: Optimizing for Performance – ELC 2012

Ken Tough, principal engineer at Intrinsyc Software, discusses Linux on eMMC at Embedded Linux Conference 2012. Abstract: Embedded devices are increasingly choosing eMMC instead of raw NAND flash as their main storage, for increased independence from component vendors and changing storage densities. This presentation examines Linux configuration for eMMC, how to effectively measure your eMMC performance, and tips to improve it. Topics covered include: filesystem bearing on MMC/SD performance, IO scheduler configuration, and optimal partition layout. Target audience is embedded systems developers or users interested in getting the most out of their eMMC/SD card. You can also download the presentation slides on elinux.org. Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011. www.cnx-software.com

11 Recommendations for Optimizing Mobile Apps Power Efficiency

Following an AT&T Labs Research and corresponding paper entitled “Profiling Resource Usage for Mobile Applications: A Cross-layer Approach“,  AT&T found that a few simple design approaches could significantly improve mobile application responsiveness and reduce battery drain by lowering your application power consumption. They analyzed PANDORA internet radio and  discovered that the streaming music was delivered efficiently, but periodic audience measurements were draining battery life. Here is an excerpt of the PANDORA Case Study: While the music itself was sent simply and efficiently as a single file, the periodic audience measurements—each constituting only 2KBs or so—were being transmitted at regular 62.5-second intervals. The constant cycle of ramping up to full power (2 seconds to ramp up, 1 second to download 2KB) and back to idle (17 seconds for the two tail times, the first down from full-power mode and the second down from half-power mode) was extremely wasteful. Of the total […]

Tuning Linux For Embedded Systems – ELCE 2011

Darren Hart, Intel’s Open Source Technology Center, gives a 5 step method to optimize Linux (image size, memory footprint and boot time) for embedded systems at Embedded Linux Conference Europe 2011. Abstract: Although embedded systems are less and less resource constrained, there is still a lot of demand for minimizing the image size, runtime memory usage, and boot time. The firmware, kernel configuration, hardware initialization, boot-time arguments, start-up scripts, and library sizes are all examples of things with a direct impact on your image size and/or boot time. There are several core processes involved with minimizing the size of an image, which has a direct impact on runtime memory usage and boot time. The focus is on configuration techniques that get you most of the way there and follow-up with source-level customizations that get you the rest of the way. You can also download the presentation slides. Jean-Luc Aufranc (CNXSoft)Jean-Luc […]

EmbeddedTS embedded systems design