uClinux on Cortex-M3/M4 MCU: The Costs, Performance and Power Consumption

I previously wrote about different options available to run Linux on Cortex M3 & M4 Microcontrollers, and more recently Vladimir Khusainov, co-founder and Director of Engineering at Emcraft Systems,wrote a longish article entitled “Practical Advice on Running uClinux on Cortex-M3/M4” on electronicdesign.com, where he explains how SoM are usually selected, the costs of running uClinux on Cortex M3/M4 MCUs such as Freescale K70 or STmicroelectronics STM32F2/F4, as well as performance and power consumption considerations. First, Vladimir addresses one comment that says there’s basically no use for uClinux on Cortex M3/M4 MCU, since external memory is needed and an ARM7/ARM9 modules (with MMU) can be purchased for almost the same price.  There are 2 counter arguments to this point of view: In practice, customers usually select an hardware platform first, then think what OS can be used on the platform. For example, if a company decided to use an hardware based […]

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. There is a lithium-ion battery (CR2016) at the back of the board for the RTC clock. As previously […]

Emcraft Open Sources uCLinux and U-boot for Cortex M3 and M4 MCUs

Emcraft Systems has open sourced its ports of U-Boot and uClinux for Cortex-M3 and Cortex-M4 which are available on github at https://github.com/EmcraftSystems. This release supports the following platforms: ST Micro STM32F2 NXP LPC17XX Actel  SmartFusion Freescale Kinetis You can check the source code as follows: uCLinux: git clone git://github.com/EmcraftSystems/linux-emcraft.git U-boot: git clone git://github.com/EmcraftSystems/u-boot.git The company has also designed systems on module (SoM) with enough memory to run Linux with Cortex M3/M4 micro-controllers: Freescale Kinetis K70 SOM Actec SmartFusion SOM ST Micro STM32 SOM You might find more details on building/using u-boot or uClinux on EmCraft documentation page (especially linux-cortexm-um-1.4.1.pdf) and you may want to check EmCraft website for details on available hardware and BSP for Cortex M3/M4 solutions. Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later […]

uClinux Running on Freescale Kinetis K70 MCU (Cortex-M4) Module

Last year, I posted about Linux for Cortex M3 & M4 Micro-controllers and noted it was difficult to find cost effective Cortex-M based boards able to run uClinux or Linux (RAM being the main issue). Freescale TWR-K70F120M  is a module based on Kinetis K70 MCU (Cortex M-4) with plenty of RAM (128MB) to run Linux or uClinux. It is available for 109 USD or 179 USD with Freescale Tower system (TWR-K70F120M-KIT). Here are the key features of the module: Freescale MK70FN1M0VMJ12 Cortex-M4 MCU @ 120 MHz (Product Brief) Touch Tower Plug-in Socket General purpose Tower Plug-in (TWRPI) socket On-board JTAG debug circuit (OSJTAG) with virtual serial port 128 MB DDR2 SDRAM memory 256 MB SLC NAND flash memory Three axis accelerometer (MMA8451Q) Potentiometer Micro-SD Card slot I could not find an open source uClinux implementation for Kinetis K70, but emCraft has a Linux Board Support Package (BSP) for the Freescale TWR-K70F120M-KIT […]

Free Electrons Releases Embedded Linux Training Materials

Free Electrons, a technology company offering embedded Linux consulting services as well as embedded Linux training, has released their training materials for Linux and system development for embedded systems including their Lab sessions. The training materials are available in their git repository in LaTeX format. If you want the latest documentation in PDF, you’ll need to build it by following those steps: Install the required packages:

Get the embedded Linux slides source:

Build the training materials:

The last three commands will generate the PDF files respectively: full-sysdev-labs.pdf – Embedded Linux Training Lab Book (58 pages) with instructions for the IGEPv2 board based on on TI DM3730 or OMAP3530. full-kernel-labs.pdf – Linux kernel and driver development training Lab Book (37 pages) full-sysdev-slides.pdf – Embedded Linux system development presentation slides (506 pages) Free Electrons also have slightly older version of full-kernel-labs.pdf and full-sysdev-slides.pdf available for download as PDF so […]

Pengutronix uCLinux 3.2 for Energy Micro EFM32 Cortex-M3 Gecko MCUs

Energy Micro and Pengutronix announced that they will be demonstrating µClinux for Cortex-M3 on the EFM32 Gecko range (Leopard and Giant) of MCU during  Embedded World Conference 2012 on 28 February – 1 March 2011 in Nuremberg, Germany. Pengutronix’s port of µClinux features the Linux 3.2 kernel, providing the cost and time-to-market benefits of Linux operating system, while maintaining low current consumption of just 1.6mA when in idle mode. The company explains that using µClinux reduces design cycles and accelerates time-to-market by giving the designer access to ready-made system functions such as IP connectivity, file systems, and multi-tasking. Users can also employ the broad range of free software and drivers available as open source, within a robust, portable open source framework. The teaser video (below) shows that the demo platform (Giant Gecko Development Kit?) uses 4 MB of RAM (755 KB used after boot-up) and the MCU delivers 9.07 Bogomips. […]

Linux for Cortex M3 & M4 Microcontrollers

There are plenty of low cost Linux development boards based on Cortex A8 or A9 such as the Beaglebone, as well as some devkits based on ARM7 and ARM9 such as SAM9 development kits , but if your application is cost and/or energy sensitive you can also switch to micro-controllers using Cortex M3 or M4 based development boards such as Emcraft SmartFusion devkits. You can run a functional uCLinux system with 1MB of RAM and 1MB of flash including the TCP/IP stack. You need to use uClinux and not directly Linux, because the Cortex M3 doess not have a Memory Management Unit (MMU) and only a Memory Protection Unit (MPU). This can bring some interesting software development challenges such as (apparently random) kernel panics, the lack of fork, memory fragmentation and more. You can check out http://kernel.org/pub/linux/libs/uclibc/Glibc_vs_uClibc_Differences.txt for the main differences between uClibc and Glibc. The instructions to patch and […]

Web Servers for Embedded Systems

Many network-enabled embedded devices do not have displays and configuration must be done via a webpage. This is the case for modems and routers and possibly for  IP cameras,  networked printers… With a web server, there is no need to develop specific drivers and/or applications for computers connected to the device. You just need to write HTML/Javascript pages and possibly CGI scripts. I’ve already posted a blog post about mathopd for ARM no-mmu targets as this HTTP server is ideal for uCLinux since it does not fork. Today, I’ll list some other HTTP servers that may also be used with embedded processors. Tiny/Turbo/Throttling HTTP server thttpd is a lightweight HTTP server implementing the HTTP/1.1 (minimum) and simple to configure and run. Its executable size is 88K. The description says it does not fork, but fork is called in the source code, so I do not know what that means… It’s […]