
Also, the AT89C51 (now the AT89S51) uses an older 8051 core, you may find more modern processors like the ATmega, PIC18, or (much more new, but more complex) ARM cores (Cortex-M3/M0, probably) to be more user-friendly and well-supported. You may find native programming a bit easier if you want a slower learning curve.

These are some of the most basic steps of embedded software development.

The usual way to do this is to use a programmer, though it is often convenient to program the device with a bootloader first, and then use this program to copy the. This is generally referred to as a toolchain, but may be informally referred to as a compiler. It also brings in any external object files for which you don't have the source code (or have already compiled it in a previous iteration). hex file, and gives them the addresses required by the device.

The preprocessor converts #include and #define macros, and also processes any conditional compilation (#if) symbols.There are a number of steps which have to happen between the C code you have and loading data onto the device:
