主题中讨论的其他器件: MSP430WARE、 MSP-IQMATHLIB
您好!
我们 不能将 IQmathLib_CCS_MPY32_5xx_6xx_CPUx_LARGE_CODE_SMALL_DATA.lib 与 GCC-9.3.1 的开发流程。
步骤:
1.开始 CCS 使用最新版本的项目 GNU v9.3.1.11 实现 MSP430FR6043
2.在 project properties -> Build -> GNU Compiler -> Miscellaneous 中确保设置了以下内容:
-mlarge
-mcode-region=none
-mdata-region=lower
3.在"project properties"->"Build"->"GNU Linker"->"Libraries"中、添加库名称和路径:
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.尝试编译、但失败、显示:
IQmathLib_CCS_MPY32_5xx_6xx_CPUx_LARGE_CODE_SMALL_DATA.lib (_IQNdiv.o)使用小数据模型、而 d:/tools/gcc-msp430/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/lib/large crt0.o 使用大型数据模式
尝试的其他版本:
-mdata-region=low、含 IQmathLib_CCS_MPY32_5xx_6xx_CPUx_LARGE_CODE_ 受限 _data.lib => 相同 msp430-elf\lib\large\crt0.o 使用大型数据模型
-mdata-region=low、含 IQmathLib_CCS_MPY32_5xx_6xx_CPUx_LARGE_CODE_ 大 _data.lib => IQmathLib 可以对数据使用上部区域、但 TEST_GCC.out 假设数据专门位于下部存储器中
-mdata-region=none、IQmathLib_CCS_MPY32_5xx_6xx_CPUx_LARGE_CODE_ 小 _data.lib => msp430-elf\lib\large\crt0.o 使用大型数据模型
-mdata-region=none 、IQmathLib_CCS_MPY32_5xx_6xx_CPUx_LARGE_CODE_ 受限 _data.lib => msp430-elf\lib\large\crt0.o 使用大型数据模型
唯一看起来有效的组合是 -mcode-region=二者 中任一搭配 、使用 IQmathLib_CCS_MPY32_5xx_6xx_CPUx_LARGE_CODE_ 大 _data.lib => 构建但 具有大量链接警告:
但是 使用 LARGE_DATA 模型会带来很多开销、因为所有数据指针将会很远而不是近... 这意味着它会减慢数学运算的速度、对吧?
有没有人可以 使用 GCC 完美地完成 IQmathLib 构建? 特别是在代码很大且数据很小的情况下(IQmathLib_CCS_MPY32_5xx_6xx_CPUx_LARGE_CODE_SMALL_DATA.lib)?
是否有 MSP430-elf/lib/large/ crt0.o 哪些使用大型代码模型但使用小型 数据模型?
谢谢!
丹尼尔