пишу загрузчик:
в его теле есть функция: LCD_Dr(s_wait,37,3); которая выводит
на дисплей небольшой рисунок.
формат его:
__flash unsigned char s_wait[] = {
0x3C, 0x01,
0x70, 0xF8,
0x88, 0x88,
0xF8, 0x70,
0x00, 0xD8,
... и так далее
};
Функция вывода его на дисплей:
void LCD_Dr(unsigned char __flash * ptr,char at_x,char at_y)
{
unsigned char x,y,xlen,ylen; xlen=* ptr;ylen=*(ptr+1);
for (y = 0; y < ylen; y++) {for (x = 0; x < xlen;x++)
{
Bufer_GotoPosXY(at_x+x,at_y+y);
SendData( * ( ptr+(y*xlen)+x+2));
}
}
}
при линковке выдается ошибка
Error[e18]: Range error,
Number out of range. Valid range is -128 (-0x80) to 255 (0xFF).
File: e:\...\2.0\BOOT_AES\bootldr.c, Line: 83
Source: LDI R17, (s_wait) >> 8
Where $ = main + 0x1A [0x1E516]
in module "bootldr" (e:\...\2.0\BOOT_AES\Release\Obj\bootldr.r90),
offset 0x1A in segment part 20, segment CODE
What: 8 ? (s_wait >> 1 & 0x7FFFFFFF) >> 8 - 1 : s_wait [0x1E0]
Allowed range: 0xFFFFFF01 - 0xFF
Operand: s_wait [0x1e004]
in module bootldr (e:\...\2.0\BOOT_AES\Release\Obj\bootldr.r90),
Offset 0x0 in segment part 16, segment NEAR_F
Error while running Linker
что не так?