У меня возникли проблемы с компиляцией библиотек Procyon с помощью AVR Studio 6. Код, который я использую, полностью работает с AVR Studio 4.
Следующие строки не компилируются в этой общей библиотеке:
//! prints a string stored in program rom
/// \note This function does not actually store your string in
/// program rom, but merely reads it assuming you stored it properly.
void rprintfProgStr(const prog_char str[]);
Что приводит к ошибке:
Error 1 unknown type name 'prog_char' D:\AVRTests\ProcyonLibTest\ProcyonLibTest\rprintf.h 85 1 ProcyonLibTest
Есть еще одна ошибка, связанная с замедлением этой функции. Следующий:
// use this to store hex conversion in RAM
//static char HexChars[] = "0123456789ABCDEF";
// use this to store hex conversion in program memory
//static prog_char HexChars[] = "0123456789ABCDEF";
static char __attribute__ ((progmem)) HexChars[] = "0123456789ABCDEF";
Что приводит к ошибке:
Error 2 variable 'HexChars' must be const in order to be put into read-only section by means of '__attribute__((progmem))' D:\AVRTests\ProcyonLibTest\ProcyonLibTest\rprintf.c 45 39 ProcyonLibTest
Это со стандартной библиотекой, которая, судя по исследованиям, у всех работает. Любые идеи о том, почему это может происходить?