This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR50431:无法解析索引库

Guru**** 2380860 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1057718/msp430fr50431-could-not-resolve-index-library

器件型号:MSP430FR50431

大家好、

我正在尝试实现由德州仪器提供的 USS 库。 我已经有了现有项目、因此我在其中插入了所需的文件。 我将以下文件从 USS LIB 复制到了我的项目中:  

  • IQmathLib_CCS_MPY32_5xx_6xx_CPUx_LARGE_CODE_SAMPLE_DATA.lib
  • QmathLib_CCS_MPY32_5xx_6xx_CPUx_LARGE_CODE_SAMPLE_DATA.lib
  • USS_SW_CCS_LARGE_CODE_SALOG_DATA.lib
  • IQmathLIb.a
  • QmathLIb.a
  • USS_SW_CCS.A

代码和数据应匹配、因为在项目首选项中、我具有:

但是、我会收到以下错误/警告

  • #10099-D 程序不能放入可用存储器中、或者该段包含需要无法为此段生成的 trampoline 的调用站点。 ".leaRAM"大小为0xf40的运行定位失败。  
    • LEA 低于4K
  • 找不到文件"书籍"。
  • #10204-D 无法将索引库"USS_SW_CCS.A"解析为兼容库
  • #10206-D 将索引库"IQmathLib.a"解析为"IQmathLib_CCS_MPY32_5xx_6xx_CPUx_LARGE_CODE_SAMPLE_DATA.lib"、但无法链接到"IQmathLib_CCS_MPY32_5xx_6xx_CPUx_LARGE_CODE_SAMPLE_DATA.lib"中、因为它不是有效的存档文件。
  • #10206-D 将索引库"QmathLib.a"解析为"QmathLib_CCS_MPY32_5xx_6xx_CPUx_LARGE_CODE_SAMPLE_DATA.lib"、但无法链接到"QmathLib_CCS_MPY32_5xx_6xx_CPUx_LARGE_CODE_SAMPLE_DATA.lib"中、因为它不是有效的存档文件。
  • #10247-D 创建输出段".ram_ram"、但没有段规范

唯一有效的代码和数据大小组合是大代码和大数据。 但.leaRAM 的内存问题仍然存在。  

USS 库计划使用的确切情况如何? 是否可以在 MSP430 MCU 上使用多个 USS 代码? 目前、我正在使用 driverlib、自定义 I2C 和 UART 代码。 这是我无法放入存储器的原因吗?

