Home > Freescale Kinetis, Hardware, Linux > Getting Started with Emcraft Systems Cortex M3/M4 Starter Kits Running uCLinux

Getting Started with Emcraft Systems Cortex M3/M4 Starter Kits Running uCLinux

A few months ago, I wrote a post about running uCLinux on Cortex M3/M4. Since then I’ve had the opportunity to play a with Cortex M3  & M4 boards capable of running Linux, as last week, I received Emcraft Systems Freescale K70 Starter Kit together with their MicroSemi (previously known as Actel) Smartfusion SoM.

Today, I’ll show some pictures of the baseboard and modules I received in the kit, and some details about the documentation and how to get started with the modules.

Unboxing Pictures

Here’s the baseboard with Ethernet, USB interface using USB-UART bridge connected to the UART0, JTAG connectors (P3 and P5), two push-buttons and a breadboard for easy access to unused signals (ADC, I2C, SPI, UART and GPIOs). P4 and P6 are the sockets to plug in the SoM.

Emcraft Systems Baseboard (Click to Enlarge)

There is a lithium-ion battery (CR2016) at the back of the board for the RTC clock.

Back of Emcraft Systems Baseboard (Click to Enlarge)

As previously mentioned, I’ve received 2 SoMs, but I’ve just taken pictures of Freescale K70 system on module, as both are similar. The tiny module comes with Freescale K70 Cortex M4 MCU (PK70FN1M0VMJ12), 64 MB LPDRAM and 128 MB NAND Flash.

Freescale K70 System on Module

Emcraft Systems Freescale K70 SoM (Click to Enlarge)

There are no active components on the back of the module, just capacitors, resistors, a crystal oscillator and P1/P2 connectors to interface with the baseboard.

Back of Freescake K70 System on Module

MicroSemi Smartfusion SoM comes with with MicroSemi Cortex M3 MCU (A2F500M3G), 16 MB PSRAM and 8 MBytes NOR Flash.

The starter kit also ships with a mini USB to USB serial cable that is used to power the board and debug via the serial interface. There is no documentation provided with the package, because once you buy a starter kit, you’ll be able to download the BSP and documentation on Emcraft website.

Documentation

Emcraft Systems provides lots of good documentation. However, the first time, it’s a little confusing because you don’t really know where to start. A README file or Quick Start Guide to explain what each file is for, and possibly a picture with the description of he baseboard would have be useful.

For Freescale K70 SoM, you can download one file (linux-k70-1.6.0.zip) that contains the following:

  • k70-som-bsb-ha.pdf – Kinetis K70 System-On-Module (SOM) Baseboard Hardware Architecture
  • k70-som-ha.pdf – Kinetis K70 System-On-Modules (SOM) Hardware Architecture
  • linux-cortexm-um-1.6.0.pdf – Linux Cortex-M User’s Manual
  • linux-K70-1.6.0.tar.bz2 – The actual Freescale K70 Linux BSP
  • linux-K70-SOM-bspg-1.6.0.pdf – BSP (Board Support Package) Guide for Emcraft Systems K70 SOM Board
  • linux-TWR-K70F120M-bspg-1.6.0.pdf – BSP (Board Support Package) Guide for Freescale TWR-K70F120M Board
  • networking.uImage – Kernel image for network boot
  • SOM-BSB-1A-bom.xls / SOM-BSB-1A-schem.pdf – Schematics and BoM for the baseboard
  • u-boot-k70-som.bin – U-Boot image for K70 SoM
  • u-boot-twr-k70.srec –  U-Boot image for Freescale K70 tower module

For MicroSemi Smartfusion SoM, there is also one file to download (linux-a2f-1.6.0.zip) which contains the following:

  • a2f-actel-dev-brd-F.zip – Libero project for the Actel’s SmartFusion Development Board
  • a2f-hoermann-1_0.zip – Libero project for the Hoermann IMG’s SmartFusion Embedded Evaluation Board
  • a2f-lnx-evb-2A.zip – Libero project for the A2F-LNX-EVB-2A board
  • a2f-som-1a.zip – Libero project for the A2F-SOM-FG484 (That’s the one we need)
  • a2f-som-ha.pdf – SmartFusion SOM (System-On-Module) Hardware Architecture
  • linux-A2F-1.6.0.tar.bz2 – The Actel Smartfusion Linux BSP
  • linux-A2F-HOERMANN-BRD-bspg-1.6.0.pdf – BSP (Board Support Package) Guide for Hoermann-IMG SmartFusion Embedded Board
  • linux-A2F-LNX-EVB-bspg-1.6.0.pdf – BSP (Board Support Package) Guide for Emcraft Systems A2F-LNX-EVB Board
  • linux-A2F-SOM-bspg-1.6.0.pdf – BSP (Board Support Package) Guide for Emcraft Systems SmartFusion SOM Board
  • linux-Actel-DEV-BRD-bspg-1.6.0.pdf – BSP (Board Support Package) Guide for Microsemi A2F500-DEV-BRD Board
  • linux-cortexm-um-1.6.0.pdf – Linux Cortex-M User’s Manual
  • networking.uImage – Kernel image for network boot
  • SOM-BSB-1A-bom.xls / SOM-BSB-1A-schem.pdf – Schematics and BoM for the baseboard
  • som-bsb-ha.pdf – SmartFusion SOM (System-On-Module) Baseboard Hardware Architecture

