使用AVR Studio 6编译Procyon库时出错

时间:2013-01-22 03:28:16

标签: c avr avr-gcc

我在使用AVR Studio 6编译Procyon库时遇到了一些麻烦。我使用的Code完全适用于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

这是一个标准的图书馆,研究人员似乎都在工作。关于为什么会发生这种情况的任何想法?

1 个答案:

答案 0 :(得分:1)

错误1似乎与不包括<avr/pgmspace.h>有关。或者版本可能不兼容。您可能必须制作自己的typedef才能使其正常工作。

错误2看起来像是由于编译器版本较新而导致的错误。您可以修改该文件以使变量为const。

如果您不想调整这些文件,那么您需要获得所有内容的兼容版本。