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.

[参考译文] MSPM0L1306:CCS 某些函数可以##39;t 跳转到定义

Guru**** 2441170 points
Other Parts Discussed in Thread: MSPM0L1306

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1295232/mspm0l1306-ccs-theia-some-function-can-t-jump-to-definition

器件型号:MSPM0L1306

大家好、

我在查找 MSPM0SDK 中用于 L1306的一些示例代码、当时我试图跳转到某些函数的定义、但没成功。 即使在 ADC_TO_UART.c 中的 ADC_TO_UART 示例中的示例文件中,DL_ADC12_startConversion ();函数也没有跳过定义,但 DL_UART_Main_translData ()正在跳过。  

这是什么原因呢?

此致、

丸井努田

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

    您好、 

    您在 最近更新后是否遇到此问题?

    首先、删除调试文件夹中的所有文件。

    然后 [Rebuild project]、这可能会有所帮助。

    此致、

    赫利克

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

    您好、Helic、

    我尝试过、但没有解决问题。

    我在更新前不确定、但我是 CCS Theia 的最新版本。

    此致、

    丸井努田

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

    您好、 

    [quote userid="499871" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1295232/mspm0l1306-ccs-theia-some-function-can-t-jump-to-definition 这样做的原因是什么?

    使用 driverlib.A 作为链接源的 CCS 并未直接编译 ADC12.c。

    目前、您需要手动搜索驱动程序库文件中的函数。

    您可以尝试 CCS、 CCS 中没有跳转问题。

    此致、

    赫利克

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

    您好、Helic、

    为什么它编译 UART.c、但编译 ADC12.c?

    我将介绍 Theia for M0开发、所以我相信客户可能会问这个问题。

    此致!

    马里

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

    您好、 

    Loop 软件团队提供帮助。

    此致、

    赫利克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CCS 使用 driverlib.A 作为链接源,没有直接编译 ADC12.c.

    可以。 因此 CCS Theia 不知道该文件。 对于 CCS Eclipse、用户可以明确添加新路径来搜索文件。 CCS Theia 迄今为止尚不支持该功能。

    为什么它编译 UART.c 但不编译 ADC12.c?

    我在 CCS Theia 中导入了 adc_to_uart 示例、但不会构建任何这些文件。 您能否提供完整构建输出?

    谢谢!

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

    您好、 

    感谢您的答复。

    以下是示例代码的生成 uotput: adc_to_uart_lp_MSPM0L1306_nortos_ticlang

    [0]**** Clean-only build of configuration Debug for project adc_to_uart_LP_MSPM0L1306_nortos_ticlang ****
    [1]"C:\\ti\\ccstheia120\\ccs\\utils\\bin\\gmake" -k -j 12 clean -O 
     
    [2]DEL /F  "syscfg\device.cmd.genlibs" "syscfg\ti_msp_dl_config.h" "syscfg\Event.dot"  "syscfg\device_linker.cmd" "syscfg\device.opt" "syscfg\ti_msp_dl_config.c"  "adc_to_uart_LP_MSPM0L1306_nortos_ticlang.out" 
    [3]DEL /F "adc_to_uart.o" "syscfg\ti_msp_dl_config.o" "startup_mspm0l130x_ticlang.o" "Library\dl_adc12.o" "Library\dl_aes.o" "Library\dl_common.o" "Library\dl_crc.o" "Library\dl_dac12.o" "Library\dl_dma.o" "Library\dl_flashctl.o" "Library\dl_i2c.o" "Library\dl_mathacl.o" "Library\dl_mcan.o" "Library\dl_opa.o" "Library\dl_rtc.o" "Library\dl_spi.o" "Library\dl_timer.o" "Library\dl_trng.o" "Library\dl_uart.o" "Library\dl_vref.o" "Library\m0p\dl_interrupt.o" "Library\m0p\sysctl\dl_sysctl_mspm0c110x.o" "Library\m0p\sysctl\dl_sysctl_mspm0g1x0x_g3x0x.o" "Library\m0p\sysctl\dl_sysctl_mspm0l11xx_l13xx.o" 
    [4]DEL /F "adc_to_uart.d" "syscfg\ti_msp_dl_config.d" "startup_mspm0l130x_ticlang.d" "Library\dl_adc12.d" "Library\dl_aes.d" "Library\dl_common.d" "Library\dl_crc.d" "Library\dl_dac12.d" "Library\dl_dma.d" "Library\dl_flashctl.d" "Library\dl_i2c.d" "Library\dl_mathacl.d" "Library\dl_mcan.d" "Library\dl_opa.d" "Library\dl_rtc.d" "Library\dl_spi.d" "Library\dl_timer.d" "Library\dl_trng.d" "Library\dl_uart.d" "Library\dl_vref.d" "Library\m0p\dl_interrupt.d" "Library\m0p\sysctl\dl_sysctl_mspm0c110x.d" "Library\m0p\sysctl\dl_sysctl_mspm0g1x0x_g3x0x.d" "Library\m0p\sysctl\dl_sysctl_mspm0l11xx_l13xx.d" 
    [5]RMDIR /S/Q  "syscfg\" 
    [6]Finished clean
     
    
    [7]**** Build Finished ****
    
    [8]**** Build of configuration Debug for project adc_to_uart_LP_MSPM0L1306_nortos_ticlang ****
    [9]"C:\\ti\\ccstheia120\\ccs\\utils\\bin\\gmake" -k -j 12 all -O 
     
    [10]Building file: "../adc_to_uart.syscfg"
    [11]Invoking: SysConfig
    [12]"C:/ti/ccstheia120/ccs/utils/sysconfig_1.18.0/sysconfig_cli.bat" -s "C:/ti/mspm0_sdk_1_20_01_06/.metadata/product.json" --script "C:/Users/a0508911/workspace_ccstheia/adc_to_uart_LP_MSPM0L1306_nortos_ticlang/adc_to_uart.syscfg" -o "syscfg" --compiler ticlang
    [13]Running script...
    [14]Validating...
    [15]info: /ti/project_config/ProjectConfig deviceSpin: Note: User must select a device after migration. User must make sure to select the same device as the CCS Launch Device setting for proper configuration.
    [16]Generating Code (adc_to_uart.syscfg)...
    [17]Writing C:\Users\a0508911\workspace_ccstheia\adc_to_uart_LP_MSPM0L1306_nortos_ticlang\Debug\syscfg\device_linker.cmd...
    [18]Writing C:\Users\a0508911\workspace_ccstheia\adc_to_uart_LP_MSPM0L1306_nortos_ticlang\Debug\syscfg\device.opt...
    [19]Writing C:\Users\a0508911\workspace_ccstheia\adc_to_uart_LP_MSPM0L1306_nortos_ticlang\Debug\syscfg\device.cmd.genlibs...
    [20]Writing C:\Users\a0508911\workspace_ccstheia\adc_to_uart_LP_MSPM0L1306_nortos_ticlang\Debug\syscfg\ti_msp_dl_config.c...
    [21]Writing C:\Users\a0508911\workspace_ccstheia\adc_to_uart_LP_MSPM0L1306_nortos_ticlang\Debug\syscfg\ti_msp_dl_config.h...
    [22]Writing C:\Users\a0508911\workspace_ccstheia\adc_to_uart_LP_MSPM0L1306_nortos_ticlang\Debug\syscfg\Event.dot...
    [23]Finished building: "../adc_to_uart.syscfg"
     
    [24]Building file: "../adc_to_uart.c"
    [25]Invoking: Arm Compiler
    [26]"C:/ti/ccstheia120/ccs/tools/compiler/ti-cgt-armllvm_3.2.0.LTS/bin/tiarmclang.exe" -c @"syscfg/device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/a0508911/workspace_ccstheia/adc_to_uart_LP_MSPM0L1306_nortos_ticlang" -I"C:/Users/a0508911/workspace_ccstheia/adc_to_uart_LP_MSPM0L1306_nortos_ticlang/Debug" -I"C:/ti/mspm0_sdk_1_20_01_06/source/third_party/CMSIS/Core/Include" -I"C:/ti/mspm0_sdk_1_20_01_06/source" -gdwarf-3 -MMD -MP -MF"adc_to_uart.d_raw" -MT"adc_to_uart.o" -I"C:/Users/a0508911/workspace_ccstheia/adc_to_uart_LP_MSPM0L1306_nortos_ticlang/Debug/syscfg"  @"syscfg/device.opt"  -o"adc_to_uart.o" "../adc_to_uart.c"
    [27]Finished building: "../adc_to_uart.c"
     
    [28]Building file: "syscfg/ti_msp_dl_config.c"
    [29]Invoking: Arm Compiler
    [30]"C:/ti/ccstheia120/ccs/tools/compiler/ti-cgt-armllvm_3.2.0.LTS/bin/tiarmclang.exe" -c @"syscfg/device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/a0508911/workspace_ccstheia/adc_to_uart_LP_MSPM0L1306_nortos_ticlang" -I"C:/Users/a0508911/workspace_ccstheia/adc_to_uart_LP_MSPM0L1306_nortos_ticlang/Debug" -I"C:/ti/mspm0_sdk_1_20_01_06/source/third_party/CMSIS/Core/Include" -I"C:/ti/mspm0_sdk_1_20_01_06/source" -gdwarf-3 -MMD -MP -MF"syscfg/ti_msp_dl_config.d_raw" -MT"syscfg/ti_msp_dl_config.o" -I"C:/Users/a0508911/workspace_ccstheia/adc_to_uart_LP_MSPM0L1306_nortos_ticlang/Debug/syscfg"  @"syscfg/device.opt"  -o"syscfg/ti_msp_dl_config.o" "syscfg/ti_msp_dl_config.c"
    [31]Finished building: "syscfg/ti_msp_dl_config.c"
     
    [32]Building file: "C:/ti/mspm0_sdk_1_20_01_06/source/ti/devices/msp/m0p/startup_system_files/ticlang/startup_mspm0l130x_ticlang.c"
    [33]Invoking: Arm Compiler
    [34]"C:/ti/ccstheia120/ccs/tools/compiler/ti-cgt-armllvm_3.2.0.LTS/bin/tiarmclang.exe" -c @"syscfg/device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/a0508911/workspace_ccstheia/adc_to_uart_LP_MSPM0L1306_nortos_ticlang" -I"C:/Users/a0508911/workspace_ccstheia/adc_to_uart_LP_MSPM0L1306_nortos_ticlang/Debug" -I"C:/ti/mspm0_sdk_1_20_01_06/source/third_party/CMSIS/Core/Include" -I"C:/ti/mspm0_sdk_1_20_01_06/source" -gdwarf-3 -MMD -MP -MF"startup_mspm0l130x_ticlang.d_raw" -MT"startup_mspm0l130x_ticlang.o" -I"C:/Users/a0508911/workspace_ccstheia/adc_to_uart_LP_MSPM0L1306_nortos_ticlang/Debug/syscfg"  @"syscfg/device.opt"  -o"startup_mspm0l130x_ticlang.o" "C:/ti/mspm0_sdk_1_20_01_06/source/ti/devices/msp/m0p/startup_system_files/ticlang/startup_mspm0l130x_ticlang.c"
    [35]Finished building: "C:/ti/mspm0_sdk_1_20_01_06/source/ti/devices/msp/m0p/startup_system_files/ticlang/startup_mspm0l130x_ticlang.c"
     
    [36]Building target: "adc_to_uart_LP_MSPM0L1306_nortos_ticlang.out"
    [37]Invoking: Arm Linker
    [38]"C:/ti/ccstheia120/ccs/tools/compiler/ti-cgt-armllvm_3.2.0.LTS/bin/tiarmclang.exe" @"syscfg/device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -gdwarf-3 -Wl,-m"adc_to_uart_LP_MSPM0L1306_nortos_ticlang.map" -Wl,-i"C:/ti/mspm0_sdk_1_20_01_06/source" -Wl,-i"C:/Users/a0508911/workspace_ccstheia/adc_to_uart_LP_MSPM0L1306_nortos_ticlang" -Wl,-i"C:/Users/a0508911/workspace_ccstheia/adc_to_uart_LP_MSPM0L1306_nortos_ticlang/Debug/syscfg" -Wl,-i"C:/ti/ccstheia120/ccs/tools/compiler/ti-cgt-armllvm_3.2.0.LTS/lib" -Wl,--diag_wrap=off -Wl,--display_error_number -Wl,--warn_sections -Wl,--xml_link_info="adc_to_uart_LP_MSPM0L1306_nortos_ticlang_linkInfo.xml" -Wl,--rom_model -o "adc_to_uart_LP_MSPM0L1306_nortos_ticlang.out" "./adc_to_uart.o" "./syscfg/ti_msp_dl_config.o" "./startup_mspm0l130x_ticlang.o" -Wl,-l"syscfg/device_linker.cmd"  -Wl,-ldevice.cmd.genlibs -Wl,-llibc.a 
    [39]Finished building target: "adc_to_uart_LP_MSPM0L1306_nortos_ticlang.out"
     
    [40]**** Build Finished *

    当然、这里没有 ADC.c 和 UART.c 的直接编译。

    相反、使用 -llib.a 命令导入 driverlib 的 Arm 链接器。

    为什么它编译 UART.c 但不编译 ADC12.c?

    以下是我在 main.c 中按 Ctrl 并将诅咒移动到他们的函数的屏幕截图:

    如您所见、当 DL_ADC12没有跳转链接时、DL_UART 可以跳转到 dl_uart_main.h。

    此致、

    赫利克

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

    是的、我同意。 我也看到这一点。 我的问题是角田山。

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

    Ki、您好!

    我知道这两个文件都不会被编译、因为这两个文件都不在项目文件夹中、但 UART 函数跳跃与 ADC 函数不跳跃对我来说仍然没有意义。

    如果链接器导入了整个 driverlib、它们不应该都跳到各自的定义吗?

    此致、

    丸井努田

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果链接器导入整个 driverlib,它们是否不应该都跳到各自的定义?

     DL_ADC12_startConversion 看起来是一个内联函数、而 DL_UART_Main_translData 则不是。 看起来像 CCS 中的 clangd 解析器 Theia 没有解析内联函数。 此外、还在 CCS Eclipse 中导入了相同的工程、而且 CCS Eclipse 中的 CDT 索引器能够解析内联函数。

    我不确定这是 Clangd 解析器的一个限制还是一个错误。 我们来看看。

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

    我为此提交了一个错误。 跟踪链接: https://sir.ext.ti.com/jira/browse/EXT_EP-11588

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

    Ki 和 Helic 您好、

    感谢您的支持!

    将标记为已解决。

    此致、

    马里  

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

    所以...对于 MPSM0开发、这个函数(跳转至定义)、Theia 没有 ccs12.4+好。

    希望尽快找到解决方案...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ..对于 MPSM0开发,此函数(跳转至定义),Theia 不如 ccs12.4+。

    它看起来是这样的。 CCS Theia 与 CCS Eclipse 中使用不同的解析工具。