Вот пишу тут быдлопрограммку для avr (atmega8). Там есть кусок кода, обращающийся к EEPROM (встроенной памяти).
if (eeprom_is_ready())
{
return eeprom_read_word ((uint16_t*)i); // (1)
}
При компиляции появидась ошибка в строке (1):
undefined reference to `__eerd_word_m8'
Я грепнул хидеры и узнал, что eeprom_read_word является макросом:
#define eeprom_read_word _EEPROM_CONCAT2 (__eerd_word, _EEPROM_SUFFIX)
Т.е. для программирования для atmega8 должно быть __eerd_word_m8, для mega128 __eerd_word_m128 итд.
Грепнул эти функции и не нашел их не в одном хидере. Собрал avr-libc в DragonflyBSD - то же самое. Это что, нереализованная фича, или есть какой-то подводный камень?
Не уверен, что пишу в тот раздел, если что, извините) Помню тут был кто-то, занимающийся avr микроконтроллерами, надеюсь на их помощь