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

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