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.

Reply to
Bill
Loading thread data ...

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.

Reply to
Bill

Try building embedded linux systems

formatting link

9780596002220). Programming for embedded linux is just the same as programming for any linux. Try Advanced Linux Programming for linux specific system programming
formatting link
and QT/GTK if you will be doing GUI.

Regards, Alex Popov

Reply to
sasho popov

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.

Reply to
Bill

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:

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

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!

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:

formatting link
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

Reply to
sasho popov

Alex,

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

Regards, Bill.

Reply to
Bill

d

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.

Reply to
Gary

d

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

formatting link

Reply to
itisravi

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

-Michael

Reply to
Michael Schnell

For step-by-step instructions for setting up a suitable hardware and software environment for developing applications, go here

formatting link

Check out:

  1. formatting link
  2. formatting link
    d.html

Reply to
Rajkumar M

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

Reply to
Juergen Beisert

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.