IAR编译TI CC2540时报错Error[e104]: Failed to fit all segments into specified ranges.

来源:互联网 发布:mac如何删除系统软件 编辑:程序博客网 时间:2024/06/06 00:34
我的IAR版本为8.10.这个错误的完整表述是Error[e104]: Failed to fit all segments into specified ranges. Problem discovered in segment XDATA_N. Unable to place 2 block(s) (0xc02 byte(s) total) in 0xbf3  

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:130d-1eff"

网上很多对这个问题的解释,请参看 http://blog.csdn.net/itas109/article/details/12999831

对于我的问题,网上很多方法都无效,
如改小INT_HEAP_LEN http://e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/f/538/t/420664)
或是修改IAR对XDATA大小的配置 http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/t/78526.aspx
只有一个可用:http://e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/f/538/t/242056
This Err  may cause by buffer using by UART DMA too large.
try to find _hal_uart_dma.c and reduce  2 defined paras value below (  it may be default 255) . For example:
HAL_UART_DMA_RX_MAX =64;//255
HAL_UART_DMA_TX_MAX =64;//255
that mean you using 128 byte= 64tx + 64rx  of Xdata Ram for uart dma circuit buffer. 

0 0
原创粉丝点击