How to Detect if an ARM ELF Binary is Hard-float (ARMHF) or Soft-float (ARMEL)

If some cases you may want to know if a library or binary built for the ARM architecture is using hard-float (armhf) or soft-float (armel). You can analyze ELF binary using readefl utility, so let’s have a try. First let’s install some armel and armhf files on a computer running Ubuntu by install gcc/g++ toolchain for armel and armhf:

We now have armhf and armel libraries installed in /usr/arm-linux-gnueabihf/lib and /usr/arm-linux-gnueabi/lib respectively. Let’s check the output of readelf filtered with “FP” string for libm.so.6 for armel:

and armhf:

Great, so there’s an extra line for armhf (Tag_ABI_VFP_args) that seems to confirm the library is hard-float. With readelf compiled from elftoolchain-0.6.1 (source code), the extra line will be a bit different: “Tag_ABI_VFP_args: AAPCS (VFP variant) AAPCS stands for ARM Architecture Procedure Call Standard. You can read more details on ARM website. There are also two other possible values […]

Keil RTX RTOS is Now Available for Energy Micro EFM32 MCUs

Energy Micro has recently announced the availability of the Keil RTX real-time operating system (RTOS) as part of its Simplicity Studio tool suite. The Keil RTX has been optimized for ARM Cortex-M processors to provide flexible scheduling and high-speed operation, and has been improved to enable an ultra-low power, deep-sleep mode between tasks. Energy Micro has implemented a tickless mode in Keil RTX. This mode allows the EFM32 Cortex M3 MCUs to wake up only when needed, either at a scheduled time or on an interrupt event. This results in much lower power consumption in sleep mode compared to other SysTick implementations. The video below shows the difference between SYSTICK mode where the system consumes about 2.7mA in active mode, and 830 uA in sleep mode to the new tickless mode where the MCU still consume the same amount of energy in Active mode, but only 1uA in sleep mode, […]

Libhybris Let You Use Android Drivers & HW Libraries in Linux

One of the main issues with Linux on ARM is the lack of proper GPU drivers for the platform, as most silicon manufacturers now only focus on Android drivers which are not compatible with the Linux kernel, because Android is based on Bionic C library, whereas Linux is based on glibc or its variants. There are two ways to solve this issue: Open Source GPU drivers. This would be the ideal solution, as you would just be able to cross-compile the drivers for the proper, as well as fix bugs without having to ask the silicon manufacturer to fix the driver for you. Bionic to Glibc library. Such library acts like libdl, and allows to load Bionic library and overrides some symbols from bionic with glibc based ones. This is exactly what libhybris does. Ubuntu Touch is capable of using Android GPU drivers to run Ubuntu thanks to this library, […]

ARM big.LITTLE Processing Demo (HMP) on ARM TC2 Test Chip

Samsung launched Exynos 5 Octa at CES 2013. This processor comes with 8 cores: 4 Cortex A15 cores and 4 Cortex A7 cores, and it’s the first processor that’s been announced to work in big.LITTLE configuration, where the big cores (A15) handle demanding tasks, and the LITTLE cores (A7) handle simpler tasks such as audio playback or background tasks. This is all done to optimize power consumption. There are 2 big.LITTLE software implementations: In-kernel switcher (IKS) and heterogeneous multi-processing (HMP). The first one is easier to implements but can only use 4 cores (in Exynos 5 Octa) at a time, and the second is more complex, but can handle all 8 cores, and assign individual tasks to a particular core. For more technical details about big.LITTLE implementations, you can read my previous post. ARM and Samsung recently uploaded a video providing an overview of big.LITTLE (but instead of IKS and […]

Open ARM GPU Drivers FOSDEM 2013 Video and Call to ARM Management

As I previously wrote, FOSDEM organizers are slowly uploading FOSDEM 2013 videos. One of the most interesting talk “Open ARM GPU Drivers” is now available. I’ve also uploaded it to YouTube (embedded below) to give it more exposure. Luc Verhaegen has also written a recent blog post entitled “Hey ARM!” where he announces the release of the modified source for Quake 3 Arena demo, and asks ARM to join them in making an open source driver. Open ARM GPU Drivers @ FOSDEM2013 This session covers the following key points: Problem – Binary drivers are mainly designed to run in Android, and it’s very difficult to have proper GPU drivers for Linux, and companies are not interested to release open source drivers or even just documentation, as they are not convinced it will benefit them in any way. Legal – This is actually the main issue, as open sourcing existing driver […]

A Selection of FOSDEM 2013 Events

FOSDEM is a 2-day (or 3 if you include Friday beer event) event where over 5,000 members of open source communities meet, share ideas and collaborate. It’s free to attend, and there’s no registration, so you just show up to attend. FOSDEM 2013 takes place on Feb 2-3 (yep, this week-end) in Brussels There are 7 main tracks where sessions are organized: Operating systems Open source challenges Security Janson Beyond operating systems Web development Miscellaneous Robotics There are also keynotes and devroom for a total of 488 sessions. Developers rooms that may particularly be of interest to readers of this blog are: Cross Desktop devroom – e.g. Wayland, gstreamer, razor-qt, Qt Project, Plasma Active, etc… Cross Distro devroom – e.g. Linux on Android, suse on ARM, ARMv8, systemd, etc… Embedded and mobile devroom – e.g. Baserock Embedded Linux, Guacamayo (Yocto), Nemo Mobile/ Mer project, arduino… All in all that’s a […]

ARM MCU Development in Linux with Energy Micro’s Simplicity Studio, Eclipse, and CodeSourcery Toolchain

Quite a few months ago, I received an Energy Micro EFM32 Tiny Gecko Starter Kit, but I haven’t done much with it. But recently I saw a tweet from EnergyMicro about Simplicity Studio supports for Ubuntu, and I know it can be problematic to find proper tools for ARM MCU development in Linux, so I decided to give it a try. The first part is about Simplicity Studio, and energyAwareTools which are specific to Energy Micro, but the second part deals with setting up Eclipse and CodeSourcery ARM toolchain for MCU development which should be reusable for other MCUs from vendors such as Texas Instruments, NXP and STMicro. I’ve used a PC running Ubuntu 12.04 64-bit with the instructions below. Installing Simplicity Studio and energyAwareTools in Ubuntu Simplicity Studio is part of the 4 steps of the getting started guide with EFM32 MCUs. It has been available for Linux for […]

Embedded Linux Conference 2013 Schedule

The Embedded Linux Conference (ELC 2013) will take place on February 20 – 22, 2013 at Park 55 Hotel in San Francisco, California. ELC consists of 3 days of presentations, tutorials and sessions. There will be over 50 sessions during those 3 days. I’ll highlight a few sessions that I find particularly interesting, and that did not get presented at ELCE 2012 (AFAICR). February 20 11:00 – Anatomy of the arm-soc git tree by Olof Johansson, Google We are now two years into the new maintainer model for ARM platforms, and we have settled down into a workflow that maintainers have adjusted well to. Still, when new platforms arrive, or when maintainer ship changes hands, there’s sometimes a bit of ramp-up in getting used to how we organize our git tree and how we prefer to see code submitted to fit that model. This presentation will give an overview of […]

EmbeddedTS embedded systems design