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. […]
Google TV 2.0 For Android 3.1 Released
Back in August, Google released a Preview of Google TV Add-on for the Android SDK. Google has now announced a software upgrade for Google TV a software running on Android device (Smart TV / STB) such as the Sony NSX-24GT1 Google TV that bring web video (e.g. YouTube, Netflix and more) to the TV. Google admits the initial version of Google TV wasn’t perfect and they even asked partners not to show product with Google TV at CES 2011. Let’s see what improvements Google TV 2.0: 1. Keep it simple The interface is now much simpler. The new customizable home screen gets you to your favorite content quickly. And within “all apps” you can see all of your shortcuts, similar to your Android phone or tablet. 2. Make it easy to find something worth watching Search has been improved across the board for content from Live TV, Netflix, YouTube, HBO […]
ST Micro 15 USD STM32F4-Discovery Cortex-M Development Kit
ST Microelectonics promote their Cortex-M series at ARM Techcon 2011 and especially the new STM32F4 series the most powerful cortex M4 MCUs. They also showcase a low cost development board called STM32F4-Discovery that they give away at the exhibition and that can be bought online for 14.90USD from distributors. The evaluation board is based on the STM32F407VGT6 and includes an ST-LINK/V2 embedded debug tool, two ST MEMS, digital accelerometer and digital microphone, one audio DAC with integrated class D speaker driver, LEDs and push buttons and an USB OTG micro-AB connector. A large number of free ready-to-run application firmware examples are available in the STM32F4-Discovery board firmware package to support quick evaluation and development. Key Features of the Development kit: STM32F407VGT6 microcontroller featuring 32-bit ARM Cortex-M4F core, 1 MB Flash, 192 KB RAM in an LQFP100 package On-board ST-LINK/V2 with selection mode switch to use the kit as a standalone ST-LINK/V2 […]