大家好,
我现在编译时总是遇到这个错误:
Error[e104]: Failed to fit all segments into specified ranges. Problem discovered in segment XDATA_N. Unable to place 2 block(s) (0x802 byte(s) total) in 0x29b byte(s) of memory. The problem occurred while processing the segment placement command "-P(XDATA)XDATA_N=_XDATA_START-_XDATA_END", where at the moment of placement the available memory ranges were "XDATA:1c65-1eff"
我的程序:
switch(t2_state){
case T2ST_IDLE:
break;
case T2ST_GPRS_ON:
execute_gop((struct GOP_ITEM*)gprs_on,sizeof(gprs_on)/sizeof(struct GOP_ITEM)); //第一个execute_gop
t2_state = T2ST_IDLE;
break;
case T2ST_GPS_GET:
execute_gop((struct GOP_ITEM*)gps_get_info,sizeof(gps_get_info)/sizeof(struct GOP_ITEM)); //第二个execute_gop
t2_state = T2ST_IDLE;
break;
如果我把第二execute_gop注释掉,编译就能通过。看起来是XDATA空间不足的问题,但是改变INT_HEAP_LEN的值似乎无影响。怎么办呢?被这个问题卡了3天了。请大家指点迷津,多谢了
Susan Yang:
您将INT_HEAP_LEN改小到1000或者更小试试