86 lines
3.0 KiB
C
86 lines
3.0 KiB
C
//*****************************************************************************
|
|
//
|
|
// usbhandler.c - General USB handling routines.
|
|
//
|
|
// Copyright (c) 2007-2013 Texas Instruments Incorporated. All rights reserved.
|
|
// Software License Agreement
|
|
//
|
|
// Texas Instruments (TI) is supplying this software for use solely and
|
|
// exclusively on TI's microcontroller products. The software is owned by
|
|
// TI and/or its suppliers, and is protected under applicable copyright
|
|
// laws. You may not combine this software with "viral" open-source
|
|
// software in order to form a larger program.
|
|
//
|
|
// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
|
|
// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
|
|
// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
|
|
// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
|
|
// DAMAGES, FOR ANY REASON WHATSOEVER.
|
|
//
|
|
// This is part of revision 1.1 of the Tiva USB Library.
|
|
//
|
|
//*****************************************************************************
|
|
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
#include "inc/hw_memmap.h"
|
|
#include "inc/hw_types.h"
|
|
#include "driverlib/rom.h"
|
|
#include "driverlib/rom_map.h"
|
|
#include "driverlib/usbdrv.h"
|
|
#include "usblib/usblib.h"
|
|
#include "usblib/usblibpriv.h"
|
|
#include "usblib/device/usbdevice.h"
|
|
#include "usblib/device/usbdevicepriv.h"
|
|
#include "usblib/usblibpriv.h"
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \addtogroup device_api
|
|
//! @{
|
|
//
|
|
//*****************************************************************************
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! The USB device interrupt handler.
|
|
//!
|
|
//! This the main USB interrupt handler entry point for use in USB device
|
|
//! applications. This top-level handler will branch the interrupt off to the
|
|
//! appropriate application or stack handlers depending on the current status
|
|
//! of the USB controller.
|
|
//!
|
|
//! Applications which operate purely as USB devices (rather than dual mode
|
|
//! applications which can operate in either device or host mode at different
|
|
//! times) must ensure that a pointer to this function is installed in the
|
|
//! interrupt vector table entry for the USB0 interrupt. For dual mode
|
|
//! operation, the vector should be set to point to \e USB0DualModeIntHandler()
|
|
//! instead.
|
|
//!
|
|
//! \return None.
|
|
//
|
|
//*****************************************************************************
|
|
void
|
|
USB0DeviceIntHandler(void)
|
|
{
|
|
uint32_t ui32Status;
|
|
|
|
//
|
|
// Get the controller interrupt status.
|
|
//
|
|
ui32Status = MAP_USBIntStatusControl(USB0_BASE);
|
|
|
|
//
|
|
// Call the internal handler.
|
|
//
|
|
USBDeviceIntHandlerInternal(0, ui32Status);
|
|
}
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// Close the Doxygen group.
|
|
//! @}
|
|
//
|
|
//*****************************************************************************
|