Proplem con Code Composer Studio v6 con GCC

0

Tengo lo siguiente

Tablero Tiva C (TM4C123GXL) Code Composer Studio v6 utilizando GCC

Compilando este código de ejemplo:

/*
 * main.c
 */
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_types.h"
#include "inc/hw_memmap.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"

int main(void)
{
    uint8_t ui8LED = 2;
    SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
    GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);
    while(1)
    {
        // Turn on the LED
        GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, ui8LED);
        // Delay for a bit
        SysCtlDelay(2000000);
        // Cycle through Red, Green and Blue LEDs
        if (ui8LED == 8) {ui8LED = 2;} else {ui8LED = ui8LED*2;}
    }
}

Este código de ejemplo se proporciona dentro de TivaWare funciona bien con el compilador de TI (siguiendo todos los pasos en el pdf del taller). Cuando elijo compilar con GCC usando, si no incluyo el archivo driverlib.lib, dice una referencia indefinida a las funciones utilizadas anteriormente. Si lo incluyo dice dos errores en las cuatro funciones

error: C: /ti/TivaWare_C_Series-2.1.0.12573/driverlib/ccs/Debug/driverlib.lib (cpu.obj) usa los argumentos del registro VFP, Test.out no

no se pudieron combinar los datos específicos de destino del archivo C: /ti/TivaWare_C_Series-2.1.0.12573/driverlib/ccs/Debug/driverlib.lib (cpu.obj)

Creo que todo debería estar bien cuando se usa el compilador de TI, pero quiero probar GCC.

    
pregunta 3bdalla

2 respuestas

2

La lista de controladores en su caso se compila utilizando la Unidad de punto flotante (FPU), mientras que el proyecto de destino no lo hace. Intente agregar -mfloat-abi=hard -mfpu=fpv4-sp-d16 flags o recompilar driverlib sin FPU de hardware. En cualquier caso, la configuración de la FPU debe ser idéntica al compilar la biblioteca y el proyecto.
UPD: Si estas banderas no funcionan, la convención de llamada podría ser diferente. Así que puedes probar -mfloat-abi=soft -mfpu=fpv4-sp-d16 o -mfloat-abi=softfp -mfpu=fpv4-sp-d16
UPD2:  Y sí, es posible que tengas que limpiar el proyecto antes de volver a compilar.

    
respondido por el Eugene Sh.
2

La carpeta driverlib contiene la biblioteca de driverlib precompilada tanto para el compilador CCS como para el GCC, el problema con el que estaba importando la versión CCS de la biblioteca.

En el directorio C: \ ti \ TivaWare_C_Series-2.1.0.12573 [Suponiendo que lo hayas instalado en la C] ve a driverlib / gcc, encontrarás la biblioteca para el compilador gcc.

    
respondido por el 3bdalla

Lea otras preguntas en las etiquetas