I am new to the embedded world and I would like to start learning how to program embedded systems.
I know how to program in C and would like to work with SDCC. I own a a book that teaches embedded programming but it does so using Keil. I would like to work in a linux environment so I chose to look at SDCC.
Unfortunately after a lot of searching on the net I have not found any tutorial of how to use SDCC or some examples that will get me on my way.
If no tutorial is available then maybe something that will help me translate the Keil code in the book to something that SDCC understands.
I would appreciate any help.
I suspect the Keil book to teach about their IDE (uVision) to get you started compiling your first example. For SDCC this is explained in the manual (sdccman 3.1 compiling). SDCC has only a command line interface, but it is supported by some IDE's.
After that there will be many similarities between the compilers and useful examples, but their will still be some differences esp. concerning non-standard special keywords.
Do you have an evaluation board and if so does it have In-System-Debugging capabilities?
I do not (yet) have an evaluation board (and this is something that I would be interested in learning more about what are compatible with SDCC) but I would like to learn first using a simulator such as what Keil does.
I used sdcc to compile a small c example but after I got the .ihx file I could not find a way to use it to see if anything happened. I saw that there is something of a simulator called s51 but again I had little luck finding something that teaches that. I found one page (http://mazsola.iit.uni-miskolc.hu/~drdani/embedded/s51/) that had some information but I still haven't explored it fully.
Back to the other question at had, the evaluation board. Do I need one at this early stage or can I do with the simulator for the most part? My interests now are to learn how to program embedded devices and then hopefully to get to a level which will allow me to build a basic embedded operating system or work with either embedded linux or other ready embedded OSs to perform what I need.
All these are purely on an academic basis so no commercial use will be done. This has both benefits and drawbacks since I could use the software as an academic and get free or discounted software but on the other hand my spending funds for boards and software are very limited.
Thanks in advance for the help,
I haven't tried anything much on linux except compiling and running the s51 simulator through the regression tests. Sorry I can't help you there.
But on Windows I very much like the development kits from Silicon Labs and they're not expensive. There is also a port for their debug adapter for linux (http://ec2drv.sourceforge.net/).
But do not expect to be able to run any OS (let alone embedded linux) efficiently on an 8-bit controller like the 8051.