提前感谢您

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Jan、

    实际上、建议从默认的 USSILib 项目开始进行评估、然后在您知道要使用哪种算法后利用优化的库、然后使用优化的库启动项目。 您很可能获取了默认库、该库中的代码比最终应用所需的代码多。 更多 信息、请参阅《USS Li 用户指南》:

    https://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/USSSWLib/USSSWLibWater/latest/exports/USSLib_02_40_00_00/docs/LibUsersGuide/markdown/OptimLib.html

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jace:

    感谢您的快速回复。 如果我使用优化的库-我选择了 Lobe -我会遇到以下错误:

    #10008-D cannot find file "book"	IQmathLib_CCS_MPY32_5xx_6xx_CPUX_large_code_small_data.lib
    #10008-D cannot find file "book"	QmathLib_CCS_MPY32_5xx_6xx_CPUX_large_code_small_data.lib
    #16019-D file "USS_SW_CCS_large_code_small_data.lib<USS_computeAbsTOF_lobe.obj>" specifies large data memory model, which is not compatible with small data memory model specified in a previous file or on the command line
    #16019-D file "USS_SW_CCS_large_code_small_data.lib<USS_computeDeltaTOF_estimate.obj>" specifies large data memory model, which is not compatible with small data memory model specified in a previous file or on the command line
    #16019-D file "USS_SW_CCS_large_code_small_data.lib<USS_computeVolumeFlowRate_water.obj>" specifies large data memory model, which is not compatible with small data memory model specified in a previous file or on the command line
    #16019-D file "USS_SW_CCS_large_code_small_data.lib<USS_cosInterpolation.obj>" specifies large data memory model, which is not compatible with small data memory model specified in a previous file or on the command line
    #16019-D file "USS_SW_CCS_large_code_small_data.lib<USS_filter.obj>" specifies large data memory model, which is not compatible with small data memory model specified in a previous file or on the command line
    #16019-D file "USS_SW_CCS_large_code_small_data.lib<USS_init.obj>" specifies large data memory model, which is not compatible with small data memory model specified in a previous file or on the command line
    #16019-D file "USS_SW_CCS_large_code_small_data.lib<USS_lea.obj>" specifies large data memory model, which is not compatible with small data memory model specified in a previous file or on the command line
    #16019-D file "USS_SW_CCS_large_code_small_data.lib<USS_math.obj>" specifies large data memory model, which is not compatible with small data memory model specified in a previous file or on the command line
    #16019-D file "USS_SW_CCS_large_code_small_data.lib<USS_run.obj>" specifies large data memory model, which is not compatible with small data memory model specified in a previous file or on the command line
    #16019-D file "USS_SW_CCS_large_code_small_data.lib<USS_support_lea.obj>" specifies large data memory model, which is not compatible with small data memory model specified in a previous file or on the command line
    #16019-D file "USS_SW_CCS_large_code_small_data.lib<USS_updateADCParams.obj>" specifies large data memory model, which is not compatible with small data memory model specified in a previous file or on the command line
    #16019-D file "USS_SW_CCS_large_code_small_data.lib<ussSwLibAlgorithms.obj>" specifies large data memory model, which is not compatible with small data memory model specified in a previous file or on the command line
    #16019-D file "USS_SW_CCS_large_code_small_data.lib<ussSwLibCommonAlgorithms.obj>" specifies large data memory model, which is not compatible with small data memory model specified in a previous file or on the command line
    
    unresolved symbol _IQ12rmpy, first referenced in USS_SW_CCS_large_code_small_data.lib<USS_computeDeltaTOF_estimate.obj>
    unresolved symbol _IQ15rsmpy, first referenced in USS_SW_CCS_large_code_small_data.lib<USS_computeAbsTOF_lobe.obj>
    unresolved symbol _IQ16toF, first referenced in USS_SW_CCS_large_code_small_data.lib<ussSwLibAlgorithms.obj>
    unresolved symbol _IQ19rsmpy, first referenced in USS_SW_CCS_large_code_small_data.lib<USS_computeAbsTOF_lobe.obj>
    unresolved symbol _IQ21mpy, first referenced in USS_SW_CCS_large_code_small_data.lib<USS_computeVolumeFlowRate_water.obj>
    unresolved symbol _IQ21toF, first referenced in USS_SW_CCS_large_code_small_data.lib<ussSwLibAlgorithms.obj>
    unresolved symbol _IQ27toF, first referenced in USS_SW_CCS_large_code_small_data.lib<ussSwLibAlgorithms.obj>
    unresolved symbol _IQ30mpy, first referenced in USS_SW_CCS_large_code_small_data.lib<USS_computeDeltaTOF_estimate.obj>
    unresolved symbol _IQ30rsmpy, first referenced in USS_SW_CCS_large_code_small_data.lib<USS_computeAbsTOF_lobe.obj>
    unresolved symbol _IQ30toF, first referenced in USS_SW_CCS_large_code_small_data.lib<ussSwLibAlgorithms.obj>
    unresolved symbol _Q12rmpy, first referenced in USS_SW_CCS_large_code_small_data.lib<USS_computeDeltaTOF_estimate.obj>
    unresolved symbol _Q15div, first referenced in USS_SW_CCS_large_code_small_data.lib<USS_support_lea.obj>
    

    和有关库的警告:

    #10204-D could not resolve index library "USS_SW_CCS.a" to a compatible library
    #10206-D resolving index library "IQmathLib.a" to "IQmathLib_CCS_MPY32_5xx_6xx_CPUX_large_code_small_data.lib", but cannot link in "IQmathLib_CCS_MPY32_5xx_6xx_CPUX_large_code_small_data.lib" as it is not a valid archive file
    #10206-D resolving index library "QmathLib.a" to "QmathLib_CCS_MPY32_5xx_6xx_CPUX_large_code_small_data.lib", but cannot link in "QmathLib_CCS_MPY32_5xx_6xx_CPUX_large_code_small_data.lib" as it is not a valid archive file

    当我为 代码和数据选择"大"时、这些都将消失。 其他大小组合不起作用。  

    如果其他文件不能处理文件名中写入的存储器大小、原因是什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Jan、

    在选择具有新空白项目的库或与当前项目集成时、是否存在这些内容? 如果是后者、则很可能是库和工程之间的链接器冲突。

    这些设置所做的只是确定代码在闪存中的放置位置。 小保持低于16位与20位地址边界。 大允许链接器将其放置在边界之上或之下、因为可用的 FRAM 空间是分开的。  

    IQMath 库专为多种器件而构建、其中一些器件由于存储器大小较小而不支持大型存储器型号。 对于您使用的器件、没有理由将代码段或数据段限制为小内存模型。 它不会为您提供更小/更优化的内存占用空间。 您的优化设置决定了这一点。  

    如果您希望出于特定目的(如数据记录)从存储器中分离、则应使用  PERSISTENT pragma、以便工具链为您处理该放置位置/分配。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当我选择大代码和大数据时、所有错误都会消失。 我在设置它时没有问题。 但是、我对没有其他方法起作用感到有点惊讶。 为什么是这样?