小弟用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).
求大家帮我看看,这个是怎么回事
提示最小需要另外42K字节,最大数组1K,并不是说你CBT6Flash不够了,是说你这个数组不能这么定义,个人理解 const unsigned char gImage_lllll;
要不试下这个 这么放也不行,我改成了这样 gImage_lllll;,也不行 jiaswang 发表于 2015-11-28 09:59
const unsigned char gImage_lllll;
要不试下这个
我试了下,还是不行 w453509596 发表于 2015-11-28 10:50
我试了下,还是不行
从上面的意思看,个人理解是:
不能为 大小为 0xab05字节的数据块 在 (0x008000 ~ 0x00ffff)地址段内分配空间, 该段可以分配的最大空间为0x7F80字节。
是不是超过0x7f80字节的数据就不能分配空间了 w453509596 发表于 2015-11-28 10:53
从上面的意思看,个人理解是:
不能为 大小为 0xab05字节的数据块 在 (0x008000 ~ 0x00ffff)地址段内分配 ...
从那个STM8S208的数据手册上面看,地址是从0x008000开始的,到0x00FFFF是flash的第一段,这段是32K,去掉32个中断向量表,刚好是0x7f80。 图片数据数组设置小点试试,毕竟FLASH除了你的图片数据外还有程序代码 w453509596 发表于 2015-11-28 11:00
从那个STM8S208的数据手册上面看,地址是从0x008000开始的,到0x00FFFF是flash的第一段,这段是32K,去掉 ...
要不你试下定义一个31K的数组! 我知道了,前面要加关键字的,STM8S总共有3个flash扇区的flash,默认在第一个,第一个只有32K,所有超过32K就不行了
页:
[1]
2