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.

[参考译文] MSP-EXP430FR2433:编译器链接错误

Guru**** 2130440 points
Other Parts Discussed in Thread: MSP430FR2433, MSP-EXP430FR2433
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1125815/msp-exp430fr2433-compiler-link-error

器件型号:MSP-EXP430FR2433
主题中讨论的其他器件:MSP430WAREMSP430FR2433MSPWARE

我已加载 并安装 MSP430Ware_3_80_14_01。

我创建 了一个空项目  BlinkLED_MSP430FR2433 、并从 C:\ti\MSP430Ware_3_80_14_01\examples\boards\MSP-EXP430FR2433\MSP-EXP430FR2433_Software_Examples\Firmware\Source\BlinkLED_MSP430FR2433添加了 main.c 文件

我在编译器包含路径中添加了文件夹 C:\ti\MSP430Ware_3_80_14_01\examples\boards\MSP-EXP430FR2433\MSP-EXP430FR2433_Software_Examples\Firmware\Source\BlinkLED_MSP430FR2433\driverlib\MSP430FR2xx_4xx、以便可以找到 driverlib.h 文件。

我收到几个链接错误、例如...未解析的符号 GPIO_setAsOutputPin、首先在./main.obj 中引用

这是 CCS 生成的文件搜索路径

您是否能够帮助我解决链接器错误?

谢谢、

维克多

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

    尊敬的 Victor:

    我有点困惑、您是否只是尝试运行闪烁的 LED 示例代码?

    您使用的是 CCS 还是 IAR IDE?

    您能否仔细检查您是否已执行以下步骤: https://software-dl.ti.com/ccs/esd/documents/users_guide/index_overview.html

    此致、  

    Henok

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

    我正在使用 CCS 构建和运行两个闪烁示例代码。

    在 CCS 中、您可以为新项目选择  

    它会生成以下代码、这些代码会进行编译、链接和运行。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #include <msp430.h>
    void main(void) {
    WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
    PM5CTL0 &= ~LOCKLPM5; // Disable the GPIO power-on default high-impedance mode
    // to activate previously configured port settings
    P1DIR |= 0x01; // Set P1.0 to output direction
    for(;;) {
    volatile unsigned int i; // volatile to prevent optimization
    P1OUT ^= 0x01; // Toggle P1.0 using exclusive-OR
    i = 10000; // SW Delay
    do i--;
    while(i != 0);
    }
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    您还可以使用 CCS 构建空项目。

    并从 MSP430Ware 中添加 main.c、该文件将进行编译、但不会链接。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #include <driverlib.h>
    int main(void) {
    volatile uint32_t i;
    // Stop watchdog timer
    WDT_A_hold(WDT_A_BASE);
    // Set P1.0 to output direction
    GPIO_setAsOutputPin(
    GPIO_PORT_P1,
    GPIO_PIN0
    );
    // Disable the GPIO power-on default high-impedance mode
    // to activate previously configured port settings
    PMM_unlockLPM5();
    while(1)
    {
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    两者的链接器文件搜索路径相同

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

    尊敬的 Victor:  

    您能否在文件存储库中共享已安装 MSP430Ware 的位置?  

    您还可以尝试导入与上述 main.c 代码最相似的 driverlib 示例吗? 通常、我们建议从预先存在的示例开始、并根据需要进行修改。

    此致、  

    Henok

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

    您好、Henok、

    感谢你的帮助。

    让我来为您提供一个 TivaWare 系列中的工作示例。

    我使用位于 TivaWare 外设驱动程序库中的 API 函数调用 GPIOIntEnable。

    在工程属性中、我添加了 driverlib.lib 的路径、其中所有内容都可以编译并链接而不会出现错误。

    如果我删除了 driverlib.lib 的路径、链接器会生成错误。

    如果我搜索 TivaWare 安装、我会找到这些文件。

    现在适用于 MSPWare。

    我使用 API 调用 GPIO_setAsOutputPin、如 《适用于 MSP430FR2xx_4xx 器件的 MSP430 DriverLib 用户 指南》中所示

     在项目属性的文件搜索路径中没有对 driverlib.lib 的引用。

    链接器会生成错误。

    如果我在 MSPWare 中搜索 driverlib.lib、我会得到以下结果。

    没有 MSP430和 FR4333的列表。

     在哪里可以找到 MSP430或 FR4333的 driverlib.lib?

     

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

    尊敬的 Victor:  

    我相信我知道问题是什么、让我在我的身边做一些测试、我将很快告诉您如何解决这个问题。  

    此致、  

    Henok

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

    尊敬的 Victor:  

    让我们尝试直接从 msp430Ware 导入空的 driverlib 示例。  

    1.单击项目选项卡并转至"import CCS projects...(导入 CCS 项目...)"

    2.单击右上角的浏览  

    3.找到 msp430Ware 并按照以下目录顺序操作:msp430Ware --> driverlib--> examples --> MSP430FR2xx_4xx --> 00_EmptyProject

    4.现在选择文件夹并重试、您现在应该会在工作区的这个项目下看到一个 driverlib 文件夹

    请告诉我这是否可行。  

    另一个想法是选择一个有效的 msp430Ware 示例、然后将 driverlib 文件夹直接复制到您的项目中

    以下是之前的 E2E、其中显示了以下内容: MSP430F5438A:如何将 driverlib 包含在我的现有 CCS 项目中? - MSP 低功耗微控制器论坛- MSP 低功耗微控制器- TI E2E 支持论坛

    此致、  

    Henok