1. 硬件之家首页
  2. 编程设计

Error: Segment DATA16_I (size: 0xa80 align: 0x1) is too long for segment definition.

在编译程序时,IAR MSP430编译报错:

Error[e16]: Segment DATA16_I (size: 0xa80 align: 0x1) is too long for segment definition. At least 0x27f more bytes needed. The
pro××em occurred while processing the segment placement command
“-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,HEAP+_HEAP_SIZE=0200-0A00”, where at the moment of placement the ××aila××e
memory ranges were “CODE:200-A00”

经过验证是由于RAM耗尽,程序里估计有很大的数据量(比如int,float或者数组等),导致编译后的文件超过单片机的程序存储RAM的大小,遂编译器报该错误。最好使用const定义到FLASH里面,比如单片机片内的Flash,或者写入外置的Flash芯片(比如W25Q64),问题基本可以解决。


来源:硬件之家-allchipdata

原创文章,如若转载,请注明出处:http://www.allchipdata.com/archives/1896

发表评论

电子邮件地址不会被公开。 必填项已用*标注