Files
@ 8a3e6f39733b
Branch filter:
Location: therm/libraries/USB/usb_sil.c - annotation
8a3e6f39733b
4.4 KiB
text/plain
Initial PID implementation functional
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 675c16cde5b1 | /**
******************************************************************************
* @file usb_sil.c
* @author MCD Application Team
* @version V4.0.0
* @date 28-August-2012
* @brief Simplified Interface Layer for Global Initialization and Endpoint
* Rea/Write operations.
******************************************************************************
* @attention
*
* <h2><center>© COPYRIGHT 2012 STMicroelectronics</center></h2>
*
* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
* You may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.st.com/software_license_agreement_liberty_v2
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "usb_lib.h"
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Extern variables ----------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
/*******************************************************************************
* Function Name : USB_SIL_Init
* Description : Initialize the USB Device IP and the Endpoint 0.
* Input : None.
* Output : None.
* Return : Status.
*******************************************************************************/
uint32_t USB_SIL_Init(void)
{
/* USB interrupts initialization */
/* clear pending interrupts */
_SetISTR(0);
wInterrupt_Mask = IMR_MSK;
/* set interrupts mask */
_SetCNTR(wInterrupt_Mask);
return 0;
}
/*******************************************************************************
* Function Name : USB_SIL_Write
* Description : Write a buffer of data to a selected endpoint.
* Input : - bEpAddr: The address of the non control endpoint.
* - pBufferPointer: The pointer to the buffer of data to be written
* to the endpoint.
* - wBufferSize: Number of data to be written (in bytes).
* Output : None.
* Return : Status.
*******************************************************************************/
uint32_t USB_SIL_Write(uint8_t bEpAddr, uint8_t* pBufferPointer, uint32_t wBufferSize)
{
/* Use the memory interface function to write to the selected endpoint */
UserToPMABufferCopy(pBufferPointer, GetEPTxAddr(bEpAddr & 0x7F), wBufferSize);
/* Update the data length in the control register */
SetEPTxCount((bEpAddr & 0x7F), wBufferSize);
return 0;
}
/*******************************************************************************
* Function Name : USB_SIL_Read
* Description : Write a buffer of data to a selected endpoint.
* Input : - bEpAddr: The address of the non control endpoint.
* - pBufferPointer: The pointer to which will be saved the
* received data buffer.
* Output : None.
* Return : Number of received data (in Bytes).
*******************************************************************************/
uint32_t USB_SIL_Read(uint8_t bEpAddr, uint8_t* pBufferPointer)
{
uint32_t DataLength = 0;
/* Get the number of received data on the selected Endpoint */
DataLength = GetEPRxCount(bEpAddr & 0x7F);
/* Use the memory interface function to write to the selected endpoint */
PMAToUserBufferCopy(pBufferPointer, GetEPRxAddr(bEpAddr & 0x7F), DataLength);
/* Return the number of received data */
return DataLength;
}
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|