声明全局变量的数组: const unsigned char DACvolume[]= {0x00,0x19,0x00,0x20,0x19,0x00,0x20,0x19,0x00,0x20.................}; 这样写,编译通过,无警告,但没有分配ROM空间给这个数组,函数查表时结果出错。 而将DACvolume[] 括号内填入一个数字,则能够分配一个ROM空间给这个数组,且查表结果正确。 如: const unsigned char DACvolume[2050]= {0x00,0x19,0x00,0x20,0x19,0x00,0x20,0x19,0x00,0x20.................}; 另外,把这个全局变量改到函数内部,作为局部变量,却又能够分配ROM空间。 不知如何解决。 |
RE:STVD Cosmic 全局变量分配ROM空间问题求助
回复:STVD Cosmic 全局变量分配ROM空间问题求助
你试试把 变量设置为 Static的试试。。
试过了,结果一样。
回复:STVD Cosmic 全局变量分配ROM空间问题求助
回复第 2 楼 于2012-07-09 15:29:19发表:
你试试把 变量设置为 Static的试试。。
试过了,结果一样。
给你个文档看看,这个文档里100%有你想知道的答案,在文档的第25页。
å¦ä½åºäºSTM8Sç³»åMCUè¿è¡é¡¹ç®å¼å.pdf
2012-7-9 16:26 上传
点击文件名下载附件
2.71 MB, 下载次数: 289
回复:STVD Cosmic 全局变量分配ROM空间问题求助
回复第 3 楼 于2012-07-09 15:47:42发表:
回复第 2 楼 于2012-07-09 15:29:19发表:
你试试把 变量设置为 Static的试试。。
试过了,结果一样。
我回复太快了,看到上面的文本,附件还没有传完就回复了。
我尝试修改,project-->settings-->linker-->input-->Code,constants中的
.const,鼠标右键,选中 protect,就能正确分配ROM地址空间给这个数组;
请高手解释一下这是为什么?
RE:STVD Cosmic 全局变量分配ROM空间问题求助
回复:STVD Cosmic 全局变量分配ROM空间问题求助【悬赏问答】
回复第 4 楼 于2012-07-09 16:23:04发表:
回复第 3 楼 于2012-07-09 15:47:42发表:
回复第 2 楼 于2012-07-09 15:29:19发表:
你试试把 变量设置为 Static的试试。。
试过了,结果一样。
我回复太快了,看到上面的文本,附件还没有传完就回复了。
我尝试修改,project-->settings-->linker-->input-->Code,constants中的
.const,鼠标右键,选中 protect,就能正确分配ROM地址空间给这个数组;
请高手解释一下这是为什么?
从字面上来看,你关了ROM的保护。应该是这样的。
回复:STVD Cosmic 全局变量分配ROM空间问题求助【悬赏问答】
定义全局变量const char a[100]=”abcdefg”将生成大小为100个字节的只读数据区,并使用字符串“abcdefg”初始化。如果定义为const char a[]=”abcdefg”,没有指定大小,将根据“abcdefgh”字串的长度,生成8个字节的只读数据段。
n 只读局部变量
例如:在函数内部定义的变量const char b[100]=”9876543210”;其初始化的过程和全局变量。
RE:STVD Cosmic 全局变量分配ROM空间问题求助【悬赏问答】
回复:STVD Cosmic 全局变量分配ROM空间问题求助【悬赏问答】
回复:STVD Cosmic 全局变量分配ROM空间问题求助【悬赏问答】