w453509596 发表于 2015-11-28 09:30:41

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

1,我定义的放图片数据的数组   const unsigned char gImage_lllll = {........};
2. 单片机是STM8SCBT6
3. 编译的时候提示的错误Error: section placement failed
            unable to allocate space for sections/blocks with a total estimated minimum size of 0xab05 bytes (max align 0x1) in <>   (total uncommitted space 0x7f80).

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



jiaswang 发表于 2015-11-28 09:54:57

提示最小需要另外42K字节,最大数组1K,并不是说你CBT6Flash不够了,是说你这个数组不能这么定义,个人理解

jiaswang 发表于 2015-11-28 09:59:30

const unsigned char gImage_lllll;
要不试下这个

w453509596 发表于 2015-11-28 10:43:04

这么放也不行,我改成了这样 gImage_lllll;,也不行

w453509596 发表于 2015-11-28 10:50:15

jiaswang 发表于 2015-11-28 09:59
const unsigned char gImage_lllll;
要不试下这个

我试了下,还是不行

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。

wambob 发表于 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就不行了
页: [1] 2
查看完整版本: 小弟用STM8SCBT6放了个43K的数组,怎么提示不够