AnDevCon IV Classes and Workshops Schedule

AnDevCon is a technical conference for software developers building Android apps, and the fourth Android developer conference will take place in San Francisco on December 4-7, 2012. The organizers have already listed the schedule, including details about the workshops and classes which will take place at the conference. The 4th of December is reserved for workshops, and the other 3 days can be spent on shorter classes. All workshops will provide sample code, as well as most classes, excluding the overview session and business related sessions. There will be three full day Android workshops: Android Development Boot Camp – Hands-on introduction to Android application development and the tools essential to the process. Beyond an introduction to the basics, this workshop also covers some of the common hurdles met with development, and how to overcome them. You will also have the opportunity to build an Android app of your own where […]

ELLCC Multi-Target Cross Compiler Based on Clang and LLVM Compiler Infrastructure

ELLCC is a project aiming at creating a multi-target cross compilation environment for embedded systems. which makes use of Clang and the LLVM compiler infrastructure. QEMU is used for cross-platform testing. The project goals are to implement the following key features: A functional C/C++ compiler based on Clang (ecc) Multi-target support: ARM, i386, Microblaze, Mips, Nios2, PowerPC, PowerPC64, Sparc and X86_64 Multi-OS support: Linux, Standalone, … A complete test environment that allows automatic unit and integration testing of the run-time environment and complete executables. Support of a wide variety of target processors from armv4 to armv7, several mips cores, i386, and more. The project is still being developed, and ELLCC is in a pre-release state. ELLCC is composed of the following components: ecc – The ELLCC C/C++ compiler,  a single executable with gcc compatible options. binutils – The GNU binutils package. libecc – The C standard library based on the musl standard […]

NXP Unveils JenNet-IP-EK040 Evaluation Kit for the Internet of Things

NXP Semiconductors announced the availability of JenNet-IP-EK040 evaluation kit featuring JenNet-IP wireless network layer software for the Internet of Things. This evaluation kit based on NXP’s JN514x single chip wireless MCU provides all the components needed to create applications for IPv6-based networks for lighting and home automation. The JenNet-IP EK040 evaluation kit includes the following: 4 wireless sensor nodes, including modules based on JN5148-J01 and JN5142-J01 chips (single chips with MCU and IEEE802.15.4 transceiver) , USB micro-B connectors, a JN514x IO expansion port, support for USB, battery or an external power supply unit (not included), and 2 USB cables. 4 plug-in shields with an Arduino-compatible footprint featuring 3 dimmable white LEDs, as well as temperature, light level and humidity sensors. 2 high-power JN5148-J01 modules for extended range 2 high-power USB dongles for sniffer and coordinator A router providing connection to Ethernet, with a custom Open WRT Linux distribution and power supply. […]

Quick Binary Debugging in Linux with Strace System Call Tracer

I’ve recently come across strace, a debugging utility for Linux that “monitor the system calls used by a program and all the signals”. It may not be that useful if you have the source code and can run other debugging tools such as gdb, or simply add printf to your code. But if you don’t have source code of the program, or you are a system administrator who wants to check if the program fails due to file access reasons, for example, this is really a great tool as it may help you find out which file causes problem. In my case, I was trying OpenGL ES on an ARM platform, and at least part of the code comes in libraries that are only available in binary form. I got the following error message running es2_info (part of mesa-utils-extra): UMP: ump_arch_open() failed to open UMP device driver ********************************************************************* ERROR: In […]

Use GNU Parallel to Speed Up Script Execution on Multiple Cores and/or Machines

I attended BarCamp Chiang Mai 5 last week-end, and a lot of sessions were related to project management, business apps and web development, but there were also a few embedded systems related sessions dealing with subjects such as Arduino (Showing how to blink an LED…) and IOIO board for Android, as well as some Linux related sessions. The most useful talk I attended was about “GNU Parallel”, a command line tool that can dramatically speed up time-consuming tasks that can be executed in parallel, by spreading tasks across multiple cores and/or local machines on a LAN. This session was presented by the developer himself (Ole Tange). This tool is used for intensive data processing tasks such as DNA sequencing analysis (Bioinformatics), but it might be possible to find a way to use GNU Parallel to shorten the time it takes to build binaries. Make is already doing a good job at […]

Monkey, an Open Source High Performance Embedded Web Server

Some time ago, I mentioned 5 web servers (mathopd, thttpd, busybox httpd, boa and lighttpd) suitable for embedded systems (including those featuring no MMU processors) and low end machines. I’ve recently come across Monkey web server, a lightweight open source Web Server for Linux (2.6.29 or greater), which has been designed with focus in embedded devices. Monkey is currently supported on ARM, x86 and x64, although a quick analysis of the source code shows it forks, so it won’t be supported on processors that do not feature a memory management unit (MMU) without modifications. Monkey supports the following features: HTTP/1.1 compliant Virtual Hosts Asynchronous networking model (event-driven) Indented configuration Plugins Support C API Interface Other features through base plugins: SSL Security Log writter Directory Listing Shell: Command line The developers have benchmarked Monkey against busybox httpd and nginx on a now well-know ARMv6 platform: the Raspberry Pi. They used Siege […]

Migrating a WordPress Blog from Apache2 to Nginx

This blog is hosted on a Linode VPS with 512 MB RAM and running Ubuntu 11.10. Up until today, Apache2 was the web server, and it worked fine except sometimes, it reached connection and memory limits, and the blog would go offline for a short period of time, especially right after a new blog post. So this week-end, I decided to switch to nginx (pronounced engine-x) web server which is said to use less memory than Apache2. Let me know if something suddenly stopped working… nginx is a relatively recent web server, and the documentation on the web seems to become outdated pretty fast, so I’ve decided to document what I’ve done. The first thing I would recommend is to try it in your own local server first,  and make sure most things are working including plugins. Testing your WordPress blog with nginx in a local server I run Ubuntu […]

WM8850-MID Android 4.0 Tablet Unboxing and Review

I recently bought an Android 4.0 tablet with a 7″ capacitive touchscreen based on the new WonderMedia WM8850 processor (Cortex A9 + Mali-400). In my first post, I called this tablet UGoos UG-LMW70, but I just received a no brand package with nothing mentioning Ugoos or the model number UG-LMW70 anywhere. Android settings just show WW8850-mid for the model number. The tablet comes with a 5V power supply, a miniUSB to USB cable, a short miniUSB to USB female adapter, headphones and a user manual in English explaining how to use Android, but nothing about the tablet itself. The tablet has vol-/+ buttons and a power button (left side below), and a power jack, microSD slot, headphones jack, a USB host port, a mini HDMI port, a miniUSB port and a microphone (right to left). They did not include a mini HDMI to HDMI cable, so I did not try HDMI […]

UP 7000 x86 SBC