//*********************************************************************
//
//    MMC/SD ЗАГРУЗЧИК версия 1.01.
// 
// 1. Добавляем makefile.mak в проект. Идем 
//    Project ->Configuration options. 
//    На вкладке General устанавливаем галку Use external makefile. 
//    Нажмаем "…" находим makefile.mak.
//
// 2. В makefile.mak настраиваем параметры компиляции загрузчика: 
//    MCU - модель процессора
//    F_CPU - рабочая частота процессора
//    BOOTLDRSIZE - размер загрузчика 
//    BOOTLOADERSTARTADR - стартовый адрес загрузчика
//    TARGET - имя *.hex файла, получаемого при компиляции
//    OBJDIR - директория, в которую происходит компиляция загрузчика
//
// 3. В mmc.h в секции, соответствующей модели процессора 
//    (см. makefile.mak, параметр MCU) настраиваем ноги, на которые 
//    вешается SD карта. Ноги SPI_DI, SPI_DO, SPI_Clock должны быть 
//    стандартными для интерфейса SPI т.к. программная реализация SPI 
//    отсутствует. Ноги MMC_Chip_Select и SPI_SS настраиваются в 
//    соответствии со схемной реализацией. 
//    Для SD карты MMC_Chip_Select  = SPI_SS.
//
// 4. В megavar.h, если модель процессора отсутствует, настраиваем
//    размеры EEPROM и FLASH памяти в секторах для программирования: 
//    EE_SECTOR_FOR_READ и FL_SECTOR_FOR_READ для EEPROM и FLASH памяти
//    соответственно. 
// 
// 5. В main.с в процедуре int main(void) настраиваем условие сработки 
//    bootloader-a (например низкий сигнал на PINC) и имя файла для 
//    загрузки без расширения (переменная filename[]), например "boot".
// 
// 6. SD карта должна быть отформатирована в системе FAT16. 
//    На карточке должны размещаться bin-файлы EEPROM и FLASH. 
//    Например "boot.ee" и "boot.fl" Расширение файла EEPROM - "ee", 
//    расширение FLASH - "fl". Файл EEPROM может отсутствовать. 
//    Файл FLASH должен быть всегда. Размеры файлов - постоянная 
//    величина равная EE_SECTOR_FOR_READ*512 и FL_SECTOR_FOR_READ*512 
//    для EEPROM и FLASH соответственно.
// 
// 7. Для программирования чипа используйте 
//    progeeprom32.bat (программирование загрузчика) и 
//    progHfuse32.bat (программирование фьюзов). 
//    Для программатора отличного usbasp 
//    скорректировать указанные файлы.
//
// 8. Со всеми вопросами обращаетесь на адрес matrex@rambler.ru.
// 
// 9. При написании программы использовались следующие материалы:
//    http://www.mikrocontroller.net/articles/MMC/SD_Bootloader_f%C3%BCr_AT_Mega
//    http://www.ulrichradig.de/home/index.php/avr/mmc-sd
//
//
//    ИСТОРИЯ ИЗМЕНЕНИЙ:
//
//    01.10.2011 v. 1.01.
//    Устранена ошибка в размере EEPROM памяти для ATMEGA32. 
//    Приведено в соответствие со спецификацией наименование типов 
//    памяти. Добавлена работа с EEPROM памятью.
//
//*********************************************************************

#define F_CPU 16000000UL 

#include <avr/io.h>
#include <avr/eeprom.h>


int main()
{
int adr = 0x0008;
eeprom_write_byte ((unsigned char*) adr, 0x55);
int adr1 = 0x0009;
eeprom_write_byte ((unsigned char*) adr1, 0x66);
while (1){}
}
