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

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

[复制链接]
6163725 提问时间:2012-7-9 14:40 /
声明全局变量的数组:
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空间。
 
不知如何解决。
收藏 评论10 发布时间:2012-7-9 14:40

举报

10个回答
yjwpm 回答时间:2012-7-9 15:29:19

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

你试试把 变量设置为 Static的试试。。
6163725 回答时间:2012-7-9 15:47:42

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

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

试过了,结果一样。
yjwpm 回答时间: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, 下载次数: 289

6163725 回答时间: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地址空间给这个数组;
请高手解释一下这是为什么?
 
yjwpm 回答时间:2012-7-9 16:31:25

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

文档已经上传成功了,你可以看一下 文件在 4 楼
航天航海 回答时间: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的保护。应该是这样的。
 
cx032302 回答时间: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”;其初始化的过程和全局变量。
 
火木 回答时间:2012-7-17 09:25:49

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

学习了,以前没注意一般都直接定义_falsh const char data;
we769945086 回答时间:2012-12-26 23:44:28

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

看看学下
cjunrong 回答时间:2014-7-22 08:41:46

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

 这么神奇···!

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版