Can anyone suggest any good material to start embedded system programming?
- a good PIC board to start with
- a good book
- Tools like compilers, OS, etc.
Can anyone suggest any good material to start embedded system programming?
You should also dig up a basic electronics website and understand a bit about digital circuits.
Please, by all means do yourself a big favor and do NOT start your embedded career with the obsolete 8-bit PICmicro (the 16-bit PIC24/dsPIC or PIC32 are much more modern and aren't that lousy). This particular baroque architecture, where no standard-compliant C compiler is even possible, is really the worst choice for learning embedded systems programming. This makes no sense when so many other modern MCUs friendly to high-level language programming are available.
The best investment you can make at this point is to learn a modern CPU architecture, such as ARM Cortex. Plenty of excellent and inexpensive ARM Cortex-M3 and Cortex-M0 boards are available. I would recommend the Cortex-M3 based Stellaris boards (http://www.luminarymicro.com/products/evaluation_kits.html/). For example, EKI-LM3S811 board comes with complete on-board J-Tag debugger, 96x16 pixel OLED display, an LED, a pushubtton, a potentiometer wheel (for ADC), all under $50. You can also get good deals on STM32 boards (), or NXP boards. NXP is also the first vendor of the Cortex-M0 with their very inexpensive LPCeXpresso-1114 board.
I strongly suggest that you look at either Atmel-AVR or ARM Cortex-M3 devices.
AVR because it is the only 8 bit device supported by the GNU tool-chain, has an instruction set and architecture designed to support ISO C compiler implementation, and has an architecture that is common to all parts in the range.
ARM Cortex-M3 because parts are available from multiple vendors with the widest range of on-chip resources and peripherals, and with enough horse-power and an architecture suited to easily support an RTOS.
Of the two, I'd recommend the Cortex-M3; ARM is the most widely used architecture in embedded systems, and the Cortex-M3 is a significant improvement over ARM7, and is encroaching into markets previously held by the fragmented 8-bit world. And because a true 32bit architecture will always make your life easier!
For resources and information, as well as books, I suggest you take a look at Embedded.Com, read some articles, and subscribe to their newsletters and free paper publications.
Have a look at the Arduino project based on the Atmel Meg128 micro.
'Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.'
Here is a link to FLOSS Weekly pod cast about Arduino