Несовсем понял чего ты хочешь. Несколько годков назад делал загрузку. Вот сопроводилово из заголовочного файла. Не такое?
Долой империалистический интернационал!
1ch03 Версия 1.00.00 от 16.06.2005 15:05 Чтобы указать компилятору, код который следует включить в выходной файл необходимо в опциях компилятора ICCAVR -> Preprocessor -> Defined symbol установить необходимые #define из списка: _BOOT_CODE_ - код загрузчика (_NRWW_SEG_ и _RWW_HIGH_) _PULSE_CODE_ - частотный выход _POSITIVE_PULSE_ - положительные импульсы частотного выхода _CONSTANTS_IN_EXTEEPROM_ - если константы во внешнем EEPROM _ADC_CODE_ - код ADC _WORK_CODE_ - код рабочего режима _FLOWMETER_CODE_ - передаем расход _VOLTMETER_CODE_ - передаем вольты _TWI_MODE_CODE_ - код режима программирования внешнего EEPROM _METHOD_001_CODE_ - метод расчета расхода с внешним EEPROM по Кислову _METHOD_002_CODE_ - резервный _METHOD_003_CODE_ - резервный В сегменте _NRWW_SEG_ располагается код который может быть вызван во время записи во Flash В сегменте _RWW_HIGH_ располагается код необходимый для записи Flash, но не используемый во время записи. В сегментах _CRC_SEG_ _STUB_SEG_ _MTWIC_SEG_ располагается код функций адресуемых в различных режимах В сегменте _RWW_LOW_ располагается код загружаемый через UART На время записи Flash останавливаем Timer0, чтобы не занимать NRWW кодом прерывания для освобождения места в _RWW_LOW_ в верхнюю область (NRWW) переведены следующие функции: __C_task void main(void) __root void MissingTWICode(void) __root void Stub(void) void ChangeCurrentMode(void) void SendCurrentMode(void) _NumFlashPage временно установил в 3C страниц чтобы скомпилировать без main() все что вызываем из BootLoader сделано __root установлен флаг XLINK > Include > Ignore CSTARTUP in library установлен флаг XLINK > Input > Load as PROGRAM Для глобальных переменных указаны конкретные адреса __no_init int foo @0x10 В .xls файлах: для загрузчика сегмент CODE установлен на _NRWW_SEG_ для загружаемых модулей сегмент CODE установлен на _RWW_LOW_ В файле 1ch02_var.h: указаны конкретные адреса сегментов _CRC_SEG_ _STUB_SEG_ _MTWIC_SEG_ куда слинкованы функции CCITT16_update() Stub() MissingTWICode()