
Код
#include <iom32.h>
#define QRZ 16000000L
#define LED_INIT DDRC |= (1<<PC6)
#define LED_INVERS PORTC ^= (1<<PC6);
__C_task void main( void )
{
//....
GICR = 1<<IVCE;
GICR = 1<<IVSEL;
__disable_interrupt();
LED_INIT;
while (1)
{
LED_INVERS;
__delay_cycles(0.5*QRZ);
}
}
#define QRZ 16000000L
#define LED_INIT DDRC |= (1<<PC6)
#define LED_INVERS PORTC ^= (1<<PC6);
__C_task void main( void )
{
//....
GICR = 1<<IVCE;
GICR = 1<<IVSEL;
__disable_interrupt();
LED_INIT;
while (1)
{
LED_INVERS;
__delay_cycles(0.5*QRZ);
}
}
Компилятор: IAR C/C++ Compiler for AVR 4.20A/W32 [Evaluation] (4.20.1.3)
Компилирую программу и прошиваю ее "как обычно" (т.е. начиная с адреса 0x0000) --- она работает.
Прописываю в опциях линкера разместить программу по адресу 0x3800 (начало бутлоадера) "-M0=3800". HEX при этом выглядит так:
Код
:103800000C94720018951895189518951895189598
:103810001895189518951895189518951895189540
:103820001895189518951895189518951895189530
:103830001895189518951895189518951895189520
:103840001895189518951895189518951895189510
:10385000189518951895189548E055E060E8220FDE
:10386000001F111F10F4052716274A95C1F7089568
:10387000E897D15001E00BBF02E00BBFF894A69A85
:1038800000E415B3102715BB0FEF19E628E101502E
:1038900010402040E1F700C00000F2CF090161E0D4
:1038A00006C0002E69E003C063E001C065E0F801D6
:1038B00008D04FB7F89467BFE895FFFF00004FBFEF
:1038C000089577B770FDFDCF0895FBDF05D00EBBDF
:1038D0001FBB2DBBE29AE19AE199FECF089500004B
:1038E0008895FECF0FE90DBF00E00EBFC0E8D0E025
:1038F0000E9480000E9438000E946F000C946F00AC
:0439000001E0089545
:00000001FF
:103810001895189518951895189518951895189540
:103820001895189518951895189518951895189530
:103830001895189518951895189518951895189520
:103840001895189518951895189518951895189510
:10385000189518951895189548E055E060E8220FDE
:10386000001F111F10F4052716274A95C1F7089568
:10387000E897D15001E00BBF02E00BBFF894A69A85
:1038800000E415B3102715BB0FEF19E628E101502E
:1038900010402040E1F700C00000F2CF090161E0D4
:1038A00006C0002E69E003C063E001C065E0F801D6
:1038B00008D04FB7F89467BFE895FFFF00004FBFEF
:1038C000089577B770FDFDCF0895FBDF05D00EBBDF
:1038D0001FBB2DBBE29AE19AE199FECF089500004B
:1038E0008895FECF0FE90DBF00E00EBFC0E8D0E025
:1038F0000E9480000E9438000E946F000C946F00AC
:0439000001E0089545
:00000001FF
Фузы прошиваю так:
BOOTSZ = 00
BOOTRST = 0
И, естественно, ничего не работает. Программа не хочет запускаться из секции бутлоадера!
Что я делаю не так???