Re: Getting Started Embedded Linux

On Feb 5, 3:54 am, sasho popov <long...@xxxxxxxxx> wrote:
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
- programming for processors without floating point support (again has
nothing to do with the OS)


Thanks for the response. Most books I searched describe Linux Kernel
in detail and I think that is more inclined to device drivers.

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)!

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?

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!

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.

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: 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
- 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.


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