Compile with ARM Thumb2 to Reduce Memory Footprint and Improve Performance

ARM claims that Thumb-2 instructions (for ARM Cortex cores and all ARMv7 processors) provides performance improvements and code size optimization: Thumb-2 technology is the instruction set underlying the ARM Cortex architecture which provides enhanced levels of performance, energy efficiency, and code density for a wide range of embedded applications. For performance optimized code Thumb-2 technology uses 31 percent less memory to reduce system cost, while providing up to 38 percent higher performance than existing high density code, which can be used to prolong battery-life or to enrich the product feature set. Thumb-2 technology is featured in the  processor, and in all ARMv7 architecture-based processors. Dave Martin (Linaro) has recently posted a message entitled “ARM/Thumb-2 kernel size comparison” on Linaro mailing list:

The results provided by Linaro at not as high as those claimed by ARM, but a 20% code size reduction is still impressive. If you want to use Thumb2 to compile […]

Is it IPv6 Time ? IPv6 Basics on Linux

The first time I worked on IPv6 was in 2000 in my master’s degree thesis where I started an implementation of Mobile IP based on IPv6 in Linux Redhat. Over a decade later, IPv6 has not really taken off, even though we hear stories about the IPv4 address space running out and I have yet to see an embedded device using anything else than IPv4. APNIC Ran out of IPv4 However, this may be about the change as on the 15th of April 2011, Japan Network Information Center (JPNIC) announced that APNIC (Asia Pacific Network Information Centre) ran out of IPv4 addresses. They will still try to make it last longer by reusing previously allocated IPv4 and an “IPv4 address transfer system” whose details will be made available later. You can also see a chart based on IANA (Internet Assigned Numbers Authority) data that shows this is a problem right […]

Khadas Edge2 Arm mini PC

Over 40 Percent of Embedded Projects are Behind Schedule

VDC Research has published a research note entitled “Running Behind Schedule: The Crisis in Software & System Development” where they surveyed some embedded and enterprise developers and got the result that over 40% of developers report their project is behind schedule. The worrying fact is that this issue does not improve over the years. It is interesting to note that the average project takes over a year and involves over 30 full-time software engineers. The four main reasons cited for the delays are: Changes in specifications Complexity of the application Customer changed requirements Lack of manpower VDC explains  that in the I.T world many are using Agile to manage changes in specifications, this is not the case in embedded market as every industry has very different requirements. There are specific process requirements for embedded systems, but those have been designed for the Waterfall or V model methods , not interactive […]

Embedded Linux Quick Start / Tutorial Videos

Free Electrons recorded some videos from the Embedded Linux Conference Europe, in Cambrigde, United Kingdom on October 2010 by Chris Simmonds, the founder of 2net Limited, a UK company providing training, consultancy and custom software for Linux and other embedded platforms. The videos can either be downloaded in webm HD format at http://free-electrons.com/blog/elce-2010-tutorial-videos/ or you can watch them in HD format below. The PDF slides for the three parts and the lab notes are available at http://elinux.org/images/c/cc/Linux-quick-start.tar.gz The first video (53 minutes) deals with the following key points: Genesis of a Linux project The four elements: Tool chain; boot loader; kernel; user space Element 1: Tool chain Element 2: Boot loader The second video (1h19m) focuses on: Third element: Kernel Fourth element: User space The last video (1h07m) is more practical as it shows how to use embedded Linux on an NXP LPC3250 Stick (ARM9): Description of the hardware Installing […]

Android 2.3.3 Firmware for HTC, Motorola, ZTE, Samsung smartphones

CyanogenMod is an aftermarket firmware for a number of cell phones and tablets based on the open-source Android operating system. It offers features not found in the official Android based firmwares of vendors of these cell phones.  People often use it because the official firmware of their phone may not get an update or because they do not like the custom Android UI of the manufacturer. The latest version is CyanogenMod 7 (11th of April 2011) with the following: Android version: 2.3.3 Kernel 2.6.37.4 with CFS (Completely Fair Scheduler) Root access BusyBox tools Apps2SD Reboot menu – options to perform a reboot, reboot into recovery, or reboot into bootloader Input settings – Haptic feedback adjustments, trackball wake, menu unlock, music controls on lock screen Performance settings – surface dithering, JIT, VM heap size, and lock messaging in memory CyanogenMod 7 also offers user interface improvement, some pre-install apps, networking support (OpenVPN, tethering, etc..), audio […]

Boot Linux in 300 milliseconds

MakeLinux.com managed to boot Linux from the bootloader to console within 300ms using a customized (and minimal) version of Linux running on Beagleboard based on TI OMAP 3530 (Cortex A8) as per their Super Fast Boot project. Here’s the analysis of the boot sequence and timings: Logging starts at 70 ms from reset. Boot time from reset is 300 + 70 = 370 ms. Logging starts at 330 ms from power on. Cold boot time is 330 + 300 = 630 ms. Loading of 1.5 MiB Linux image from NAND takes 237 ms with throughput 6 MiB/s. Code execution takes 60 ms or 43M CPU cycles. (For other CPU frequency execution time is different, but the number of processor cycles is the same) The most time-consuming operation is coping firmware from NAND flash. They used a Linux 2.6.32 kernel from DVSDK 3.01, in a minimal configuration (900KB footprint), the boot […]

Rockchip RK3568/RK3588 and Intel x86 SBCs

Video commemorating the 20th Anniversary of Linux

Linux is born in April 1991, with Linus Torvalds making it public with the following post on minix newsgroups: Hello everybody out there using minix – I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. … PS. Yes – it’s free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that’s all I have :-(. Today, Linux is powering all kind of devices from supercomputer, stock exchange servers to smartphones, smart tv, cars and anything you can think of.

Removing Old Kernels in Ubuntu with Synaptic

If you have used Ubuntu for a while and performed upgrades, you may have quite a few kernels in GNU GRUB as shown below: Those kernels are usually not necessary, they take space on your hard disk and make you scroll down in GRUB to access your other OS (if any). I’ll show how to only keep the last 2 kernels (for safety) in GRUB with Synaptic. First, start synaptic as a superuser: sudo synaptic Select “System Administration“, in type “linux-image” in the Quick search field and show the installed kernel (green tick box). Then select the kernels you want to remove (keep the last 2 versions), right-click and select “Mark for Removal”. Synaptic Package Manager window should look like the screenshot below: After that, simply click on Apply and within a short time (one minute in my case), the selected kernel are removed. Removing 4 kernels, freed 429 MB […]

Khadas VIM4 SBC