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

小弟用STM8SCBT6放了个43K的数组,怎么提示不够

[复制链接]
w453509596 提问时间:2015-11-28 09:30 /
1,我定义的放图片数据的数组   const unsigned char gImage_lllll[40960] = {........};
2. 单片机是STM8SCBT6
3. 编译的时候提示的错误  Error[Lp011]: section placement failed
              unable to allocate space for sections/blocks with a total estimated minimum size of 0xab05 bytes (max align 0x1) in <[0x008000-0x00ffff]>     (total uncommitted space 0x7f80).

求大家帮我看看,这个是怎么回事



收藏 评论10 发布时间:2015-11-28 09:30

举报

10个回答
jiaswang 回答时间:2015-11-28 09:54:57
提示最小需要另外42K字节,最大数组1K,并不是说你CBT6Flash不够了,是说你这个数组不能这么定义,个人理解
jiaswang 回答时间:2015-11-28 09:59:30
const unsigned char gImage_lllll[4096][10];
要不试下这个
w453509596 回答时间:2015-11-28 10:43:04
这么放也不行,我改成了这样 gImage_lllll[160][128][2];  ,也不行
w453509596 回答时间:2015-11-28 10:50:15
jiaswang 发表于 2015-11-28 09:59
const unsigned char gImage_lllll[4096][10];
要不试下这个

我试了下,还是不行
w453509596 回答时间:2015-11-28 10:53:31
w453509596 发表于 2015-11-28 10:50
我试了下,还是不行

从上面的意思看,个人理解是:
不能为 大小为 0xab05字节的数据块 在 (0x008000 ~ 0x00ffff)地址段内分配空间, 该段可以分配的最大空间为0x7F80字节。  

是不是  超过0x7f80字节的数据就不能分配空间了
w453509596 回答时间:2015-11-28 11:00:51
w453509596 发表于 2015-11-28 10:53
从上面的意思看,个人理解是:
不能为 大小为 0xab05字节的数据块 在 (0x008000 ~ 0x00ffff)地址段内分配 ...

从那个STM8S208的数据手册上面看,地址是从0x008000开始的,到0x00FFFF是flash的第一段,这段是32K,去掉32个中断向量表,刚好是0x7f80。
wamcncn 回答时间:2015-11-28 11:18:11
图片数据数组设置小点试试,毕竟FLASH除了你的图片数据外还有程序代码
jiaswang 回答时间:2015-11-30 09:22:02
w453509596 发表于 2015-11-28 11:00
从那个STM8S208的数据手册上面看,地址是从0x008000开始的,到0x00FFFF是flash的第一段,这段是32K,去掉 ...

要不你试下定义一个31K的数组!
w453509596 回答时间:2015-12-15 16:07:17
我知道了,前面要加关键字的,STM8S总共有3个flash扇区的flash,默认在第一个,第一个只有32K,所有超过32K就不行了
orima 回答时间:2015-12-15 16:23:51
先了解下。。。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版