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/TM4C1294NCPDT:gmake:***[main.obj]错误1.

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/806145/ccs-tm4c1294ncpdt-gmake-main-obj-error-1

器件型号:TM4C1294NCPDT

工具/软件:Code Composer Studio

我不熟悉 CCS、我将 TM4C1294用于 SPI 通信、将 SSI0用作主器件、将 SSI2用作从器件、我收到此错误。

下面给出了代码、我收到以下错误:

                              说明资源          类型
gmake:***[main.obj]错误1   TMSPI          C/C++问题
说明                                     资源                      类型
gmake:***[tm4c1294ncpdt_startup_ccs.obj]错误1   TMSPI                     C/C++问题


                                                                 说明资源         类型
gmake:目标"全部"不会由于错误而重新生成。    TMSPI          C/C++问题

#include
#include
#include
#include "inc/hw_memmap.h"
#include "driverlib/gpio.h"
#include "driverlib/pin_map.h"
#include "driverlib/ssi.h"
#include "driverlib/sysctl.h"
#include "driverlib/uart.h"
#include "utils/uartstdio.h"



#define NUM_SSI_DATA 15.

/*SSI 初始化函数*/
//
//
//此函数将 UART0设置为用于控制台显示信息
//因为示例正在运行。
//
//
无效
InitConsole (空)

   //
   //启用用于 UART0引脚的 GPIO 端口 A。
   // TODO:将其更改为您正在使用的 GPIO 端口。
   //
   SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);

   //
   //为端口 A0和 A1上的 UART0功能配置引脚复用。
   //如果您的器件不支持引脚复用、则无需执行此步骤。
   // TODO:更改此选项以选择您正在使用的端口/引脚。
   //
   GPIOPinConfigure (GPIO_PA0_U0RX);
   GPIOPinConfigure (GPIO_PA1_U0TX);

   //
   //启用 UART0以便我们可以配置时钟。
   //
   SysCtlPeripheralEnable (SYSCTL_Periph_UART0);

   //
   //使用内部16MHz 振荡器作为 UART 时钟源。
   //
   UARTClockSourceSet (UART0_BASE、UART_CLOCK_PIOSC);

   //
   //为这些引脚选择替代(UART)功能。
   // TODO:更改此选项以选择您正在使用的端口/引脚。
   //
   GPIOPinTypeUART (GPIO_Porta_base、GPIO_PIN_0 | GPIO_PIN_1);

   //
   //初始化控制台 I/O 的 UART
   //
   UARTStdioConfig (0、115200、16000000);


空 SSI_init (空)

   uint32_t ui32SysClkFreq;
   uint32_t temp;

   ui32SysClkFreq = SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、120000000);

   SysCtlPeripheralEnable (SYSCTL_Periph_SSI0);
   SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);

   GPIOPinConfigure (GPIO_PA2_SSI0CLK);
   GPIOPinConfigure (GPIO_PA3_SSI0FSS);
   GPIOPinConfigure (GPIO_PA4_SSI0XDAT0);
   GPIOPinConfigure (GPIO_PA5_SSI0XDAT1);
   GPIOPinTypeSSI (GPIO_Porta_base、GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|GPIO_PIN_2);

   SSIConfigSetExpClk (SSI0_BASE、ui32SysClkFreq、SSI_FRF_MOTO_MODE_0、SSI_MODE_MASTER、10000、 8);
   SSIEnable (SSI0_BASE);

   SysCtlPeripheralEnable (SYSCTL_Periph_SSI2); //启用 SSI2
   SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);//启用端口 B GPIO 以与 SSI2数据和帧信号配合使用

   GPIOPinConfigure (GPIO_PD3_SSI2CLK);
   GPIOPinConfigure (GPIO_PD2_SSI2FSS);
   GPIOPinConfigure (GPIO_PD1_SSI2XDAT0);
   GPIOPinConfigure (GPIO_PD0_SSI2XDAT1);
   GPIOPinTypeSSI (GPIO_PORTD_base、GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);

   SSIConfigSetExpClk (SSI2_base、ui32SysClkFreq、SSI_FRF_MOTO_MOTO_0、SSI_MODE_SLAVE、10000、 8);
   SSIEnable (SSI2_base);



