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.

[参考译文] CCS/MSP430F5659:错误:未解析的符号,首先引用

Guru**** 2553260 points
Other Parts Discussed in Thread: MSP430F5659, MSP430G2553

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/582767/ccs-msp430f5659-error-unresolved-symbol-first-referenced

部件号:MSP430F5659
主题中讨论的其他部件: MSP430G2553

工具/软件:Code Composer Studio

我正在使用msp430f5659微控制器。 我正在尝试连接LCD,UART,但在构建之后却出现了错误:未解析的符号,首先参考。 我已阅读论坛以解决此错误,发现我缺少一些库,但无法找到哪个库。 我附上了我的控制台的屏幕截图,问题屏幕。 请告诉我我我犯了什么错误?

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

    Harish yadav 说:
    我尝试连接LCD,UART,但在构建之后会出现错误:未解析符号,首先参考。 我已阅读论坛以解决此错误,我发现缺少某些库,但无法找到哪个库。[/QUOT]

    哈里什

    未解决的符号错误基本上是表示main.c引用了符号clean_lcd,lcd_init等,但链接程序找不到它的定义。 定义可以位于作为项目一部分进行编译和链接的C源文件中,也可以位于链接到项目的库文件中。 我不知道您正在使用的项目/接口代码是如何定义这些符号的,但我看到/driverlibrary目录中有一些源文件。 如果这些文件包含这些符号的定义,我想它们应该包含这些定义。 或者,符号定义可能来自库,但MSP设备论坛需要考虑哪个库。  

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

    我已在各自的.c 文件中定义了所有符号,并在.h文件中声明了这些符号。 我认为我的链接器无法链接所有这些文件,但为什么? 我无法解决此问题,请提出建议。 我在论坛中读到过这些类型的问题,但他们在任何地方都说文件搜索路径中缺少一些文件。哪个文件无法找到此问题?

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

    我已在各自的.c 文件中定义了所有符号,并在.h文件中声明了这些符号。 [/引述]

    您能否选择错误中提到的几个未解析的符号并将C源文件附加到定义了这些函数的位置?
    另外,请 CCS生成控制台中的完整输出保存到文本文件并将其附加到此处。

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

    正如所说,它与MSP430论坛相关,因此我也将其发布在那里。 我不知道这是与MSP还是CCS论坛有关。

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

    您好,

    这是我的lcd.h文件:

    /*
     * lcd.h
     *
     * 创建日期:2017年3月21日
     *     作者:Acer
     */
    包含"inc/hw659.h"

    #ifndef驱动器LIBRARY_LCD_H_
    #define DRIVERLIBRARY_LCD_H_

    #define LCD_RS  BIT1.
    #define LCD_EN  BIIT2
    #define LCD_D4  BIT3.
    #define LCD_D5  BIT4.
    #define LCD_D6  BIT5.
    #define LCD_D7  BIT6.
    #define LCD_DIR   P1DIR
    #define lcd_port  P1OUT
    #define LCD_port_mask  (LCD_EN | LCD_D4 | LCD_D5 | LCD_D6 | LCD_D7)

    extern void lcd_cmd(char);
    外部void lcd_pulse (void);
    extern void lcd_init(void);
    extern void lcd_data(unsigned char);
    extern void set_cursor_pos(int,int );
    extern void clearport();
    外部真空bussyck (void);
    extern void cleal_lcd (void);
    extern void显示(unsigned char*字);



    #endif /* DRIVERLIBRARY_LCD_H_*/


    这是c文件中发生错误的2个函数:

    void set_cursor_pos (int row,int col)

       字符地址;
       IF (行=0)
          addr=0x00;    //行0,然后addr=0x00h (RAM addr)
       否则
          addr=0x40; //行1 den addr=0x40h
       Addr |=col;    //为列添加偏移量
       lcd_cmd(0x80|addr); //设置用于显示的DDRAM地址
    }

    void clean_lcd()

          LCD_CMD (0x01);  //清除显示
             //_delay_cycles (1000);
          LCD_cmd(0x02);  //返回主页
          //_delay_cycles (10万);
    }

    我正在附加控制台文本文件,正如您所说。

    e2e.ti.com/.../5148.New-Text-Document.txt

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

    Harish yadav 说:
    这是c文件中发生错误的2个函数:[/QUOT]

    这是否在LCD.c文件中? 请在此处附加该文件并同时附加main.c吗?

    另外,请执行项目重建,并保存CCS生成控制台的内容,然后在此处附加。 当前构建日志仅显示链接步骤。

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

    您好,

    我正在将我的项目截断为仅LCD文件并进行构建,但显示相同的错误。 因为我的代码以前在msp430g2553上工作,但我正在迁移到msp430f5659。 现在,我尝试以这种格式在msp430g2553上再次构建我的项目,最初我在头文件中定义和声明函数,但从现在起,我尝试在stdandar fromat中工作。 我要在此处附加msp430g2553 mcu的日志文件main.c,lcd.h,hw659.h,driverlib.h文件。

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

    哈里什

    此处的问题是编程错误,与工具集或设备无关。  

    查看构建日志后,我看到main.c正在编译,但lcd.c没有编译。 通常,作为项目一部分的所有C源文件都应进行编译,然后生成的目标文件应作为生成过程的一部分进行链接。 在您的项目中,C源文件是main.c和lcd.c,但只编译main.c。 我查看了源文件lcd.c并看到了以下内容:

    #ifdef驱动器LIBRARY_LCD_H_
    #include"lcd.h"
    ...
    ...
    #endif

    由于 在源代码中的该点未定义DRIVERLIBRARY_LCD_H_,因此假定文件中的整个代码无效,因此未编译。 如果将#include "LCD.h"移到#ifdef行上方,则符号定义(以及代码的其余部分)将有效,并且将生成LCD.c文件。  

    请告诉我们这是否有助于解决问题。

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

    非常感谢AratiG,

    对我来说还不错…