[an error occurred while processing this directive]
|
WinAVR(GCC) компилер не поддерживает ATMEGA2560. На плате у меня установлен 2560.
Поэтому я генерирую код для поддержанного 1280 и пробую запустить его на ATMEGA2560. Не работает :-(
На мой взгляд единственное различие между этими чипами - размер FLASH.
Поэтому,это только мое мнение, все должно работать, если размер программы не превышает 128K.
Но похоже дополнительные различия между чипами имеются. Какие ?
Функция форматного вывода для I2C LCD индикатора под WinAVR симулятором работает правильно,
когда выбран 1280 в качестве целевого процессора симулятора.
void i2c_printf( const char *format, ... )
{
char msgBuf[64] = {0x00};
va_list arglist;
va_start( arglist, format );
vsprintf(msgBuf,format,arglist );
va_end( arglist );
WriteI2CLCD(msgBuf);
}
Меняю платформу симулятора на ATMEGA2560 (естественно, сгенерированный код остается для ATMEGA1280).
Под симулятором вижу, что форматный вывод не работает. На вызове vsprintf большая пауза ( симулятор что-то долго вычисляет 3-4 секунды) и результат работы неправильный.
Где могут быть грабли ?
В чем-то есть различия между 1280 и 2560.
Почему WinAVR не поддерживает 2560 ?
Только из-за проблем адресации верхнего 128K блока?
E-mail: info@telesys.ru