/*function,用于从 SSI2中的 ssi0读取数据,并将其写回 ssi0,并将两者进行比较*/
void main (void)

   uint32_t ui32Index;
   uint32_t ui32Data;
   char SPI_DATA_Received_Back [NUM_SSI_DATA];
   uint32_t SPI_received_char;
   const char SPI_TEST_COMMAN[NUM_SSI_DATA]={"这是一个测试\0"};
   bool pass 或失败;

   InitConsole();
   SSI_init();

   memset (SPI_DATA_Received_Back、"\0"、NUM_SSI_DATA);
   for (ui32Index = 0;ui32Index < NUM_SSI_DATA;ui32Index++)
   {
      ui32Data = SPI_TEST_COMMAN[ui32Index];
      SSIDataPut (SSI0_BASE、ui32Data);
       // SSIDataGet 会等待直到收到字符
      SSIDataGet (SSI0_BASE、&SPI_Received_char);//虚拟读取至空主 Rx 缓冲器
      SSIDataGet (SSI2_base、&SPI_received_char);//从从 Rx 缓冲区获取数据
      SSIDataPut (SSI2_base、SPI_Received_char); //发送回主器件
      spi_data_received_back [ui32Index]=(char) spi_received_char;
   }
   if (strcmp (spi_test_command、spi_data_received_back)==0)
   {
       PASS_OR_FAIL = 1;
       UARTprintf ("\n\rPASSED\n"\});
   }
   其他
   {
       PASS_OR_FAIL = 0;
       UARTprintf ("\n\rFAILED\n\r");
   }

   返回;


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

    [引用 user="Snehal Deshmukh"]说明                              资源          类型
    gmake:***[main.obj]错误1   TMSPI          C/C++问题
    说明                                     资源                      类型
    gmake:***[tm4c1294ncpdt_startup_ccs.obj]错误1   TMSPI                     C/C++问题[/QUERINT]

    此摘要消息只是表示存在错误、但不会进一步指示错误的来源。
    请查看 CCS 编译控制台、该控制台应提供更详细的错误消息、通常甚至是编译器错误时的错误行。 此外、本页还介绍了一些常见的 CCS 编译错误、并可能指向正确的方向来识别错误源:
    http://software-dl.ti.com/ccs/esd/documents/sdto_ccs_build-errors.html

    如果您仍然无法使用上述参考文献解决该问题、请发布完整 的构建日志

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我仍然找不到解决此错误的方法。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    正如 Aarti 在之前的帖子中所要求的、请在构建控制台中提供所有构建消息:
    software-dl.ti.com/.../sdto_ccs_build-errors.html

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

    控制台窗口

    未定义      的首次引用
     符号                 
     ------       --------
     UARTStdioConfig ./main.obj      
     UARTprintf     ./main.obj      
     
    错误#10234-D:未解析的符号仍然存在
    错误#10010:链接期间遇到错误;未生成"SLAVETM4.OUT"
     
    >>编译失败
    Makefile:143:目标'SLAVETM4.OUT'的配方失败
    Makefile:139:目标'all'的配方失败
    gmaked[1]:***[SLAVETM4.OUT]错误1.
    gmake:***[全部]错误2.

    ****构建完成****

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

    [引用 user="Snehal Deshmukh)]未定义      的首次引用
     符号                 
     ------       --------
     UARTStdioConfig ./main.obj      
     UARTprintf     ./main.obj      
     
    错误#10234-D:未解析的符号仍保留[/引用]

    这是一个关键错误。

    为什么会出现此错误? 请参阅:

    http://software-dl.ti.com/ccs/esd/documents/sdto_ccs_build-errors.html#linker-diagnostics

    提示:在哪里定义了 UARTStdioConfig 和 UARTprintf? 确保您将该源/库作为项目的一部分。

    谢谢

    Ki

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我不知道您的项目是从中派生出来的 AM 示例。
    您可能需要将诸如 uartstdio.c 之类的内容包含到您的项目中。
    只需导入定时器示例并检查如何定义和实现 UARTStdioConfig()和 UARTprintf()。