WXK
2024-09-18 05e2e954bd127de378a9d1dfbb0ed95d725aad63
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
/**************************************************************************//**
* @file     usb.c
* @version  V1.00
* $Revision: 2 $
* $Date: 20/08/04 14:25 $
* @brief    Panchip series usb driver source file
*
* @note
* Copyright (C) 2020 Panchip Technology Corp. All rights reserved.
*****************************************************************************/
 
#include "PanSeries.h"
#include "usb.h"
 
/**
* @brief  This function read usb fifo
* @param[in]  u32EPn:    endpoint number
* @param[in]  u32Size:    data size
* @param[in]  pDst:        data destination
* @return None
*/
void USB_Read(uint32_t u32EPn, uint32_t u32Size, void * pDst)
{
    uint8_t *tmp = (uint8_t *)pDst;
    uint8_t *nAddr;
    
    nAddr = &((uint8_t *)&USB->FIFO_EP0)[u32EPn<<2];
 
    if(u32Size){
        while (u32Size) {
            *tmp++ = *nAddr;
            u32Size--;
        }
    }
}
 
 
/**
* @brief  This function write usb fifo
* @param[in]  nEP:        endpoint number
* @param[in]  nBytes:    data size
* @param[in]  pSrc:        data source
* @return None
*/
void USB_Write(uint32_t u32EPn, uint32_t u32Size, void * pSrc)
{
    uint8_t *nAddr;
    uint8_t *tmp = (uint8_t *)pSrc;
    
    nAddr = &((uint8_t *)&USB->FIFO_EP0)[u32EPn<<2];
 
    if(u32Size){
        while (u32Size) {
            *nAddr = *tmp++;
            u32Size--;
        }
    }
}