Hi,
I am developing with large data memory requirement, ~=50KB of RAM.
IDE: CCS V6.1, Full License.
- Silicon version: mspx
- code memory model: large
- data memory model: large
- near_data: global.
- runtime model options (Advanced Options): checked large data memory model.
the rest, default.
Here are the observations
--------------------------------------------------------------------------------
when total variables size <10kB
In EABI(ELF) mode, compiles successfully, and run.
In Legacy COFF mode, it complains about ""#10204-D could not resolve index library "libmath.a" to a compatible library".
Therefore EABI(ELF) may be the preferred choice for small memory model.
---------------------------------------------------------------------------------
When total variables > ~10kB (i.e. 24kB)
In EABI(ELF) mode, compile warnings
#10015-D output file "msp430f665x_uscia0_spi_09(Large DMA).out" cannot be loaded and run on a target system
#17003-D relocation from function "DMA_ISR" to symbol "bNewData" overflowed; the 20-bit relocated address 0xf47bb is too large to encode in the 16-bit field (type = 'R_MSP430X_ABS16' (15), file = "./LargeDMA.obj", offset = 0x00000022, section = ".text:_isr:DMA_ISR") LargeDMA.c /msp430f665x_uscia0_spi_09(Large DMA) line 238
#17003 relocation from function "imageSPThread" to symbol "bNewData" overflowed; the 20-bit relocated address 0xf47bb is too large to encode in the 16-bit field (type = 'R_MSP430X_ABS16' (15), file = "./LargeDMA.obj", offset = 0x00000012, section = ".text:imageSPThread") LargeDMA.c /msp430f665x_uscia0_spi_09(Large DMA)
The program is able to load, but refuse to launch.
MSP430: Loading complete. There were 1966 (code) and 16 (data) bytes written to FLASH/FRAM. The expected RAM usage is 23906 (uninitialized data + stack) bytes.
In Legacy COFF mode, Compile warnings. In addition to the #10015-D and #17003-D warnings, the libmath.a warning appears.
#10204-D could not resolve index library "libmath.a" to a compatible library msp430f665x_uscia0_spi_09(Large DMA)
However the program load and seems able to execute.
There were 1648 (code) and 114 (data) bytes written to FLASH/FRAM. The expected RAM usage is 0 (uninitialized data + stack) bytes.
===========================================================================
Which model shall I use?
Is there any settings that I need to change? How to remove the #17003-D warnings. Looks dangerous and may results in unknown behaviour.
I think it may be better to use EABI(ELF) model, as the libmath.a is not supported in Legacy COFF. At least, I can't remove/justify this warning.
Appreciate your advice.
Thanks and regards,
Shanguo
 
				 
		 
					 
                           
				