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

楼主: 6163725

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管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版