Subversion Repositories NaviCtrl

Rev

Rev 270 | Rev 313 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 270 Rev 275
Line 1... Line 1...
1
/******************** (C) COPYRIGHT 2006 STMicroelectronics ********************
1
/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
2
* File Name          : usb_endp.c
2
* File Name          : usb_endp.c
3
* Author             : MCD Application Team
3
* Author             : MCD Application Team
4
* Date First Issued  : 10/01/2006 : V1.0
4
* Date First Issued  : 10/01/2008 : V1.0
5
* Description        : Endpoint routines
5
* Description        : Endpoint routines
6
********************************************************************************
6
********************************************************************************
7
* History:
7
* History:
8
* 10/01/2006 : V1.0
8
* 10/01/2008 : V1.0
9
********************************************************************************
9
********************************************************************************
10
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
10
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
11
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
11
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
12
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
12
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
13
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
13
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
14
* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
14
* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
15
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
15
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
16
*******************************************************************************/
16
*******************************************************************************/
17
/* Includes ------------------------------------------------------------------*/
17
/* Includes ------------------------------------------------------------------*/
18
#include <stdio.h>
18
#include <stdio.h>
-
 
19
#include "usb.h"
-
 
20
#include "mkprotocol.h"
19
#include "91x_lib.h"
21
#include "91x_lib.h"
20
#include "uart1.h"
-
 
21
#include "usb_lib.h"
22
#include "usb_lib.h"
22
#include "usb_desc.h"
23
#include "usb_desc.h"
23
#include "usb.h"
-
 
24
#include "mkprotocol.h"
-
 
Line 25... Line 24...
25
 
24
 
26
/* Private typedef -----------------------------------------------------------*/
25
/* Private typedef -----------------------------------------------------------*/
27
/* Private define ------------------------------------------------------------*/
26
/* Private define ------------------------------------------------------------*/
28
/* Private macro -------------------------------------------------------------*/
27
/* Private macro -------------------------------------------------------------*/
29
/* Private variables ---------------------------------------------------------*/
-
 
30
u8 USB_Buffer[VIRTUAL_COM_PORT_DATA_SIZE];
-
 
31
u32 USB_BufferCount =0;
-
 
32
u32 count_in = 0;
28
/* Private variables ---------------------------------------------------------*/
33
/* Private function prototypes -----------------------------------------------*/
29
/* Private function prototypes -----------------------------------------------*/
34
/* Private functions ---------------------------------------------------------*/
30
/* Private functions ---------------------------------------------------------*/
35
/*******************************************************************************
31
/*******************************************************************************
36
* Function Name  : EP3_IN_Callback
32
* Function Name  : EP3_OUT_Callback
37
* Description    :
33
* Description    :
38
* Input          : None.
34
* Input          : None.
39
* Output         : None.
35
* Output         : None.
40
* Return         : None.
36
* Return         : None.
41
*******************************************************************************/
37
*******************************************************************************/
42
void EP3_OUT_Callback(void)
38
void EP3_OUT_Callback(void)
-
 
39
{
43
{
40
        u8 USB_Buffer[VIRTUAL_COM_PORT_DATA_SIZE];
-
 
41
        u32 i, USB_BufferCount;
44
        u32 i;
42
 
45
        USB_BufferCount = GetEPRxCount(ENDP3);
43
        USB_BufferCount= GetEPRxCount(ENDP3);
46
        PMAToUserBufferCopy(USB_Buffer, ENDP3_RXADDR, USB_BufferCount );
44
        PMAToUserBufferCopy(USB_Buffer, ENDP3_RXADDR, USB_BufferCount);
47
        for(i=0; i<USB_BufferCount; i++)
45
        for(i=0; i<USB_BufferCount;i++)
-
 
46
        {
48
        {
47
                // put into the software fifo
-
 
48
                if(!fifo_put(&USB_rx_fifo, USB_Buffer[i]))
-
 
49
                {       // fifo overflow
-
 
50
                        //fifo_purge(&USB_rx_fifo); // flush the whole buffer
49
                MKProtocol_CollectSerialFrame(&USB_rx_buffer, USB_Buffer[i]);
51
                }
50
        }
52
        }
51
        SetEPRxValid(ENDP3);
-
 
52
 
-
 
53
        //sprintf(text,"USB (%ld): %s\n\r", USB_Buffer, USB_BufferCount);
-
 
54
        //UART1_PutString(text);      
53
        SetEPRxValid(ENDP3);
55
}
54
}
56
/*******************************************************************************
55
/*******************************************************************************
57
* Function Name  : EP1_IN_Callback
56
* Function Name  : EP1_IN_Callback
58
* Description    :
57
* Description    :
59
* Input          : None.
58
* Input          : None.
60
* Output         : None.
59
* Output         : None.
61
* Return         : None.
60
* Return         : None.
62
*******************************************************************************/
61
*******************************************************************************/
63
void EP1_IN_Callback(void)
62
void EP1_IN_Callback(void)
64
{
63
{
65
  count_in =0;
64
 
66
}
65
}