
I compared my original hex file, and the one i downloaded from the PIC microcontroller. But no matter i set it, i'm able to read the program from the PIC microcontroller to a hex file. I've set the below CONFIG options in MPLABX and compiled it, got the output hex code. Another way to learn embedded development is through the Arduino (AVR) system, but that gets you out of C and into a beginner language.I'm trying to copy protect my code which i program in my PIC16F886 microcontroller. 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 linker puts all the object files together into the series of hex digits in the.The assembler converts those into object files.

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:
