* Install necessary packages
$ sudo apt-get install gcc-avr
$ sudo apt-get install avrdude
$ sudo apt-get install avr-libc
* Compiling code
Steps(2) -> .c => .elf => .hex
$ avr-gcc -Os -mmcu=$2 file_name.c -o file_name.elf
$ avr-objcopy -j .text -O ihex file_name.elf file_name.hex
* Uploading code
$ sudo avrdude -p part_name -c programmer_id \
-U flash:w:file_name.hex
part_name => m16, m8
prog_id => usbasp
"flash" => programs flash
"w" => write mode
shld be run as super user => "sudo"
* Compiler optimization
specify an option -Ox while compiling (avr-gcc -Ox ... )
x => optimization levels
"-Os" => "s"=> small - for smaller code
Made a video of LED blinking @ 900ms
*...