Ngày tải lên :
20/10/2013, 00:15
... ) and can
boot several operating systems (Linux, uClinux, and others)
Softgun: http://softgun.sourceforge.net
Virtual ARM system with many virtual onboard peripherals.
Boots Linux.
SWARM Software ARM arm7 emulator
http://www.cl.cam.ac.uk/~mwd24/phd/swarm.html
Can run uClinux
13
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
klibc
http://www.kernel.org/pub/linux/libs/klibc/
“Kernel C library”
Tiny and minimalistic C library designed for use in an initramfs at
boot time (alternative to initrds).
Fine for the creation of simple shell scripts.
Ships with small executables for use in shells, built with klibc,
and a klcc compiler to compile your own applications.
Not elaborate enough to support BusyBox applications.
Useful details in http://en.wikipedia.org/wiki/Klibc
19
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Platform specific toolchains (1)
ARM
Code Sourcery (supports GNU/Linux, EABI and uClinux):
http://www.codesourcery.com/gnu_toolchains/arm/
Also available for Windows workstations.
MIPS
http://www.linuxmips.org/wiki/Toolchains (useful links)
6
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Training contents (3)
Annexes
Automatic system generation with BitBake / OpenEmbedded
33
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Other emulators
ColdFire emulator
http://www.slicer.ca/coldfire/
Can boot uClinux
37
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Minicom (1)
Definition: serial communication program
Available in all GNU / Linux distributions
Capabilities (all through a serial link):
Serial console to a remote Unix system
File transfer
Modem control and dialup
Serial port configuration
50
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Denx Software Engineering
http://denx.de
Created by Wolfgang Denk,
the author of the UBoot bootloader.
Create and support the Embedded Linux Development Kit (ELDK),
a complete and well documented development environment.
This kit is not only Free Software,
it can be downloaded freely by anyone.
A great community member and contributor!
15
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Free Software tools for embedded systems
GNU / Linux workstation
Crosscompiling toolchains
9
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
uClibc
http://www.uclibc.org/ from CodePoet Consulting
License: LGPL
Lightweight C library for small embedded systems, with most features
though.
The whole Debian Woody was ported to it ... ) and can
boot several operating systems (Linux, uClinux, and others)
Softgun: http://softgun.sourceforge.net
Virtual ARM system with many virtual onboard peripherals.
Boots Linux.
SWARM Software ARM arm7 emulator
http://www.cl.cam.ac.uk/~mwd24/phd/swarm.html
Can run uClinux
13
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
klibc
http://www.kernel.org/pub/linux/libs/klibc/
“Kernel C library”
Tiny and minimalistic C library designed for use in an initramfs at
boot time (alternative to initrds).
Fine for the creation of simple shell scripts.
Ships with small executables for use in shells, built with klibc,
and a klcc compiler to compile your own applications.
Not elaborate enough to support BusyBox applications.
Useful details in http://en.wikipedia.org/wiki/Klibc
19
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Platform specific toolchains (1)
ARM
Code Sourcery (supports GNU/Linux, EABI and uClinux):
http://www.codesourcery.com/gnu_toolchains/arm/
Also available for Windows workstations.
MIPS
http://www.linuxmips.org/wiki/Toolchains (useful links)
6
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Training contents (3)
Annexes
Automatic system generation with BitBake / OpenEmbedded
33
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Other emulators
ColdFire emulator
http://www.slicer.ca/coldfire/
Can boot uClinux
37
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Minicom (1)
Definition: serial communication program
Available in all GNU / Linux distributions
Capabilities (all through a serial link):
Serial console to a remote Unix system
File transfer
Modem control and dialup
Serial port configuration
50
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Denx Software Engineering
http://denx.de
Created by Wolfgang Denk,
the author of the UBoot bootloader.
Create and support the Embedded Linux Development Kit (ELDK),
a complete and well documented development environment.
This kit is not only Free Software,
it can be downloaded freely by anyone.
A great community member and contributor!
15
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Free Software tools for embedded systems
GNU / Linux workstation
Crosscompiling toolchains
9
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
uClibc
http://www.uclibc.org/ from CodePoet Consulting
License: LGPL
Lightweight C library for small embedded systems, with most features
though.
The whole Debian Woody was ported to it ...
Support services
Useful if you don't have your
own support resources
Long term support commitment,
even for versions considered as
obsolete by the community, but
not by your users!
44
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Commercial toolsets
Caution: commercial doesn't mean proprietary!
Vendors play fair with the GPL and do make their source code
available to their users, and most of the time, to the community.
As long as they distribute the sources to their users, the GPL
doesn't require vendors to share their sources with any third party.
No issue with all the GPL sources developed by or with the
community.
Graphical toolkits developed by the vendors look proprietary. Their
licenses are not advertised on their websites! You have to be a
customer to know or get a free preview kit to know.
35
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Free Software tools for embedded systems
GNU / Linux workstation
Various tools
34
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Emulators Summary
System emulators
Useful to experiment with a full system, including the kernel
qemu: x86, x86_64, arm, sparc, ppc, mips
SkyEye: several arm architectures
User emulators
Useful to run or debug user space binaries for other CPUs
qemu: x86, arm, sparc, ppc, mips
20
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Platform specific toolchains (2)
Coldfire
Code Sourcery (supports ELF, GNU/Linux and uClinux):
http://www.codesourcery.com/gnu_toolchains/coldfire
PowerPC
Code Sourcery (supports GNU/Linux and EABI)
http://www.codesourcery.com/gnu_toolchains/power.html
49
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Sysgo Koan Software
http://sysgo.com
ELinOS development toolset,
in particular based on Eclipse
and the Linux Trace Toolkit.
Includes FreeToolBox, a freely
downloadable compiling and rootfs
creating toolchain.
Supports i386, arm and ppc.
Hard realtime support with their own
microkernel (PikeOS),
an approach similar to RTAI.
http://koansoftware.com
Makers of KaeilOS
(http://koansoftware.com/kaeilos/), a GPL
embedded Linux distribution for industrial
applications.
KaeilOS supports i386 and popular arm
platforms. Other platforms supported upon
request.
Includes several graphical toolkits and
supports hard realtime (RTAI, Xenomai,
preemption patches).
Unfortunately, KaeilOS is GPL but not
available for public download.
16
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Standalone toolchain build
Building a crosscompiling toolchain by yourself is a difficult and painful task!
Can take days or weeks!
Lots of details to learn. Several components to build
(building gcc twice: once for gcc + once for compilers that need the C library).
Lots of decisions to make
(such as C library version and configuration for your platform)
Need kernel headers and C library sources
Need to be familiar with current gcc issues and patches on your platform
Useful to be familiar with building and configuring tools
http://www.aleph1.co.uk/armlinux/docs/toolchain/toolchHOWTO.pdf
can show you how fun it can be!
21
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Toolchain building utilities
Buildroot: http://buildroot.uclibc.org/
Dedicated Makefile to build uClibc based toolchains
and even entire root filesystems.
Downloads sources and applies patches.
Crosstool: http://www.kegel.com/crosstool/
Dedicated script to build glibc based toolchains
Doesn’t support uClibc yet.
Downloads sources and applies patches.
26
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Toolchains useful resources
eLinux.org toolchain page:
http://elinux.org/Tool_Chains
29
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
Free Software tools for embedded systems
GNU / Linux workstation
Emulators
8
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
glibc
http://www.gnu.org /software/ libc/
License: LGPL
C library from the GNU project
Designed for performance, standards compliance and
portability
Found on all GNU / Linux host systems
Quite big for small embedded systems: about 1.7 MB on
Familiar Linux iPAQs (libc: 1.2 MB, libm: 500 KB)
36
Free Software tools for embedded systems
© Copyright 20042008, Free Electrons
Creative Commons AttributionShareAlike 2.5 license
http:/ /free electrons.com
Jan 24, 2008
chroot
Available in all GNU/Linux distributions
Usage:
chroot <dir> [command]
Runs a command or an interactive shell
with a special root directory.
Standard usage: Internet servers
Services executed in chroot jails: even when compromised,
the service cannot gain access to the rest of the system.
Usage for embedded system development:
Develop and test a new root filesystem on the development host.
Very easy to use when the host and target have the same CPU instruction set.
Used by LFS (Linux From Scratch).
Also used by Scratchbox: Qemu makes the usage of target binaries transparent.
/
bin
lib
etc
http
/
lib
etc
bin
chroot
jail
...