Ошибки при компиляции библиотеки Procyon с помощью AVR Studio 6

У меня возникли проблемы с компиляцией библиотек 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

Это со стандартной библиотекой, которая, судя по исследованиям, у всех работает. Любые идеи о том, почему это может происходить?


person Fantastic Mr Fox    schedule 22.01.2013    source источник
comment
Если вы просматриваете этот вопрос, подумайте о том, чтобы проголосовать за него, чтобы он привлек внимание кого-то, кто знает AVR. Спасибо.   -  person Fantastic Mr Fox    schedule 22.01.2013


Ответы (1)


Ошибка 1, кажется, как-то связана с отсутствием включения <avr/pgmspace.h>. Или версии несовместимы. Возможно, вам придется создать свой собственный typedef, чтобы заставить его работать.

Ошибка 2 выглядит как ошибка, вызванная более новой версией компилятора. Вы можете изменить файл, чтобы сделать переменную константой.

Если вы не хотите настраивать эти файлы, вам нужно получить совместимые версии всего.

person uncleO    schedule 22.01.2013