Andrea Gallo, Chief Linux Architect in the Smartphone and Tablet Solution organization in ST-Ericsson and part of the Linaro Technical Steering Committee, explains how a common Linux ARM kernel benefits ST Ericsson Snowball development platform. Abstract: Last March, the ARM Linux community got shaken by the complaints by Linus Torvalds for its lack of proper structure and organization. This is totally true and mainly due to the large number of different SoC vendors, each one integrating the ARM IP’s in a slightly different variant. Linaro immediately accepted the challenge to drive the kernel alignment of the ARM community and most ARM Linux experts got together and agreed on the way forward as early as May 2011 at the Developers’ summit in Budapest. ST-Ericsson is a founding member of Linaro and some key ST-Ericsson engineers are assigned to Linaro and specifically to this kernel alignment working force. In the speech, Andrea […]
Yocto Project Community BoF – ELCE 2011
Jeff Osier-Mixon, community manager for the Yocto project and working at Intel, presents the Yocto Project at Embedded Linux Conference Europe 2011. Abstract: The Yocto Project is an open source collaboration project that provides templates, tools and methods to help you create custom Linux-based systems for embedded products regardless of the hardware architecture. This BoF (Birds of a Feather) provides a meeting place for members of the Yocto Project community to gather, meet Yocto Project developers, see hands-on demonstrations, and get answers to questions about using the tools. The audience for this BoF includes embedded Linux developers, application developers, and systems integrators who are looking for an industry-standard approach to building custom embedded Linux distributions, at all expertise levels from newly-hatched developer to grizzled professional. Attendees can expect to learn the latest about the Yocto Project and to learn how they can participate and benefit. Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX […]
The Yocto Project Eclipse Plug-In – ELCE 2011
Jessica Zhang is Software Engineer at Intel and works on Yocto Application Development Kit (ADT) and its Eclipse plug-in. She presented Yocto Project Eclipse Plug-in at Embedded Linux Conference Europe 2011. Abstract: Yocto project is an open source collaboration project that aims at helping embedded Linux software developers, either for system or application development. The Yocto Eclipse plug-in provides an effective integrated development environment that is based on the widely adopted Eclipse CDT and TCF extensions. It allows user to seamlessly interact with various Yocto project development tools. Yocto 1.0 targeted application developers via cross toolchains and sysroot setup, with remote deploy, debug and analysis. For 1.1, we have added support in the Yocto Eclipse plug-ins for system development through interaction with the bitbake UI interface for a Yocto bitbake commander type project. This talk will demo the end-to-end usage flows of Yocto Eclipse plug-in for both system and application […]
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 […]
Ubuntu Linaro Evaluation Builds (LEB) Tutorial
Ricardo Salveti, tech lead of the Developer Platform working group, gave a tutorial on the Ubuntu Linaro Evaluation Builds (LEBs) during Linaro Connect Q4.11. He first described the list of available images: nano – minimal rootfs (command line) with apt/dkpg support ALIP – nano + X11 + browser Developer – nano + development tools Ubuntu Desktop – clone of Ubuntu with Linaro modifications. and how the builds are made available via nightly builds and hardware packs. Linaro aims at making Ubuntu the reference Linux distribution for ARM. This goal is valid for Cortex A processors, but for older ARM core (ARM9/ARM11) other distributions will have to used such as Debian. For example, Raspberry Pi board (ARM1176) will support Fedora optimized by Redhat. He then gave further details on Offspring the Linaro build system based on live-build scripts used for Debian. The source code is retrieved either via git (http:/git.linaro.org) or launchpad […]
Linux Kernel Debugging – Linaro Connect Q4 2011
Linaro Connect Q4.2011 takes place on the 31 October – 4 November 2011 in Orlando. In the video below, Linaro toolchain developers asked kernel developers about their potential needs for kernel debugging. Several options to improve the kernel debugging experience were discussed. In particular, the toolchain group will make sure that OpenOCD works at least on one of the member boards to allow for easy debugging through JTAG. They also mentioned support for o-profile. This session was an opportunity to review debugging techniques used by kernel developers. It also allowed most participants to discover the GDB Text User Interface (GDB TUI), a very convenient way to interact with GDB, without having to go through heavyweight environments like Eclipse. You can follow this subject on Blueprints for Toolchain support for Kernel Debugging on Linaro website. The audio is quite poor, so use some headphones or boost the volume to hear anything. […]
MHL (Mobile High Definition Link) Turns Your Phone into a Set-Top Box, Game Console and more
MHL (Mobile High Definition Link) was introduced at Mobile World Conference 2011, some progress has been done since then. For now Two HDTVs are MHL compliant: the Toshiba WL800A and the Samsung UN46D7000. The Toshiba TV already have a firmware upgrade that provides MHL support, a firmware upgrade will come later for the Samsung HDTV. MHL provides market disruptive features that such as the ability to charging MHL compliant phones and tablets, control them with the TV remote through one simple MHL connector (micro-USB to HDMI). In the demo below, they show the phone connected to the Toshiba WL800A and being controlled with the TV remote control to play videos (including trick modes: pause, ffwd, etc..), play Android games and use a web browser. Once you install Google TV 2.0 in your phone (you’ll probably need Android 4.0) or tablet, you can get a great TV experience via your mobile […]
Run 2 OS Simultaneously on ARM (OMAP4) with Codezero Embedded Hypervisor
B Labs, a company specializing in ARM Virtualization, was at ARM Techcon 2011 showcasing Codezero, their Embedded Hypervisor to run multiple Linux OS such as Android and Chrome OS on ARM processors. The main purpose of running 2 operating systems is to separate home and enterprise operating systems in mobile devices so that enterprise data is safe. Charbax (ARMDevices.net) interviewed Bahadir Baldan, founder of B Labs, and showed a demo running 2 Android instances and another running Android and Linux in pandaboard. The overhead is 10 to 15% according to B Labs, so the performance hit is minimal. They have already managed to run 4 OS on quad core processors with good performance. They are not able to run Windows operating systems (e.g. Windows Mobile 7.5/ Windows 8) yet, because Cortex A9 processors lack virtualization extensions. This will however be feasible with Cortex A15 processors as binary virtualization will be available. […]