The files contain documentation and software for several hardware platforms, as Emcraft does not only support their own modules, but also other boards such as Freescale TWR-K70F120M board and Hoermann-IMG SmartFusion embedded board.

Accessing the command line

A demo is preloaded on the starter kit, and accessing the command line is straightforward:

  1. Connect the mini USB to USB cable to the target board and your computer.
  2. Wait until the driver installation to complete for the first time. A new COM port should show up. (In my case COM9 in Windows XP).
  3. Start a 115,200 bps serial connection with putty / hyperterminal in Windows or minicom / screen in Linux
  4. That’s all

The boot is very fast and you can have access to the command line in less than 2 seconds.

Here are the MCU details.

  • For Freescale K70 SoM:
~ # cat /proc/cpuinfo
Processor       : ARMv7-M Processor rev 1 (v7ml)
BogoMIPS        : 112.23
Features        : swp half thumb fastmult vfp edsp
CPU implementer : 0x41
CPU architecture: ?(11)
CPU variant     : 0x0
CPU part        : 0xc24
CPU revision    : 1

Hardware        : Freescale Kinetis
Revision        : 0000
Serial          : 0000000000000000
  • For MicroSemi SmartFusion SoM
~ # cat /proc/cpuinfo
Processor       : ARMv7-M Processor rev 1 (v7ml)
BogoMIPS        : 13.82
Features        : swp half thumb fastmult edsp
CPU implementer : 0x41
CPU architecture: ?(11)
CPU variant     : 0x1
CPU part        : 0xc23
CPU revision    : 1

Hardware        : Actel A2F
Revision        : 0000
Serial          : 0000000000000000

Busybox has been cut to the bare minimum in the demo image:

   ~ # busybox
        [, [[, cat, chmod, chown, cp, cttyhack, date, df, dnsdomainname, echo,
        flash_eraseall, flashcp, halt, hostname, httpd, hush, ifconfig, init,
        kill, ln, login, ls, mkdir, mount, mv, netstat, nslookup, ntpd, ping,
        poweroff, ps, pwd, reboot, rm, route, sh, sleep, telnet, telnetd, test,
        traceroute, udhcpc, umount, vi, wc, wget

But this is not a problem since you can also build your own with extra commands if needed.

Only about 4 MB of system memory is used in the Kinetis SoM:

cat /proc/meminfo
MemTotal:          63788 kB
MemFree:           59716 kB

That leaves plenty of memory for running the application.

Power Consumption

One of the main advantage of those boards is their low power consumption, so I measured the intensity for both modules (via JP1 jumper), right after the boards are booted and run busybox:

  • Freescale K70 SoM: 115 mA  or  about 380 mW (115 mA * 3.3 V)
  • MicroSemi SmartFusion SoM: 101 mA or about 330 mW

I suppose power consumption can be reduced by different methods such as adjusting the clock speed, but I haven’t studied this into details. It should be expect that the MicroSemi SoM consumes less than Freescale K70, as the latter runs at 120 MHz vs 100 MHz for the former.

Setting up the development environment,  building and running Linux and busybox

I’ve setup my Linux machine for development by following chapter 4 “Linux Cortex-M Software Development Environment” in linux-cortexm-um-1.6.0.pdf which is publicly available for download:

tar xjvf linux-K70-1.6.0.tar.bz2
cd linux-cortexm-1.6.0/tools
wget http://www.codesourcery.com/sgpp/lite/arm/portal/package6503/public/arm-uclinuxeabi/arm-2010q1-189-arm-uclinuxeabi-i686-pc-linux-gnu.tar.bz2
tar xvfj arm-2010q1-189-arm-uclinuxeabi-i686-pc-linux-gnu.tar.bz2
cd ..
source ACTIVATE.sh

That’s all you need to configure your build machine.

You can then select one of the existing project and build the kernel and busybox. I

cd projects/networking/
make

Setup a tftp server. Here’s the command I used in Ubuntu 12.04:

sudo aptitude install tftpd

Copy the image to the default tftp server directory:

sudo cp networking.uImage /srv/tftp

Back to the board serial console, reboot the board and press a key to enter U-boot and configure it to start your newly built image:

K70-SOM> setenv ipaddr 192.168.0.200
K70-SOM> setenv serverip 192.168.0.102
K70-SOM> setenv image networking.uImage
K70-SOM> saveenv
K70-SOM> run netboot

This will download your newly built image via TFTP and start it.

If you are interested in these development boards, you can buy them on Emcraft Systems online store. Kinetis K70 System-On-Module Starter Kit is available for 99 USD and SmartFusion System-On-Module Starter Kit for 126 USD. Regular prices are respectively 159 and 176 USD, but the kits are discounted until the end of June. You need to ask for a discount coupon to a2f-linux-support at emcraft.com. It’s also possible to buy the modules separately without the baseboard.

The modules are available in quantities (500 units) for 69 USD (Microsemi SmartFusion SoM) and 49 USD (Freescale Kinetis K70 SoM) per piece.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter