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 […]

Setting Up an NFS Server in Ubuntu

You may need to setup an NFS server on Ubuntu to run and debug your program on your target platform or simply to share media files on the network composed of Linux clients. If you are using Windows clients, you would usually use SAMBA/CIFS, although it is possible to setup an NFS server in Windows as well using Windows Services for UNIX 3.5. Quick Guide to to setup an NFS server in Ubuntu without authentication. Install the required packages: # sudo apt-get install nfs-kernel-server nfs-common portmap Reconfigure and restart portmap: # sudo dpkg-reconfigure portmap # sudo /etc/init.d/portmap restart Edit /etc/exports: # sudo vi /etc/exports Add the directories to share with NFS and save the file, for example: /nfs 192.168.1.0/24(rw,no_root_squash,async) will give full read/write permissions to the nfs directory for computer in 192.168.1.0 subnet. Restart the NFS server: # sudo /etc/init.d/nfs-kernel-server restart and reload the configuration: # sudo exportfs -a The […]

Temperature Data Logging with TI eZ430-Chronos Watch

I wanted to record 24-hour of temperature data with eZ430-Chronos devkit and draw the result in a spreadsheet to see how the temperature evolves during the day. Here are the instructions to do so. 1. Update firmware to Chronos Datalogger. In order to record temperature data in your eZ430-Chronos development kit, you’ll need to update the firmware to use Chronos Datalogger. First start the Chronos Control Center, click on the Wireless Update tab, click on browse to select the Chronos Datalogger firmware file matching your hardware. In my case, I selected  C:\Program Files\Texas Instruments\eZ430-Chronos\Recovery\Chronos Watch\Applications\eZ430_Chronos_Datalogger_433MHz_1_5.txt. Then click on Update Chronos Watch.  On the watch, press the # button several time to enter rFbSl mode and press the down button to start the wireless update. 2. Configure the watch for temperature logging. Now start Chronos Data Logger software,  click on Start Access Point. On your watch,  press the # button to […]

Texas Instruments eZ430-Chronos Wireless Watch Unboxing

I’ve just received the eZ430-Chronos development tool I ordered last week (after 2 working days) by Fedex. Today, I’ll just post some pictures of the kit and provide some descriptions. There is a woman jogging on the box because you can actually buy a chest strap to monitor your speed, heart beat and calories consumption. If you would like to purchase one (49 Euros), it is available at http://www.bm-innovations.com/index.php/shop_products.html. Apparently there are only 868MHz (EU) and 915MHz (USA) versions, and they do not sell the strap for the 433MHz (international) version as I have. The watch is normally turned off the first time you open the box, it’s just turned on on the picture because I used it before taking the pictures. The content of the box includes: eZ430-Chronos wireless watch eZ430 USB programming and debugging interface (Bottom left) CC1111 USB RF access point (Bottom right on top of the […]

Texas Instruments MSP430 Devkit Facebook Promotion

Texas Instruments is currently offering 50% discount on selected development kits for its Facebook Fans for purchase on TI eStore until stocks last. The two development kits are sold at 50% discount: EZ430-Chronos-433 – eZ430-Chronos Wireless Watch Development Tool, a highly integrated, wireless development system based for the CC430 in a sports watch. It may be used as a reference platform for watch systems, a personal display for personal area networks, or as a wireless sensor node for remote data collection. The original price is 49 USD, but it can be ordered for 24.50 USD (including shipping) with the promo code: FCB-sfVwiUYe EZ430-F2013 – MSP430 USB Stick Development Tool, a complete development system with detachable target board and USB emulator. Ideal for new users. The original price is 20 USD, but it can be ordered for 10 USD (including shipping) with the promo code: FCB-ZC7Y86yQ I’ve ordered the Wireless Watch […]

Emulate an ARM Plaform with QEMU on Ubuntu 10.10

When developing software for embedded systems, you may need to support multiple architectures such as  arm, mips, x86, powerpc, alpha etc.. but you may not have the hardware required on hand to test them. This is where QEMU – a processor emulator – comes to the rescue. In a way, QEMU is similar to VirtualBox, VMWare or Citrix Xendeskop except it can support multiple architectures. I’ll show how to run Debian Lenny ARMEL in QEMU on a computer running Ubuntu 10.10 (aka Ubuntu Maverick Meerkat). QEMU (Qemu-kvm) Installation First install qemu-kvm and qemu-kvm-extras (the latter contains qemu-system-arm): sudo apt-get install qemu-kvm qemu-kvm-extras Let’s check qemu version: jaufranc@CNX-TOWER:~/edev$ qemu –version QEMU PC emulator version 0.12.5 (qemu-kvm-0.12.5), Copyright (c) 2003-2008 Fabrice Bellard Debian ARM Installation in QEMU Create a directory to store the required files for the emulator and  download the Debian Lenny ARMEL kernel (vmlinuz) and debian installer rootfs (initrd.gz): mkdir […]

Detecting Code Duplicates in C/C++ with CCFinderX

Over time, as your source code repository and software team(s) grow, you may have more and more code that just does the same thing. This is obviously not desirable since several persons work on code doing the same thing, so you just pay twice for the cost for development and debugging. To avoid this issue, proper team communication and management must be in place (e.g. discourage copy/paste of source code, use a common source control repository..). However, it might be difficult to always detect where the code duplicates are. Luckily, code duplication analysis tools such as CCFinderX are here to help. As described on CCFinderX website: CCFinderX is a code-clone detector, which detects code clones (duplicated code fragments) from source files written in Java, C/C++, COBOL, VB, C#. CCFinderX is a major version up of CCFinder, and it has been totally re-designed and re-implemented from scratch. Its new design and […]

Languages, Unicode and Charset

If your application needs to support multiple languages or if it needs to support languages with different character sets such as simplified Chinese (GB2312, GBK, GB18030, HZ,..) or traditional Chinese(BIG5, HKSCS, EUC-TW) you’ll need to make yourself familiar with Unicode and the different character sets. In this article, we’ll focus on introducing character sets,  manipulating and converting charsets and the possible challenges you may encounter while handling Unicode text files. If you plan to support multiple languages, you’ll also have to internationalize your application, for example by using Po files for different languages, a Po file editor and possibly have the translations done in launchpad if your project is open source. But this would be another subject. Go for Unicode If you are building a new application make sure its structure is based on Unicode (UTF-8, UCS-2, UTF-16 or UTF-32 ) since those charsets can handle most written languages (UTF: […]