Other Parts Discussed in Thread: MSP430WARE, MSP-IQMATHLIB
Hello,
we cannot take in use the IQmathLib_CCS_MPY32_5xx_6xx_CPUX_large_code_small_data.lib with gcc-9.3.1 on MSP430FR6043.
Steps:
1. started a CCS project using latest GNU v9.3.1.11 for MSP430FR6043
2. in project properties -> Build -> GNU Compiler -> Miscellaneous ensure that these are set:
-mlarge
-mcode-region=none
-mdata-region=lower
3. in project properties -> Build -> Gnu Linker -> Libraries add library name and path:
IQmathLib_CCS_MPY32_5xx_6xx_CPUX_large_code_small_data.lib
C:\ti\msp430ware_3_80_14_01\iqmathlib\libraries\CCS\MPY32\5xx_6xx
4. try to build, but it fails with:
IQmathLib_CCS_MPY32_5xx_6xx_CPUX_large_code_small_data.lib(_IQNdiv.o) uses the small data model whereas d:/tools/gcc-msp430/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/lib/large/crt0.o uses the large data model
Other versions tried:
-mdata-region=lower with IQmathLib_CCS_MPY32_5xx_6xx_CPUX_large_code_restricted_data.lib => same msp430-elf\lib\large\crt0.o uses the large data model
-mdata-region=lower with IQmathLib_CCS_MPY32_5xx_6xx_CPUX_large_code_large_data.lib => IQmathLib can use the upper region for data, but test_GCC.out assumes data is exclusively in lower memory
-mdata-region=none with IQmathLib_CCS_MPY32_5xx_6xx_CPUX_large_code_small_data.lib => msp430-elf\lib\large\crt0.o uses the large data model
-mdata-region=none with IQmathLib_CCS_MPY32_5xx_6xx_CPUX_large_code_restricted_data.lib => msp430-elf\lib\large\crt0.o uses the large data model
The only combination which seems to work is -mcode-region=either plus -mdata-region=none with IQmathLib_CCS_MPY32_5xx_6xx_CPUX_large_code_large_data.lib => builds but with lots of linkage warnings:
But using large_data model brings lots of overhead as all the data pointers will be far instead of near... which means it will slow down the math operations, right?
Was anyone able to got the IQmathLib building fine with GCC? Specifically when the code is large and data is small (IQmathLib_CCS_MPY32_5xx_6xx_CPUX_large_code_small_data.lib)?
Is there a msp430-elf/lib/large/crt0.o which uses large code model but small data model?
Thank you,
Daniel