Getting Started Embedded Linux

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
All,

I want to start learning and programming applications on embedded
linux platform. I have exeprience working with embedded systems, but
not with embedded linux. I am looking for some good books (I like
O'reilly) that have code snippets and explain details on how to build
an application on embedded linux. Also I am looking for embedded linux
kit (ARM processor preferred) that I can use to test what I learn from
the books. A book alongwith kit will be a good start as well.

Thanks in advance.

-Bill.

Re: Getting Started Embedded Linux
All,

I want to start learning and programming applications on embedded
linux platform. I have exeprience working with embedded systems, but
not with embedded linux. I am looking for some good books (I like
O'reilly) that have code snippets and explain details on how to build
an application on embedded linux. Also I am looking for embedded linux
kit (ARM processor preferred) that I can use to test what I learn from
the books. A book alongwith kit will be a good start as well.

Thanks in advance.

-Bill.

Re: Getting Started Embedded Linux
Quoted text here. Click to load it

Try building embedded linux systems (http://oreilly.com/catalog /
9780596002220).
Programming for embedded linux is just the same as programming for any
linux.
Try Advanced Linux Programming for linux specific system programming
(http://www.advancedlinuxprogramming.com /) and QT/GTK if you will be
doing GUI.

Regards,
Alex Popov

Re: Getting Started Embedded Linux
Quoted text here. Click to load it

Alex,

Thanks for the response. Most books I searched describe Linux Kernel
in detail and I think that is more inclined to device drivers. I'm
wondering how C/C++ programming is used to develop applications that
run on embedded linux processors such as ARM9. Would you recommend a
book that explains how C/C++ programs run on embedded linux platform?
All I'm interested in is ...develop skills so that if there is a job
opening for embedded C/C++ developer for embedded linux, I can be
prepared to explain them that I have worked on other platforms and
have good understanding of how applications are developed for embedded
linux platform.

I will appreciate your help.

Regards,
Bill.

Re: Getting Started Embedded Linux
Hey Bill,

I have a 10 yeas eperience in this field and I have no simple answer
for you :).
To my knowledge there is no good book for Programming for Embedded
Linux. There can't be one because programming for linux has nothing to
do with programming for embedded devices.
If you have experience with c/c++ programming for linux (or any other
posix system) you need to concentrate on issues like:
- programming in limited resources environment (has nothing to do with
the OS)
- programming for real time systems (again has nothing to do with the
OS)
- programming for processors without floating point support (again has
nothing to do with the OS)
etc.

So:

Quoted text here. Click to load it

Indeed you can either develop for the kernel or the user space. With
most devices programming for the kernel is not really necessary (at
least with 2.6)!

Quoted text here. Click to load it

Building embedded linux systems might have some valuable info on that.
You can also check with the linux from scratch project - the processor
is not important.
The only thing that differs on different (including embedded)
processors is how you init the system when it boots - and that's the
CPU specific assembly code in the kernel...
You don't need to care about that!

Quoted text here. Click to load it

In that case you need (depending on the job):
- Know how to code for posix/gnu systems (API specifics): ALP is a
good start...
- Have experience with the GUI libs they use (if any): qt, gtk
usually, rarely libX11 APIs: (Amazon.com product link shortened) is a
great book for QT
- Know what real time system is and how it works depending on hard/
soft implementations. The RT coding has very specific requirements:
tons of books on that matter (try amazon for "real time systems
programming")
- Know how to effectively use limited resources (memory/cpu usage,
constraints of flash storages and the filesystems for them (e.g.
JFFS2), etc.): Building embedded linux systems has some info on that.
- Know how debug remotely with gdb (same for profiling): gdb docs

Hope that helps.
Regards,
alex

Re: Getting Started Embedded Linux
Quoted text here. Click to load it

Alex,

Excellent response.....extremely helpful. Thanks a million !

Regards,
Bill.

Re: Getting Started Embedded Linux
Quoted text here. Click to load it

Embedded Linux typically just involves a lot more tinkering with
device drivers that don't quite work properly with custom hardware,
and paying more attention to performance due to less powerful
hardware.  The actual user space applications you write should be very
similar to any other user space app on any other linux system.
Embedded systems development usually involves board bring up work at
some point so you will probably want to familiarize yourself with how
the major boot loaders work and also how the different types of flash
storage work.

Not really many great books on embedded linux. Look for anything you
can on device drivers, memory management and synchronization. That
should be a good start.

Re: Getting Started Embedded Linux
Quoted text here. Click to load it

Free electrons has some fantastic material on embedded linux available
for download.They are worth checking out if you are diving head first-
http://free-electrons.com/docs /

Re: Getting Started Embedded Linux

Quoted text here. Click to load it

Maybe you could consult the uClinux-devel mailing list. (Before
subscribing you might want to read some messages in the backlog.)

-Michael

Re: Getting Started Embedded Linux
Quoted text here. Click to load it

If you are not interested in the kernel just ignore the word 'embedded'
word. Do your target's userland programming like you would do it for your
host. If you have experience in POSIX programming, there is no difference
between your host and your embedded target.
Same for C++ (QT for example).

Note: There is nothing like "embedded Linux". Also on your target runs a
full featured kernel and (most of the time) a full featured userland.

jbe


Re: Getting Started Embedded Linux
Quoted text here. Click to load it

For step-by-step instructions for setting up a suitable hardware and
software environment for developing applications, go here
http://www.ibm.com/developerworks/linux/library/l-embl.html

Quoted text here. Click to load it




Check out:
1. http://beagleboard.org/hardware
2. http://www.ebv.com/en/products/categories/details/product/ebvbeagle-boar =
d.html


Quoted text here. Click to load it


Site Timeline