这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » const,RAM 我把变量申明成const型的,怎么还占RAM?

共3条 1/1 1 跳转至

const,RAM 我把变量申明成const型的,怎么还占RAM?

院士
2006-09-17 18:14:16     打赏
const,RAM 我把变量申明成const型的,怎么还占RAM?



关键词: const     我把     变量     申明     型的     怎么    

院士
2006-12-22 22:43:00     打赏
2楼
问 不声明成const型的,只占RAM;声明成const型的,RAM,ROM都占?为什么?有没有像keil里code 一样的关键字?
哪位DX解决这个问题了?
我用的winAVR 1: 变量也用ROM?什么编译器呀,怎么定义的,贴出来
2: 先说明时用编译器AVR不同编译器语法差别很大 3: 使使flash这个关键词。 4: 我试了flash了,不行呀还有prog_char什么的,查到的都试过了,还是不行 5: 还是不行#pragma data: code



const unsigned 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: winAVR什么版本的?我用winAVR2006版本的,支持PROGMEM 和EEMEM。

要是20050214版本的,试试这个吧: __attribute__ ((progmem)) 9: 这回可以了,谢谢,果真是高手,我的版本是 20050214
这回可以了,谢谢,我在论坛里找了好几天了。
ps:调用时不用别的函数了吧?反正现在编译没错,明天拿到板子再试试。 10: 建议楼主看看芯艺的那篇文章 11: 其实看看winAVR的libc manual里边写的明明白白啊。 12: low level mistake ..#include <AVR/pgmspace.h>

专家
2022-08-20 15:48:41     打赏
3楼

学习学习


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]