Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Embedding Linux For An Automotive Environment

on

  • 3,816 views

Running Linux on an embedded node in the automotive environment adds a number of new challenges that have to be addressed. One of the problems we have been working on is start-up times. We have ...

Running Linux on an embedded node in the automotive environment adds a number of new challenges that have to be addressed. One of the problems we have been working on is start-up times. We have trimmed the start-up time of the Linux kernel in less than 0.2 seconds on low end hardware. This presentation will look into and discuss some of the trade-offs we did to get the system starting up quicker on a limited hardware.

In an automotive environment many systems have to have there communication up within factions of a second, as the car get more complex more CPU power is needed in many different places. Traditional automotive solutions have been using two CPU’s on each node one small quick starting to handle the communication and one for the applications. If only one CPU can get the main applications starting quick enough that can make the hardware both simpler and cheaper.

About Mecel
Mecel is a systems and software development company with more than 25 years of experience in developing solutions for the automotive industry. We specialize in in-car communication technologies, user interface development and consumer device interaction.

Statistics

Views

Total Views
3,816
Views on SlideShare
3,644
Embed Views
172

Actions

Likes
0
Downloads
68
Comments
0

1 Embed 172

http://www.mecel.se 172

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Mallanvisningar generellt Förstasidan med vägen är valfri. Mallens färgschema bör följas – välj mellan Mecelblått, rött, gult, grått, turkos (utöver svart) för diagram, illustrationer mm. Huvudrubriker ska vara versala – tips: ändra versalgemen text genom att markera den och klicka Shift + F3 en eller två gånger. Ett kartotek med loggor, pilar och bilder ligger i L:DEPARTMENTSBRAND MANAGEMENTPowerpoint Fråga gärna Brand Management (Carina Å x4403) om hjälp med att fixa till viktiga presentationer för kunder! Namn på presentationen & datum läggs in under View > Header and Footer (inte på Slide Masten). Datumet får man trixa med. Man behöver gå in på View > Master > Slide Master , klicka på datumet i sidfoten och sedan Insert > Date and Time > välj Language English och välj datumformat så det blir t ex ”10 November 2008” för presentationer på engelska. Sedan kan man välja att datumet uppdateras eller ligger fast. Uppdatering av presentation från gammal mall När man kopierar in bilder från en gammal presentation kan man behöva klicka på Layout längst upp i högra hörnet så sidfältet med Slide Layout kommer upp. Vi använder i princip bara de översta Text layouts. Om man sätter pekaren i högra kanten av en sådan, t ex bredspaltsliden med punktlista kommer en liten blå kant med en pil upp. Där kan man klicka på Reapply layout så lägger sig rubrik + textruta på rätt ställe.
  • Remove this slide? Make agenda
  • * Mecel, We make vehicles communicate with dependable automotive software, giving our customers a technological advantage. We are able to give our customers a competitive edge by introducing new technology in a dependable and cost-effective way. Mecel is active in concept, advanced and product engineering for the automotive industry. We specialize in the development of electronic systems and software for automobiles, trucks, buses, and their infrastructure. Delphi is a leading global supplier of electronics and technologies for automotive, commercial vehicle and other market segments. Operating major technical centers, manufacturing sites and customer support facilities in 30 countries, Delphi delivers real-world innovations that make products smarter and safer as well as more powerful and efficient. Picea – Autosar Betula – Bluetooth Populus - HMI
  • Remove example? As I cant think of any to talk about.
  • CPU: MPC5121e rev. 2.0, Core e300c4 at 400 MHz, CSB at 200 MHz Board: Autonomy rev. A (CPLD rev. 0x0b), bootloader_info=0xfff2fd38 I2C: ready DRAM: 128 MB FLASH: 64 MB Image Name: Linux-2.6.24.6 Blueetooth, GPS, Can, Touchscreen.
  • * AUTOSAR (AUTomotive Open System ARchitecture) is an open and standardized automotive software architecture, jointly developed by automobile manufacturers, suppliers and tool developers. Delphi Premium member Doug Welk form delphi is in the board of genivi, bmw, gm, intel, arm, Windows mostly IVI, same as Genivi, Ford.
  • - Filesystem: Depending on what lesystem that is used time can vary considerably. The rst conguration used the lesystem JFFS2. This lesystem takes more time to mount than for example Cramfs or AXFS. - Quiet: During a normal boot the kernel usually prints out messages to show how the boot process progresses. These prints can be disabled by passing a ag in the arguments line that the bootloader passes to the kernel. Depending on how much output that will be printed the savings here vary but generally the time gain will be around 0.3 seconds. - BogoMIPS: BogoMIPS is a hardware dependent value that is calculated during boot of the Linux kernel. It is possible to statically pass this value in the boot argument line to the kernel so that it is not calculated each time. This naturally gives some time savings. - Disabling Legacy PTY: A PTY or pseudo terminal is a software device. There is an option in the kernel cong for enabling these legacy devices but disabling them will not cause any problems on most systems including our system. If they are enabled they will signicantly increase the boot time. - Remove Hotplug: Hotplug lets the user plug in devices and use them immediately without manually conguring them. In this case nothing is plugged in and the hardware is specic and hotplug is therefore not needed. This is an option that is disabled in the kernel before compilation. - Remove MTD: Memory Technology Device is a type of device le used for interaction with ash memory. Removing this from the kernel and statically specify the address in ash will reduce the boot time. - Replace Init: In the end of the boot the kernel will start a program named init which will spawn all other processes. This step takes some time and in a nal system this would be adapted to the actual needs through a custom init program. In our case we just replaced it with a simple shell to make the boot progress, beyond this step.
  • clementes   (Browse Tux)
  • 4.2.2 Table with Results Conguration Before shell is started (s) After shell is started(s) Unoptimized with JFFS2 5.428 6.207 Optimized with JFFS2 2.771 2.964 Optimized with Cramfs 2.627 2.814 Optimized with AXFS 1.451 1.576 Optimized XIP with AXFS 0.189 0,360

