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.
Part Number: MSP432P401R
Tool/software: Code Composer Studio
Hello everybody,
I'm interfacing MSP432 and SdCard using the code that Alejandro Martinez released on his GitHub. But when I try to use the "f_gets" function I receive the error "Unresolved symbol". The strange thing is that this function is declared on the "ff.h" file. I don't know what I have to do to solve this issue.
Is anybody has passed through this before?
Thank you so much guys!
ERROR:
CODE:
#include <Hardware/SPI_Driver.h> #include <Hardware/GPIO_Driver.h> #include <Hardware/CS_Driver.h> #include <Hardware/TIMERA_Driver.h> #include <fatfs/ff.h> #include <fatfs/diskio.h> #include <Devices/MSPIO.h> /* MISO = P1.7 * MOSI = P1.6 * SCK = P1.5 * CS = P5.0 * VCC = 3.3V * GND = GND */ /*Huge thanks to bluehash @ github.com/.../ /* UART Configuration Parameter. These are the configuration parameters to * make the eUSCI A UART module to operate with a 115200 baud rate. These * values were calculated using the online calculator that TI provides * at: * software-dl.ti.com/.../index.html */ eUSCI_UART_Config UART0Config = { EUSCI_A_UART_CLOCKSOURCE_SMCLK, 13, 0, 37, EUSCI_A_UART_NO_PARITY, EUSCI_A_UART_LSB_FIRST, EUSCI_A_UART_ONE_STOP_BIT, EUSCI_A_UART_MODE, EUSCI_A_UART_OVERSAMPLING_BAUDRATE_GENERATION }; /* SPI Configuration Parameter. These are the configuration parameters to * make the eUSCI B SPI module to operate with a 500KHz clock.*/ eUSCI_SPI_MasterConfig SPI0MasterConfig = { EUSCI_B_SPI_CLOCKSOURCE_SMCLK, 3000000, 500000, EUSCI_B_SPI_MSB_FIRST, EUSCI_B_SPI_PHASE_DATA_CHANGED_ONFIRST_CAPTURED_ON_NEXT, EUSCI_B_SPI_CLOCKPOLARITY_INACTIVITY_HIGH, EUSCI_B_SPI_3PIN }; /* Timer_A UpMode Configuration Parameters */ Timer_A_UpModeConfig upConfig = { TIMER_A_CLOCKSOURCE_SMCLK, // SMCLK Clock Source TIMER_A_CLOCKSOURCE_DIVIDER_64, // SMCLK/1 = 3MHz 30000, // 1 ms tick period TIMER_A_TAIE_INTERRUPT_DISABLE, // Disable Timer interrupt TIMER_A_CCIE_CCR0_INTERRUPT_ENABLE , // Enable CCR0 interrupt TIMER_A_DO_CLEAR // Clear value }; FATFS FatFs; /* Work area (filesystem object) for logical drive */ void main(void) { WDT_A_holdTimer(); CS_Init(); /*Initialize all hardware required for the SD Card*/ SPI_Init(EUSCI_B0_BASE, SPI0MasterConfig); UART_Init(EUSCI_A0_BASE, UART0Config); GPIO_Init(GPIO_PORT_P5, GPIO_PIN0); TIMERA_Init(TIMER_A1_BASE, UP_MODE, &upConfig, disk_timerproc); Interrupt_enableMaster(); FIL fil; /* File object */ char line[100]; /* Line buffer */ FRESULT fr; /* FatFs return code */ /* Register work area to the default drive */ f_mount(&FatFs, "", 0); /* Open a text file */ fr = f_open(&fil, "message.txt", FA_READ); if (fr) return (int)fr; /* Read every line and display it */ while (f_gets(line, sizeof line, &fil)) { //printf(line); } /* Close the file */ f_close(&fil); return 0; }
Hello,
Guilherme Lionço said:But when I try to use the "f_gets" function I receive the error "Unresolved symbol". The strange thing is that this function is declared on the "ff.h" file.
This is a linker error, not a compiler error. Hence why including the header file is not enough. You need to also include the object file that has the f_gets function (I don't know where it is defined since this is project specific).
For more details on the error, please see:
Thanks
ki