Tool/software: Code Composer Studio
Hi,
I created one project likeUSB and I copied entire code from example usb_dev_bulk and copied into the USB project. When I am running this program it is giving so many errors.. Is their any new things to add in below code....
#include <stdbool.h>
#include <stdint.h>
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "inc/hw_ints.h"
#include "driverlib/interrupt.h"
#include "driverlib/sysctl.h"
#include "driverlib/systick.h"
#include "driverlib/rom.h"
#include "driverlib/rom_map.h"
#include "usblib/usblib.h"
#include "usblib/usb-ids.h"
#include "usblib/device/usbdevice.h"
#include "usblib/device/usbdbulk.h"
#include "utils/uartstdio.h"
#include "utils/uartstdio.c"
#include "utils/ustdlib.h"
#include "drivers/pinout.h"
#include "usb_bulk_structs.h"
#define SYSTICKS_PER_SECOND 100
#define SYSTICK_PERIOD_MS (1000 / SYSTICKS_PER_SECOND)
volatile uint32_t g_ui32SysTickCount = 0;
volatile uint32_t g_ui32TxCount = 0;
volatile uint32_t g_ui32RxCount = 0;
#define COMMAND_PACKET_RECEIVED 0x00000001
#define COMMAND_STATUS_UPDATE 0x00000002
volatile uint32_t g_ui32Flags = 0;
uint8_t g_pui8USBRxBuffer[],g_pui8USBTxBuffer[];
static volatile bool g_bUSBConfigured = false;
#ifdef DEBUG
void
__error__(char *pcFilename, uint32_t ui32Line)
{
}
#endif
void SysTickIntHandler(void)
{
g_ui32SysTickCount++;
}
static uint32_t EchoNewDataToHost(tUSBDBulkDevice *psDevice, uint8_t *pi8Data,uint_fast32_t ui32NumBytes)
{
uint_fast32_t ui32Loop, ui32Space, ui32Count;
uint_fast32_t ui32ReadIndex;
uint_fast32_t ui32WriteIndex;
tUSBRingBufObject sTxRing;
USBBufferInfoGet(&g_sTxBuffer, &sTxRing);
ui32Space = USBBufferSpaceAvailable(&g_sTxBuffer);
ui32Loop = (ui32Space < ui32NumBytes) ? ui32Space : ui32NumBytes;
ui32Count = ui32Loop;
g_ui32RxCount += ui32NumBytes;
ui32ReadIndex = (uint32_t)(pi8Data - g_pui8USBRxBuffer);
ui32WriteIndex = sTxRing.ui32WriteIndex;
while(ui32Loop)
{
if((g_pui8USBRxBuffer[ui32ReadIndex] >= 'a') && (g_pui8USBRxBuffer[ui32ReadIndex] <= 'z'))
{
g_pui8USBTxBuffer[ui32WriteIndex] = (g_pui8USBRxBuffer[ui32ReadIndex] - 'a') + 'A';
}
else
{
if((g_pui8USBRxBuffer[ui32ReadIndex] >= 'A') && (g_pui8USBRxBuffer[ui32ReadIndex] <= 'Z'))
{
g_pui8USBTxBuffer[ui32WriteIndex] = (g_pui8USBRxBuffer[ui32ReadIndex] - 'Z') + 'z';
}
else
{
g_pui8USBTxBuffer[ui32WriteIndex]=g_pui8USBRxBuffer[ui32ReadIndex];
}
}
ui32WriteIndex++;
ui32WriteIndex =((ui32WriteIndex == BULK_BUFFER_SIZE) ? 0 : ui32WriteIndex);
ui32ReadIndex++;
ui32ReadIndex = ((ui32ReadIndex == BULK_BUFFER_SIZE) ?0 : ui32ReadIndex);
ui32Loop--;
}
USBBufferDataWritten(&g_sTxBuffer, ui32Count);
return(ui32Count);
}
uint32_t TxHandler(void *pvCBData, uint32_t ui32Event, uint32_t ui32MsgValue,void *pvMsgData)
{
if(ui32Event == USB_EVENT_TX_COMPLETE)
{
g_ui32TxCount += ui32MsgValue;
}
return(0);
}
uint32_t RxHandler(void *pvCBData, uint32_t ui32Event, uint32_t ui32MsgValue,void *pvMsgData)
{
switch(ui32Event)
{
case USB_EVENT_CONNECTED:
{
g_bUSBConfigured = true;
g_ui32Flags |= COMMAND_STATUS_UPDATE;
USBBufferFlush(&g_sTxBuffer);
USBBufferFlush(&g_sRxBuffer);
break;
}
case USB_EVENT_DISCONNECTED:
{
g_bUSBConfigured = false;
g_ui32Flags |= COMMAND_STATUS_UPDATE;
break;
}
case USB_EVENT_RX_AVAILABLE:
{
tUSBDBulkDevice *psDevice;
psDevice = (tUSBDBulkDevice *)pvCBData;
return(EchoNewDataToHost(psDevice, pvMsgData, ui32MsgValue));
}
case USB_EVENT_SUSPEND:
case USB_EVENT_RESUME:
break;
default:
break;
}
return(0);
}
int main(void)
{
uint_fast32_t ui32TxCount;
uint_fast32_t ui32RxCount;
uint32_t ui32SysClock;
uint32_t ui32PLLRate;
ui32SysClock = SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |SYSCTL_OSC_MAIN |SYSCTL_USE_PLL |SYSCTL_CFG_VCO_480), 120000000);
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
UARTStdioConfig(0, 115200, ui32SysClock);
g_bUSBConfigured = false;
SysTickPeriodSet(ui32SysClock / SYSTICKS_PER_SECOND);
SysTickIntEnable();
SysTickEnable();
UARTprintf("\033[2J\nTiva C Series USB bulk device example\n");
UARTprintf("---------------------------------\n\n");
UARTprintf("Configuring USB... \n");
USBBufferInit(&g_sTxBuffer);
USBBufferInit(&g_sRxBuffer);
SysCtlVCOGet(SYSCTL_XTAL_25MHZ, &ui32PLLRate);
USBDCDFeatureSet(0, USBLIB_FEATURE_CPUCLK, &ui32SysClock);
USBDCDFeatureSet(0, USBLIB_FEATURE_USBPLL, &ui32PLLRate);
USBStackModeSet(0, eUSBModeDevice, 0);
USBDBulkInit(0, &g_sBulkDevice);
UARTprintf("Waiting for host...\r");
ui32RxCount = 0;
ui32TxCount = 0;
while(1)
{
if(g_ui32Flags & COMMAND_STATUS_UPDATE)
{
g_ui32Flags &= ~COMMAND_STATUS_UPDATE;
if(g_bUSBConfigured)
{
UARTprintf("Host Connected. \n\n");
UARTprintf("Data transferred:\n");
UARTprintf("TX: %d RX: %d \r",g_ui32TxCount,g_ui32RxCount);
}
else
{
UARTprintf("\n\nHost Disconnected.\n\n");
}
}
if(ui32TxCount != g_ui32TxCount)
{
ui32TxCount = g_ui32TxCount;
UARTprintf("TX: %d RX: %d \r",g_ui32TxCount,g_ui32RxCount);
}
if(ui32RxCount != g_ui32RxCount)
{
ui32RxCount = g_ui32RxCount;
UARTprintf("TX: %d RX: %d \r",g_ui32TxCount,g_ui32RxCount);
}
}
}
But I am getting below mentioned errors..
I need help...
Thanks & regards,
Anamika