Click to See Complete Forum and Search --> : firmware programming


Danger Fan
10-29-2001, 12:50 PM
Does anyone know good places to learn about firmware programming. My google search turned up mostly pages trying to see me products, especially forth compilers.

Stuka
10-29-2001, 12:57 PM
I've done a little research on this, and it seems that much firmware programming can be done in C, but compilers are often needed for specific chips - and of course you have to have plenty of info about the chip itself in order to program it.

siqe
10-29-2001, 01:36 PM
is programming for firmware and programming for embedded systems the same things?

l01yuk
11-02-2001, 09:06 PM
Almost.

Firmware means that you have code on some chips directly rather than having a bootstrap code bootong from a HD. The bootstrap code on your PC is an example of firmware.

Embedded systems are the chips in your washing machine. The system is embedded in the object it controls. By contrast PC's are often called general computers. Many types of different system can be controlled by them, ie. they are not embedded in any particular type of function.

Firmware is the software placed in an EEPROM or PLD and an embedded system is the whole micro in a particular object.

I don't know if I have explained this well so let me know if I am not being clear. I am no teacher I know that.


It should be possible to program firmware in C, and yes a different compiler will be needed for a particular chip, this is always true. Linux software needs compiling differently for SPARC, X86 etc. This is becuase processors have instruction sets which are (funnily enough) sets of instructions that tell it what to do. These are all binary codes and a compiler basically takes your code and converts it to these codes (machine code).

Once you have the compiler for a chip though C is a good way to go becuase it is efficient (depending on compiler) and can be ported quite easily to different chips (unlike ASM for instance).

Info about chips is easy to get, just go to http://www.questlink.com and get a datasheet (or go to the manufac site and get one). These are normally in PDF and will tell you what you need to know.

Firmware programming will involve buying stuff: a pcb with some chips on, a compiler probably <-write your own???, a cable to upload your code certainly. I would reccoment using devices that use the BSCAN standard and programming them through the JTAG port. Xilinx have excellent software for this, and most of it is free (as in beer). This will mean you can test your whole circuit once it is plugged in very easily.

Have fun.