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.
工具/软件: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
如果您仍然无法使用上述参考文献解决该问题、请发布完整 的构建日志。
控制台窗口
未定义 的首次引用
符号
------ --------
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