Benjamin Zores, Alcatel-Lucent, describes different optimization techniques (focusing on hardware choice and software architecture) that can be used to improve the performance of embedded linux at Embedded Linux Conference Europe 2011. Abstract: This presentation provides a series of techniques that can be used for Linux embedded systems fine-grain tuning and performances optimization. Embedded systems are, by definition, always limited in terms of resources while people keep on trying to use desktop-oriented software on top of it. This talk presents a series of tips that can be used to actually measure, find and isolate bottlenecks in your system, whether it is by complete system profiling or software architecture optimization. Focus is also made on the traditional caveats that need to be avoided for your system not to be slow by design. You can also download the presentation slides.
Developing Embedded Linux Devices Using the Yocto Project – ELCE 2011
Presentation entitled “Developing Embedded Linux Devices Using the Yocto Project and What’s new in 1.1” by David Stewart, Intel, at Embedded Linux Conference Europe 2011. Abstract: The Yocto Project is a joint project to unify the world’s efforts around embedded Linux and to make Linux the best choice for embedded designs. The Yocto Project is an open source starting point for embedded Linux development which contains tools, templates, methods and actual working code to get started with an embedded device project. In addition, the Yocto Project includes Eclipse plug-ins to assist the developer. This talk gives a walk-through of the key parts of the Yocto Project for developing embedded Linux projects. In addition, features are described from the latest release of Yocto (1.1). At the end of the talk, developers should be able to start their own embedded project using the Yocto Project and use it for developing the next […]
The Linux NFC Subsystem – ELCE 2011
Lauro Ramos Venancio, Instituto Nokia de Tecnologia and Samuel Ortiz, Intel give a presentation about the NFC subsystem in Linux at Embedded Linux Conference Europe 2011. Abstract: NFC (Near Field Communication) is a wireless protocol mostly designed for fast information reading and writing from nearby devices and tags. It also allows NFC devices to establish a transport layer link and exchange larger chunks of data. While Android ships with its own multi platform NFC stack writing HCI frames to a raw character device and supporting one single device, Linux is currently missing any kind of generic and clean NFC support, from both kernel and user space (cnxsoft: Since end of last month, this is not the case as Linux 3.1 supports NFC). Therefore, a new socket family for NFC, along with a kernel netlink API for high level NFC commands passing is being developed. An NFC user space daemon abstracts […]
Board Bringup: LCD and Display Interfaces – ELCE 2011
Presentation “Board Bringup: LCD and Display Interfaces” by David Anders, Texas Instruments, at Embedded Linux Conference Europe 2011. Board bringup is one of the most under documented aspects of embedded development. This presentation looked at the various display technologies such as DisplayPort, DVI, LVDS, and other LCD interfacing methods with emphasis on how to bringup, debug, and validate them on new hardware. Using a case study, aspects such as interfacing timing, extended display identification data(EDID), and backlight controls have been discussed. Most embedded linux developers at some point in their career will be handed a piece of hardware that is untested. LCD bringup is one of the most challenging assignments for an embedded developer. This presentation intends to provide some core tools and methods for bringup of a new display interface. You can also download the presentation slides
LinuxCon Europe 2011 Keynote: Imagine a World Without Linux
Free-electronics has made 51 videos of Embedded Linux Conference Europe 2011 available at http://free-electrons.com/blog/elce-2011-videos/ in webM format that you’ll need to download. I’ll upload a few to Youtube to them more accessible. The fist video is the keynote by Jim Zemlin, Executive Director of The Linux Foundation entitled “Imagine a world without Linux”. During this keynote, Jim thinks about a world without Linux and wonders where your Internet search, your social networking company, you mobile phone os, your ecommerce provider would be without it. He also talks about the critical moments that contributed to the foundation of Linux and its establishment as the underpinning of so much of our economy and culture.
Energy Efficiency of ARM Architecture for Cloud Computing Applications
Following “Pandaboard Cloud Cluster Running Google App Engine” post, there were some questions regarding the actual power efficiency of ARM servers vs Intel (Xeon) servers and some commenters questioned the performance of ARM chips. I’ve found a thesis evaluating how the energy efficiency of the ARMv7 architecture based processors Cortex-A9 and Cortex-A8 compares – in applications such as a SIP Proxy and a web server (Apache2) – to Intel Xeon processors. The focus of this thesis is to compare the energy efficiency between the two architectures rather than pure performance where the Xeon largely outperforms ARM processors, although a cluster of ARM servers could be used instead to reach the same processing power. Depending on the application, benchmarks indicate energy efficiency of 3-11 times greater for the ARM Cortex-A9 in comparison to the Intel Xeon. The full thesis (74 pages) is available below.
Linaro Android Tutorial with the Pandaboard
Zach Pfeffer, the tech lead of the Linaro Android working group, gave a tutorial about Linaro Android at Linaro Connect Q4.11. During this tutorial, attendees were shown how to download a recent build for the pandaboard, how to make a bootable SD card image using the linaro-android-media-create command and how to boot the board with it. The full setup was composed of a Pandaboard connected to a HDMI monitor with a keyboard and mouse connected to the board as well as serial to USB cable to connect to the development machine. He also used an SD card reader to generate the bootable Android image. The images are available at Android Linaro Build Service. There are quite a few build named after the supported board (e..g panda for pandaboard, snowball for ST Ericsson Snowball etc..) and the kernel version (tracking = latest linaro kernel, staging = stable linaro kernel). Then an […]
Development Testing with Static Analysis
I’ve recently come across an EE Times article written by Coverity stressing the benefits of static analysis and how it can help finding potential issues in the code early. They mentioned 3 static analysis techniques: Dataflow analysis This technique can find the defect in the listing below during compile time.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
void null_pointer_deref(int x) { char *p; if (x == 0) { p = foo(); } else { p = 0; } if(x != 0) { *p; } else { ... } } |
If value of x passed into the function is not zero, p is assigned a null pointer with p=0. Then, the next conditional check (x!=0) takes a true branch and in the next line p is dereferenced, leading to a null pointer dereference. This type of issue can be detected at compiled time with dataflow analysis. Interprocedural analysis This technique can find defects across function and method boundaries. See listing below:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
void *zero_alloc(size_t size) { void *p = malloc(size); if (!p) return NULL; memset(p,0,size); return p; } struct S *create_S(int initial_value) { struct S *s = (struct S *) zero_alloc(sizeof(*s)); if (!s) return NULL; s->field = initial_value; return s; } int example_leak(struct S *s, int value) { struct S *tmp = s; if(!tmp) { tmp = create_S(value); } if(!tmp) return -1; ... return 0; } |
There are 3 functions: example_leak, create_S and zero_alloc. Interprocedural analysis can go through the code and identify the memory leak. The analysis engine has to trace the […]