cw628 发表于 2012-10-22 22:37:37

请教如何处理才能让const unsigned char的数组不占用RAM空间?

本帖最后由 cw628 于 2012-10-22 22:39 编辑

我使用winavr(makefile用的是avr studio 4.13自己生成的)编译,在程序中定义了一个const unsigned charCharTable的数组,为何编译的时候占用了我的RAM资源???我把这个数组删掉后,RAM占用就下来了,我明明在前面用const限制了应保存在FLASH里面的呀????



yklstudent 发表于 2012-10-22 22:56:22

看你的编译器环境 应该这样 const prog_uchar char_table[]=....

/**
   \ingroup avr_pgmspace
   \typedef prog_uchar

   Type of an "unsigned char" object located in flash ROM.
*/
typedef unsigned char PROGMEM prog_uchar;

8s209 发表于 2012-10-22 22:57:02

帮顶{:biggrin:}

sunliezhi 发表于 2012-10-23 00:20:30

PROGMEM是关键
记得#include <pgm/space.h>

cw628 发表于 2012-10-23 08:28:43

已搞定,感谢各位大大

hclin 发表于 2012-10-23 11:37:19

very good !!!

cw628 发表于 2012-10-23 22:24:26

还有个问题,要引用这组数据时该如何用,我发现直接用CharTable时有问题,无法定位到想要数据,我按照如下方式使用:
void LCD_WriteSingalCharEN(UBYTE Char_EN)
{
    UBYTE Line;

    Char_EN -= 32;
    for ( Line = 0; Line < 6; Line++ )   
    {   
      LCD_Write( CharTable, DATA );
    }
}

cw628 发表于 2012-10-23 22:28:28

cw628 发表于 2012-10-23 22:24 static/image/common/back.gif
还有个问题,要引用这组数据时该如何用,我发现直接用CharTable时有问题,无法定位到想要数据,我 ...

呵呵,刚刚百度了一下,用pgm_read_byte就行了,谢谢

redsword84 发表于 2012-10-23 22:31:31

嗯,受教了,我以前用的是keil,定义方式还差距蛮大的呢

fanbinhua 发表于 2012-10-24 12:35:17

二维数据指针使用总是出问题,高手指导
页: [1]
查看完整版本: 请教如何处理才能让const unsigned char的数组不占用RAM空间?