Embedding Linux For An Automotive Environment Embedding Linux For An Automotive Environment Presentation Transcript

  •  
  • Embedding Linux For An Automotive Environment
    • Who is I, Anders Arnholm, What is Mecel
    • What differs an embedded system to a conventional desktop
    • What differs automotive from other embedded systems
    • Some example automotive solutions
    • Kernel start up optimizations, an example
    • Don’t forget to ask
  • Me, Myself and I
  • Mecel
  • Embedded vs Desktop
    • What is an embedded system
    • How does embedded differ
    • Some words on requirements for Embedded and real-time computing
  • Embedded system
    • An  embedded system  is a computer system designed to perform one or a few dedicated functions often with real-time computing constraints. It is  embedded  as part of a complete device often including hardware and mechanical parts. By contrast, a general-purpose computer, such as a personal computer (PC), is designed to be flexible and to meet a wide range of end-user needs. Embedded systems control many devices in common use today.
    • From Wikipedia, the free encyclopedia
  • Few functions, Similar/Same Hardware
    • Solves one or a few problems
      • Mobile phone, smart phones moves into general computing
      • GPS Navigator
      • Engine Control Module
    • Hardware and Software one bundle
      • Can test on all hardware
      • Can test all software configurations
      • Expected to always work
  • Real Time Myth? Or Fact?
    • Real time
      • Real-time computing, have a fixed deadline. An event in the system need to have an answer within a fixed time. The idea is that the result must arrive in time or the result is invalid. This have to happened regardless of system load
      • Often one know it’s a real time constraint but not the real limit
      • Many system run worst case scenario all the time
    • Jitter problems
      • Jitter are small variations of a periodic signal. Many embedded systems work on tasks where the jitter have big effects on the result. Often the results of jitter can be bigger than the real time needs
      • Effects audio
      • Communications networks and busses
  • Automotive vs Embedded
    • The automotive industry designs, develops, manufactures, markets, and sells motor vehicles, and is one of the world's most important economic sectors by revenue.
    • Usually, Cars, Light Commercial Vehicles, Heavy Commercial Vehicles and Busses.
    • All cars are an embedded systems
    • Automotive industry are conservative
    • Automotive industry are regulated
    • Electronic Control Unit (ECU)
  • Example System, Gauge Cluster
    • Main CPU Freescale i.MX51 600 MHz Cortex-A8 + Linux
    • GPU
    • Renesas V850 + embedded system for communication
    • Media Oriented Systems Transport (MOST) Connecting to mediaplayer to show some information for the driver in the cluster and hud display.
    • CAN Input for car information such as speed, RPM, etc
    • Local Interconnect Network (LIN) To connect with the physical keys for user interaction such as button on the steering wheel.
  • Example System, Communications node
    • Automotive communications busses are limited
    • Either slow or expensive
    • All systems use a mix of busses
    • Node connected to communications busses, and transfers messages mostly to and from the HMI for the driver.
    • AutoSAR with a small real time OS
  • Zodiac Infotainment platform
    • 2009 Demo platform
    • Based on Genivi IVI – Russellville
    • Using Mecel Populus
    • Using Mecel Betula
    • Youtube video player
    • Internet radio
    • Podcast support
    • Speech recognition
  • Demo - Autonomy
    • CPU: Freescale (PowerPC) - MPC5121e
    • 128 Mb RAM
    • 64 MB Flash
    • Touch screen
    • Bluetooth
    • GPS
    • Can interface
  • Embedded solutions for Automotive
    • AUTOSAR
    • Linux
      • Genivi Alliance – Delphi is Founding and Charter member
      • LTIB – Linux Target Image Builder, Used by Freescale
      • Buildroot – Also commonly used
    • Windows Embedded Automotive
    • QNX
    • Custom software
  • Optimizing Linux start-up time
    • Focus on kernel start up
    • We like to have a one cpu solution
    • For CAN communication start up time critical target < 100 ms
    • Low end system
    • OMAP OSK5912
    • ARM9 – 192 Mhz
    • 32 Mb NOR Flash
    • 32 Mb RAM
  • Optimize the kernel
    • Quiet output
    • Pre-calculate bogomips
    • Remove Legacy PTY
    • Remove Hotplug
    • Remove MTD
    • Remove Init
    • Select filesystem
  • Flash Filesystems
    • JFFS2
      • Compressed filesystem
      • Standard fs for flash drives
      • Supports NAND flash devices
    • Cramfs
      • Compressed filesystem
      • Can be used without decompression
      • Linear Cramfs support application XIP
    • AXFS
      • Compressed filesystem
      • Supports XIP
      • Read only
  • Execute in Place
    • Don’t copy the code into ram memory
    • Optimize code for speed not size
    • Flash slower that ram
    • For applications need special filesystem, Linear CRAMFS or AXFS
    • Read only FS
  • Boot times 6% 25% 45% 47% 100% 3% 27% 48% 51% 100% 0.360 1.576 2.814 2.964 6.207 After shell is started 0.171 0.189 Optimized XIP with AXFS 0.125 1.451 Optimized with AXFS 0.187 2.627 Optimized with Cramfs 0.193 2.771 Optimized with JFFS2 0.779 5.428 Unoptimized with JFFS2 Shell start time Before shell is started Conguration