Linux SVDS BSP - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Linux SVDS BSP

Description:

Gentoo embedded Linux distribution. Produce LOTS of ... Getting started with gentoo ... Building a minimal embedded distribution with gentoo. Generally: ... – PowerPoint PPT presentation

Number of Views:101
Avg rating:3.0/5.0
Slides: 25
Provided by: Thom104
Category:

less

Transcript and Presenter's Notes

Title: Linux SVDS BSP


1
Linux SVDS BSP
  • By Dave Thomas

2
Purpose To Port Linux OS to Custom Board
  • Boot operating system
  • Make hardware available
  • Communicate with the board before, during, and
    after OS is booted.
  • Perform as much development and communication as
    possible on host PC
  • Develop a custom driver specific to our hardware

3
Overview of the Hardware
  • Board Description
  • ARM-based Intel PXA-255
  • 64MB Flash Memory
  • 10/100 Ethernet
  • LCD
  • Serial I/O
  • FPGA

4
Overview of the Hardware
5
PXA 255
6
Why Linux?
  • Rich set of tools
  • Very large support community
  • Open source is free
  • Standard for smart embedded systems
  • Sex appeal

7
Real-Time Linux
  • To digress this is not an express purpose of our
    project
  • Linux 2.4 not real-time but
  • Kernel can be improved
  • Employ a real-time microkernel for hard real-time
  • Linux 2.6
  • O(1) scheduler provides good soft real-time
  • MVL 2.6.10 advertises 65 us maximum preemption
    latency

8
Challenges
  • Procedural
  • Cycle time for testing changes
  • Detecting changes made by earlier developers
  • Technical
  • Network booting
  • Understanding the Linux build environment
  • Porting a large software project to ARM
  • Locating the piece of code

9
Methods
  • Gentoo embedded Linux distribution
  • Produce LOTS of documentation
  • Old-fashioned UNIX tools
  • diff Naur
  • patch p0
  • grep -r

10
Methods
  • Program bootloader firmware and FPGA through JTAG
    interfaces

11
Methods
  • Logic analysis with Agilent 54622D

12
Key Milestones Achieved
  • Armboot
  • Linux 2.4 kernel and modules
  • Network interface
  • Boot-from-LAN (kernel and NFS)
  • Filesystem
  • Toolchain
  • X-Windows
  • Port to 2.6

13
What is a Cross-Toolchain?
  • Binutils
  • Binutils is a collection of binary utilities,
    including
  • ar (for creating, modifying and extracting from
    archives), as (a family of GNU assemblers),
  • gprof (for displaying call graph profile data),
  • ld (the GNU linker),
  • nm (for listing symbols from object files),
  • objcopy (for copying and translating object
    files),
  • objdump (for displaying information from object
    files),
  • ranlib (for generating an index for the contents
    of an archive),
  • size (for listing the section sizes of an object
    or archive file),
  • strings (for listing printable strings from
    files),
  • strip (for discarding symbols), and addr2line
    (for converting addresses to file and line).
    rpm qi binutils
  • Static GCC
  • C Library
  • Final, full GCC

14
What is a filesystem?
  • All the software for the system that the OS needs
    to boot to a usable system
  • UNIX init process
  • busybox
  • Embedded Linux include
  • MontaVista Hard Hat (not Free)
  • Familiar.HandHelds.org (for HP iPAQ)
  • SnapGear (just came up on our radar)
  • emDebian (not ready for mass consumption yet)

15
Getting started with gentoo
  • Get the experimental stage3 and nfsmount it as
    root filesystem on your target
  • For our board its stage3-arm-uclib-softfloat
    (armeb is big-endian)
  • On your host,
  • Make.conf
  • CHOST"armv5l-softfloat-linux-uclibc"
  • CTARGET"armv5l-softfloat-linux-uclibc"
  • CBUILD"i686-pc-linux-gnu"

16
Building a minimal embedded distribution with
gentoo
  • Generally
  • ROOT/newroot (ex /dev/shm) emerge buildpkg
    ltpkgnamegt
  • To build an ultimately minimal filesystem
  • ROOT/newroot (ex /dev/shm) INSTALL_MASK"/usr/inc
    lude .a .pl" emerge KO baselayout-lite uclibc
    busybox
  • USEminimal emerge --buildpkg xorg-x11

17
FPGA
  • Field Programmable Gate Array
  • Xilinx Spartan2E
  • 300K gates
  • 100MHz clock (from SDRAM)
  • Connected to Variable Latency I/O Interface of
    PXA-255
  • Memory mapped access

18
PXA255 - FPGA Interface
19
Servo Motors
  • The Argos pan-tilt head from Mekatronix

20
Servo Motors
  • The servo positions itself based on the width of
    positive pulses fed to it.
  • The rate at which pulses are sent to the servo is
    relatively unimportant. (20 ms period, or 50Hz is
    typical)
  • A pulse width of 1.5 milliseconds positions the
    servo at its center, with 1 millisecond and 2
    milliseconds being the accepted limits to either
    side.
  • Our servo can move /- 90 degrees

21
PWM Linux Driver
  • The Linux driver
  • Enables access to PWM module
  • Hides low level details from the programmer
  • Can be built as a module for convenience

22
Cameras
23
Camera Linux Driver
  • Provide access to the camera via the data path
    implemented on the FPGA
  • The Linux driver features
  • Memory mapped access.
  • Hide low level details from the programmer via a
    character device.
  • Be built as a module for convenience.

24
End product
Write a Comment
User Comments (0)
About PowerShow.com