const,RAM 我把变量申明成const型的,怎么还占RAM?
const,RAM 我把变量申明成const型的,怎么还占RAM?
问 不声明成
const型的,只占
RAM;声明成
const型的,
RAM,ROM都占?为什么?有没有像keil里code 一样的关键字?
哪位DX解决这个问题了?
我用的win AVR 答 1: 变量也用ROM?什么编译器呀,怎么定义的,贴出来
答 2: 先说明时用编译器 AVR不同编译器语法差别很大 答 3: 使使flash这个关键词。 答 4: 我试了flash了,不行呀还有prog_char什么的,查到的都试过了,还是不行 答 5: 还是不行#pragma data: code
constunsigned char Matrix001[]=
{
0x00,0x80,0x04,0x84,0x04,0x44,0x04,0xC4,0x04,0xA4,0x44,0x94,0x84,0x8C,0x7E,0xFF
};
#pragma data: code
这样也不行 答 6: 如此:unsigned char PROGMEM Matrix001[]=
{
0x00,0x80,0x04,0x84,0x04,0x44,0x04,0xC4,0x04,0xA4,0x44,0x94,0x84,0x8C,0x7E,0xFF
};
访问用FLASH的访问函数:
pgm_read_byte(&Matrix001[0]);
答 7: 按zsmbj说的,编译还是错误,../vfd.c:13: error: parse error before "Matrix001"
PROGMEM 这个关键字,是不是没拼对?
答 8: win AVR什么版本的?我用win AVR2006版本的,支持PROGMEM 和EEMEM。
要是20050214版本的,试试这个吧: __attribute__ ((progmem)) 答 9: 这回可以了,谢谢,果真是高手,我的版本是 20050214
这回可以了,谢谢,我在论坛里找了好几天了。
ps:调用时不用别的函数了吧?反正现在编译没错,明天拿到板子再试试。 答 10: 建议楼主看看芯艺的那篇文章 答 11: 其实看看win AVR的libc manual里边写的明明白白啊。 答 12: low level mistake ..#include < AVR/pgmspace.h>
哪位DX解决这个问题了?
我用的win AVR 答 1: 变量也用ROM?什么编译器呀,怎么定义的,贴出来
答 2: 先说明时用编译器 AVR不同编译器语法差别很大 答 3: 使使flash这个关键词。 答 4: 我试了flash了,不行呀还有prog_char什么的,查到的都试过了,还是不行 答 5: 还是不行#pragma data: code
constunsigned char Matrix001[]=
{
0x00,0x80,0x04,0x84,0x04,0x44,0x04,0xC4,0x04,0xA4,0x44,0x94,0x84,0x8C,0x7E,0xFF
};
#pragma data: code
这样也不行 答 6: 如此:unsigned char PROGMEM Matrix001[]=
{
0x00,0x80,0x04,0x84,0x04,0x44,0x04,0xC4,0x04,0xA4,0x44,0x94,0x84,0x8C,0x7E,0xFF
};
访问用FLASH的访问函数:
pgm_read_byte(&Matrix001[0]);
答 7: 按zsmbj说的,编译还是错误,../vfd.c:13: error: parse error before "Matrix001"
PROGMEM 这个关键字,是不是没拼对?
答 8: win AVR什么版本的?我用win AVR2006版本的,支持PROGMEM 和EEMEM。
要是20050214版本的,试试这个吧: __attribute__ ((progmem)) 答 9: 这回可以了,谢谢,果真是高手,我的版本是 20050214
这回可以了,谢谢,我在论坛里找了好几天了。
ps:调用时不用别的函数了吧?反正现在编译没错,明天拿到板子再试试。 答 10: 建议楼主看看芯艺的那篇文章 答 11: 其实看看win AVR的libc manual里边写的明明白白啊。 答 12: low level mistake ..#include < AVR/pgmspace.h>
共3条 1/1
1
跳转至
页