I'm an experienced software engineer and an advanced Linux user. I already know C and C++. I've developed C applications on Unix in the past and C++ (mostly on Windows).
I would like to start to learn how to program on embedded Linux systems. I'm particularly interested by the ARM plate-form and the Beagle Board. I would like to learn how to do low level programming in C/C++ (device drivers, interfacing with BeagleBoard peripherals, compiling customized kernels, etc).
Could you point me to the best (free or not too expensive) ressources on the Internet? The best beginner books to learn to program C/C++ on Linux for ARM?