你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 8247|回复: 10

STVD Cosmic 全局变量分配ROM空间问题求助【悬赏问答】

[复制链接]

1

主题

20

回帖

0

蝴蝶豆

初级会员

最后登录
1970-1-1
发表于 2012-7-9 14:40:25 | 显示全部楼层 |阅读模式
声明全局变量的数组:
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空间。
 
不知如何解决。
回复

使用道具 举报

2

主题

240

回帖

0

蝴蝶豆

中级会员

最后登录
2020-8-11
发表于 2012-7-9 15:29:19 | 显示全部楼层

RE:STVD Cosmic 全局变量分配ROM空间问题求助

你试试把 变量设置为 Static的试试。。
回复 支持 反对

使用道具 举报

1

主题

20

回帖

0

蝴蝶豆

初级会员

最后登录
1970-1-1
 楼主| 发表于 2012-7-9 15:47:42 | 显示全部楼层

回复:STVD Cosmic 全局变量分配ROM空间问题求助

回复第 2 楼 于2012-07-09 15:29:19发表:
你试试把 变量设置为 Static的试试。。 

试过了,结果一样。
回复 支持 反对

使用道具 举报

2

主题

240

回帖

0

蝴蝶豆

中级会员

最后登录
2020-8-11
发表于 2012-7-9 16:23:04 | 显示全部楼层

回复:STVD Cosmic 全局变量分配ROM空间问题求助

回复第 3 楼 于2012-07-09 15:47:42发表:
回复第 2 楼 于2012-07-09 15:29:19发表:
你试试把 变量设置为 Static的试试。。 

试过了,结果一样。
 

给你个文档看看,这个文档里100%有你想知道的答案,在文档的第25页。

如何基于STM8S系列MCU进行项目开发.pdf

下载

2.71 MB, 下载次数: 287

回复 支持 反对

使用道具 举报

1

主题

20

回帖

0

蝴蝶豆

初级会员

最后登录
1970-1-1
 楼主| 发表于 2012-7-9 16:29:08 | 显示全部楼层

回复: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地址空间给这个数组;
请高手解释一下这是为什么?
 
回复 支持 反对

使用道具 举报

2

主题

240

回帖

0

蝴蝶豆

中级会员

最后登录
2020-8-11
发表于 2012-7-9 16:31:25 | 显示全部楼层

RE:STVD Cosmic 全局变量分配ROM空间问题求助

文档已经上传成功了,你可以看一下 文件在 4 楼
回复 支持 反对

使用道具 举报

1

主题

39

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-7-13 14:25:30 | 显示全部楼层

回复:STVD Cosmic 全局变量分配ROM空间问题求助【悬赏问答】

回复第 5 楼 于2012-07-09 16:29:08发表:
回复第 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的保护。应该是这样的。
 
回复 支持 反对

使用道具 举报

7

主题

157

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-7-13 15:01:23 | 显示全部楼层

回复:STVD Cosmic 全局变量分配ROM空间问题求助【悬赏问答】

n  只读全局变量

定义全局变量const  char a[100]=”abcdefg”将生成大小为100个字节的只读数据区,并使用字符串“abcdefg”初始化。如果定义为const char a[]=”abcdefg”,没有指定大小,将根据“abcdefgh”字串的长度,生成8个字节的只读数据段。

n  只读局部变量

例如:在函数内部定义的变量const char  b[100]=”9876543210”;其初始化的过程和全局变量。
 
回复 支持 反对

使用道具 举报

5

主题

77

回帖

0

蝴蝶豆

新手上路

最后登录
2018-5-24
发表于 2012-7-17 09:25:49 | 显示全部楼层

RE:STVD Cosmic 全局变量分配ROM空间问题求助【悬赏问答】

学习了,以前没注意一般都直接定义_falsh const char data;
回复 支持 反对

使用道具 举报

0

主题

5

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-12-26 23:44:28 | 显示全部楼层

回复:STVD Cosmic 全局变量分配ROM空间问题求助【悬赏问答】

看看学下
回复 支持 反对

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版