[STM8] STM8数组不能超过10个元素

[复制链接]
9289|23
 楼主| motor666 发表于 2012-5-28 20:46 | 显示全部楼层 |阅读模式
使用STM8S105S,用到数组,结果发现超过10个自动变成10个,例如:unsigned char BYTE_H[20]; 编译后只有BYTE[0]到[9],请教,怎么定义大的数组?
21ID 发表于 2012-5-29 08:01 | 显示全部楼层
一般这种情况不会发生吧,LZ试一下前面加const
IJK 发表于 2012-5-29 09:51 | 显示全部楼层
印象里STM8的C编译器不存在这个问题。
建议查查C编译器的版本。另外,把生成的lst文件贴出来看看。
香水城 发表于 2012-5-29 10:57 | 显示全部楼层
使用STM8S105S,用到数组,结果发现超过10个自动变成10个,例如:unsigned char BYTE_H[20]; 编译后只有BYTE[0]到[9],请教,怎么定义大的数组?
motor666 发表于 2012-5-28 20:46


怎么发现的?通过什么手段?
 楼主| motor666 发表于 2012-5-29 13:38 | 显示全部楼层
很简单,定义一个20个元素的数组,编译,在把数组变量名放到watch中,可以看到只有10个。
IJK 发表于 2012-5-29 14:10 | 显示全部楼层
“把数组变量名放到watch中”问题出在这里,这是STVD中watch的1个限制-只能看数组的前10个变量。

所以,看生成的lst文件就会知道,STM8的C编译器不存在LZ说的这个问题。
香水城 发表于 2012-5-30 23:44 | 显示全部楼层
LZ用不准确的称进行计量,却反过来说别人缺斤短两,悲剧啊  :@

下结论之前要先验证好你的计量工具。
jgphu 发表于 2012-6-1 17:21 | 显示全部楼层
不可能啊。 我定义数组多少都可以。只要肚子够大,能装得下。
lost1421 发表于 2012-6-2 00:43 | 显示全部楼层
“把数组变量名放到watch中”问题出在这里,这是STVD中watch的1个限制-只能看数组的前10个变量。

所以,看生成的lst文件就会知道,STM8的C编译器不存在LZ说的这个问题。 ...
IJK 发表于 2012-5-29 14:10


应该不是STVD中watch的1个限制,应该是STVD中Bug吧。
johnsonz99 发表于 2012-6-2 15:17 | 显示全部楼层
watch中是只能看到数组的前10个,但是剩下的还可以用,只是WATCH里显示10个。
callhgd 发表于 2012-8-18 17:40 | 显示全部楼层
STVD数组显示的问题,一次只能显示10个,希望开发商尽快解决。
mcuisp 发表于 2012-8-19 06:50 | 显示全部楼层
这个不是bug,而是显示太多会影响调试速度。
很多工具都会这样处理的。

评分

参与人数 1威望 +1 收起 理由
Cortex-M0 + 1

查看全部评分

Cortex-M0 发表于 2012-8-19 07:20 | 显示全部楼层
LS盆友正解~~~
sed2003 发表于 2012-10-30 09:40 | 显示全部楼层
办法是有的,右键点击那个数组变量,然后go to memory即可。
你自己看内存空间里的数据,就是完整的,不存在限制10个了。
tuyanjun 发表于 2012-10-30 10:09 | 显示全部楼层
看他的软件显示的是只有10个数,看memory就知道了、
lhzw2001 发表于 2012-10-31 16:03 | 显示全部楼层
哪方面的问题都没搞清楚,悲剧啊
小农wz 发表于 2012-10-31 17:00 | 显示全部楼层
origin6047 发表于 2012-11-14 16:32 | 显示全部楼层
IAR好像没这问题,watch 里20个都能看得到。
lost1421 发表于 2012-11-14 17:12 | 显示全部楼层
IAR里的watch 里255个也能看得到。
hugo0chen 发表于 2014-11-13 10:40 | 显示全部楼层
options---->Debug--->watch items数量修改,则可以看到实际定义大小。http://blog.csdn.net/sy_lixiang/article/details/8462029
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

426

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部