12
Arnd Bergmann, LCU14 LCU14-109: Embedded Systems: How Low Can You Go?

Lcu14 109- embedded systems- how low can you go-

  • Upload
    linaro

  • View
    676

  • Download
    1

Embed Size (px)

DESCRIPTION

LCU14-109: Embedded Systems: How Low Can You Go? --------------------------------------------------- Speaker: Arnd Bergmann Date: September 15, 2014 --------------------------------------------------- ★ Session Summary ★ ARM Linux has traditionally been the the operating system of choice for the very low end of embedded systems, with very low power consumption and tight constraints on memory size and CPU speed. We still support machines based on ARM7TDMI and Cortex-M3 with as little as 2MB of RAM, but there is a disconnect between the stagnating upstream contributions for systems like this and growing interest for using Linux in ultra-low power and low-cost scenarios like wearable computing or the "Internet of Things". In my presentation, I will talk about some of the tricks that used to scale Linux to the absolute low-end, such as running without an MMU or executing the kernel from NOR flash, and areas that could use more work, such as upstream ports for Linaro member platforms (STM32, Kinetis, ...) and improving kernel support for low-memory scenarios. In the discussion, I want to find out where people in the audience think we should be heading in ARM Linux. Are we leaving the low-end market to MIPS, ARC, Blackfin and MSP430 by removing support for MMU-less systems and small-memory configurations, or should we invest more time in these systems? --------------------------------------------------- ★ Resources ★ Zerista: http://lcu14.zerista.com/event/member/137712 Google Event: https://plus.google.com/u/0/events/cftm2ub3omv707k2hr22ej2p3h8 Presentation: http://www.slideshare.net/linaroorg/lcu14-109-embedded-systems-how-low-can-you-go Video: https://www.youtube.com/watch?v=TvM1wcJT0p0&list=UUIVqQKxCyQLJS6xvSmfndLA Etherpad: http://pad.linaro.org/p/lcu14-109 --------------------------------------------------- ★ Event Details ★ Linaro Connect USA - #LCU14 September 15-19th, 2014 Hyatt Regency San Francisco Airport --------------------------------------------------- http://www.linaro.org http://connect.linaro.org

Citation preview

Page 1: Lcu14 109- embedded systems- how low can you go-

Arnd Bergmann, LCU14

LCU14-109: Embedded Systems:How Low Can You Go?

Page 2: Lcu14 109- embedded systems- how low can you go-

Small ARM Systems past and present

Sony XPeria Z2:3GB RAM, Krait

$33 Intex Cloud FX128MB RAM, Cortex-A5

WiFI SDIO card32MB RAM, ARM926

Psion Series 5,8-16MB RAM, ARM710

Linksys NSLU2,32MB RAM, XScale

Apple iPod, 32MB RAM,ARM7TDMI (no MMU)

D-Link DIR-61532 MB RAM, Feroceon

Page 3: Lcu14 109- embedded systems- how low can you go-

Typical embedded system• Classic use case for ARM (also MIPS, PowerPC, …)• Driving factor: cost reduction• Power consumption: 1W-10W

Typical Implementation:• ARM926EJ or Cortex-A5 CPU• Standard kernel, custom configuration• Busybox, uhttpd, dropbear• Distro: OpenEmbedded, OpenWRT, Buildroot, …• libc: uClibc, musl, dietlibc, newlib, …

Scaling down to 32MB of RAM

Page 4: Lcu14 109- embedded systems- how low can you go-

Large microcontroller• Upstream support for EFM32 and AT91x40• Driving factor: Power usage• Power consumption: 100mW-1W

Typical Implementation:• ARM7TDMI or Cortex-M3 CPU, no MMU!• (P)SRAM rather than DRAM• Customized user space• Execute-in-place kernel in NOR flash

Scaling down to 2MB of RAM

Page 5: Lcu14 109- embedded systems- how low can you go-

Single-chip microcontroller system• Experiment done by Vitaly Wool• Running on STM32F29 internal SRAM+NOR• Power consumption: < 100mW

Implementation:• Highly customized kernel• XIP kernel and R/O file system• RW data compressed to fit on flash• Very little user space

Scaling down to 256KB of RAM

Page 6: Lcu14 109- embedded systems- how low can you go-

Alternatives:• Open source: FreeRTOS, eCos, RTEMS, Minix3, BSD…

• Proprietary RTOS

Linux advantages:• Developer familiarity• Driver support• Network stack

Linux Disadvantages:• Code size

Why Linux

Page 7: Lcu14 109- embedded systems- how low can you go-

Alternatives:• With MMU: MIPS, PowerPC, OpenRISC, x86, m68k, ...• Without MMU: C6x, Blackfin, Xtensa, Microblaze, …

ARM Advantages:• Widely available from many vendors• Developer community• Linaro

ARM Disadvantages:• No MMU on low-power cores

Why ARM

Page 8: Lcu14 109- embedded systems- how low can you go-

ARMv4T/V5E:• ARM7TDMI almost dead• ARM9TDMI, ARM740T, ARM940T, ARM946E unused• Out-of-tree users on 2.4.xx

ARMv7-R/M:• EFM32 support recently added• ARMv7-R patches existed but were never merged• Out-of-tree users on 2.6.33

NOMMU mode for normal v5/v6/v7-A CPUs• Sometimes builds and works, largely untested

State of NOMMU-Linux on ARM

Page 9: Lcu14 109- embedded systems- how low can you go-

Kernel size growth on ARMvm

linux

siz

e in

kilo

byte

s

Page 10: Lcu14 109- embedded systems- how low can you go-

• What is the smallest ARM system that Linaro and/or the upstream kernel community should care about?

• Should we work on actively making kernels smaller?

• Should we do more testing on MMU-less systems or remove the ones we don’t use?

• Are there any Cortex-M platforms that need upstream support?

• Is anybody still using ARM7TDMI on recent kernels?

Discussion

Page 12: Lcu14 109- embedded systems- how low can you go-

More about Linaro Connect: http://connect.linaro.orgMore about Linaro: http://www.linaro.org/about/

More about Linaro engineering: http://www.linaro.org/engineering/Linaro members: www.linaro.org/members