关于CC430中使用const将数组定义到FLASH中的问题?

2019-03-24 12:14发布

CC430F5137的RAM很小,一些大的数组需要定义到flash中,以节省RAM的空间,使用const关键字可以将数组定义到flash中,sin_tab[512]和cos_tab[512]两个数组,按照此种方法操作,const float sin_tab[512]=
{
0, 0.0061, 0.0123, 0.0184, 0.0245, 0.0307, 0.0368, 0.0429, 0.0491, 0.0552,
0.0613, 0.0674, 0.0736};
但是编译报错Error[e16]: Segment DATA16_Z (size: 0x20df align: 0x1) is too long for segment definition. At least 0x10e1 more bytes  needed. The problem occurred while processing the segment placement command"-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,TLS16_I,DATA16_HEAP+_DATA16_HEAP_SIZE=1C00-2BFD", where at the moment of placement the available memory ranges were "CODE:1c00-2bfd"    Reserved ranges relevant to this placement: 1c00-2bfd            DATA16_I

[ 本帖最后由 zhamzham 于 2013-9-18 11:54 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
wateras1
1楼-- · 2019-03-24 20:40
< 你的问题可以具体点吗?是直接不能用const来定义不可写的变量还是?你那个片子没看用过,不过你可以看看芯片手册存储那章节应该有讲解如何映射吧。
lcofjp
2楼-- · 2019-03-24 21:48
< :TI_MSP430_内容页_SA7 --> 从出错信息上来看,是RAM容量不够导致。或许是还有其他占用空间比较大变量或者数组?
Li_Lei
3楼-- · 2019-03-24 22:18
 精彩回答 2  元偷偷看……
zhamzham
4楼-- · 2019-03-24 22:25
是RAM用光了,不是flash用光了
zhamzham
5楼-- · 2019-03-25 04:03
是的,数组是  float  sin_tab[1024];RAM被占用完了,想定义到flash中,const是可以定义到flash中,但是使用const,数组未定义到flash中,还是报错
kata
6楼-- · 2019-03-25 04:27
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章