Updated firmware for PCB Revision 3.0

- A USB Bootloader is now used. Use either the bootloader host supplied
with PSoC Creator 3.0, or else the standalone app included with
Cypress AN73503. You have 2 seconds between connecting the USB cable
and hitting the "program" button.
- The bootloaderhost program included in this repository doesn't quite
work yet. When functional it should simplify firmware updates on Linux
and Mac OSX
- Fixed an error in the parts spreadsheet which had a 22k resistor for
USB termination instead of a 22 Ohm resistor.
- Updated parts spreadsheet with part number of PSoC actually used
(CY8C5267AXI-LP051).
This commit is contained in:
Michael McMaster 2013-10-27 00:21:42 +10:00
parent b4667837de
commit c693c7fac1
342 changed files with 336287 additions and 4301 deletions

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "software/bootloaderhost/hidapi"]
path = software/bootloaderhost/hidapi
url = git://github.com/signal11/hidapi.git

9
STATUS
View File

@ -1,13 +1,8 @@
- Software has not been updated for PCB rev 3.0. In particular, most of the pin
assignments are incorrect.
- USB bootloader is not implemented yet.
- Configuration options cannot be set via USB.
- Configuration options cannot be set via USB. Must use the USB bootloader to
load a new firmware instead.
- SCSI ID hardcoded to 0
- Partity checking is on
- Unit Attention Condition is off
- SPI overclock to 32MHz off.
- DMA is not used for SPI transfers
- Parity checking not implemented for the PSoC Datapath implementation

BIN
parts.ods

Binary file not shown.

View File

@ -0,0 +1,84 @@
/*******************************************************************************
* File Name: Bootloadable_1.c
* Version 1.20
*
* Description:
* Provides an API for the Bootloadable application. The API includes a
* single function for starting bootloader.
*
********************************************************************************
* Copyright 2008-2013, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#include "Bootloadable_1.h"
/*******************************************************************************
* Function Name: Bootloadable_1_Load
********************************************************************************
* Summary:
* Begins the bootloading algorithm, downloading a new ACD image from the host.
*
* Parameters:
* None
*
* Returns:
* This method will never return. It will load a new application and reset
* the device.
*
*******************************************************************************/
void Bootloadable_1_Load(void)
{
/* Schedule Bootloader to start after reset */
Bootloadable_1_SET_RUN_TYPE(Bootloadable_1_START_BTLDR);
CySoftwareReset();
}
/*******************************************************************************
* Function Name: Bootloadable_1_SetFlashByte
********************************************************************************
* Summary:
* Sets byte at specified address in Flash.
*
* Parameters:
* None
*
* Returns:
* None
*
*******************************************************************************/
void Bootloadable_1_SetFlashByte(uint32 address, uint8 runType)
{
uint32 flsAddr = address - CYDEV_FLASH_BASE;
uint8 rowData[CYDEV_FLS_ROW_SIZE];
#if !(CY_PSOC4)
uint8 arrayId = (uint8)(flsAddr / CYDEV_FLS_SECTOR_SIZE);
#endif /* !(CY_PSOC4) */
uint16 rowNum = (uint16)((flsAddr % CYDEV_FLS_SECTOR_SIZE) / CYDEV_FLS_ROW_SIZE);
uint32 baseAddr = address - (address % CYDEV_FLS_ROW_SIZE);
uint16 idx;
for (idx = 0u; idx < CYDEV_FLS_ROW_SIZE; idx++)
{
rowData[idx] = Bootloadable_1_GET_CODE_DATA(baseAddr + idx);
}
rowData[address % CYDEV_FLS_ROW_SIZE] = runType;
#if(CY_PSOC4)
(void) CySysFlashWriteRow((uint32)rowNum, rowData);
#else
(void) CyWriteRowData(arrayId, rowNum, rowData);
#endif /* (CY_PSOC4) */
}
/* [] END OF FILE */

View File

@ -0,0 +1,155 @@
/*******************************************************************************
* File Name: Bootloadable_1.h
* Version 1.20
*
* Description:
* Provides an API for the Bootloadable application. The API includes a
* single function for starting bootloader.
*
********************************************************************************
* Copyright 2008-2013, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
********************************************************************************/
#ifndef CY_BOOTLOADABLE_Bootloadable_1_H
#define CY_BOOTLOADABLE_Bootloadable_1_H
#include "cydevice_trm.h"
#include "CyFlash.h"
/* Check to see if required defines such as CY_PSOC5LP are available */
/* They are defined starting with cy_boot v3.0 */
#if !defined (CY_PSOC5LP)
#error Component Bootloadable_v1_20 requires cy_boot v3.0 or later
#endif /* !defined (CY_PSOC5LP) */
#ifndef CYDEV_FLASH_BASE
#define CYDEV_FLASH_BASE CYDEV_FLS_BASE
#define CYDEV_FLASH_SIZE CYDEV_FLS_SIZE
#endif /* CYDEV_FLASH_BASE */
#if(CY_PSOC3)
#define Bootloadable_1_GET_CODE_DATA(idx) (*((uint8 CYCODE *) (idx)))
#else
#define Bootloadable_1_GET_CODE_DATA(idx) (*((uint8 *)(CYDEV_FLASH_BASE + (idx))))
#endif /* (CY_PSOC3) */
/*******************************************************************************
* This variable is used by Bootloader/Bootloadable components to schedule what
* application will be started after software reset.
*******************************************************************************/
#if (CY_PSOC4)
#if defined(__ARMCC_VERSION)
__attribute__ ((section(".bootloaderruntype"), zero_init))
#elif defined (__GNUC__)
__attribute__ ((section(".bootloaderruntype")))
#elif defined (__ICCARM__)
#pragma location=".bootloaderruntype"
#endif /* defined(__ARMCC_VERSION) */
extern volatile uint32 cyBtldrRunType;
#endif /* (CY_PSOC4) */
/*******************************************************************************
* Get the reason of the device reset
*******************************************************************************/
#if(CY_PSOC4)
#define Bootloadable_1_RES_CAUSE_RESET_SOFT (0x10u)
#define Bootloadable_1_GET_RUN_TYPE \
(((CY_GET_REG32(CYREG_RES_CAUSE) & Bootloadable_1_RES_CAUSE_RESET_SOFT) > 0u) \
? (cyBtldrRunType) \
: 0u)
#else
#define Bootloadable_1_GET_RUN_TYPE (CY_GET_REG8(CYREG_RESET_SR0) & \
(Bootloadable_1_START_BTLDR | Bootloadable_1_START_APP))
#endif /* (CY_PSOC4) */
/*******************************************************************************
* Schedule Bootloader/Bootloadable to be run after software reset
*******************************************************************************/
#if(CY_PSOC4)
#define Bootloadable_1_SET_RUN_TYPE(x) (cyBtldrRunType = (x))
#else
#define Bootloadable_1_SET_RUN_TYPE(x) CY_SET_REG8(CYREG_RESET_SR0, (x))
#endif /* (CY_PSOC4) */
/***************************************
* Function Prototypes
***************************************/
extern void Bootloadable_1_Load(void) ;
/*******************************************************************************
* Following code are OBSOLETE and must not be used starting from version 1.10
*******************************************************************************/
#define CYBTDLR_SET_RUN_TYPE(x) Bootloadable_1_SET_RUN_TYPE(x)
/*******************************************************************************
* Following code are OBSOLETE and must not be used starting from version 1.20
*******************************************************************************/
#define Bootloadable_1_START_APP (0x80u)
#define Bootloadable_1_START_BTLDR (0x40u)
#define Bootloadable_1_META_DATA_SIZE (64u)
#define Bootloadable_1_META_APP_CHECKSUM_OFFSET (0u)
#if(CY_PSOC3)
#define Bootloadable_1_APP_ADDRESS uint16
#define Bootloadable_1_GET_CODE_WORD(idx) (*((uint32 CYCODE *) (idx)))
/* Offset by 2 from 32 bit start because only need 16 bits */
#define Bootloadable_1_META_APP_ADDR_OFFSET (3u)
#define Bootloadable_1_META_APP_BL_LAST_ROW_OFFSET (7u)
#define Bootloadable_1_META_APP_BYTE_LEN_OFFSET (11u)
#define Bootloadable_1_META_APP_RUN_TYPE_OFFSET (15u)
#else
#define Bootloadable_1_APP_ADDRESS uint32
#define Bootloadable_1_GET_CODE_WORD(idx) (*((uint32 *)(CYDEV_FLASH_BASE + (idx))))
#define Bootloadable_1_META_APP_ADDR_OFFSET (1u)
#define Bootloadable_1_META_APP_BL_LAST_ROW_OFFSET (5u)
#define Bootloadable_1_META_APP_BYTE_LEN_OFFSET (9u)
#define Bootloadable_1_META_APP_RUN_TYPE_OFFSET (13u)
#endif /* (CY_PSOC3) */
#define Bootloadable_1_META_APP_ACTIVE_OFFSET (16u)
#define Bootloadable_1_META_APP_VERIFIED_OFFSET (17u)
#define Bootloadable_1_META_APP_BL_BUILD_VER_OFFSET (18u)
#define Bootloadable_1_META_APP_ID_OFFSET (20u)
#define Bootloadable_1_META_APP_VER_OFFSET (22u)
#define Bootloadable_1_META_APP_CUST_ID_OFFSET (24u)
#define Bootloadable_1_SetFlashRunType(runType) \
Bootloadable_1_SetFlashByte(Bootloadable_1_MD_APP_RUN_ADDR(0), (runType))
void Bootloadable_1_SetFlashByte(uint32 address, uint8 runType) ;
#if(CY_PSOC4)
#define Bootloadable_1_SOFTWARE_RESET CY_SET_REG32(CYREG_CM0_AIRCR, 0x05FA0004u)
#else
#define Bootloadable_1_SOFTWARE_RESET CY_SET_REG8(CYREG_RESET_CR2, 0x01u)
#endif /* (CY_PSOC4) */
#if(CY_PSOC4)
extern uint8 appRunType;
#endif /* (CY_PSOC4) */
#endif /* CY_BOOTLOADABLE_Bootloadable_1_H */
/* [] END OF FILE */

View File

@ -5,9 +5,9 @@
define symbol __ICFEDIT_intvec_start__ = 0x00000000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ = 0x0;
define symbol __ICFEDIT_region_ROM_end__ = 262144 - 1;
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000 - (65536 / 2);
define symbol __ICFEDIT_region_RAM_end__ = 0x20000000 + (65536 / 2) - 1;
define symbol __ICFEDIT_region_ROM_end__ = 131072 - 1;
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000 - (32768 / 2);
define symbol __ICFEDIT_region_RAM_end__ = 0x20000000 + (32768 / 2) - 1;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x4000;
define symbol __ICFEDIT_size_heap__ = 0x1000;
@ -15,19 +15,19 @@ define symbol __ICFEDIT_size_heap__ = 0x1000;
/******** Definitions ********/
define symbol CY_APPL_LOADABLE = 0;
define symbol CY_APPL_LOADABLE = 1;
define symbol CY_APPL_LOADER = 0;
define symbol CY_APPL_NUM = 1;
define symbol CY_APPL_MAX = 1;
define symbol CY_METADATA_SIZE = 64;
define symbol CY_EE_IN_BTLDR = 0x0;
define symbol CY_EE_IN_BTLDR = 0x00;
define symbol CY_EE_SIZE = 2048;
include "cybootloader.icf";
if (!CY_APPL_LOADABLE) {
define symbol CYDEV_BTLDR_SIZE = 0;
}
define symbol CY_FLASH_SIZE = 262144;
define symbol CY_FLASH_SIZE = 131072;
define symbol CY_APPL_ORIGIN = 0;
define symbol CY_FLASH_ROW_SIZE = 256;
define symbol CY_ECC_ROW_SIZE = 32;

View File

@ -32,7 +32,7 @@
;********************************************************************************/
#include "cyfitter.h"
#define CY_FLASH_SIZE 262144
#define CY_FLASH_SIZE 131072
#define CY_APPL_ORIGIN 0
#define CY_FLASH_ROW_SIZE 256
#define CY_ECC_ROW_SIZE 32
@ -44,7 +44,7 @@
#if (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLE)
#define CY_APPL_NUM 1
#define CY_APPL_MAX 1
#define CY_EE_IN_BTLDR
#define CY_EE_IN_BTLDR 0
#if CY_APPL_ORIGIN
#define APPL1_START CY_APPL_ORIGIN
@ -97,7 +97,7 @@ APPLICATION APPL_START (CY_FLASH_SIZE - APPL_START)
* (+RO)
}
ISRVECTORS (0x20000000 - (65536 / 2)) UNINIT
ISRVECTORS (0x20000000 - (32768 / 2)) UNINIT
{
* (.ramvectors)
}
@ -112,11 +112,11 @@ APPLICATION APPL_START (CY_FLASH_SIZE - APPL_START)
.ANY (+RW, +ZI)
}
ARM_LIB_HEAP (0x20000000 + (65536 / 2) - 0x1000 - 0x4000) EMPTY 0x1000
ARM_LIB_HEAP (0x20000000 + (32768 / 2) - 0x1000 - 0x4000) EMPTY 0x1000
{
}
ARM_LIB_STACK (0x20000000 + (65536 / 2)) EMPTY -0x4000
ARM_LIB_STACK (0x20000000 + (32768 / 2)) EMPTY -0x4000
{
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,137 @@
/*******************************************************************************
* File Name: USBFS_1_Dm.c
* Version 1.90
*
* Description:
* This file contains API to enable firmware control of a Pins component.
*
* Note:
*
********************************************************************************
* Copyright 2008-2012, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#include "cytypes.h"
#include "USBFS_1_Dm.h"
/* APIs are not generated for P15[7:6] on PSoC 5 */
#if !(CY_PSOC5A &&\
USBFS_1_Dm__PORT == 15 && ((USBFS_1_Dm__MASK & 0xC0) != 0))
/*******************************************************************************
* Function Name: USBFS_1_Dm_Write
********************************************************************************
*
* Summary:
* Assign a new value to the digital port's data output register.
*
* Parameters:
* prtValue: The value to be assigned to the Digital Port.
*
* Return:
* None
*
*******************************************************************************/
void USBFS_1_Dm_Write(uint8 value)
{
uint8 staticBits = (USBFS_1_Dm_DR & (uint8)(~USBFS_1_Dm_MASK));
USBFS_1_Dm_DR = staticBits | ((uint8)(value << USBFS_1_Dm_SHIFT) & USBFS_1_Dm_MASK);
}
/*******************************************************************************
* Function Name: USBFS_1_Dm_SetDriveMode
********************************************************************************
*
* Summary:
* Change the drive mode on the pins of the port.
*
* Parameters:
* mode: Change the pins to this drive mode.
*
* Return:
* None
*
*******************************************************************************/
void USBFS_1_Dm_SetDriveMode(uint8 mode)
{
CyPins_SetPinDriveMode(USBFS_1_Dm_0, mode);
}
/*******************************************************************************
* Function Name: USBFS_1_Dm_Read
********************************************************************************
*
* Summary:
* Read the current value on the pins of the Digital Port in right justified
* form.
*
* Parameters:
* None
*
* Return:
* Returns the current value of the Digital Port as a right justified number
*
* Note:
* Macro USBFS_1_Dm_ReadPS calls this function.
*
*******************************************************************************/
uint8 USBFS_1_Dm_Read(void)
{
return (USBFS_1_Dm_PS & USBFS_1_Dm_MASK) >> USBFS_1_Dm_SHIFT;
}
/*******************************************************************************
* Function Name: USBFS_1_Dm_ReadDataReg
********************************************************************************
*
* Summary:
* Read the current value assigned to a Digital Port's data output register
*
* Parameters:
* None
*
* Return:
* Returns the current value assigned to the Digital Port's data output register
*
*******************************************************************************/
uint8 USBFS_1_Dm_ReadDataReg(void)
{
return (USBFS_1_Dm_DR & USBFS_1_Dm_MASK) >> USBFS_1_Dm_SHIFT;
}
/* If Interrupts Are Enabled for this Pins component */
#if defined(USBFS_1_Dm_INTSTAT)
/*******************************************************************************
* Function Name: USBFS_1_Dm_ClearInterrupt
********************************************************************************
* Summary:
* Clears any active interrupts attached to port and returns the value of the
* interrupt status register.
*
* Parameters:
* None
*
* Return:
* Returns the value of the interrupt status register
*
*******************************************************************************/
uint8 USBFS_1_Dm_ClearInterrupt(void)
{
return (USBFS_1_Dm_INTSTAT & USBFS_1_Dm_MASK) >> USBFS_1_Dm_SHIFT;
}
#endif /* If Interrupts Are Enabled for this Pins component */
#endif /* CY_PSOC5A... */
/* [] END OF FILE */

View File

@ -0,0 +1,130 @@
/*******************************************************************************
* File Name: USBFS_1_Dm.h
* Version 1.90
*
* Description:
* This file containts Control Register function prototypes and register defines
*
* Note:
*
********************************************************************************
* Copyright 2008-2012, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#if !defined(CY_PINS_USBFS_1_Dm_H) /* Pins USBFS_1_Dm_H */
#define CY_PINS_USBFS_1_Dm_H
#include "cytypes.h"
#include "cyfitter.h"
#include "cypins.h"
#include "USBFS_1_Dm_aliases.h"
/* Check to see if required defines such as CY_PSOC5A are available */
/* They are defined starting with cy_boot v3.0 */
#if !defined (CY_PSOC5A)
#error Component cy_pins_v1_90 requires cy_boot v3.0 or later
#endif /* (CY_PSOC5A) */
/* APIs are not generated for P15[7:6] */
#if !(CY_PSOC5A &&\
USBFS_1_Dm__PORT == 15 && ((USBFS_1_Dm__MASK & 0xC0) != 0))
/***************************************
* Function Prototypes
***************************************/
void USBFS_1_Dm_Write(uint8 value) ;
void USBFS_1_Dm_SetDriveMode(uint8 mode) ;
uint8 USBFS_1_Dm_ReadDataReg(void) ;
uint8 USBFS_1_Dm_Read(void) ;
uint8 USBFS_1_Dm_ClearInterrupt(void) ;
/***************************************
* API Constants
***************************************/
/* Drive Modes */
#define USBFS_1_Dm_DM_ALG_HIZ PIN_DM_ALG_HIZ
#define USBFS_1_Dm_DM_DIG_HIZ PIN_DM_DIG_HIZ
#define USBFS_1_Dm_DM_RES_UP PIN_DM_RES_UP
#define USBFS_1_Dm_DM_RES_DWN PIN_DM_RES_DWN
#define USBFS_1_Dm_DM_OD_LO PIN_DM_OD_LO
#define USBFS_1_Dm_DM_OD_HI PIN_DM_OD_HI
#define USBFS_1_Dm_DM_STRONG PIN_DM_STRONG
#define USBFS_1_Dm_DM_RES_UPDWN PIN_DM_RES_UPDWN
/* Digital Port Constants */
#define USBFS_1_Dm_MASK USBFS_1_Dm__MASK
#define USBFS_1_Dm_SHIFT USBFS_1_Dm__SHIFT
#define USBFS_1_Dm_WIDTH 1u
/***************************************
* Registers
***************************************/
/* Main Port Registers */
/* Pin State */
#define USBFS_1_Dm_PS (* (reg8 *) USBFS_1_Dm__PS)
/* Data Register */
#define USBFS_1_Dm_DR (* (reg8 *) USBFS_1_Dm__DR)
/* Port Number */
#define USBFS_1_Dm_PRT_NUM (* (reg8 *) USBFS_1_Dm__PRT)
/* Connect to Analog Globals */
#define USBFS_1_Dm_AG (* (reg8 *) USBFS_1_Dm__AG)
/* Analog MUX bux enable */
#define USBFS_1_Dm_AMUX (* (reg8 *) USBFS_1_Dm__AMUX)
/* Bidirectional Enable */
#define USBFS_1_Dm_BIE (* (reg8 *) USBFS_1_Dm__BIE)
/* Bit-mask for Aliased Register Access */
#define USBFS_1_Dm_BIT_MASK (* (reg8 *) USBFS_1_Dm__BIT_MASK)
/* Bypass Enable */
#define USBFS_1_Dm_BYP (* (reg8 *) USBFS_1_Dm__BYP)
/* Port wide control signals */
#define USBFS_1_Dm_CTL (* (reg8 *) USBFS_1_Dm__CTL)
/* Drive Modes */
#define USBFS_1_Dm_DM0 (* (reg8 *) USBFS_1_Dm__DM0)
#define USBFS_1_Dm_DM1 (* (reg8 *) USBFS_1_Dm__DM1)
#define USBFS_1_Dm_DM2 (* (reg8 *) USBFS_1_Dm__DM2)
/* Input Buffer Disable Override */
#define USBFS_1_Dm_INP_DIS (* (reg8 *) USBFS_1_Dm__INP_DIS)
/* LCD Common or Segment Drive */
#define USBFS_1_Dm_LCD_COM_SEG (* (reg8 *) USBFS_1_Dm__LCD_COM_SEG)
/* Enable Segment LCD */
#define USBFS_1_Dm_LCD_EN (* (reg8 *) USBFS_1_Dm__LCD_EN)
/* Slew Rate Control */
#define USBFS_1_Dm_SLW (* (reg8 *) USBFS_1_Dm__SLW)
/* DSI Port Registers */
/* Global DSI Select Register */
#define USBFS_1_Dm_PRTDSI__CAPS_SEL (* (reg8 *) USBFS_1_Dm__PRTDSI__CAPS_SEL)
/* Double Sync Enable */
#define USBFS_1_Dm_PRTDSI__DBL_SYNC_IN (* (reg8 *) USBFS_1_Dm__PRTDSI__DBL_SYNC_IN)
/* Output Enable Select Drive Strength */
#define USBFS_1_Dm_PRTDSI__OE_SEL0 (* (reg8 *) USBFS_1_Dm__PRTDSI__OE_SEL0)
#define USBFS_1_Dm_PRTDSI__OE_SEL1 (* (reg8 *) USBFS_1_Dm__PRTDSI__OE_SEL1)
/* Port Pin Output Select Registers */
#define USBFS_1_Dm_PRTDSI__OUT_SEL0 (* (reg8 *) USBFS_1_Dm__PRTDSI__OUT_SEL0)
#define USBFS_1_Dm_PRTDSI__OUT_SEL1 (* (reg8 *) USBFS_1_Dm__PRTDSI__OUT_SEL1)
/* Sync Output Enable Registers */
#define USBFS_1_Dm_PRTDSI__SYNC_OUT (* (reg8 *) USBFS_1_Dm__PRTDSI__SYNC_OUT)
#if defined(USBFS_1_Dm__INTSTAT) /* Interrupt Registers */
#define USBFS_1_Dm_INTSTAT (* (reg8 *) USBFS_1_Dm__INTSTAT)
#define USBFS_1_Dm_SNAP (* (reg8 *) USBFS_1_Dm__SNAP)
#endif /* Interrupt Registers */
#endif /* CY_PSOC5A... */
#endif /* CY_PINS_USBFS_1_Dm_H */
/* [] END OF FILE */

View File

@ -0,0 +1,32 @@
/*******************************************************************************
* File Name: USBFS_1_Dm.h
* Version 1.90
*
* Description:
* This file containts Control Register function prototypes and register defines
*
* Note:
*
********************************************************************************
* Copyright 2008-2012, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#if !defined(CY_PINS_USBFS_1_Dm_ALIASES_H) /* Pins USBFS_1_Dm_ALIASES_H */
#define CY_PINS_USBFS_1_Dm_ALIASES_H
#include "cytypes.h"
#include "cyfitter.h"
/***************************************
* Constants
***************************************/
#define USBFS_1_Dm_0 USBFS_1_Dm__0__PC
#endif /* End Pins USBFS_1_Dm_ALIASES_H */
/* [] END OF FILE */

View File

@ -0,0 +1,137 @@
/*******************************************************************************
* File Name: USBFS_1_Dp.c
* Version 1.90
*
* Description:
* This file contains API to enable firmware control of a Pins component.
*
* Note:
*
********************************************************************************
* Copyright 2008-2012, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#include "cytypes.h"
#include "USBFS_1_Dp.h"
/* APIs are not generated for P15[7:6] on PSoC 5 */
#if !(CY_PSOC5A &&\
USBFS_1_Dp__PORT == 15 && ((USBFS_1_Dp__MASK & 0xC0) != 0))
/*******************************************************************************
* Function Name: USBFS_1_Dp_Write
********************************************************************************
*
* Summary:
* Assign a new value to the digital port's data output register.
*
* Parameters:
* prtValue: The value to be assigned to the Digital Port.
*
* Return:
* None
*
*******************************************************************************/
void USBFS_1_Dp_Write(uint8 value)
{
uint8 staticBits = (USBFS_1_Dp_DR & (uint8)(~USBFS_1_Dp_MASK));
USBFS_1_Dp_DR = staticBits | ((uint8)(value << USBFS_1_Dp_SHIFT) & USBFS_1_Dp_MASK);
}
/*******************************************************************************
* Function Name: USBFS_1_Dp_SetDriveMode
********************************************************************************
*
* Summary:
* Change the drive mode on the pins of the port.
*
* Parameters:
* mode: Change the pins to this drive mode.
*
* Return:
* None
*
*******************************************************************************/
void USBFS_1_Dp_SetDriveMode(uint8 mode)
{
CyPins_SetPinDriveMode(USBFS_1_Dp_0, mode);
}
/*******************************************************************************
* Function Name: USBFS_1_Dp_Read
********************************************************************************
*
* Summary:
* Read the current value on the pins of the Digital Port in right justified
* form.
*
* Parameters:
* None
*
* Return:
* Returns the current value of the Digital Port as a right justified number
*
* Note:
* Macro USBFS_1_Dp_ReadPS calls this function.
*
*******************************************************************************/
uint8 USBFS_1_Dp_Read(void)
{
return (USBFS_1_Dp_PS & USBFS_1_Dp_MASK) >> USBFS_1_Dp_SHIFT;
}
/*******************************************************************************
* Function Name: USBFS_1_Dp_ReadDataReg
********************************************************************************
*
* Summary:
* Read the current value assigned to a Digital Port's data output register
*
* Parameters:
* None
*
* Return:
* Returns the current value assigned to the Digital Port's data output register
*
*******************************************************************************/
uint8 USBFS_1_Dp_ReadDataReg(void)
{
return (USBFS_1_Dp_DR & USBFS_1_Dp_MASK) >> USBFS_1_Dp_SHIFT;
}
/* If Interrupts Are Enabled for this Pins component */
#if defined(USBFS_1_Dp_INTSTAT)
/*******************************************************************************
* Function Name: USBFS_1_Dp_ClearInterrupt
********************************************************************************
* Summary:
* Clears any active interrupts attached to port and returns the value of the
* interrupt status register.
*
* Parameters:
* None
*
* Return:
* Returns the value of the interrupt status register
*
*******************************************************************************/
uint8 USBFS_1_Dp_ClearInterrupt(void)
{
return (USBFS_1_Dp_INTSTAT & USBFS_1_Dp_MASK) >> USBFS_1_Dp_SHIFT;
}
#endif /* If Interrupts Are Enabled for this Pins component */
#endif /* CY_PSOC5A... */
/* [] END OF FILE */

View File

@ -0,0 +1,130 @@
/*******************************************************************************
* File Name: USBFS_1_Dp.h
* Version 1.90
*
* Description:
* This file containts Control Register function prototypes and register defines
*
* Note:
*
********************************************************************************
* Copyright 2008-2012, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#if !defined(CY_PINS_USBFS_1_Dp_H) /* Pins USBFS_1_Dp_H */
#define CY_PINS_USBFS_1_Dp_H
#include "cytypes.h"
#include "cyfitter.h"
#include "cypins.h"
#include "USBFS_1_Dp_aliases.h"
/* Check to see if required defines such as CY_PSOC5A are available */
/* They are defined starting with cy_boot v3.0 */
#if !defined (CY_PSOC5A)
#error Component cy_pins_v1_90 requires cy_boot v3.0 or later
#endif /* (CY_PSOC5A) */
/* APIs are not generated for P15[7:6] */
#if !(CY_PSOC5A &&\
USBFS_1_Dp__PORT == 15 && ((USBFS_1_Dp__MASK & 0xC0) != 0))
/***************************************
* Function Prototypes
***************************************/
void USBFS_1_Dp_Write(uint8 value) ;
void USBFS_1_Dp_SetDriveMode(uint8 mode) ;
uint8 USBFS_1_Dp_ReadDataReg(void) ;
uint8 USBFS_1_Dp_Read(void) ;
uint8 USBFS_1_Dp_ClearInterrupt(void) ;
/***************************************
* API Constants
***************************************/
/* Drive Modes */
#define USBFS_1_Dp_DM_ALG_HIZ PIN_DM_ALG_HIZ
#define USBFS_1_Dp_DM_DIG_HIZ PIN_DM_DIG_HIZ
#define USBFS_1_Dp_DM_RES_UP PIN_DM_RES_UP
#define USBFS_1_Dp_DM_RES_DWN PIN_DM_RES_DWN
#define USBFS_1_Dp_DM_OD_LO PIN_DM_OD_LO
#define USBFS_1_Dp_DM_OD_HI PIN_DM_OD_HI
#define USBFS_1_Dp_DM_STRONG PIN_DM_STRONG
#define USBFS_1_Dp_DM_RES_UPDWN PIN_DM_RES_UPDWN
/* Digital Port Constants */
#define USBFS_1_Dp_MASK USBFS_1_Dp__MASK
#define USBFS_1_Dp_SHIFT USBFS_1_Dp__SHIFT
#define USBFS_1_Dp_WIDTH 1u
/***************************************
* Registers
***************************************/
/* Main Port Registers */
/* Pin State */
#define USBFS_1_Dp_PS (* (reg8 *) USBFS_1_Dp__PS)
/* Data Register */
#define USBFS_1_Dp_DR (* (reg8 *) USBFS_1_Dp__DR)
/* Port Number */
#define USBFS_1_Dp_PRT_NUM (* (reg8 *) USBFS_1_Dp__PRT)
/* Connect to Analog Globals */
#define USBFS_1_Dp_AG (* (reg8 *) USBFS_1_Dp__AG)
/* Analog MUX bux enable */
#define USBFS_1_Dp_AMUX (* (reg8 *) USBFS_1_Dp__AMUX)
/* Bidirectional Enable */
#define USBFS_1_Dp_BIE (* (reg8 *) USBFS_1_Dp__BIE)
/* Bit-mask for Aliased Register Access */
#define USBFS_1_Dp_BIT_MASK (* (reg8 *) USBFS_1_Dp__BIT_MASK)
/* Bypass Enable */
#define USBFS_1_Dp_BYP (* (reg8 *) USBFS_1_Dp__BYP)
/* Port wide control signals */
#define USBFS_1_Dp_CTL (* (reg8 *) USBFS_1_Dp__CTL)
/* Drive Modes */
#define USBFS_1_Dp_DM0 (* (reg8 *) USBFS_1_Dp__DM0)
#define USBFS_1_Dp_DM1 (* (reg8 *) USBFS_1_Dp__DM1)
#define USBFS_1_Dp_DM2 (* (reg8 *) USBFS_1_Dp__DM2)
/* Input Buffer Disable Override */
#define USBFS_1_Dp_INP_DIS (* (reg8 *) USBFS_1_Dp__INP_DIS)
/* LCD Common or Segment Drive */
#define USBFS_1_Dp_LCD_COM_SEG (* (reg8 *) USBFS_1_Dp__LCD_COM_SEG)
/* Enable Segment LCD */
#define USBFS_1_Dp_LCD_EN (* (reg8 *) USBFS_1_Dp__LCD_EN)
/* Slew Rate Control */
#define USBFS_1_Dp_SLW (* (reg8 *) USBFS_1_Dp__SLW)
/* DSI Port Registers */
/* Global DSI Select Register */
#define USBFS_1_Dp_PRTDSI__CAPS_SEL (* (reg8 *) USBFS_1_Dp__PRTDSI__CAPS_SEL)
/* Double Sync Enable */
#define USBFS_1_Dp_PRTDSI__DBL_SYNC_IN (* (reg8 *) USBFS_1_Dp__PRTDSI__DBL_SYNC_IN)
/* Output Enable Select Drive Strength */
#define USBFS_1_Dp_PRTDSI__OE_SEL0 (* (reg8 *) USBFS_1_Dp__PRTDSI__OE_SEL0)
#define USBFS_1_Dp_PRTDSI__OE_SEL1 (* (reg8 *) USBFS_1_Dp__PRTDSI__OE_SEL1)
/* Port Pin Output Select Registers */
#define USBFS_1_Dp_PRTDSI__OUT_SEL0 (* (reg8 *) USBFS_1_Dp__PRTDSI__OUT_SEL0)
#define USBFS_1_Dp_PRTDSI__OUT_SEL1 (* (reg8 *) USBFS_1_Dp__PRTDSI__OUT_SEL1)
/* Sync Output Enable Registers */
#define USBFS_1_Dp_PRTDSI__SYNC_OUT (* (reg8 *) USBFS_1_Dp__PRTDSI__SYNC_OUT)
#if defined(USBFS_1_Dp__INTSTAT) /* Interrupt Registers */
#define USBFS_1_Dp_INTSTAT (* (reg8 *) USBFS_1_Dp__INTSTAT)
#define USBFS_1_Dp_SNAP (* (reg8 *) USBFS_1_Dp__SNAP)
#endif /* Interrupt Registers */
#endif /* CY_PSOC5A... */
#endif /* CY_PINS_USBFS_1_Dp_H */
/* [] END OF FILE */

View File

@ -0,0 +1,32 @@
/*******************************************************************************
* File Name: USBFS_1_Dp.h
* Version 1.90
*
* Description:
* This file containts Control Register function prototypes and register defines
*
* Note:
*
********************************************************************************
* Copyright 2008-2012, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#if !defined(CY_PINS_USBFS_1_Dp_ALIASES_H) /* Pins USBFS_1_Dp_ALIASES_H */
#define CY_PINS_USBFS_1_Dp_ALIASES_H
#include "cytypes.h"
#include "cyfitter.h"
/***************************************
* Constants
***************************************/
#define USBFS_1_Dp_0 USBFS_1_Dp__0__PC
#endif /* End Pins USBFS_1_Dp_ALIASES_H */
/* [] END OF FILE */

View File

@ -0,0 +1,318 @@
/*******************************************************************************
* File Name: USBFS_1_audio.c
* Version 2.60
*
* Description:
* USB AUDIO Class request handler.
*
* Note:
*
********************************************************************************
* Copyright 2008-2013, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#include "USBFS_1.h"
#if defined(USBFS_1_ENABLE_AUDIO_CLASS)
#include "USBFS_1_audio.h"
#include "USBFS_1_pvt.h"
#if defined(USBFS_1_ENABLE_MIDI_STREAMING)
#include "USBFS_1_midi.h"
#endif /* End USBFS_1_ENABLE_MIDI_STREAMING*/
/***************************************
* Custom Declarations
***************************************/
/* `#START CUSTOM_DECLARATIONS` Place your declaration here */
/* `#END` */
#if !defined(USER_SUPPLIED_AUDIO_HANDLER)
/***************************************
* AUDIO Variables
***************************************/
#if defined(USBFS_1_ENABLE_AUDIO_STREAMING)
volatile uint8 USBFS_1_currentSampleFrequency[USBFS_1_MAX_EP][USBFS_1_SAMPLE_FREQ_LEN];
volatile uint8 USBFS_1_frequencyChanged;
volatile uint8 USBFS_1_currentMute;
volatile uint8 USBFS_1_currentVolume[USBFS_1_VOLUME_LEN];
volatile uint8 USBFS_1_minimumVolume[USBFS_1_VOLUME_LEN] = {USBFS_1_VOL_MIN_LSB,
USBFS_1_VOL_MIN_MSB};
volatile uint8 USBFS_1_maximumVolume[USBFS_1_VOLUME_LEN] = {USBFS_1_VOL_MAX_LSB,
USBFS_1_VOL_MAX_MSB};
volatile uint8 USBFS_1_resolutionVolume[USBFS_1_VOLUME_LEN] = {USBFS_1_VOL_RES_LSB,
USBFS_1_VOL_RES_MSB};
#endif /* End USBFS_1_ENABLE_AUDIO_STREAMING */
/*******************************************************************************
* Function Name: USBFS_1_DispatchAUDIOClassRqst
********************************************************************************
*
* Summary:
* This routine dispatches class requests
*
* Parameters:
* None.
*
* Return:
* requestHandled
*
* Global variables:
* USBFS_1_currentSampleFrequency: Contains the current audio Sample
* Frequency. It is set by the Host using SET_CUR request to the endpoint.
* USBFS_1_frequencyChanged: This variable is used as a flag for the
* user code, to be aware that Host has been sent request for changing
* Sample Frequency. Sample frequency will be sent on the next OUT
* transaction. It is contains endpoint address when set. The following
* code is recommended for detecting new Sample Frequency in main code:
* if((USBFS_1_frequencyChanged != 0) &&
* (USBFS_1_transferState == USBFS_1_TRANS_STATE_IDLE))
* {
* USBFS_1_frequencyChanged = 0;
* }
* USBFS_1_transferState variable is checked to be sure that
* transfer completes.
* USBFS_1_currentMute: Contains mute configuration set by Host.
* USBFS_1_currentVolume: Contains volume level set by Host.
*
* Reentrant:
* No.
*
*******************************************************************************/
uint8 USBFS_1_DispatchAUDIOClassRqst(void)
{
uint8 requestHandled = USBFS_1_FALSE;
#if defined(USBFS_1_ENABLE_AUDIO_STREAMING)
uint8 epNumber;
epNumber = CY_GET_REG8(USBFS_1_wIndexLo) & USBFS_1_DIR_UNUSED;
#endif /* End USBFS_1_ENABLE_AUDIO_STREAMING */
if ((CY_GET_REG8(USBFS_1_bmRequestType) & USBFS_1_RQST_DIR_MASK) == USBFS_1_RQST_DIR_D2H)
{
/* Control Read */
if((CY_GET_REG8(USBFS_1_bmRequestType) & USBFS_1_RQST_RCPT_MASK) == \
USBFS_1_RQST_RCPT_EP)
{
/* Endpoint */
switch (CY_GET_REG8(USBFS_1_bRequest))
{
case USBFS_1_GET_CUR:
#if defined(USBFS_1_ENABLE_AUDIO_STREAMING)
if(CY_GET_REG8(USBFS_1_wValueHi) == USBFS_1_SAMPLING_FREQ_CONTROL)
{
/* Endpoint Control Selector is Sampling Frequency */
USBFS_1_currentTD.wCount = USBFS_1_SAMPLE_FREQ_LEN;
USBFS_1_currentTD.pData = USBFS_1_currentSampleFrequency[epNumber];
requestHandled = USBFS_1_InitControlRead();
}
#endif /* End USBFS_1_ENABLE_AUDIO_STREAMING */
/* `#START AUDIO_READ_REQUESTS` Place other request handler here */
/* `#END` */
break;
default:
break;
}
}
else if((CY_GET_REG8(USBFS_1_bmRequestType) & USBFS_1_RQST_RCPT_MASK) == \
USBFS_1_RQST_RCPT_IFC)
{
/* Interface or Entity ID */
switch (CY_GET_REG8(USBFS_1_bRequest))
{
case USBFS_1_GET_CUR:
#if defined(USBFS_1_ENABLE_AUDIO_STREAMING)
if(CY_GET_REG8(USBFS_1_wValueHi) == USBFS_1_MUTE_CONTROL)
{
/* `#START MUTE_CONTROL_GET_REQUEST` Place multi-channel handler here */
/* `#END` */
/* Entity ID Control Selector is MUTE */
USBFS_1_currentTD.wCount = 1u;
USBFS_1_currentTD.pData = &USBFS_1_currentMute;
requestHandled = USBFS_1_InitControlRead();
}
else if(CY_GET_REG8(USBFS_1_wValueHi) == USBFS_1_VOLUME_CONTROL)
{
/* `#START VOLUME_CONTROL_GET_REQUEST` Place multi-channel handler here */
/* `#END` */
/* Entity ID Control Selector is VOLUME, */
USBFS_1_currentTD.wCount = USBFS_1_VOLUME_LEN;
USBFS_1_currentTD.pData = USBFS_1_currentVolume;
requestHandled = USBFS_1_InitControlRead();
}
else
{
/* `#START OTHER_GET_CUR_REQUESTS` Place other request handler here */
/* `#END` */
}
break;
case USBFS_1_GET_MIN: /* GET_MIN */
if(CY_GET_REG8(USBFS_1_wValueHi) == USBFS_1_VOLUME_CONTROL)
{
/* Entity ID Control Selector is VOLUME, */
USBFS_1_currentTD.wCount = USBFS_1_VOLUME_LEN;
USBFS_1_currentTD.pData = &USBFS_1_minimumVolume[0];
requestHandled = USBFS_1_InitControlRead();
}
break;
case USBFS_1_GET_MAX: /* GET_MAX */
if(CY_GET_REG8(USBFS_1_wValueHi) == USBFS_1_VOLUME_CONTROL)
{
/* Entity ID Control Selector is VOLUME, */
USBFS_1_currentTD.wCount = USBFS_1_VOLUME_LEN;
USBFS_1_currentTD.pData = &USBFS_1_maximumVolume[0];
requestHandled = USBFS_1_InitControlRead();
}
break;
case USBFS_1_GET_RES: /* GET_RES */
if(CY_GET_REG8(USBFS_1_wValueHi) == USBFS_1_VOLUME_CONTROL)
{
/* Entity ID Control Selector is VOLUME, */
USBFS_1_currentTD.wCount = USBFS_1_VOLUME_LEN;
USBFS_1_currentTD.pData = &USBFS_1_resolutionVolume[0];
requestHandled = USBFS_1_InitControlRead();
}
break;
/* The contents of the status message is reserved for future use.
* For the time being, a null packet should be returned in the data stage of the
* control transfer, and the received null packet should be ACKed.
*/
case USBFS_1_GET_STAT:
USBFS_1_currentTD.wCount = 0u;
requestHandled = USBFS_1_InitControlWrite();
#endif /* End USBFS_1_ENABLE_AUDIO_STREAMING */
/* `#START AUDIO_WRITE_REQUESTS` Place other request handler here */
/* `#END` */
break;
default:
break;
}
}
else
{ /* USBFS_1_RQST_RCPT_OTHER */
}
}
else if ((CY_GET_REG8(USBFS_1_bmRequestType) & USBFS_1_RQST_DIR_MASK) == \
USBFS_1_RQST_DIR_H2D)
{
/* Control Write */
if((CY_GET_REG8(USBFS_1_bmRequestType) & USBFS_1_RQST_RCPT_MASK) == \
USBFS_1_RQST_RCPT_EP)
{
/* Endpoint */
switch (CY_GET_REG8(USBFS_1_bRequest))
{
case USBFS_1_SET_CUR:
#if defined(USBFS_1_ENABLE_AUDIO_STREAMING)
if(CY_GET_REG8(USBFS_1_wValueHi) == USBFS_1_SAMPLING_FREQ_CONTROL)
{
/* Endpoint Control Selector is Sampling Frequency */
USBFS_1_currentTD.wCount = USBFS_1_SAMPLE_FREQ_LEN;
USBFS_1_currentTD.pData = USBFS_1_currentSampleFrequency[epNumber];
requestHandled = USBFS_1_InitControlWrite();
USBFS_1_frequencyChanged = epNumber;
}
#endif /* End USBFS_1_ENABLE_AUDIO_STREAMING */
/* `#START AUDIO_SAMPLING_FREQ_REQUESTS` Place other request handler here */
/* `#END` */
break;
default:
break;
}
}
else if((CY_GET_REG8(USBFS_1_bmRequestType) & USBFS_1_RQST_RCPT_MASK) == \
USBFS_1_RQST_RCPT_IFC)
{
/* Interface or Entity ID */
switch (CY_GET_REG8(USBFS_1_bRequest))
{
case USBFS_1_SET_CUR:
#if defined(USBFS_1_ENABLE_AUDIO_STREAMING)
if(CY_GET_REG8(USBFS_1_wValueHi) == USBFS_1_MUTE_CONTROL)
{
/* `#START MUTE_SET_REQUEST` Place multi-channel handler here */
/* `#END` */
/* Entity ID Control Selector is MUTE */
USBFS_1_currentTD.wCount = 1u;
USBFS_1_currentTD.pData = &USBFS_1_currentMute;
requestHandled = USBFS_1_InitControlWrite();
}
else if(CY_GET_REG8(USBFS_1_wValueHi) == USBFS_1_VOLUME_CONTROL)
{
/* `#START VOLUME_CONTROL_SET_REQUEST` Place multi-channel handler here */
/* `#END` */
/* Entity ID Control Selector is VOLUME */
USBFS_1_currentTD.wCount = USBFS_1_VOLUME_LEN;
USBFS_1_currentTD.pData = USBFS_1_currentVolume;
requestHandled = USBFS_1_InitControlWrite();
}
else
{
/* `#START OTHER_SET_CUR_REQUESTS` Place other request handler here */
/* `#END` */
}
#endif /* End USBFS_1_ENABLE_AUDIO_STREAMING */
/* `#START AUDIO_CONTROL_SEL_REQUESTS` Place other request handler here */
/* `#END` */
break;
default:
break;
}
}
else
{ /* USBFS_1_RQST_RCPT_OTHER */
}
}
else
{ /* requestHandled is initialized as FALSE by default */
}
return(requestHandled);
}
#endif /* USER_SUPPLIED_AUDIO_HANDLER */
/*******************************************************************************
* Additional user functions supporting AUDIO Requests
********************************************************************************/
/* `#START AUDIO_FUNCTIONS` Place any additional functions here */
/* `#END` */
#endif /* End USBFS_1_ENABLE_AUDIO_CLASS*/
/* [] END OF FILE */

View File

@ -0,0 +1,95 @@
/*******************************************************************************
* File Name: USBFS_1_audio.h
* Version 2.60
*
* Description:
* Header File for the USFS component. Contains prototypes and constant values.
*
********************************************************************************
* Copyright 2008-2013, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#if !defined(CY_USBFS_USBFS_1_audio_H)
#define CY_USBFS_USBFS_1_audio_H
#include "cytypes.h"
/***************************************
* Custom Declarations
***************************************/
/* `#START CUSTOM_CONSTANTS` Place your declaration here */
/* `#END` */
/***************************************
* Constants for USBFS_1_audio API.
***************************************/
/* Audio Class-Specific Request Codes (AUDIO Table A-9) */
#define USBFS_1_REQUEST_CODE_UNDEFINED (0x00u)
#define USBFS_1_SET_CUR (0x01u)
#define USBFS_1_GET_CUR (0x81u)
#define USBFS_1_SET_MIN (0x02u)
#define USBFS_1_GET_MIN (0x82u)
#define USBFS_1_SET_MAX (0x03u)
#define USBFS_1_GET_MAX (0x83u)
#define USBFS_1_SET_RES (0x04u)
#define USBFS_1_GET_RES (0x84u)
#define USBFS_1_SET_MEM (0x05u)
#define USBFS_1_GET_MEM (0x85u)
#define USBFS_1_GET_STAT (0xFFu)
/* Endpoint Control Selectors (AUDIO Table A-19) */
#define USBFS_1_EP_CONTROL_UNDEFINED (0x00u)
#define USBFS_1_SAMPLING_FREQ_CONTROL (0x01u)
#define USBFS_1_PITCH_CONTROL (0x02u)
/* Feature Unit Control Selectors (AUDIO Table A-11) */
#define USBFS_1_FU_CONTROL_UNDEFINED (0x00u)
#define USBFS_1_MUTE_CONTROL (0x01u)
#define USBFS_1_VOLUME_CONTROL (0x02u)
#define USBFS_1_BASS_CONTROL (0x03u)
#define USBFS_1_MID_CONTROL (0x04u)
#define USBFS_1_TREBLE_CONTROL (0x05u)
#define USBFS_1_GRAPHIC_EQUALIZER_CONTROL (0x06u)
#define USBFS_1_AUTOMATIC_GAIN_CONTROL (0x07u)
#define USBFS_1_DELAY_CONTROL (0x08u)
#define USBFS_1_BASS_BOOST_CONTROL (0x09u)
#define USBFS_1_LOUDNESS_CONTROL (0x0Au)
#define USBFS_1_SAMPLE_FREQ_LEN (3u)
#define USBFS_1_VOLUME_LEN (2u)
#if !defined(USER_SUPPLIED_DEFAULT_VOLUME_VALUE)
#define USBFS_1_VOL_MIN_MSB (0x80u)
#define USBFS_1_VOL_MIN_LSB (0x01u)
#define USBFS_1_VOL_MAX_MSB (0x7Fu)
#define USBFS_1_VOL_MAX_LSB (0xFFu)
#define USBFS_1_VOL_RES_MSB (0x00u)
#define USBFS_1_VOL_RES_LSB (0x01u)
#endif /* USER_SUPPLIED_DEFAULT_VOLUME_VALUE */
/***************************************
* External data references
***************************************/
extern volatile uint8 USBFS_1_currentSampleFrequency[USBFS_1_MAX_EP]
[USBFS_1_SAMPLE_FREQ_LEN];
extern volatile uint8 USBFS_1_frequencyChanged;
extern volatile uint8 USBFS_1_currentMute;
extern volatile uint8 USBFS_1_currentVolume[USBFS_1_VOLUME_LEN];
extern volatile uint8 USBFS_1_minimumVolume[USBFS_1_VOLUME_LEN];
extern volatile uint8 USBFS_1_maximumVolume[USBFS_1_VOLUME_LEN];
extern volatile uint8 USBFS_1_resolutionVolume[USBFS_1_VOLUME_LEN];
#endif /* End CY_USBFS_USBFS_1_audio_H */
/* [] END OF FILE */

View File

@ -0,0 +1,262 @@
/*******************************************************************************
* File Name: USBFS_1_boot.c
* Version 2.60
*
* Description:
* Boot loader API for USBFS Component.
*
* Note:
*
********************************************************************************
* Copyright 2008-2013, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#include "USBFS_1.h"
#if defined(CYDEV_BOOTLOADER_IO_COMP) && ((CYDEV_BOOTLOADER_IO_COMP == CyBtldr_USBFS_1) || \
(CYDEV_BOOTLOADER_IO_COMP == CyBtldr_Custom_Interface))
/***************************************
* Bootloader defines
***************************************/
#define USBFS_1_CyBtLdrStarttimer(X, T) {USBFS_1_universalTime = T * 10; X = 0u;}
#define USBFS_1_CyBtLdrChecktimer(X) ((X++ < USBFS_1_universalTime) ? 1u : 0u)
#define USBFS_1_BTLDR_OUT_EP (0x01u)
#define USBFS_1_BTLDR_IN_EP (0x02u)
/***************************************
* Bootloader Variables
***************************************/
static uint16 USBFS_1_universalTime;
static uint8 USBFS_1_started = 0u;
/*******************************************************************************
* Function Name: USBFS_1_CyBtldrCommStart
********************************************************************************
*
* Summary:
* Starts the component and enables the interrupt.
*
* Parameters:
* None.
*
* Return:
* None.
*
* Side Effects:
* This function starts the USB with 3V or 5V operation.
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_CyBtldrCommStart(void)
{
CyGlobalIntEnable; /* Enable Global Interrupts */
/*Start USBFS Operation/device 0 and with 5V or 3V operation depend on Voltage Configuration in DWR */
USBFS_1_Start(0u, USBFS_1_DWR_VDDD_OPERATION);
/* USB component started, the correct enumeration will be checked in first Read operation */
USBFS_1_started = 1u;
}
/*******************************************************************************
* Function Name: USBFS_1_CyBtldrCommStop.
********************************************************************************
*
* Summary:
* Disable the component and disable the interrupt.
*
* Parameters:
* None.
*
* Return:
* None.
*
*******************************************************************************/
void USBFS_1_CyBtldrCommStop(void)
{
USBFS_1_Stop();
}
/*******************************************************************************
* Function Name: USBFS_1_CyBtldrCommReset.
********************************************************************************
*
* Summary:
* Resets the receive and transmit communication Buffers.
*
* Parameters:
* None.
*
* Return:
* None.
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_CyBtldrCommReset(void)
{
USBFS_1_EnableOutEP(USBFS_1_BTLDR_OUT_EP); /* Enable the OUT endpoint */
}
/*******************************************************************************
* Function Name: USBFS_1_CyBtldrCommWrite.
********************************************************************************
*
* Summary:
* Allows the caller to write data to the boot loader host. The function will
* handle polling to allow a block of data to be completely sent to the host
* device.
*
* Parameters:
* pData: A pointer to the block of data to send to the device
* size: The number of bytes to write.
* count: Pointer to an unsigned short variable to write the number of
* bytes actually written.
* timeOut: Number of units to wait before returning because of a timeout.
*
* Return:
* Returns the value that best describes the problem.
*
* Reentrant:
* No.
*
*******************************************************************************/
cystatus USBFS_1_CyBtldrCommWrite(uint8 *pData, uint16 size, uint16 *count, uint8 timeOut) CYSMALL
{
uint16 time;
cystatus status;
/* Enable IN transfer */
USBFS_1_LoadInEP(USBFS_1_BTLDR_IN_EP, pData, USBFS_1_BTLDR_SIZEOF_READ_BUFFER);
/* Start a timer to wait on. */
USBFS_1_CyBtLdrStarttimer(time, timeOut);
/* Wait for the master to read it. */
while((USBFS_1_GetEPState(USBFS_1_BTLDR_IN_EP) == USBFS_1_IN_BUFFER_FULL) && \
USBFS_1_CyBtLdrChecktimer(time))
{
CyDelay(1u); /* 1ms delay */
}
if (USBFS_1_GetEPState(USBFS_1_BTLDR_IN_EP) == USBFS_1_IN_BUFFER_FULL)
{
status = CYRET_TIMEOUT;
}
else
{
*count = size;
status = CYRET_SUCCESS;
}
return(status);
}
/*******************************************************************************
* Function Name: USBFS_1_CyBtldrCommRead.
********************************************************************************
*
* Summary:
* Allows the caller to read data from the boot loader host. The function will
* handle polling to allow a block of data to be completely received from the
* host device.
*
* Parameters:
* pData: A pointer to the area to store the block of data received
* from the device.
* size: The number of bytes to read.
* count: Pointer to an unsigned short variable to write the number
* of bytes actually read.
* timeOut: Number of units to wait before returning because of a timeOut.
* Timeout is measured in 10s of ms.
*
* Return:
* Returns the value that best describes the problem.
*
* Reentrant:
* No.
*
*******************************************************************************/
cystatus USBFS_1_CyBtldrCommRead(uint8 *pData, uint16 size, uint16 *count, uint8 timeOut) CYSMALL
{
cystatus status;
uint16 time;
if(size > USBFS_1_BTLDR_SIZEOF_WRITE_BUFFER)
{
size = USBFS_1_BTLDR_SIZEOF_WRITE_BUFFER;
}
/* Start a timer to wait on. */
USBFS_1_CyBtLdrStarttimer(time, timeOut);
/* Wait on enumeration in first time */
if(USBFS_1_started)
{
/* Wait for Device to enumerate */
while(!USBFS_1_GetConfiguration() && USBFS_1_CyBtLdrChecktimer(time))
{
CyDelay(1u); /* 1ms delay */
}
/* Enable first OUT, if enumeration complete */
if(USBFS_1_GetConfiguration())
{
USBFS_1_IsConfigurationChanged(); /* Clear configuration changes state status */
USBFS_1_CyBtldrCommReset();
USBFS_1_started = 0u;
}
}
else /* Check for configuration changes, has been done by Host */
{
if(USBFS_1_IsConfigurationChanged() != 0u) /* Host could send double SET_INTERFACE request or RESET */
{
if(USBFS_1_GetConfiguration() != 0u) /* Init OUT endpoints when device reconfigured */
{
USBFS_1_CyBtldrCommReset();
}
}
}
/* Wait on next packet */
while((USBFS_1_GetEPState(USBFS_1_BTLDR_OUT_EP) != USBFS_1_OUT_BUFFER_FULL) && \
USBFS_1_CyBtLdrChecktimer(time))
{
CyDelay(1u); /* 1ms delay */
}
/* OUT EP has completed */
if (USBFS_1_GetEPState(USBFS_1_BTLDR_OUT_EP) == USBFS_1_OUT_BUFFER_FULL)
{
*count = USBFS_1_ReadOutEP(USBFS_1_BTLDR_OUT_EP, pData, size);
status = CYRET_SUCCESS;
}
else
{
*count = 0u;
status = CYRET_TIMEOUT;
}
return(status);
}
#endif /* End CYDEV_BOOTLOADER_IO_COMP == CyBtldr_USBFS_1 */
/* [] END OF FILE */

View File

@ -0,0 +1,706 @@
/*******************************************************************************
* File Name: USBFS_1_cdc.c
* Version 2.60
*
* Description:
* USB HID Class request handler.
*
* Note:
*
********************************************************************************
* Copyright 2012-2013, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#include "USBFS_1.h"
#if defined(USBFS_1_ENABLE_CDC_CLASS)
#include "USBFS_1_cdc.h"
#include "USBFS_1_pvt.h"
/***************************************
* CDC Variables
***************************************/
volatile uint8 USBFS_1_lineCoding[USBFS_1_LINE_CODING_SIZE];
volatile uint8 USBFS_1_lineChanged;
volatile uint16 USBFS_1_lineControlBitmap;
volatile uint8 USBFS_1_cdc_data_in_ep;
volatile uint8 USBFS_1_cdc_data_out_ep;
/***************************************
* Static Function Prototypes
***************************************/
static uint16 USBFS_1_StrLen(const char8 string[]) ;
/***************************************
* Custom Declarations
***************************************/
/* `#START CDC_CUSTOM_DECLARATIONS` Place your declaration here */
/* `#END` */
/*******************************************************************************
* Function Name: USBFS_1_DispatchCDCClassRqst
********************************************************************************
*
* Summary:
* This routine dispatches CDC class requests.
*
* Parameters:
* None.
*
* Return:
* requestHandled
*
* Global variables:
* USBFS_1_lineCoding: Contains the current line coding structure.
* It is set by the Host using SET_LINE_CODING request and returned to the
* user code by the USBFS_GetDTERate(), USBFS_GetCharFormat(),
* USBFS_GetParityType(), USBFS_GetDataBits() APIs.
* USBFS_1_lineControlBitmap: Contains the current control signal
* bitmap. It is set by the Host using SET_CONTROL_LINE request and returned
* to the user code by the USBFS_GetLineControl() API.
* USBFS_1_lineChanged: This variable is used as a flag for the
* USBFS_IsLineChanged() API, to be aware that Host has been sent request
* for changing Line Coding or Control Bitmap.
*
* Reentrant:
* No.
*
*******************************************************************************/
uint8 USBFS_1_DispatchCDCClassRqst(void)
{
uint8 requestHandled = USBFS_1_FALSE;
if ((CY_GET_REG8(USBFS_1_bmRequestType) & USBFS_1_RQST_DIR_MASK) == USBFS_1_RQST_DIR_D2H)
{ /* Control Read */
switch (CY_GET_REG8(USBFS_1_bRequest))
{
case USBFS_1_CDC_GET_LINE_CODING:
USBFS_1_currentTD.count = USBFS_1_LINE_CODING_SIZE;
USBFS_1_currentTD.pData = USBFS_1_lineCoding;
requestHandled = USBFS_1_InitControlRead();
break;
/* `#START CDC_READ_REQUESTS` Place other request handler here */
/* `#END` */
default: /* requestHandled is initialized as FALSE by default */
break;
}
}
else if ((CY_GET_REG8(USBFS_1_bmRequestType) & USBFS_1_RQST_DIR_MASK) == \
USBFS_1_RQST_DIR_H2D)
{ /* Control Write */
switch (CY_GET_REG8(USBFS_1_bRequest))
{
case USBFS_1_CDC_SET_LINE_CODING:
USBFS_1_currentTD.count = USBFS_1_LINE_CODING_SIZE;
USBFS_1_currentTD.pData = USBFS_1_lineCoding;
USBFS_1_lineChanged |= USBFS_1_LINE_CODING_CHANGED;
requestHandled = USBFS_1_InitControlWrite();
break;
case USBFS_1_CDC_SET_CONTROL_LINE_STATE:
USBFS_1_lineControlBitmap = CY_GET_REG8(USBFS_1_wValueLo);
USBFS_1_lineChanged |= USBFS_1_LINE_CONTROL_CHANGED;
requestHandled = USBFS_1_InitNoDataControlTransfer();
break;
/* `#START CDC_WRITE_REQUESTS` Place other request handler here */
/* `#END` */
default: /* requestHandled is initialized as FALSE by default */
break;
}
}
else
{ /* requestHandled is initialized as FALSE by default */
}
return(requestHandled);
}
/***************************************
* Optional CDC APIs
***************************************/
#if (USBFS_1_ENABLE_CDC_CLASS_API != 0u)
/*******************************************************************************
* Function Name: USBFS_1_CDC_Init
********************************************************************************
*
* Summary:
* This function initialize the CDC interface to be ready for the receive data
* from the PC.
*
* Parameters:
* None.
*
* Return:
* None.
*
* Global variables:
* USBFS_1_lineChanged: Initialized to zero.
* USBFS_1_cdc_data_out_ep: Used as an OUT endpoint number.
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_CDC_Init(void)
{
USBFS_1_lineChanged = 0u;
USBFS_1_EnableOutEP(USBFS_1_cdc_data_out_ep);
}
/*******************************************************************************
* Function Name: USBFS_1_PutData
********************************************************************************
*
* Summary:
* Sends a specified number of bytes from the location specified by a
* pointer to the PC.
*
* Parameters:
* pData: pointer to the buffer containing data to be sent.
* length: Specifies the number of bytes to send from the pData
* buffer. Maximum length will be limited by the maximum packet
* size for the endpoint.
*
* Return:
* None.
*
* Global variables:
* USBFS_1_cdc_data_in_ep: CDC IN endpoint number used for sending
* data.
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_PutData(const uint8* pData, uint16 length)
{
/* Limits length to maximum packet size for the EP */
if(length > USBFS_1_EP[USBFS_1_cdc_data_in_ep].bufferSize)
{
/* Caution: Data will be lost if length is greater than Max Packet Length */
length = USBFS_1_EP[USBFS_1_cdc_data_in_ep].bufferSize;
/* Halt CPU in debug mode */
CYASSERT(0u != 0u);
}
USBFS_1_LoadInEP(USBFS_1_cdc_data_in_ep, pData, length);
}
/*******************************************************************************
* Function Name: USBFS_1_StrLen
********************************************************************************
*
* Summary:
* Calculates length of a null terminated string.
*
* Parameters:
* string: pointer to the string.
*
* Return:
* Length of the string
*
*******************************************************************************/
static uint16 USBFS_1_StrLen(const char8 string[])
{
uint16 len = 0u;
while (string[len] != (char8)0)
{
len++;
}
return (len);
}
/*******************************************************************************
* Function Name: USBFS_1_PutString
********************************************************************************
*
* Summary:
* Sends a null terminated string to the PC.
*
* Parameters:
* string: pointer to the string to be sent to the PC
*
* Return:
* None.
*
* Global variables:
* USBFS_1_cdc_data_in_ep: CDC IN endpoint number used for sending
* data.
*
* Reentrant:
* No.
*
* Theory:
* This function will block if there is not enough memory to place the whole
* string, it will block until the entire string has been written to the
* transmit buffer.
*
*******************************************************************************/
void USBFS_1_PutString(const char8 string[])
{
uint16 str_length;
uint16 send_length;
uint16 buf_index = 0u;
/* Get length of the null terminated string */
str_length = USBFS_1_StrLen(string);
do
{
/* Limits length to maximum packet size for the EP */
send_length = (str_length > USBFS_1_EP[USBFS_1_cdc_data_in_ep].bufferSize) ?
USBFS_1_EP[USBFS_1_cdc_data_in_ep].bufferSize : str_length;
/* Enable IN transfer */
USBFS_1_LoadInEP(USBFS_1_cdc_data_in_ep, (const uint8 *)&string[buf_index], send_length);
str_length -= send_length;
/* If more data are present to send */
if(str_length > 0u)
{
buf_index += send_length;
/* Wait for the Host to read it. */
while(USBFS_1_EP[USBFS_1_cdc_data_in_ep].apiEpState ==
USBFS_1_IN_BUFFER_FULL)
{
;
}
}
}while(str_length > 0u);
}
/*******************************************************************************
* Function Name: USBFS_1_PutChar
********************************************************************************
*
* Summary:
* Writes a single character to the PC.
*
* Parameters:
* txDataByte: Character to be sent to the PC.
*
* Return:
* None.
*
* Global variables:
* USBFS_1_cdc_data_in_ep: CDC IN endpoint number used for sending
* data.
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_PutChar(char8 txDataByte)
{
uint8 dataByte;
dataByte = (uint8)txDataByte;
USBFS_1_LoadInEP(USBFS_1_cdc_data_in_ep, &dataByte, 1u);
}
/*******************************************************************************
* Function Name: USBFS_1_PutCRLF
********************************************************************************
*
* Summary:
* Sends a carriage return (0x0D) and line feed (0x0A) to the PC
*
* Parameters:
* None.
*
* Return:
* None.
*
* Global variables:
* USBFS_1_cdc_data_in_ep: CDC IN endpoint number used for sending
* data.
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_PutCRLF(void)
{
const uint8 CYCODE txData[] = {0x0Du, 0x0Au};
USBFS_1_LoadInEP(USBFS_1_cdc_data_in_ep, (const uint8 *)txData, 2u);
}
/*******************************************************************************
* Function Name: USBFS_1_GetCount
********************************************************************************
*
* Summary:
* This function returns the number of bytes that were received from the PC.
*
* Parameters:
* None.
*
* Return:
* Returns the number of received bytes.
*
* Global variables:
* USBFS_1_cdc_data_out_ep: CDC OUT endpoint number used.
*
*******************************************************************************/
uint16 USBFS_1_GetCount(void)
{
uint16 bytesCount = 0u;
if (USBFS_1_EP[USBFS_1_cdc_data_out_ep].apiEpState == USBFS_1_OUT_BUFFER_FULL)
{
bytesCount = USBFS_1_GetEPCount(USBFS_1_cdc_data_out_ep);
}
return(bytesCount);
}
/*******************************************************************************
* Function Name: USBFS_1_DataIsReady
********************************************************************************
*
* Summary:
* Returns a nonzero value if the component received data or received
* zero-length packet. The GetAll() or GetData() API should be called to read
* data from the buffer and re-init OUT endpoint even when zero-length packet
* received.
*
* Parameters:
* None.
*
* Return:
* If the OUT packet received this function returns a nonzero value.
* Otherwise zero is returned.
*
* Global variables:
* USBFS_1_cdc_data_out_ep: CDC OUT endpoint number used.
*
*******************************************************************************/
uint8 USBFS_1_DataIsReady(void)
{
return(USBFS_1_EP[USBFS_1_cdc_data_out_ep].apiEpState);
}
/*******************************************************************************
* Function Name: USBFS_1_CDCIsReady
********************************************************************************
*
* Summary:
* Returns a nonzero value if the component is ready to send more data to the
* PC. Otherwise returns zero. Should be called before sending new data to
* ensure the previous data has finished sending.This function returns the
* number of bytes that were received from the PC.
*
* Parameters:
* None.
*
* Return:
* If the buffer can accept new data then this function returns a nonzero value.
* Otherwise zero is returned.
*
* Global variables:
* USBFS_1_cdc_data_in_ep: CDC IN endpoint number used.
*
*******************************************************************************/
uint8 USBFS_1_CDCIsReady(void)
{
return(USBFS_1_EP[USBFS_1_cdc_data_in_ep].apiEpState);
}
/*******************************************************************************
* Function Name: USBFS_1_GetData
********************************************************************************
*
* Summary:
* Gets a specified number of bytes from the input buffer and places it in a
* data array specified by the passed pointer.
* USBFS_1_DataIsReady() API should be called before, to be sure
* that data is received from the Host.
*
* Parameters:
* pData: Pointer to the data array where data will be placed.
* Length: Number of bytes to read into the data array from the RX buffer.
* Maximum length is limited by the the number of received bytes.
*
* Return:
* Number of bytes received.
*
* Global variables:
* USBFS_1_cdc_data_out_ep: CDC OUT endpoint number used.
*
* Reentrant:
* No.
*
*******************************************************************************/
uint16 USBFS_1_GetData(uint8* pData, uint16 length)
{
return(USBFS_1_ReadOutEP(USBFS_1_cdc_data_out_ep, pData, length));
}
/*******************************************************************************
* Function Name: USBFS_1_GetAll
********************************************************************************
*
* Summary:
* Gets all bytes of received data from the input buffer and places it into a
* specified data array. USBFS_1_DataIsReady() API should be called
* before, to be sure that data is received from the Host.
*
* Parameters:
* pData: Pointer to the data array where data will be placed.
*
* Return:
* Number of bytes received.
*
* Global variables:
* USBFS_1_cdc_data_out_ep: CDC OUT endpoint number used.
* USBFS_1_EP[].bufferSize: EP max packet size is used as a length
* to read all data from the EP buffer.
*
* Reentrant:
* No.
*
*******************************************************************************/
uint16 USBFS_1_GetAll(uint8* pData)
{
return (USBFS_1_ReadOutEP(USBFS_1_cdc_data_out_ep, pData,
USBFS_1_EP[USBFS_1_cdc_data_out_ep].bufferSize));
}
/*******************************************************************************
* Function Name: USBFS_1_GetChar
********************************************************************************
*
* Summary:
* Reads one byte of received data from the buffer.
*
* Parameters:
* None.
*
* Return:
* Received one character.
*
* Global variables:
* USBFS_1_cdc_data_out_ep: CDC OUT endpoint number used.
*
* Reentrant:
* No.
*
*******************************************************************************/
uint8 USBFS_1_GetChar(void)
{
uint8 rxData;
(void) USBFS_1_ReadOutEP(USBFS_1_cdc_data_out_ep, &rxData, 1u);
return(rxData);
}
/*******************************************************************************
* Function Name: USBFS_1_IsLineChanged
********************************************************************************
*
* Summary:
* This function returns clear on read status of the line.
*
* Parameters:
* None.
*
* Return:
* If SET_LINE_CODING or CDC_SET_CONTROL_LINE_STATE request received then not
* zero value returned. Otherwise zero is returned.
*
* Global variables:
* USBFS_1_transferState - it is checked to be sure then OUT data
* phase has been complete, and data written to the lineCoding or Control
* Bitmap buffer.
* USBFS_1_lineChanged: used as a flag to be aware that Host has been
* sent request for changing Line Coding or Control Bitmap.
*
*******************************************************************************/
uint8 USBFS_1_IsLineChanged(void)
{
uint8 state = 0u;
/* transferState is checked to be sure then OUT data phase has been complete */
if(USBFS_1_transferState == USBFS_1_TRANS_STATE_IDLE)
{
if(USBFS_1_lineChanged != 0u)
{
state = USBFS_1_lineChanged;
USBFS_1_lineChanged = 0u;
}
}
return(state);
}
/*******************************************************************************
* Function Name: USBFS_1_GetDTERate
********************************************************************************
*
* Summary:
* Returns the data terminal rate set for this port in bits per second.
*
* Parameters:
* None.
*
* Return:
* Returns a uint32 value of the data rate in bits per second.
*
* Global variables:
* USBFS_1_lineCoding: First four bytes converted to uint32
* depend on compiler, and returned as a data rate.
*
*******************************************************************************/
uint32 USBFS_1_GetDTERate(void)
{
uint32 rate;
rate = USBFS_1_lineCoding[USBFS_1_LINE_CODING_RATE + 3u];
rate = (rate << 8u) | USBFS_1_lineCoding[USBFS_1_LINE_CODING_RATE + 2u];
rate = (rate << 8u) | USBFS_1_lineCoding[USBFS_1_LINE_CODING_RATE + 1u];
rate = (rate << 8u) | USBFS_1_lineCoding[USBFS_1_LINE_CODING_RATE];
return(rate);
}
/*******************************************************************************
* Function Name: USBFS_1_GetCharFormat
********************************************************************************
*
* Summary:
* Returns the number of stop bits.
*
* Parameters:
* None.
*
* Return:
* Returns the number of stop bits.
*
* Global variables:
* USBFS_1_lineCoding: used to get a parameter.
*
*******************************************************************************/
uint8 USBFS_1_GetCharFormat(void)
{
return(USBFS_1_lineCoding[USBFS_1_LINE_CODING_STOP_BITS]);
}
/*******************************************************************************
* Function Name: USBFS_1_GetParityType
********************************************************************************
*
* Summary:
* Returns the parity type for the CDC port.
*
* Parameters:
* None.
*
* Return:
* Returns the parity type.
*
* Global variables:
* USBFS_1_lineCoding: used to get a parameter.
*
*******************************************************************************/
uint8 USBFS_1_GetParityType(void)
{
return(USBFS_1_lineCoding[USBFS_1_LINE_CODING_PARITY]);
}
/*******************************************************************************
* Function Name: USBFS_1_GetDataBits
********************************************************************************
*
* Summary:
* Returns the number of data bits for the CDC port.
*
* Parameters:
* None.
*
* Return:
* Returns the number of data bits.
* The number of data bits can be 5, 6, 7, 8 or 16.
*
* Global variables:
* USBFS_1_lineCoding: used to get a parameter.
*
*******************************************************************************/
uint8 USBFS_1_GetDataBits(void)
{
return(USBFS_1_lineCoding[USBFS_1_LINE_CODING_DATA_BITS]);
}
/*******************************************************************************
* Function Name: USBFS_1_GetLineControl
********************************************************************************
*
* Summary:
* Returns Line control bitmap.
*
* Parameters:
* None.
*
* Return:
* Returns Line control bitmap.
*
* Global variables:
* USBFS_1_lineControlBitmap: used to get a parameter.
*
*******************************************************************************/
uint16 USBFS_1_GetLineControl(void)
{
return(USBFS_1_lineControlBitmap);
}
#endif /* End USBFS_1_ENABLE_CDC_CLASS_API*/
/*******************************************************************************
* Additional user functions supporting CDC Requests
********************************************************************************/
/* `#START CDC_FUNCTIONS` Place any additional functions here */
/* `#END` */
#endif /* End USBFS_1_ENABLE_CDC_CLASS*/
/* [] END OF FILE */

View File

@ -0,0 +1,92 @@
/*******************************************************************************
* File Name: USBFS_1_cdc.h
* Version 2.60
*
* Description:
* Header File for the USFS component.
* Contains CDC class prototypes and constant values.
*
********************************************************************************
* Copyright 2012-2013, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#if !defined(CY_USBFS_USBFS_1_cdc_H)
#define CY_USBFS_USBFS_1_cdc_H
#include "cytypes.h"
/***************************************
* Prototypes of the USBFS_1_cdc API.
***************************************/
#if (USBFS_1_ENABLE_CDC_CLASS_API != 0u)
void USBFS_1_CDC_Init(void) ;
void USBFS_1_PutData(const uint8* pData, uint16 length) ;
void USBFS_1_PutString(const char8 string[]) ;
void USBFS_1_PutChar(char8 txDataByte) ;
void USBFS_1_PutCRLF(void) ;
uint16 USBFS_1_GetCount(void) ;
uint8 USBFS_1_CDCIsReady(void) ;
uint8 USBFS_1_DataIsReady(void) ;
uint16 USBFS_1_GetData(uint8* pData, uint16 length) ;
uint16 USBFS_1_GetAll(uint8* pData) ;
uint8 USBFS_1_GetChar(void) ;
uint8 USBFS_1_IsLineChanged(void) ;
uint32 USBFS_1_GetDTERate(void) ;
uint8 USBFS_1_GetCharFormat(void) ;
uint8 USBFS_1_GetParityType(void) ;
uint8 USBFS_1_GetDataBits(void) ;
uint16 USBFS_1_GetLineControl(void) ;
#endif /* End USBFS_1_ENABLE_CDC_CLASS_API*/
/***************************************
* Constants for USBFS_1_cdc API.
***************************************/
/* CDC Class-Specific Request Codes (CDC ver 1.2 Table 19) */
#define USBFS_1_CDC_SET_LINE_CODING (0x20u)
#define USBFS_1_CDC_GET_LINE_CODING (0x21u)
#define USBFS_1_CDC_SET_CONTROL_LINE_STATE (0x22u)
#define USBFS_1_LINE_CODING_CHANGED (0x01u)
#define USBFS_1_LINE_CONTROL_CHANGED (0x02u)
#define USBFS_1_1_STOPBIT (0x00u)
#define USBFS_1_1_5_STOPBITS (0x01u)
#define USBFS_1_2_STOPBITS (0x02u)
#define USBFS_1_PARITY_NONE (0x00u)
#define USBFS_1_PARITY_ODD (0x01u)
#define USBFS_1_PARITY_EVEN (0x02u)
#define USBFS_1_PARITY_MARK (0x03u)
#define USBFS_1_PARITY_SPACE (0x04u)
#define USBFS_1_LINE_CODING_SIZE (0x07u)
#define USBFS_1_LINE_CODING_RATE (0x00u)
#define USBFS_1_LINE_CODING_STOP_BITS (0x04u)
#define USBFS_1_LINE_CODING_PARITY (0x05u)
#define USBFS_1_LINE_CODING_DATA_BITS (0x06u)
#define USBFS_1_LINE_CONTROL_DTR (0x01u)
#define USBFS_1_LINE_CONTROL_RTS (0x02u)
/***************************************
* External data references
***************************************/
extern volatile uint8 USBFS_1_lineCoding[USBFS_1_LINE_CODING_SIZE];
extern volatile uint8 USBFS_1_lineChanged;
extern volatile uint16 USBFS_1_lineControlBitmap;
extern volatile uint8 USBFS_1_cdc_data_in_ep;
extern volatile uint8 USBFS_1_cdc_data_out_ep;
#endif /* End CY_USBFS_USBFS_1_cdc_H */
/* [] END OF FILE */

View File

@ -0,0 +1,122 @@
;******************************************************************************
; File Name: USBFS_1_cdc.inf
; Version 2.60
;
; Description:
; Windows USB CDC setup file for USBUART Device.
;
;******************************************************************************
; Copyright 2007-2013, Cypress Semiconductor Corporation. All rights reserved.
; You may use this file only in accordance with the license, terms, conditions,
; disclaimers, and limitations in the end user license agreement accompanying
; the software package with which this file was provided.
;******************************************************************************
[Version]
Signature="$Windows NT$"
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%PROVIDER%
LayoutFile=layout.inf
DriverVer=03/05/2007,2.0.0000.0
[Manufacturer]
%MFGNAME%=DeviceList, NTx86, NTia64, NTamd64
[DestinationDirs]
DefaultDestDir=12
[SourceDisksFiles]
[SourceDisksNames]
[DeviceList.NTx86]
%DESCRIPTION%=DriverInstall, USB\VID_04B4&PID_F232
[DeviceList.NTia64]
%DESCRIPTION%=DriverInstall, USB\VID_04B4&PID_F232
[DeviceList.NTamd64]
%DESCRIPTION%=DriverInstall, USB\VID_04B4&PID_F232
;------------------------------------------------------------------------------
; 32 bit section for Windows 2000/2003/XP/Vista
;------------------------------------------------------------------------------
[DriverInstall.NTx86]
include=mdmcpq.inf
CopyFiles=DriverCopyFiles
AddReg=DriverInstall.NTx86.AddReg
[DriverCopyFiles]
usbser.sys,,,0x20
[DriverInstall.NTx86.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,usbser.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
[DriverInstall.NTx86.Services]
AddService=usbser, 0x00000002, DriverService
;------------------------------------------------------------------------------
; 64 bit section for Intel Itanium based systems
;------------------------------------------------------------------------------
[DriverInstall.NTia64]
include=mdmcpq.inf
CopyFiles=DriverCopyFiles
AddReg=DriverInstall.NTia64.AddReg
[DriverCopyFiles]
usbser.sys,,,0x20
[DriverInstall.NTia64.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,usbser.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
[DriverInstall.NTia64.Services]
AddService=usbser, 0x00000002, DriverService
;------------------------------------------------------------------------------
; 64 bit section for AMD64 and Intel EM64T based systems
;------------------------------------------------------------------------------
[DriverInstall.NTamd64]
include=mdmcpq.inf
CopyFiles=DriverCopyFiles
AddReg=DriverInstall.NTamd64.AddReg
[DriverCopyFiles]
usbser.sys,,,0x20
[DriverInstall.NTamd64.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,usbser.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
[DriverInstall.NTamd64.Services]
AddService=usbser, 0x00000002, DriverService
;------------------------------------------------------------------------------
;
;------------------------------------------------------------------------------
[DriverService]
DisplayName=%SERVICE%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\usbser.sys
;------------------------------------------------------------------------------
; String Definitions
;------------------------------------------------------------------------------
[Strings]
PROVIDER="Cypress"
MFGNAME="Cypress Semiconductor Corporation"
DESCRIPTION="Cypress USB UART"
SERVICE="USB UART"

View File

@ -0,0 +1,107 @@
/*******************************************************************************
* File Name: USBFS_1_cls.c
* Version 2.60
*
* Description:
* USB Class request handler.
*
* Note:
*
********************************************************************************
* Copyright 2008-2013, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#include "USBFS_1.h"
#if(USBFS_1_EXTERN_CLS == USBFS_1_FALSE)
#include "USBFS_1_pvt.h"
/***************************************
* User Implemented Class Driver Declarations.
***************************************/
/* `#START USER_DEFINED_CLASS_DECLARATIONS` Place your declaration here */
/* `#END` */
/*******************************************************************************
* Function Name: USBFS_1_DispatchClassRqst
********************************************************************************
* Summary:
* This routine dispatches class specific requests depend on interface class.
*
* Parameters:
* None.
*
* Return:
* requestHandled.
*
* Reentrant:
* No.
*
*******************************************************************************/
uint8 USBFS_1_DispatchClassRqst(void)
{
uint8 requestHandled = USBFS_1_FALSE;
uint8 interfaceNumber = 0u;
switch(CY_GET_REG8(USBFS_1_bmRequestType) & USBFS_1_RQST_RCPT_MASK)
{
case USBFS_1_RQST_RCPT_IFC: /* Class-specific request directed to an interface */
interfaceNumber = CY_GET_REG8(USBFS_1_wIndexLo); /* wIndexLo contain Interface number */
break;
case USBFS_1_RQST_RCPT_EP: /* Class-specific request directed to the endpoint */
/* Find related interface to the endpoint, wIndexLo contain EP number */
interfaceNumber =
USBFS_1_EP[CY_GET_REG8(USBFS_1_wIndexLo) & USBFS_1_DIR_UNUSED].interface;
break;
default: /* RequestHandled is initialized as FALSE by default */
break;
}
/* Handle Class request depend on interface type */
switch(USBFS_1_interfaceClass[interfaceNumber])
{
case USBFS_1_CLASS_HID:
#if defined(USBFS_1_ENABLE_HID_CLASS)
requestHandled = USBFS_1_DispatchHIDClassRqst();
#endif /* USBFS_1_ENABLE_HID_CLASS */
break;
case USBFS_1_CLASS_AUDIO:
#if defined(USBFS_1_ENABLE_AUDIO_CLASS)
requestHandled = USBFS_1_DispatchAUDIOClassRqst();
#endif /* USBFS_1_ENABLE_HID_CLASS */
break;
case USBFS_1_CLASS_CDC:
#if defined(USBFS_1_ENABLE_CDC_CLASS)
requestHandled = USBFS_1_DispatchCDCClassRqst();
#endif /* USBFS_1_ENABLE_CDC_CLASS */
break;
default: /* requestHandled is initialized as FALSE by default */
break;
}
/* `#START USER_DEFINED_CLASS_CODE` Place your Class request here */
/* `#END` */
return(requestHandled);
}
/*******************************************************************************
* Additional user functions supporting Class Specific Requests
********************************************************************************/
/* `#START CLASS_SPECIFIC_FUNCTIONS` Place any additional functions here */
/* `#END` */
#endif /* USBFS_1_EXTERN_CLS */
/* [] END OF FILE */

View File

@ -0,0 +1,180 @@
/*******************************************************************************
* File Name: USBFS_1_descr.c
* Version 2.60
*
* Description:
* USB descriptors and storage.
*
* Note:
*
********************************************************************************
* Copyright 2008-2013, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#include "USBFS_1.h"
#include "USBFS_1_pvt.h"
/*****************************************************************************
* User supplied descriptors. If you want to specify your own descriptors,
* remove the comments around the define USER_SUPPLIED_DESCRIPTORS below and
* add your descriptors.
*****************************************************************************/
/* `#START USER_DESCRIPTORS_DECLARATIONS` Place your declaration here */
/* `#END` */
/***************************************
* USB Customizer Generated Descriptors
***************************************/
#if !defined(USER_SUPPLIED_DESCRIPTORS)
/*********************************************************************
* Device Descriptors
*********************************************************************/
const uint8 CYCODE USBFS_1_DEVICE0_DESCR[18u] = {
/* Descriptor Length */ 0x12u,
/* DescriptorType: DEVICE */ 0x01u,
/* bcdUSB (ver 2.0) */ 0x00u, 0x02u,
/* bDeviceClass */ 0x00u,
/* bDeviceSubClass */ 0x00u,
/* bDeviceProtocol */ 0x00u,
/* bMaxPacketSize0 */ 0x08u,
/* idVendor */ 0xB4u, 0x04u,
/* idProduct */ 0x51u, 0x80u,
/* bcdDevice */ 0x00u, 0x00u,
/* iManufacturer */ 0x00u,
/* iProduct */ 0x00u,
/* iSerialNumber */ 0x00u,
/* bNumConfigurations */ 0x01u
};
/*********************************************************************
* Config Descriptor
*********************************************************************/
const uint8 CYCODE USBFS_1_DEVICE0_CONFIGURATION0_DESCR[25u] = {
/* Config Descriptor Length */ 0x09u,
/* DescriptorType: CONFIG */ 0x02u,
/* wTotalLength */ 0x19u, 0x00u,
/* bNumInterfaces */ 0x01u,
/* bConfigurationValue */ 0x01u,
/* iConfiguration */ 0x00u,
/* bmAttributes */ 0xC0u,
/* bMaxPower */ 0x00u,
/*********************************************************************
* Interface Descriptor
*********************************************************************/
/* Interface Descriptor Length */ 0x09u,
/* DescriptorType: INTERFACE */ 0x04u,
/* bInterfaceNumber */ 0x00u,
/* bAlternateSetting */ 0x00u,
/* bNumEndpoints */ 0x01u,
/* bInterfaceClass */ 0x00u,
/* bInterfaceSubClass */ 0x00u,
/* bInterfaceProtocol */ 0x00u,
/* iInterface */ 0x00u,
/*********************************************************************
* Endpoint Descriptor
*********************************************************************/
/* Endpoint Descriptor Length */ 0x07u,
/* DescriptorType: ENDPOINT */ 0x05u,
/* bEndpointAddress */ 0x01u,
/* bmAttributes */ 0x02u,
/* wMaxPacketSize */ 0x08u, 0x00u,
/* bInterval */ 0x0Au
};
/*********************************************************************
* Endpoint Setting Table -- This table contain the endpoint setting
* for each endpoint in the configuration. It
* contains the necessary information to
* configure the endpoint hardware for each
* interface and alternate setting.
*********************************************************************/
const T_USBFS_1_EP_SETTINGS_BLOCK CYCODE USBFS_1_DEVICE0_CONFIGURATION0_EP_SETTINGS_TABLE[1u] = {
/* IFC ALT EPAddr bmAttr MaxPktSize Class ********************/
{0x00u, 0x00u, 0x01u, 0x02u, 0x0008u, 0x00u}
};
const uint8 CYCODE USBFS_1_DEVICE0_CONFIGURATION0_INTERFACE_CLASS[1u] = {
0x00u
};
/*********************************************************************
* Config Dispatch Table -- Points to the Config Descriptor and each of
* and endpoint setup table and to each
* interface table if it specifies a USB Class
*********************************************************************/
const T_USBFS_1_LUT CYCODE USBFS_1_DEVICE0_CONFIGURATION0_TABLE[4u] = {
{0x01u, &USBFS_1_DEVICE0_CONFIGURATION0_DESCR},
{0x01u, &USBFS_1_DEVICE0_CONFIGURATION0_EP_SETTINGS_TABLE},
{0x00u, NULL},
{0x00u, &USBFS_1_DEVICE0_CONFIGURATION0_INTERFACE_CLASS}
};
/*********************************************************************
* Device Dispatch Table -- Points to the Device Descriptor and each of
* and Configuration Tables for this Device
*********************************************************************/
const T_USBFS_1_LUT CYCODE USBFS_1_DEVICE0_TABLE[2u] = {
{0x01u, &USBFS_1_DEVICE0_DESCR},
{0x01u, &USBFS_1_DEVICE0_CONFIGURATION0_TABLE}
};
/*********************************************************************
* Device Table -- Indexed by the device number.
*********************************************************************/
const T_USBFS_1_LUT CYCODE USBFS_1_TABLE[1u] = {
{0x01u, &USBFS_1_DEVICE0_TABLE}
};
#endif /* USER_SUPPLIED_DESCRIPTORS */
#if defined(USBFS_1_ENABLE_MSOS_STRING)
/******************************************************************************
* USB Microsoft OS String Descriptor
* "MSFT" identifies a Microsoft host
* "100" specifies version 1.00
* USBFS_1_GET_EXTENDED_CONFIG_DESCRIPTOR becomes the bRequest value
* in a host vendor device/class request
******************************************************************************/
const uint8 CYCODE USBFS_1_MSOS_DESCRIPTOR[USBFS_1_MSOS_DESCRIPTOR_LENGTH] = {
/* Descriptor Length */ 0x12u,
/* DescriptorType: STRING */ 0x03u,
/* qwSignature - "MSFT100" */ (uint8)'M', 0u, (uint8)'S', 0u, (uint8)'F', 0u, (uint8)'T', 0u,
(uint8)'1', 0u, (uint8)'0', 0u, (uint8)'0', 0u,
/* bMS_VendorCode: */ USBFS_1_GET_EXTENDED_CONFIG_DESCRIPTOR,
/* bPad */ 0x00u
};
/* Extended Configuration Descriptor */
const uint8 CYCODE USBFS_1_MSOS_CONFIGURATION_DESCR[USBFS_1_MSOS_CONF_DESCR_LENGTH] = {
/* Length of the descriptor 4 bytes */ 0x28u, 0x00u, 0x00u, 0x00u,
/* Version of the descriptor 2 bytes */ 0x00u, 0x01u,
/* wIndex - Fixed:INDEX_CONFIG_DESCRIPTOR */ 0x04u, 0x00u,
/* bCount - Count of device functions. */ 0x01u,
/* Reserved : 7 bytes */ 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
/* bFirstInterfaceNumber */ 0x00u,
/* Reserved */ 0x01u,
/* compatibleID - "CYUSB\0\0" */ (uint8)'C', (uint8)'Y', (uint8)'U', (uint8)'S', (uint8)'B',
0x00u, 0x00u, 0x00u,
/* subcompatibleID - "00001\0\0" */ (uint8)'0', (uint8)'0', (uint8)'0', (uint8)'0', (uint8)'1',
0x00u, 0x00u, 0x00u,
/* Reserved : 6 bytes */ 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u
};
#endif /* USBFS_1_ENABLE_MSOS_STRING */
/* DIE ID string descriptor for 8 bytes ID */
#if defined(USBFS_1_ENABLE_IDSN_STRING)
uint8 USBFS_1_idSerialNumberStringDescriptor[USBFS_1_IDSN_DESCR_LENGTH];
#endif /* USBFS_1_ENABLE_IDSN_STRING */
/* [] END OF FILE */

View File

@ -0,0 +1,781 @@
/*******************************************************************************
* File Name: USBFS_1_drv.c
* Version 2.60
*
* Description:
* Endpoint 0 Driver for the USBFS Component.
*
* Note:
*
********************************************************************************
* Copyright 2008-2013, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#include "USBFS_1.h"
#include "USBFS_1_pvt.h"
/***************************************
* Global data allocation
***************************************/
volatile T_USBFS_1_EP_CTL_BLOCK USBFS_1_EP[USBFS_1_MAX_EP];
volatile uint8 USBFS_1_configuration;
volatile uint8 USBFS_1_interfaceNumber;
volatile uint8 USBFS_1_configurationChanged;
volatile uint8 USBFS_1_deviceAddress;
volatile uint8 USBFS_1_deviceStatus;
volatile uint8 USBFS_1_interfaceSetting[USBFS_1_MAX_INTERFACES_NUMBER];
volatile uint8 USBFS_1_interfaceSetting_last[USBFS_1_MAX_INTERFACES_NUMBER];
volatile uint8 USBFS_1_interfaceStatus[USBFS_1_MAX_INTERFACES_NUMBER];
volatile uint8 USBFS_1_device;
const uint8 CYCODE *USBFS_1_interfaceClass;
/***************************************
* Local data allocation
***************************************/
volatile uint8 USBFS_1_ep0Toggle;
volatile uint8 USBFS_1_lastPacketSize;
volatile uint8 USBFS_1_transferState;
volatile T_USBFS_1_TD USBFS_1_currentTD;
volatile uint8 USBFS_1_ep0Mode;
volatile uint8 USBFS_1_ep0Count;
volatile uint16 USBFS_1_transferByteCount;
/*******************************************************************************
* Function Name: USBFS_1_ep_0_Interrupt
********************************************************************************
*
* Summary:
* This Interrupt Service Routine handles Endpoint 0 (Control Pipe) traffic.
* It dispatches setup requests and handles the data and status stages.
*
* Parameters:
* None.
*
* Return:
* None.
*
*******************************************************************************/
CY_ISR(USBFS_1_EP_0_ISR)
{
uint8 bRegTemp;
uint8 modifyReg;
bRegTemp = CY_GET_REG8(USBFS_1_EP0_CR_PTR);
if ((bRegTemp & USBFS_1_MODE_ACKD) != 0u)
{
modifyReg = 1u;
if ((bRegTemp & USBFS_1_MODE_SETUP_RCVD) != 0u)
{
if((bRegTemp & USBFS_1_MODE_MASK) != USBFS_1_MODE_NAK_IN_OUT)
{
modifyReg = 0u; /* When mode not NAK_IN_OUT => invalid setup */
}
else
{
USBFS_1_HandleSetup();
if((USBFS_1_ep0Mode & USBFS_1_MODE_SETUP_RCVD) != 0u)
{
modifyReg = 0u; /* if SETUP bit set -> exit without modifying the mode */
}
}
}
else if ((bRegTemp & USBFS_1_MODE_IN_RCVD) != 0u)
{
USBFS_1_HandleIN();
}
else if ((bRegTemp & USBFS_1_MODE_OUT_RCVD) != 0u)
{
USBFS_1_HandleOUT();
}
else
{
modifyReg = 0u;
}
if(modifyReg != 0u)
{
bRegTemp = CY_GET_REG8(USBFS_1_EP0_CR_PTR); /* unlock registers */
if((bRegTemp & USBFS_1_MODE_SETUP_RCVD) == 0u) /* Check if SETUP bit is not set, otherwise exit */
{
/* Update the count register */
bRegTemp = USBFS_1_ep0Toggle | USBFS_1_ep0Count;
CY_SET_REG8(USBFS_1_EP0_CNT_PTR, bRegTemp);
if(bRegTemp == CY_GET_REG8(USBFS_1_EP0_CNT_PTR)) /* continue if writing was successful */
{
do
{
modifyReg = USBFS_1_ep0Mode; /* Init temporary variable */
/* Unlock registers */
bRegTemp = CY_GET_REG8(USBFS_1_EP0_CR_PTR) & USBFS_1_MODE_SETUP_RCVD;
if(bRegTemp == 0u) /* Check if SETUP bit is not set */
{
/* Set the Mode Register */
CY_SET_REG8(USBFS_1_EP0_CR_PTR, USBFS_1_ep0Mode);
/* Writing check */
modifyReg = CY_GET_REG8(USBFS_1_EP0_CR_PTR) & USBFS_1_MODE_MASK;
}
}while(modifyReg != USBFS_1_ep0Mode); /* Repeat if writing was not successful */
}
}
}
}
}
/*******************************************************************************
* Function Name: USBFS_1_HandleSetup
********************************************************************************
*
* Summary:
* This Routine dispatches requests for the four USB request types
*
* Parameters:
* None.
*
* Return:
* None.
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_HandleSetup(void)
{
uint8 requestHandled;
requestHandled = CY_GET_REG8(USBFS_1_EP0_CR_PTR); /* unlock registers */
CY_SET_REG8(USBFS_1_EP0_CR_PTR, requestHandled); /* clear setup bit */
requestHandled = CY_GET_REG8(USBFS_1_EP0_CR_PTR); /* reread register */
if((requestHandled & USBFS_1_MODE_SETUP_RCVD) != 0u)
{
USBFS_1_ep0Mode = requestHandled; /* if SETUP bit set -> exit without modifying the mode */
}
else
{
/* In case the previous transfer did not complete, close it out */
USBFS_1_UpdateStatusBlock(USBFS_1_XFER_PREMATURE);
switch (CY_GET_REG8(USBFS_1_bmRequestType) & USBFS_1_RQST_TYPE_MASK)
{
case USBFS_1_RQST_TYPE_STD:
requestHandled = USBFS_1_HandleStandardRqst();
break;
case USBFS_1_RQST_TYPE_CLS:
requestHandled = USBFS_1_DispatchClassRqst();
break;
case USBFS_1_RQST_TYPE_VND:
requestHandled = USBFS_1_HandleVendorRqst();
break;
default:
requestHandled = USBFS_1_FALSE;
break;
}
if (requestHandled == USBFS_1_FALSE)
{
USBFS_1_ep0Mode = USBFS_1_MODE_STALL_IN_OUT;
}
}
}
/*******************************************************************************
* Function Name: USBFS_1_HandleIN
********************************************************************************
*
* Summary:
* This routine handles EP0 IN transfers.
*
* Parameters:
* None.
*
* Return:
* None.
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_HandleIN(void)
{
switch (USBFS_1_transferState)
{
case USBFS_1_TRANS_STATE_IDLE:
break;
case USBFS_1_TRANS_STATE_CONTROL_READ:
USBFS_1_ControlReadDataStage();
break;
case USBFS_1_TRANS_STATE_CONTROL_WRITE:
USBFS_1_ControlWriteStatusStage();
break;
case USBFS_1_TRANS_STATE_NO_DATA_CONTROL:
USBFS_1_NoDataControlStatusStage();
break;
default: /* there are no more states */
break;
}
}
/*******************************************************************************
* Function Name: USBFS_1_HandleOUT
********************************************************************************
*
* Summary:
* This routine handles EP0 OUT transfers.
*
* Parameters:
* None.
*
* Return:
* None.
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_HandleOUT(void)
{
switch (USBFS_1_transferState)
{
case USBFS_1_TRANS_STATE_IDLE:
break;
case USBFS_1_TRANS_STATE_CONTROL_READ:
USBFS_1_ControlReadStatusStage();
break;
case USBFS_1_TRANS_STATE_CONTROL_WRITE:
USBFS_1_ControlWriteDataStage();
break;
case USBFS_1_TRANS_STATE_NO_DATA_CONTROL:
/* Update the completion block */
USBFS_1_UpdateStatusBlock(USBFS_1_XFER_ERROR);
/* We expect no more data, so stall INs and OUTs */
USBFS_1_ep0Mode = USBFS_1_MODE_STALL_IN_OUT;
break;
default: /* There are no more states */
break;
}
}
/*******************************************************************************
* Function Name: USBFS_1_LoadEP0
********************************************************************************
*
* Summary:
* This routine loads the EP0 data registers for OUT transfers. It uses the
* currentTD (previously initialized by the _InitControlWrite function and
* updated for each OUT transfer, and the bLastPacketSize) to determine how
* many uint8s to transfer on the current OUT.
*
* If the number of uint8s remaining is zero and the last transfer was full,
* we need to send a zero length packet. Otherwise we send the minimum
* of the control endpoint size (8) or remaining number of uint8s for the
* transaction.
*
* Parameters:
* None.
*
* Return:
* None.
*
* Global variables:
* USBFS_1_transferByteCount - Update the transfer byte count from the
* last transaction.
* USBFS_1_ep0Count - counts the data loaded to the SIE memory in
* current packet.
* USBFS_1_lastPacketSize - remembers the USBFS_ep0Count value for the
* next packet.
* USBFS_1_transferByteCount - sum of the previous bytes transferred
* on previous packets(sum of USBFS_lastPacketSize)
* USBFS_1_ep0Toggle - inverted
* USBFS_1_ep0Mode - prepare for mode register content.
* USBFS_1_transferState - set to TRANS_STATE_CONTROL_READ
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_LoadEP0(void)
{
uint8 ep0Count = 0u;
/* Update the transfer byte count from the last transaction */
USBFS_1_transferByteCount += USBFS_1_lastPacketSize;
/* Now load the next transaction */
while ((USBFS_1_currentTD.count > 0u) && (ep0Count < 8u))
{
CY_SET_REG8((reg8 *)(USBFS_1_EP0_DR0_IND + ep0Count), *USBFS_1_currentTD.pData);
USBFS_1_currentTD.pData = &USBFS_1_currentTD.pData[1u];
ep0Count++;
USBFS_1_currentTD.count--;
}
/* Support zero-length packet*/
if( (USBFS_1_lastPacketSize == 8u) || (ep0Count > 0u) )
{
/* Update the data toggle */
USBFS_1_ep0Toggle ^= USBFS_1_EP0_CNT_DATA_TOGGLE;
/* Set the Mode Register */
USBFS_1_ep0Mode = USBFS_1_MODE_ACK_IN_STATUS_OUT;
/* Update the state (or stay the same) */
USBFS_1_transferState = USBFS_1_TRANS_STATE_CONTROL_READ;
}
else
{
/* Expect Status Stage Out */
USBFS_1_ep0Mode = USBFS_1_MODE_STATUS_OUT_ONLY;
/* Update the state (or stay the same) */
USBFS_1_transferState = USBFS_1_TRANS_STATE_CONTROL_READ;
}
/* Save the packet size for next time */
USBFS_1_lastPacketSize = ep0Count;
USBFS_1_ep0Count = ep0Count;
}
/*******************************************************************************
* Function Name: USBFS_1_InitControlRead
********************************************************************************
*
* Summary:
* Initialize a control read transaction, usable to send data to the host.
* The following global variables should be initialized before this function
* called. To send zero length packet use InitZeroLengthControlTransfer
* function.
*
* Parameters:
* None.
*
* Return:
* requestHandled state.
*
* Global variables:
* USBFS_1_currentTD.count - counts of data to be sent.
* USBFS_1_currentTD.pData - data pointer.
*
* Reentrant:
* No.
*
*******************************************************************************/
uint8 USBFS_1_InitControlRead(void)
{
uint16 xferCount;
if(USBFS_1_currentTD.count == 0u)
{
(void) USBFS_1_InitZeroLengthControlTransfer();
}
else
{
/* Set up the state machine */
USBFS_1_transferState = USBFS_1_TRANS_STATE_CONTROL_READ;
/* Set the toggle, it gets updated in LoadEP */
USBFS_1_ep0Toggle = 0u;
/* Initialize the Status Block */
USBFS_1_InitializeStatusBlock();
xferCount = (((uint16)CY_GET_REG8(USBFS_1_lengthHi) << 8u) | (CY_GET_REG8(USBFS_1_lengthLo)));
if (USBFS_1_currentTD.count > xferCount)
{
USBFS_1_currentTD.count = xferCount;
}
USBFS_1_LoadEP0();
}
return(USBFS_1_TRUE);
}
/*******************************************************************************
* Function Name: USBFS_1_InitZeroLengthControlTransfer
********************************************************************************
*
* Summary:
* Initialize a zero length data IN transfer.
*
* Parameters:
* None.
*
* Return:
* requestHandled state.
*
* Global variables:
* USBFS_1_ep0Toggle - set to EP0_CNT_DATA_TOGGLE
* USBFS_1_ep0Mode - prepare for mode register content.
* USBFS_1_transferState - set to TRANS_STATE_CONTROL_READ
* USBFS_1_ep0Count - cleared, means the zero-length packet.
* USBFS_1_lastPacketSize - cleared.
*
* Reentrant:
* No.
*
*******************************************************************************/
uint8 USBFS_1_InitZeroLengthControlTransfer(void)
{
/* Update the state */
USBFS_1_transferState = USBFS_1_TRANS_STATE_CONTROL_READ;
/* Set the data toggle */
USBFS_1_ep0Toggle = USBFS_1_EP0_CNT_DATA_TOGGLE;
/* Set the Mode Register */
USBFS_1_ep0Mode = USBFS_1_MODE_ACK_IN_STATUS_OUT;
/* Save the packet size for next time */
USBFS_1_lastPacketSize = 0u;
USBFS_1_ep0Count = 0u;
return(USBFS_1_TRUE);
}
/*******************************************************************************
* Function Name: USBFS_1_ControlReadDataStage
********************************************************************************
*
* Summary:
* Handle the Data Stage of a control read transfer.
*
* Parameters:
* None.
*
* Return:
* None.
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_ControlReadDataStage(void)
{
USBFS_1_LoadEP0();
}
/*******************************************************************************
* Function Name: USBFS_1_ControlReadStatusStage
********************************************************************************
*
* Summary:
* Handle the Status Stage of a control read transfer.
*
* Parameters:
* None.
*
* Return:
* None.
*
* Global variables:
* USBFS_1_USBFS_transferByteCount - updated with last packet size.
* USBFS_1_transferState - set to TRANS_STATE_IDLE.
* USBFS_1_ep0Mode - set to MODE_STALL_IN_OUT.
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_ControlReadStatusStage(void)
{
/* Update the transfer byte count */
USBFS_1_transferByteCount += USBFS_1_lastPacketSize;
/* Go Idle */
USBFS_1_transferState = USBFS_1_TRANS_STATE_IDLE;
/* Update the completion block */
USBFS_1_UpdateStatusBlock(USBFS_1_XFER_STATUS_ACK);
/* We expect no more data, so stall INs and OUTs */
USBFS_1_ep0Mode = USBFS_1_MODE_STALL_IN_OUT;
}
/*******************************************************************************
* Function Name: USBFS_1_InitControlWrite
********************************************************************************
*
* Summary:
* Initialize a control write transaction
*
* Parameters:
* None.
*
* Return:
* requestHandled state.
*
* Global variables:
* USBFS_1_USBFS_transferState - set to TRANS_STATE_CONTROL_WRITE
* USBFS_1_ep0Toggle - set to EP0_CNT_DATA_TOGGLE
* USBFS_1_ep0Mode - set to MODE_ACK_OUT_STATUS_IN
*
* Reentrant:
* No.
*
*******************************************************************************/
uint8 USBFS_1_InitControlWrite(void)
{
uint16 xferCount;
/* Set up the state machine */
USBFS_1_transferState = USBFS_1_TRANS_STATE_CONTROL_WRITE;
/* This might not be necessary */
USBFS_1_ep0Toggle = USBFS_1_EP0_CNT_DATA_TOGGLE;
/* Initialize the Status Block */
USBFS_1_InitializeStatusBlock();
xferCount = (((uint16)CY_GET_REG8(USBFS_1_lengthHi) << 8u) | (CY_GET_REG8(USBFS_1_lengthLo)));
if (USBFS_1_currentTD.count > xferCount)
{
USBFS_1_currentTD.count = xferCount;
}
/* Expect Data or Status Stage */
USBFS_1_ep0Mode = USBFS_1_MODE_ACK_OUT_STATUS_IN;
return(USBFS_1_TRUE);
}
/*******************************************************************************
* Function Name: USBFS_1_ControlWriteDataStage
********************************************************************************
*
* Summary:
* Handle the Data Stage of a control write transfer
* 1. Get the data (We assume the destination was validated previously)
* 2. Update the count and data toggle
* 3. Update the mode register for the next transaction
*
* Parameters:
* None.
*
* Return:
* None.
*
* Global variables:
* USBFS_1_transferByteCount - Update the transfer byte count from the
* last transaction.
* USBFS_1_ep0Count - counts the data loaded from the SIE memory
* in current packet.
* USBFS_1_transferByteCount - sum of the previous bytes transferred
* on previous packets(sum of USBFS_lastPacketSize)
* USBFS_1_ep0Toggle - inverted
* USBFS_1_ep0Mode - set to MODE_ACK_OUT_STATUS_IN.
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_ControlWriteDataStage(void)
{
uint8 ep0Count;
uint8 regIndex = 0u;
ep0Count = (CY_GET_REG8(USBFS_1_EP0_CNT_PTR) & USBFS_1_EPX_CNT0_MASK) -
USBFS_1_EPX_CNTX_CRC_COUNT;
USBFS_1_transferByteCount += ep0Count;
while ((USBFS_1_currentTD.count > 0u) && (ep0Count > 0u))
{
*USBFS_1_currentTD.pData = CY_GET_REG8((reg8 *)(USBFS_1_EP0_DR0_IND + regIndex));
USBFS_1_currentTD.pData = &USBFS_1_currentTD.pData[1u];
regIndex++;
ep0Count--;
USBFS_1_currentTD.count--;
}
USBFS_1_ep0Count = ep0Count;
/* Update the data toggle */
USBFS_1_ep0Toggle ^= USBFS_1_EP0_CNT_DATA_TOGGLE;
/* Expect Data or Status Stage */
USBFS_1_ep0Mode = USBFS_1_MODE_ACK_OUT_STATUS_IN;
}
/*******************************************************************************
* Function Name: USBFS_1_ControlWriteStatusStage
********************************************************************************
*
* Summary:
* Handle the Status Stage of a control write transfer
*
* Parameters:
* None.
*
* Return:
* None.
*
* Global variables:
* USBFS_1_transferState - set to TRANS_STATE_IDLE.
* USBFS_1_USBFS_ep0Mode - set to MODE_STALL_IN_OUT.
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_ControlWriteStatusStage(void)
{
/* Go Idle */
USBFS_1_transferState = USBFS_1_TRANS_STATE_IDLE;
/* Update the completion block */
USBFS_1_UpdateStatusBlock(USBFS_1_XFER_STATUS_ACK);
/* We expect no more data, so stall INs and OUTs */
USBFS_1_ep0Mode = USBFS_1_MODE_STALL_IN_OUT;
}
/*******************************************************************************
* Function Name: USBFS_1_InitNoDataControlTransfer
********************************************************************************
*
* Summary:
* Initialize a no data control transfer
*
* Parameters:
* None.
*
* Return:
* requestHandled state.
*
* Global variables:
* USBFS_1_transferState - set to TRANS_STATE_NO_DATA_CONTROL.
* USBFS_1_ep0Mode - set to MODE_STATUS_IN_ONLY.
* USBFS_1_ep0Count - cleared.
* USBFS_1_ep0Toggle - set to EP0_CNT_DATA_TOGGLE
*
* Reentrant:
* No.
*
*******************************************************************************/
uint8 USBFS_1_InitNoDataControlTransfer(void)
{
USBFS_1_transferState = USBFS_1_TRANS_STATE_NO_DATA_CONTROL;
USBFS_1_ep0Mode = USBFS_1_MODE_STATUS_IN_ONLY;
USBFS_1_ep0Toggle = USBFS_1_EP0_CNT_DATA_TOGGLE;
USBFS_1_ep0Count = 0u;
return(USBFS_1_TRUE);
}
/*******************************************************************************
* Function Name: USBFS_1_NoDataControlStatusStage
********************************************************************************
* Summary:
* Handle the Status Stage of a no data control transfer.
*
* SET_ADDRESS is special, since we need to receive the status stage with
* the old address.
*
* Parameters:
* None.
*
* Return:
* None.
*
* Global variables:
* USBFS_1_transferState - set to TRANS_STATE_IDLE.
* USBFS_1_ep0Mode - set to MODE_STALL_IN_OUT.
* USBFS_1_ep0Toggle - set to EP0_CNT_DATA_TOGGLE
* USBFS_1_deviceAddress - used to set new address and cleared
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_NoDataControlStatusStage(void)
{
/* Change the USB address register if we got a SET_ADDRESS. */
if (USBFS_1_deviceAddress != 0u)
{
CY_SET_REG8(USBFS_1_CR0_PTR, USBFS_1_deviceAddress | USBFS_1_CR0_ENABLE);
USBFS_1_deviceAddress = 0u;
}
/* Go Idle */
USBFS_1_transferState = USBFS_1_TRANS_STATE_IDLE;
/* Update the completion block */
USBFS_1_UpdateStatusBlock(USBFS_1_XFER_STATUS_ACK);
/* We expect no more data, so stall INs and OUTs */
USBFS_1_ep0Mode = USBFS_1_MODE_STALL_IN_OUT;
}
/*******************************************************************************
* Function Name: USBFS_1_UpdateStatusBlock
********************************************************************************
*
* Summary:
* Update the Completion Status Block for a Request. The block is updated
* with the completion code the USBFS_1_transferByteCount. The
* StatusBlock Pointer is set to NULL.
*
* Parameters:
* completionCode - status.
*
* Return:
* None.
*
* Global variables:
* USBFS_1_currentTD.pStatusBlock->status - updated by the
* completionCode parameter.
* USBFS_1_currentTD.pStatusBlock->length - updated.
* USBFS_1_currentTD.pStatusBlock - cleared.
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_UpdateStatusBlock(uint8 completionCode)
{
if (USBFS_1_currentTD.pStatusBlock != NULL)
{
USBFS_1_currentTD.pStatusBlock->status = completionCode;
USBFS_1_currentTD.pStatusBlock->length = USBFS_1_transferByteCount;
USBFS_1_currentTD.pStatusBlock = NULL;
}
}
/*******************************************************************************
* Function Name: USBFS_1_InitializeStatusBlock
********************************************************************************
*
* Summary:
* Initialize the Completion Status Block for a Request. The completion
* code is set to USB_XFER_IDLE.
*
* Also, initializes USBFS_1_transferByteCount. Save some space,
* this is the only consumer.
*
* Parameters:
* None.
*
* Return:
* None.
*
* Global variables:
* USBFS_1_currentTD.pStatusBlock->status - set to XFER_IDLE.
* USBFS_1_currentTD.pStatusBlock->length - cleared.
* USBFS_1_transferByteCount - cleared.
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_InitializeStatusBlock(void)
{
USBFS_1_transferByteCount = 0u;
if(USBFS_1_currentTD.pStatusBlock != NULL)
{
USBFS_1_currentTD.pStatusBlock->status = USBFS_1_XFER_IDLE;
USBFS_1_currentTD.pStatusBlock->length = 0u;
}
}
/* [] END OF FILE */

View File

@ -0,0 +1,658 @@
/*******************************************************************************
* File Name: USBFS_1_episr.c
* Version 2.60
*
* Description:
* Data endpoint Interrupt Service Routines
*
* Note:
*
********************************************************************************
* Copyright 2008-2013, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#include "USBFS_1.h"
#include "USBFS_1_pvt.h"
#if defined(USBFS_1_ENABLE_MIDI_STREAMING) && (USBFS_1_ENABLE_MIDI_API != 0u)
#include "USBFS_1_midi.h"
#endif /* End USBFS_1_ENABLE_MIDI_STREAMING*/
/***************************************
* Custom Declarations
***************************************/
/* `#START CUSTOM_DECLARATIONS` Place your declaration here */
/* `#END` */
#if(USBFS_1_EP1_ISR_REMOVE == 0u)
/******************************************************************************
* Function Name: USBFS_1_EP_1_ISR
*******************************************************************************
*
* Summary:
* Endpoint 1 Interrupt Service Routine
*
* Parameters:
* None.
*
* Return:
* None.
*
******************************************************************************/
CY_ISR(USBFS_1_EP_1_ISR)
{
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
uint8 int_en;
#endif /* USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3 */
/* `#START EP1_USER_CODE` Place your code here */
/* `#END` */
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
int_en = EA;
CyGlobalIntEnable; /* Make sure nested interrupt is enabled */
#endif /* USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3 */
CY_GET_REG8(USBFS_1_SIE_EP1_CR0_PTR); /* Must read the mode reg */
/* Do not toggle ISOC endpoint */
if((USBFS_1_EP[USBFS_1_EP1].attrib & USBFS_1_EP_TYPE_MASK) !=
USBFS_1_EP_TYPE_ISOC)
{
USBFS_1_EP[USBFS_1_EP1].epToggle ^= USBFS_1_EPX_CNT_DATA_TOGGLE;
}
USBFS_1_EP[USBFS_1_EP1].apiEpState = USBFS_1_EVENT_PENDING;
CY_SET_REG8(USBFS_1_SIE_EP_INT_SR_PTR, CY_GET_REG8(USBFS_1_SIE_EP_INT_SR_PTR) &
(uint8)~USBFS_1_SIE_EP_INT_EP1_MASK);
#if( defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT )
if(USBFS_1_midi_out_ep == USBFS_1_EP1)
{
USBFS_1_MIDI_OUT_EP_Service();
}
#endif /* End USBFS_1_ISR_SERVICE_MIDI_OUT */
/* `#START EP1_END_USER_CODE` Place your code here */
/* `#END` */
#if ( defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3 )
EA = int_en;
#endif /* USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3 */
}
#endif /* End USBFS_1_EP1_ISR_REMOVE */
#if(USBFS_1_EP2_ISR_REMOVE == 0u)
/*******************************************************************************
* Function Name: USBFS_1_EP_2_ISR
********************************************************************************
*
* Summary:
* Endpoint 2 Interrupt Service Routine
*
* Parameters:
* None.
*
* Return:
* None.
*
*******************************************************************************/
CY_ISR(USBFS_1_EP_2_ISR)
{
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
uint8 int_en;
#endif /* USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3 */
/* `#START EP2_USER_CODE` Place your code here */
/* `#END` */
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3 )
int_en = EA;
CyGlobalIntEnable; /* Make sure nested interrupt is enabled */
#endif /* USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3 */
CY_GET_REG8(USBFS_1_SIE_EP2_CR0_PTR); /* Must read the mode reg */
/* Do not toggle ISOC endpoint */
if((USBFS_1_EP[USBFS_1_EP2].attrib & USBFS_1_EP_TYPE_MASK) !=
USBFS_1_EP_TYPE_ISOC)
{
USBFS_1_EP[USBFS_1_EP2].epToggle ^= USBFS_1_EPX_CNT_DATA_TOGGLE;
}
USBFS_1_EP[USBFS_1_EP2].apiEpState = USBFS_1_EVENT_PENDING;
CY_SET_REG8(USBFS_1_SIE_EP_INT_SR_PTR, CY_GET_REG8(USBFS_1_SIE_EP_INT_SR_PTR)
& (uint8)~USBFS_1_SIE_EP_INT_EP2_MASK);
#if( defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT )
if(USBFS_1_midi_out_ep == USBFS_1_EP2)
{
USBFS_1_MIDI_OUT_EP_Service();
}
#endif /* End USBFS_1_ISR_SERVICE_MIDI_OUT */
/* `#START EP2_END_USER_CODE` Place your code here */
/* `#END` */
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
#endif /* USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3 */
}
#endif /* End USBFS_1_EP2_ISR_REMOVE */
#if(USBFS_1_EP3_ISR_REMOVE == 0u)
/*******************************************************************************
* Function Name: USBFS_1_EP_3_ISR
********************************************************************************
*
* Summary:
* Endpoint 3 Interrupt Service Routine
*
* Parameters:
* None.
*
* Return:
* None.
*
*******************************************************************************/
CY_ISR(USBFS_1_EP_3_ISR)
{
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
uint8 int_en;
#endif /* USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3 */
/* `#START EP3_USER_CODE` Place your code here */
/* `#END` */
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
int_en = EA;
CyGlobalIntEnable; /* Make sure nested interrupt is enabled */
#endif /* CY_PSOC3 & USBFS_1_ISR_SERVICE_MIDI_OUT */
CY_GET_REG8(USBFS_1_SIE_EP3_CR0_PTR); /* Must read the mode reg */
/* Do not toggle ISOC endpoint */
if((USBFS_1_EP[USBFS_1_EP3].attrib & USBFS_1_EP_TYPE_MASK) !=
USBFS_1_EP_TYPE_ISOC)
{
USBFS_1_EP[USBFS_1_EP3].epToggle ^= USBFS_1_EPX_CNT_DATA_TOGGLE;
}
USBFS_1_EP[USBFS_1_EP3].apiEpState = USBFS_1_EVENT_PENDING;
CY_SET_REG8(USBFS_1_SIE_EP_INT_SR_PTR, CY_GET_REG8(USBFS_1_SIE_EP_INT_SR_PTR)
& (uint8)~USBFS_1_SIE_EP_INT_EP3_MASK);
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT)
if(USBFS_1_midi_out_ep == USBFS_1_EP3)
{
USBFS_1_MIDI_OUT_EP_Service();
}
#endif /* End USBFS_1_ISR_SERVICE_MIDI_OUT */
/* `#START EP3_END_USER_CODE` Place your code here */
/* `#END` */
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
#endif /* CY_PSOC3 & USBFS_1_ISR_SERVICE_MIDI_OUT */
}
#endif /* End USBFS_1_EP3_ISR_REMOVE */
#if(USBFS_1_EP4_ISR_REMOVE == 0u)
/*******************************************************************************
* Function Name: USBFS_1_EP_4_ISR
********************************************************************************
*
* Summary:
* Endpoint 4 Interrupt Service Routine
*
* Parameters:
* None.
*
* Return:
* None.
*
*******************************************************************************/
CY_ISR(USBFS_1_EP_4_ISR)
{
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
uint8 int_en;
#endif /* CY_PSOC3 & USBFS_1_ISR_SERVICE_MIDI_OUT */
/* `#START EP4_USER_CODE` Place your code here */
/* `#END` */
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
int_en = EA;
CyGlobalIntEnable; /* Make sure nested interrupt is enabled */
#endif /* CY_PSOC3 & USBFS_1_ISR_SERVICE_MIDI_OUT */
CY_GET_REG8(USBFS_1_SIE_EP4_CR0_PTR); /* Must read the mode reg */
/* Do not toggle ISOC endpoint */
if((USBFS_1_EP[USBFS_1_EP4].attrib & USBFS_1_EP_TYPE_MASK) !=
USBFS_1_EP_TYPE_ISOC)
{
USBFS_1_EP[USBFS_1_EP4].epToggle ^= USBFS_1_EPX_CNT_DATA_TOGGLE;
}
USBFS_1_EP[USBFS_1_EP4].apiEpState = USBFS_1_EVENT_PENDING;
CY_SET_REG8(USBFS_1_SIE_EP_INT_SR_PTR, CY_GET_REG8(USBFS_1_SIE_EP_INT_SR_PTR)
& (uint8)~USBFS_1_SIE_EP_INT_EP4_MASK);
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT)
if(USBFS_1_midi_out_ep == USBFS_1_EP4)
{
USBFS_1_MIDI_OUT_EP_Service();
}
#endif /* End USBFS_1_ISR_SERVICE_MIDI_OUT */
/* `#START EP4_END_USER_CODE` Place your code here */
/* `#END` */
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
#endif /* CY_PSOC3 & USBFS_1_ISR_SERVICE_MIDI_OUT */
}
#endif /* End USBFS_1_EP4_ISR_REMOVE */
#if(USBFS_1_EP5_ISR_REMOVE == 0u)
/*******************************************************************************
* Function Name: USBFS_1_EP_5_ISR
********************************************************************************
*
* Summary:
* Endpoint 5 Interrupt Service Routine
*
* Parameters:
* None.
*
* Return:
* None.
*
*******************************************************************************/
CY_ISR(USBFS_1_EP_5_ISR)
{
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
uint8 int_en;
#endif /* CY_PSOC3 & USBFS_1_ISR_SERVICE_MIDI_OUT */
/* `#START EP5_USER_CODE` Place your code here */
/* `#END` */
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
int_en = EA;
CyGlobalIntEnable; /* Make sure nested interrupt is enabled */
#endif /* CY_PSOC3 & USBFS_1_ISR_SERVICE_MIDI_OUT */
CY_GET_REG8(USBFS_1_SIE_EP5_CR0_PTR); /* Must read the mode reg */
/* Do not toggle ISOC endpoint */
if((USBFS_1_EP[USBFS_1_EP5].attrib & USBFS_1_EP_TYPE_MASK) !=
USBFS_1_EP_TYPE_ISOC)
{
USBFS_1_EP[USBFS_1_EP5].epToggle ^= USBFS_1_EPX_CNT_DATA_TOGGLE;
}
USBFS_1_EP[USBFS_1_EP5].apiEpState = USBFS_1_EVENT_PENDING;
CY_SET_REG8(USBFS_1_SIE_EP_INT_SR_PTR, CY_GET_REG8(USBFS_1_SIE_EP_INT_SR_PTR)
& (uint8)~USBFS_1_SIE_EP_INT_EP5_MASK);
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT)
if(USBFS_1_midi_out_ep == USBFS_1_EP5)
{
USBFS_1_MIDI_OUT_EP_Service();
}
#endif /* End USBFS_1_ISR_SERVICE_MIDI_OUT */
/* `#START EP5_END_USER_CODE` Place your code here */
/* `#END` */
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
#endif /* CY_PSOC3 & USBFS_1_ISR_SERVICE_MIDI_OUT */
}
#endif /* End USBFS_1_EP5_ISR_REMOVE */
#if(USBFS_1_EP6_ISR_REMOVE == 0u)
/*******************************************************************************
* Function Name: USBFS_1_EP_6_ISR
********************************************************************************
*
* Summary:
* Endpoint 6 Interrupt Service Routine
*
* Parameters:
* None.
*
* Return:
* None.
*
*******************************************************************************/
CY_ISR(USBFS_1_EP_6_ISR)
{
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
uint8 int_en;
#endif /* CY_PSOC3 & USBFS_1_ISR_SERVICE_MIDI_OUT */
/* `#START EP6_USER_CODE` Place your code here */
/* `#END` */
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
int_en = EA;
CyGlobalIntEnable; /* Make sure nested interrupt is enabled */
#endif /* CY_PSOC3 & USBFS_1_ISR_SERVICE_MIDI_OUT */
CY_GET_REG8(USBFS_1_SIE_EP6_CR0_PTR); /* Must read the mode reg */
/* Do not toggle ISOC endpoint */
if((USBFS_1_EP[USBFS_1_EP6].attrib & USBFS_1_EP_TYPE_MASK) !=
USBFS_1_EP_TYPE_ISOC)
{
USBFS_1_EP[USBFS_1_EP6].epToggle ^= USBFS_1_EPX_CNT_DATA_TOGGLE;
}
USBFS_1_EP[USBFS_1_EP6].apiEpState = USBFS_1_EVENT_PENDING;
CY_SET_REG8(USBFS_1_SIE_EP_INT_SR_PTR, CY_GET_REG8(USBFS_1_SIE_EP_INT_SR_PTR)
& (uint8)~USBFS_1_SIE_EP_INT_EP6_MASK);
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT)
if(USBFS_1_midi_out_ep == USBFS_1_EP6)
{
USBFS_1_MIDI_OUT_EP_Service();
}
#endif /* End USBFS_1_ISR_SERVICE_MIDI_OUT */
/* `#START EP6_END_USER_CODE` Place your code here */
/* `#END` */
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
#endif /* CY_PSOC3 & USBFS_1_ISR_SERVICE_MIDI_OUT */
}
#endif /* End USBFS_1_EP6_ISR_REMOVE */
#if(USBFS_1_EP7_ISR_REMOVE == 0u)
/*******************************************************************************
* Function Name: USBFS_1_EP_7_ISR
********************************************************************************
*
* Summary:
* Endpoint 7 Interrupt Service Routine
*
* Parameters:
* None.
*
* Return:
* None.
*
*******************************************************************************/
CY_ISR(USBFS_1_EP_7_ISR)
{
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
uint8 int_en;
#endif /* CY_PSOC3 & USBFS_1_ISR_SERVICE_MIDI_OUT */
/* `#START EP7_USER_CODE` Place your code here */
/* `#END` */
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
int_en = EA;
CyGlobalIntEnable; /* Make sure nested interrupt is enabled */
#endif /* CY_PSOC3 & USBFS_1_ISR_SERVICE_MIDI_OUT */
CY_GET_REG8(USBFS_1_SIE_EP7_CR0_PTR); /* Must read the mode reg */
/* Do not toggle ISOC endpoint */
if((USBFS_1_EP[USBFS_1_EP7].attrib & USBFS_1_EP_TYPE_MASK) !=
USBFS_1_EP_TYPE_ISOC)
{
USBFS_1_EP[USBFS_1_EP7].epToggle ^= USBFS_1_EPX_CNT_DATA_TOGGLE;
}
USBFS_1_EP[USBFS_1_EP7].apiEpState = USBFS_1_EVENT_PENDING;
CY_SET_REG8(USBFS_1_SIE_EP_INT_SR_PTR, CY_GET_REG8(USBFS_1_SIE_EP_INT_SR_PTR)
& (uint8)~USBFS_1_SIE_EP_INT_EP7_MASK);
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT)
if(USBFS_1_midi_out_ep == USBFS_1_EP7)
{
USBFS_1_MIDI_OUT_EP_Service();
}
#endif /* End USBFS_1_ISR_SERVICE_MIDI_OUT */
/* `#START EP7_END_USER_CODE` Place your code here */
/* `#END` */
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
#endif /* CY_PSOC3 & USBFS_1_ISR_SERVICE_MIDI_OUT */
}
#endif /* End USBFS_1_EP7_ISR_REMOVE */
#if(USBFS_1_EP8_ISR_REMOVE == 0u)
/*******************************************************************************
* Function Name: USBFS_1_EP_8_ISR
********************************************************************************
*
* Summary:
* Endpoint 8 Interrupt Service Routine
*
* Parameters:
* None.
*
* Return:
* None.
*
*******************************************************************************/
CY_ISR(USBFS_1_EP_8_ISR)
{
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
uint8 int_en;
#endif /* CY_PSOC3 & USBFS_1_ISR_SERVICE_MIDI_OUT */
/* `#START EP8_USER_CODE` Place your code here */
/* `#END` */
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
int_en = EA;
CyGlobalIntEnable; /* Make sure nested interrupt is enabled */
#endif /* CY_PSOC3 & USBFS_1_ISR_SERVICE_MIDI_OUT */
CY_GET_REG8(USBFS_1_SIE_EP8_CR0_PTR); /* Must read the mode reg */
/* Do not toggle ISOC endpoint */
if((USBFS_1_EP[USBFS_1_EP8].attrib & USBFS_1_EP_TYPE_MASK) !=
USBFS_1_EP_TYPE_ISOC)
{
USBFS_1_EP[USBFS_1_EP8].epToggle ^= USBFS_1_EPX_CNT_DATA_TOGGLE;
}
USBFS_1_EP[USBFS_1_EP8].apiEpState = USBFS_1_EVENT_PENDING;
CY_SET_REG8(USBFS_1_SIE_EP_INT_SR_PTR, CY_GET_REG8(USBFS_1_SIE_EP_INT_SR_PTR)
& (uint8)~USBFS_1_SIE_EP_INT_EP8_MASK);
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT)
if(USBFS_1_midi_out_ep == USBFS_1_EP8)
{
USBFS_1_MIDI_OUT_EP_Service();
}
#endif /* End USBFS_1_ISR_SERVICE_MIDI_OUT */
/* `#START EP8_END_USER_CODE` Place your code here */
/* `#END` */
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
#endif /* CY_PSOC3 & USBFS_1_ISR_SERVICE_MIDI_OUT */
}
#endif /* End USBFS_1_EP8_ISR_REMOVE */
/*******************************************************************************
* Function Name: USBFS_1_SOF_ISR
********************************************************************************
*
* Summary:
* Start of Frame Interrupt Service Routine
*
* Parameters:
* None.
*
* Return:
* None.
*
*******************************************************************************/
CY_ISR(USBFS_1_SOF_ISR)
{
/* `#START SOF_USER_CODE` Place your code here */
/* `#END` */
}
/*******************************************************************************
* Function Name: USBFS_1_BUS_RESET_ISR
********************************************************************************
*
* Summary:
* USB Bus Reset Interrupt Service Routine. Calls _Start with the same
* parameters as the last USER call to _Start
*
* Parameters:
* None.
*
* Return:
* None.
*
*******************************************************************************/
CY_ISR(USBFS_1_BUS_RESET_ISR)
{
/* `#START BUS_RESET_USER_CODE` Place your code here */
/* `#END` */
USBFS_1_ReInitComponent();
}
#if((USBFS_1_EP_MM != USBFS_1__EP_MANUAL) && (USBFS_1_ARB_ISR_REMOVE == 0u))
/*******************************************************************************
* Function Name: USBFS_1_ARB_ISR
********************************************************************************
*
* Summary:
* Arbiter Interrupt Service Routine
*
* Parameters:
* None.
*
* Return:
* None.
*
* Side effect:
* Search for EP8 int_status will be much slower than search for EP1 int_status.
*
*******************************************************************************/
CY_ISR(USBFS_1_ARB_ISR)
{
uint8 int_status;
uint8 ep_status;
uint8 ep = USBFS_1_EP1;
uint8 ptr = 0u;
/* `#START ARB_BEGIN_USER_CODE` Place your code here */
/* `#END` */
int_status = USBFS_1_ARB_INT_SR_REG; /* read Arbiter Status Register */
USBFS_1_ARB_INT_SR_REG = int_status; /* Clear Serviced Interrupts */
while(int_status != 0u)
{
if((int_status & 1u) != 0u) /* If EpX interrupt present */
{ /* read Endpoint Status Register */
ep_status = CY_GET_REG8((reg8 *)(USBFS_1_ARB_EP1_SR_IND + ptr));
/* If In Buffer Full */
if((ep_status & USBFS_1_ARB_EPX_SR_IN_BUF_FULL) != 0u)
{
if((USBFS_1_EP[ep].addr & USBFS_1_DIR_IN) != 0u)
{
/* Clear Data ready status */
*(reg8 *)(USBFS_1_ARB_EP1_CFG_IND + ptr) &=
(uint8)~USBFS_1_ARB_EPX_CFG_IN_DATA_RDY;
/* Write the Mode register */
CY_SET_REG8((reg8 *)(USBFS_1_SIE_EP1_CR0_IND + ptr), USBFS_1_EP[ep].epMode);
#if (defined(USBFS_1_ENABLE_MIDI_STREAMING) && USBFS_1_ISR_SERVICE_MIDI_IN)
if(ep == USBFS_1_midi_in_ep)
{ /* Clear MIDI input pointer */
USBFS_1_midiInPointer = 0u;
}
#endif /* End USBFS_1_ENABLE_MIDI_STREAMING*/
}
}
/* (re)arm Out EP only for mode2 */
#if(USBFS_1_EP_MM != USBFS_1__EP_DMAAUTO)
/* If DMA Grant */
if((ep_status & USBFS_1_ARB_EPX_SR_DMA_GNT) != 0u)
{
if((USBFS_1_EP[ep].addr & USBFS_1_DIR_IN) == 0u)
{
USBFS_1_EP[ep].apiEpState = USBFS_1_NO_EVENT_PENDING;
/* Write the Mode register */
CY_SET_REG8((reg8 *)(USBFS_1_SIE_EP1_CR0_IND + ptr),
USBFS_1_EP[ep].epMode);
}
}
#endif /* End USBFS_1_EP_MM */
/* `#START ARB_USER_CODE` Place your code here for handle Buffer Underflow/Overflow */
/* `#END` */
CY_SET_REG8((reg8 *)(USBFS_1_ARB_EP1_SR_IND + ptr), ep_status); /* Clear Serviced events */
}
ptr += USBFS_1_EPX_CNTX_ADDR_OFFSET; /* prepare pointer for next EP */
ep++;
int_status >>= 1u;
}
/* `#START ARB_END_USER_CODE` Place your code here */
/* `#END` */
}
#endif /* End USBFS_1_EP_MM */
/* [] END OF FILE */

View File

@ -0,0 +1,422 @@
/*******************************************************************************
* File Name: USBFS_1_hid.c
* Version 2.60
*
* Description:
* USB HID Class request handler.
*
* Note:
*
********************************************************************************
* Copyright 2008-2013, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#include "USBFS_1.h"
#if defined(USBFS_1_ENABLE_HID_CLASS)
#include "USBFS_1_pvt.h"
#include "USBFS_1_hid.h"
/***************************************
* HID Variables
***************************************/
volatile uint8 USBFS_1_hidProtocol[USBFS_1_MAX_INTERFACES_NUMBER]; /* HID device protocol status */
volatile uint8 USBFS_1_hidIdleRate[USBFS_1_MAX_INTERFACES_NUMBER]; /* HID device idle reload value */
volatile uint8 USBFS_1_hidIdleTimer[USBFS_1_MAX_INTERFACES_NUMBER]; /* HID device idle rate value */
/***************************************
* Custom Declarations
***************************************/
/* `#START HID_CUSTOM_DECLARATIONS` Place your declaration here */
/* `#END` */
/*******************************************************************************
* Function Name: USBFS_1_UpdateHIDTimer
********************************************************************************
*
* Summary:
* Updates the HID report timer and reloads it if expired
*
* Parameters:
* interface: Interface Number.
*
* Return:
* status.
*
* Reentrant:
* No.
*
*******************************************************************************/
uint8 USBFS_1_UpdateHIDTimer(uint8 interface)
{
uint8 stat = USBFS_1_IDLE_TIMER_INDEFINITE;
if(USBFS_1_hidIdleRate[interface] != 0u)
{
if(USBFS_1_hidIdleTimer[interface] > 0u)
{
USBFS_1_hidIdleTimer[interface]--;
stat = USBFS_1_IDLE_TIMER_RUNNING;
}
else
{
USBFS_1_hidIdleTimer[interface] = USBFS_1_hidIdleRate[interface];
stat = USBFS_1_IDLE_TIMER_EXPIRED;
}
}
return(stat);
}
/*******************************************************************************
* Function Name: USBFS_1_GetProtocol
********************************************************************************
*
* Summary:
* Returns the selected protocol value to the application
*
* Parameters:
* interface: Interface Number.
*
* Return:
* Interface protocol.
*
*******************************************************************************/
uint8 USBFS_1_GetProtocol(uint8 interface)
{
return(USBFS_1_hidProtocol[interface]);
}
/*******************************************************************************
* Function Name: USBFS_1_DispatchHIDClassRqst
********************************************************************************
*
* Summary:
* This routine dispatches class requests
*
* Parameters:
* None.
*
* Return:
* requestHandled
*
* Reentrant:
* No.
*
*******************************************************************************/
uint8 USBFS_1_DispatchHIDClassRqst(void)
{
uint8 requestHandled = USBFS_1_FALSE;
uint8 interfaceNumber;
interfaceNumber = CY_GET_REG8(USBFS_1_wIndexLo);
if ((CY_GET_REG8(USBFS_1_bmRequestType) & USBFS_1_RQST_DIR_MASK) == USBFS_1_RQST_DIR_D2H)
{ /* Control Read */
switch (CY_GET_REG8(USBFS_1_bRequest))
{
case USBFS_1_GET_DESCRIPTOR:
if (CY_GET_REG8(USBFS_1_wValueHi) == USBFS_1_DESCR_HID_CLASS)
{
USBFS_1_FindHidClassDecriptor();
if (USBFS_1_currentTD.count != 0u)
{
requestHandled = USBFS_1_InitControlRead();
}
}
else if (CY_GET_REG8(USBFS_1_wValueHi) == USBFS_1_DESCR_HID_REPORT)
{
USBFS_1_FindReportDescriptor();
if (USBFS_1_currentTD.count != 0u)
{
requestHandled = USBFS_1_InitControlRead();
}
}
else
{ /* requestHandled is initialezed as FALSE by default */
}
break;
case USBFS_1_HID_GET_REPORT:
USBFS_1_FindReport();
if (USBFS_1_currentTD.count != 0u)
{
requestHandled = USBFS_1_InitControlRead();
}
break;
case USBFS_1_HID_GET_IDLE:
/* This function does not support multiple reports per interface*/
/* Validate interfaceNumber and Report ID (should be 0) */
if( (interfaceNumber < USBFS_1_MAX_INTERFACES_NUMBER) &&
(CY_GET_REG8(USBFS_1_wValueLo) == 0u ) ) /* Do not support Idle per Report ID */
{
USBFS_1_currentTD.count = 1u;
USBFS_1_currentTD.pData = &USBFS_1_hidIdleRate[interfaceNumber];
requestHandled = USBFS_1_InitControlRead();
}
break;
case USBFS_1_HID_GET_PROTOCOL:
/* Validate interfaceNumber */
if( interfaceNumber < USBFS_1_MAX_INTERFACES_NUMBER)
{
USBFS_1_currentTD.count = 1u;
USBFS_1_currentTD.pData = &USBFS_1_hidProtocol[interfaceNumber];
requestHandled = USBFS_1_InitControlRead();
}
break;
default: /* requestHandled is initialized as FALSE by default */
break;
}
}
else if ((CY_GET_REG8(USBFS_1_bmRequestType) & USBFS_1_RQST_DIR_MASK) ==
USBFS_1_RQST_DIR_H2D)
{ /* Control Write */
switch (CY_GET_REG8(USBFS_1_bRequest))
{
case USBFS_1_HID_SET_REPORT:
USBFS_1_FindReport();
if (USBFS_1_currentTD.count != 0u)
{
requestHandled = USBFS_1_InitControlWrite();
}
break;
case USBFS_1_HID_SET_IDLE:
/* This function does not support multiple reports per interface */
/* Validate interfaceNumber and Report ID (should be 0) */
if( (interfaceNumber < USBFS_1_MAX_INTERFACES_NUMBER) &&
(CY_GET_REG8(USBFS_1_wValueLo) == 0u ) ) /* Do not support Idle per Report ID */
{
USBFS_1_hidIdleRate[interfaceNumber] = CY_GET_REG8(USBFS_1_wValueHi);
/* With regards to HID spec: "7.2.4 Set_Idle Request"
* Latency. If the current period has gone past the
* newly proscribed time duration, then a report
* will be generated immediately.
*/
if(USBFS_1_hidIdleRate[interfaceNumber] <
USBFS_1_hidIdleTimer[interfaceNumber])
{
/* Set the timer to zero and let the UpdateHIDTimer() API return IDLE_TIMER_EXPIRED status*/
USBFS_1_hidIdleTimer[interfaceNumber] = 0u;
}
/* If the new request is received within 4 milliseconds
* (1 count) of the end of the current period, then the
* new request will have no effect until after the report.
*/
else if(USBFS_1_hidIdleTimer[interfaceNumber] <= 1u)
{
/* Do nothing.
* Let the UpdateHIDTimer() API continue to work and
* return IDLE_TIMER_EXPIRED status
*/
}
else
{ /* Reload the timer*/
USBFS_1_hidIdleTimer[interfaceNumber] =
USBFS_1_hidIdleRate[interfaceNumber];
}
requestHandled = USBFS_1_InitNoDataControlTransfer();
}
break;
case USBFS_1_HID_SET_PROTOCOL:
/* Validate interfaceNumber and protocol (must be 0 or 1) */
if( (interfaceNumber < USBFS_1_MAX_INTERFACES_NUMBER) &&
(CY_GET_REG8(USBFS_1_wValueLo) <= 1u) )
{
USBFS_1_hidProtocol[interfaceNumber] = CY_GET_REG8(USBFS_1_wValueLo);
requestHandled = USBFS_1_InitNoDataControlTransfer();
}
break;
default: /* requestHandled is initialized as FALSE by default */
break;
}
}
else
{ /* requestHandled is initialized as FALSE by default */
}
return(requestHandled);
}
/*******************************************************************************
* Function Name: USB_FindHidClassDescriptor
********************************************************************************
*
* Summary:
* This routine find Hid Class Descriptor pointer based on the Interface number
* and Alternate setting then loads the currentTD structure with the address of
* the buffer and the size.
* The HID Class Descriptor resides inside the config descriptor.
*
* Parameters:
* None.
*
* Return:
* currentTD
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_FindHidClassDecriptor(void)
{
const T_USBFS_1_LUT CYCODE *pTmp;
volatile uint8 *pDescr;
uint8 interfaceN;
pTmp = USBFS_1_GetConfigTablePtr(USBFS_1_configuration - 1u);
interfaceN = CY_GET_REG8(USBFS_1_wIndexLo);
/* Third entry in the LUT starts the Interface Table pointers */
/* Now use the request interface number*/
pTmp = &pTmp[interfaceN + 2u];
/* USB_DEVICEx_CONFIGURATIONy_INTERFACEz_TABLE */
pTmp = (const T_USBFS_1_LUT CYCODE *) pTmp->p_list;
/* Now use Alternate setting number */
pTmp = &pTmp[USBFS_1_interfaceSetting[interfaceN]];
/* USB_DEVICEx_CONFIGURATIONy_INTERFACEz_ALTERNATEi_HID_TABLE */
pTmp = (const T_USBFS_1_LUT CYCODE *) pTmp->p_list;
/* Fifth entry in the LUT points to Hid Class Descriptor in Configuration Descriptor */
pTmp = &pTmp[4u];
pDescr = (volatile uint8 *)pTmp->p_list;
/* The first byte contains the descriptor length */
USBFS_1_currentTD.count = *pDescr;
USBFS_1_currentTD.pData = pDescr;
}
/*******************************************************************************
* Function Name: USB_FindReportDescriptor
********************************************************************************
*
* Summary:
* This routine find Hid Report Descriptor pointer based on the Interface
* number, then loads the currentTD structure with the address of the buffer
* and the size.
* Hid Report Descriptor is located after IN/OUT/FEATURE reports.
*
* Parameters:
* void
*
* Return:
* currentTD
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_FindReportDescriptor(void)
{
const T_USBFS_1_LUT CYCODE *pTmp;
volatile uint8 *pDescr;
uint8 interfaceN;
pTmp = USBFS_1_GetConfigTablePtr(USBFS_1_configuration - 1u);
interfaceN = CY_GET_REG8(USBFS_1_wIndexLo);
/* Third entry in the LUT starts the Interface Table pointers */
/* Now use the request interface number */
pTmp = &pTmp[interfaceN + 2u];
/* USB_DEVICEx_CONFIGURATIONy_INTERFACEz_TABLE */
pTmp = (const T_USBFS_1_LUT CYCODE *) pTmp->p_list;
/* Now use Alternate setting number */
pTmp = &pTmp[USBFS_1_interfaceSetting[interfaceN]];
/* USB_DEVICEx_CONFIGURATIONy_INTERFACEz_ALTERNATEi_HID_TABLE */
pTmp = (const T_USBFS_1_LUT CYCODE *) pTmp->p_list;
/* Fourth entry in the LUT starts the Hid Report Descriptor */
pTmp = &pTmp[3u];
pDescr = (volatile uint8 *)pTmp->p_list;
/* The 1st and 2nd bytes of descriptor contain its length. LSB is 1st. */
USBFS_1_currentTD.count = (((uint16)pDescr[1u] << 8u) | pDescr[0u]);
USBFS_1_currentTD.pData = &pDescr[2u];
}
/*******************************************************************************
* Function Name: USBFS_1_FindReport
********************************************************************************
*
* Summary:
* This routine sets up a transfer based on the Interface number, Report Type
* and Report ID, then loads the currentTD structure with the address of the
* buffer and the size. The caller has to decide if it is a control read or
* control write.
*
* Parameters:
* None.
*
* Return:
* currentTD
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_FindReport(void)
{
const T_USBFS_1_LUT CYCODE *pTmp;
T_USBFS_1_TD *pTD;
uint8 interfaceN;
uint8 reportType;
/* `#START HID_FINDREPORT` Place custom handling here */
/* `#END` */
USBFS_1_currentTD.count = 0u; /* Init not supported condition */
pTmp = USBFS_1_GetConfigTablePtr(USBFS_1_configuration - 1u);
reportType = CY_GET_REG8(USBFS_1_wValueHi);
interfaceN = CY_GET_REG8(USBFS_1_wIndexLo);
/* Third entry in the LUT COnfiguration Table starts the Interface Table pointers */
/* Now use the request interface number */
pTmp = &pTmp[interfaceN + 2u];
/* USB_DEVICEx_CONFIGURATIONy_INTERFACEz_TABLE*/
pTmp = (const T_USBFS_1_LUT CYCODE *) pTmp->p_list;
if(interfaceN < USBFS_1_MAX_INTERFACES_NUMBER)
{
/* Now use Alternate setting number */
pTmp = &pTmp[USBFS_1_interfaceSetting[interfaceN]];
/* USB_DEVICEx_CONFIGURATIONy_INTERFACEz_ALTERNATEi_HID_TABLE */
pTmp = (const T_USBFS_1_LUT CYCODE *) pTmp->p_list;
/* Validate reportType to comply with "7.2.1 Get_Report Request" */
if((reportType >= USBFS_1_HID_GET_REPORT_INPUT) &&
(reportType <= USBFS_1_HID_GET_REPORT_FEATURE))
{
/* Get the entry proper TD (IN, OUT or Feature Report Table)*/
pTmp = &pTmp[reportType - 1u];
reportType = CY_GET_REG8(USBFS_1_wValueLo); /* Get reportID */
/* Validate table support by the HID descriptor, compare table count with reportID */
if(pTmp->c >= reportType)
{
pTD = (T_USBFS_1_TD *) pTmp->p_list;
pTD = &pTD[reportType]; /* select entry depend on report ID*/
USBFS_1_currentTD.pData = pTD->pData; /* Buffer pointer */
USBFS_1_currentTD.count = pTD->count; /* Buffer Size */
USBFS_1_currentTD.pStatusBlock = pTD->pStatusBlock;
}
}
}
}
/*******************************************************************************
* Additional user functions supporting HID Requests
********************************************************************************/
/* `#START HID_FUNCTIONS` Place any additional functions here */
/* `#END` */
#endif /* End USBFS_1_ENABLE_HID_CLASS */
/* [] END OF FILE */

View File

@ -0,0 +1,64 @@
/*******************************************************************************
* File Name: USBFS_1_hid.h
* Version 2.60
*
* Description:
* Header File for the USFS component. Contains prototypes and constant values.
*
********************************************************************************
* Copyright 2008-2013, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#if !defined(CY_USBFS_USBFS_1_hid_H)
#define CY_USBFS_USBFS_1_hid_H
#include "cytypes.h"
/***************************************
* Prototypes of the USBFS_1_hid API.
***************************************/
uint8 USBFS_1_UpdateHIDTimer(uint8 interface) ;
uint8 USBFS_1_GetProtocol(uint8 interface) ;
/***************************************
*Renamed Functions for backward compatible
***************************************/
#define USBFS_1_bGetProtocol USBFS_1_GetProtocol
/***************************************
* Constants for USBFS_1_hid API.
***************************************/
#define USBFS_1_PROTOCOL_BOOT (0x00u)
#define USBFS_1_PROTOCOL_REPORT (0x01u)
/* Request Types (HID Chapter 7.2) */
#define USBFS_1_HID_GET_REPORT (0x01u)
#define USBFS_1_HID_GET_IDLE (0x02u)
#define USBFS_1_HID_GET_PROTOCOL (0x03u)
#define USBFS_1_HID_SET_REPORT (0x09u)
#define USBFS_1_HID_SET_IDLE (0x0Au)
#define USBFS_1_HID_SET_PROTOCOL (0x0Bu)
/* Descriptor Types (HID Chapter 7.1) */
#define USBFS_1_DESCR_HID_CLASS (0x21u)
#define USBFS_1_DESCR_HID_REPORT (0x22u)
#define USBFS_1_DESCR_HID_PHYSICAL (0x23u)
/* Report Request Types (HID Chapter 7.2.1) */
#define USBFS_1_HID_GET_REPORT_INPUT (0x01u)
#define USBFS_1_HID_GET_REPORT_OUTPUT (0x02u)
#define USBFS_1_HID_GET_REPORT_FEATURE (0x03u)
#endif /* End CY_USBFS_USBFS_1_hid_H */
/* [] END OF FILE */

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,200 @@
/*******************************************************************************
* File Name: USBFS_1_midi.h
* Version 2.60
*
* Description:
* Header File for the USBFS MIDI module.
* Contains prototypes and constant values.
*
********************************************************************************
* Copyright 2008-2013, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#if !defined(CY_USBFS_USBFS_1_midi_H)
#define CY_USBFS_USBFS_1_midi_H
#include "cytypes.h"
#include "USBFS_1.h"
/***************************************
* Data Struct Definition
***************************************/
/* The following structure is used to hold status information for
building and parsing incoming MIDI messages. */
typedef struct
{
uint8 length; /* expected length */
uint8 count; /* current byte count */
uint8 size; /* complete size */
uint8 runstat; /* running status */
uint8 msgBuff[4]; /* message buffer */
} USBFS_1_MIDI_RX_STATUS;
/***************************************
* MIDI Constants.
***************************************/
#define USBFS_1_ONE_EXT_INTRF (0x01u)
#define USBFS_1_TWO_EXT_INTRF (0x02u)
/* Flag definitions for use with MIDI device inquiry */
#define USBFS_1_INQ_SYSEX_FLAG (0x01u)
#define USBFS_1_INQ_IDENTITY_REQ_FLAG (0x02u)
/* USB-MIDI Code Index Number Classifications (MIDI Table 4-1) */
#define USBFS_1_CIN_MASK (0x0Fu)
#define USBFS_1_RESERVED0 (0x00u)
#define USBFS_1_RESERVED1 (0x01u)
#define USBFS_1_2BYTE_COMMON (0x02u)
#define USBFS_1_3BYTE_COMMON (0x03u)
#define USBFS_1_SYSEX (0x04u)
#define USBFS_1_1BYTE_COMMON (0x05u)
#define USBFS_1_SYSEX_ENDS_WITH1 (0x05u)
#define USBFS_1_SYSEX_ENDS_WITH2 (0x06u)
#define USBFS_1_SYSEX_ENDS_WITH3 (0x07u)
#define USBFS_1_NOTE_OFF (0x08u)
#define USBFS_1_NOTE_ON (0x09u)
#define USBFS_1_POLY_KEY_PRESSURE (0x0Au)
#define USBFS_1_CONTROL_CHANGE (0x0Bu)
#define USBFS_1_PROGRAM_CHANGE (0x0Cu)
#define USBFS_1_CHANNEL_PRESSURE (0x0Du)
#define USBFS_1_PITCH_BEND_CHANGE (0x0Eu)
#define USBFS_1_SINGLE_BYTE (0x0Fu)
#define USBFS_1_CABLE_MASK (0xF0u)
#define USBFS_1_MIDI_CABLE_00 (0x00u)
#define USBFS_1_MIDI_CABLE_01 (0x10u)
#define USBFS_1_EVENT_BYTE0 (0x00u)
#define USBFS_1_EVENT_BYTE1 (0x01u)
#define USBFS_1_EVENT_BYTE2 (0x02u)
#define USBFS_1_EVENT_BYTE3 (0x03u)
#define USBFS_1_EVENT_LENGTH (0x04u)
#define USBFS_1_MIDI_STATUS_BYTE_MASK (0x80u)
#define USBFS_1_MIDI_STATUS_MASK (0xF0u)
#define USBFS_1_MIDI_SINGLE_BYTE_MASK (0x08u)
#define USBFS_1_MIDI_NOTE_OFF (0x80u)
#define USBFS_1_MIDI_NOTE_ON (0x90u)
#define USBFS_1_MIDI_POLY_KEY_PRESSURE (0xA0u)
#define USBFS_1_MIDI_CONTROL_CHANGE (0xB0u)
#define USBFS_1_MIDI_PROGRAM_CHANGE (0xC0u)
#define USBFS_1_MIDI_CHANNEL_PRESSURE (0xD0u)
#define USBFS_1_MIDI_PITCH_BEND_CHANGE (0xE0u)
#define USBFS_1_MIDI_SYSEX (0xF0u)
#define USBFS_1_MIDI_EOSEX (0xF7u)
#define USBFS_1_MIDI_QFM (0xF1u)
#define USBFS_1_MIDI_SPP (0xF2u)
#define USBFS_1_MIDI_SONGSEL (0xF3u)
#define USBFS_1_MIDI_TUNEREQ (0xF6u)
#define USBFS_1_MIDI_ACTIVESENSE (0xFEu)
/* MIDI Universal System Exclusive defines */
#define USBFS_1_MIDI_SYSEX_NON_REAL_TIME (0x7Eu)
#define USBFS_1_MIDI_SYSEX_REALTIME (0x7Fu)
/* ID of target device */
#define USBFS_1_MIDI_SYSEX_ID_ALL (0x7Fu)
/* Sub-ID#1*/
#define USBFS_1_MIDI_SYSEX_GEN_INFORMATION (0x06u)
#define USBFS_1_MIDI_SYSEX_GEN_MESSAGE (0x09u)
/* Sub-ID#2*/
#define USBFS_1_MIDI_SYSEX_IDENTITY_REQ (0x01u)
#define USBFS_1_MIDI_SYSEX_IDENTITY_REPLY (0x02u)
#define USBFS_1_MIDI_SYSEX_SYSTEM_ON (0x01u)
#define USBFS_1_MIDI_SYSEX_SYSTEM_OFF (0x02u)
#define USBFS_1_CUSTOM_UART_TX_PRIOR_NUM (0x04u)
#define USBFS_1_CUSTOM_UART_RX_PRIOR_NUM (0x02u)
#define USBFS_1_ISR_SERVICE_MIDI_OUT \
( (USBFS_1_ENABLE_MIDI_API != 0u) && \
(USBFS_1_MIDI_OUT_BUFF_SIZE > 0) && (USBFS_1_EP_MM == USBFS_1__EP_DMAAUTO) )
#define USBFS_1_ISR_SERVICE_MIDI_IN \
( (USBFS_1_ENABLE_MIDI_API != 0u) && (USBFS_1_MIDI_IN_BUFF_SIZE > 0) )
/***************************************
* External function references
***************************************/
void USBFS_1_callbackLocalMidiEvent(uint8 cable, uint8 *midiMsg)
;
/***************************************
* External references
***************************************/
#if (USBFS_1_MIDI_EXT_MODE >= USBFS_1_ONE_EXT_INTRF)
#include "MIDI1_UART.h"
#endif /* End USBFS_1_MIDI_EXT_MODE >= USBFS_1_ONE_EXT_INTRF */
#if (USBFS_1_MIDI_EXT_MODE >= USBFS_1_TWO_EXT_INTRF)
#include "MIDI2_UART.h"
#endif /* End USBFS_1_MIDI_EXT_MODE >= USBFS_1_TWO_EXT_INTRF */
#if(USBFS_1_EP_MM != USBFS_1__EP_MANUAL)
#include <CyDmac.h>
#endif /* End USBFS_1_EP_MM */
/***************************************
* Private function prototypes
***************************************/
void USBFS_1_PrepareInBuffer(uint8 ic, const uint8 srcBuff[], uint8 eventLen, uint8 cable)
;
#if (USBFS_1_MIDI_EXT_MODE >= USBFS_1_ONE_EXT_INTRF)
void USBFS_1_MIDI_Init(void) ;
uint8 USBFS_1_ProcessMidiIn(uint8 mData, USBFS_1_MIDI_RX_STATUS *rxStat)
;
uint8 USBFS_1_MIDI1_GetEvent(void) ;
void USBFS_1_MIDI1_ProcessUsbOut(const uint8 epBuf[])
;
#if (USBFS_1_MIDI_EXT_MODE >= USBFS_1_TWO_EXT_INTRF)
uint8 USBFS_1_MIDI2_GetEvent(void) ;
void USBFS_1_MIDI2_ProcessUsbOut(const uint8 epBuf[])
;
#endif /* End USBFS_1_MIDI_EXT_MODE >= USBFS_1_TWO_EXT_INTRF */
#endif /* End USBFS_1_MIDI_EXT_MODE >= USBFS_1_ONE_EXT_INTRF */
/***************************************
* External data references
***************************************/
#if defined(USBFS_1_ENABLE_MIDI_STREAMING)
#if (USBFS_1_MIDI_IN_BUFF_SIZE > 0)
#if (USBFS_1_MIDI_IN_BUFF_SIZE >= 256)
extern volatile uint16 USBFS_1_midiInPointer; /* Input endpoint buffer pointer */
#else
extern volatile uint8 USBFS_1_midiInPointer; /* Input endpoint buffer pointer */
#endif /* End USBFS_1_MIDI_IN_BUFF_SIZE >=256 */
extern volatile uint8 USBFS_1_midi_in_ep; /* Input endpoint number */
extern uint8 USBFS_1_midiInBuffer[USBFS_1_MIDI_IN_BUFF_SIZE]; /* Input endpoint buffer */
#endif /* USBFS_1_MIDI_IN_BUFF_SIZE > 0 */
#if (USBFS_1_MIDI_OUT_BUFF_SIZE > 0)
extern volatile uint8 USBFS_1_midi_out_ep; /* Output endpoint number */
extern uint8 USBFS_1_midiOutBuffer[USBFS_1_MIDI_OUT_BUFF_SIZE]; /* Output endpoint buffer */
#endif /* USBFS_1_MIDI_OUT_BUFF_SIZE > 0 */
#if (USBFS_1_MIDI_EXT_MODE >= USBFS_1_ONE_EXT_INTRF)
extern volatile uint8 USBFS_1_MIDI1_InqFlags; /* Device inquiry flag */
#if (USBFS_1_MIDI_EXT_MODE >= USBFS_1_TWO_EXT_INTRF)
extern volatile uint8 USBFS_1_MIDI2_InqFlags; /* Device inquiry flag */
#endif /* End USBFS_1_MIDI_EXT_MODE >= USBFS_1_TWO_EXT_INTRF */
#endif /* End USBFS_1_MIDI_EXT_MODE >= USBFS_1_ONE_EXT_INTRF */
#endif /* USBFS_1_ENABLE_MIDI_STREAMING */
#endif /* End CY_USBFS_USBFS_1_midi_H */
/* [] END OF FILE */

View File

@ -0,0 +1,277 @@
/*******************************************************************************
* File Name: USBFS_1_pm.c
* Version 2.60
*
* Description:
* This file provides Suspend/Resume APIs functionality.
*
* Note:
*
********************************************************************************
* Copyright 2008-2013, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#include "project.h"
#include "USBFS_1.h"
#include "USBFS_1_pvt.h"
/***************************************
* Custom Declarations
***************************************/
/* `#START PM_CUSTOM_DECLARATIONS` Place your declaration here */
/* `#END` */
/***************************************
* Local data allocation
***************************************/
static USBFS_1_BACKUP_STRUCT USBFS_1_backup;
#if(USBFS_1_DP_ISR_REMOVE == 0u)
/*******************************************************************************
* Function Name: USBFS_1_DP_Interrupt
********************************************************************************
*
* Summary:
* This Interrupt Service Routine handles DP pin changes for wake-up from
* the sleep mode.
*
* Parameters:
* None.
*
* Return:
* None.
*
*******************************************************************************/
CY_ISR(USBFS_1_DP_ISR)
{
/* `#START DP_USER_CODE` Place your code here */
/* `#END` */
/* Clears active interrupt */
CY_GET_REG8(USBFS_1_DP_INTSTAT_PTR);
}
#endif /* (USBFS_1_DP_ISR_REMOVE == 0u) */
/*******************************************************************************
* Function Name: USBFS_1_SaveConfig
********************************************************************************
*
* Summary:
* Saves the current user configuration.
*
* Parameters:
* None.
*
* Return:
* None.
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_SaveConfig(void)
{
}
/*******************************************************************************
* Function Name: USBFS_1_RestoreConfig
********************************************************************************
*
* Summary:
* Restores the current user configuration.
*
* Parameters:
* None.
*
* Return:
* None.
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_RestoreConfig(void)
{
if(USBFS_1_configuration != 0u)
{
USBFS_1_ConfigReg();
}
}
/*******************************************************************************
* Function Name: USBFS_1_Suspend
********************************************************************************
*
* Summary:
* This function disables the USBFS block and prepares for power donwn mode.
*
* Parameters:
* None.
*
* Return:
* None.
*
* Global variables:
* USBFS_1_backup.enable: modified.
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_Suspend(void)
{
uint8 enableInterrupts;
enableInterrupts = CyEnterCriticalSection();
if((CY_GET_REG8(USBFS_1_CR0_PTR) & USBFS_1_CR0_ENABLE) != 0u)
{ /* USB block is enabled */
USBFS_1_backup.enableState = 1u;
#if(USBFS_1_EP_MM != USBFS_1__EP_MANUAL)
USBFS_1_Stop_DMA(USBFS_1_MAX_EP); /* Stop all DMAs */
#endif /* End USBFS_1_EP_MM != USBFS_1__EP_MANUAL */
/* Ensure USB transmit enable is low (USB_USBIO_CR0.ten). - Manual Transmission - Disabled */
USBFS_1_USBIO_CR0_REG &= (uint8)~USBFS_1_USBIO_CR0_TEN;
CyDelayUs(0u); /*~50ns delay */
/* Disable the USBIO by asserting PM.USB_CR0.fsusbio_pd_n(Inverted) and pd_pullup_hv(Inverted) high. */
USBFS_1_PM_USB_CR0_REG &=
(uint8)~(USBFS_1_PM_USB_CR0_PD_N | USBFS_1_PM_USB_CR0_PD_PULLUP_N);
/* Disable the SIE */
USBFS_1_CR0_REG &= (uint8)~USBFS_1_CR0_ENABLE;
CyDelayUs(0u); /*~50ns delay */
/* Store mode and Disable VRegulator*/
USBFS_1_backup.mode = USBFS_1_CR1_REG & USBFS_1_CR1_REG_ENABLE;
USBFS_1_CR1_REG &= (uint8)~USBFS_1_CR1_REG_ENABLE;
CyDelayUs(1u); /* 0.5 us min delay */
/* Disable the USBIO reference by setting PM.USB_CR0.fsusbio_ref_en.*/
USBFS_1_PM_USB_CR0_REG &= (uint8)~USBFS_1_PM_USB_CR0_REF_EN;
/* Switch DP and DM terminals to GPIO mode and disconnect 1.5k pullup*/
USBFS_1_USBIO_CR1_REG |= USBFS_1_USBIO_CR1_IOMODE;
/* Disable USB in ACT PM */
USBFS_1_PM_ACT_CFG_REG &= (uint8)~USBFS_1_PM_ACT_EN_FSUSB;
/* Disable USB block for Standby Power Mode */
USBFS_1_PM_STBY_CFG_REG &= (uint8)~USBFS_1_PM_STBY_EN_FSUSB;
CyDelayUs(1u); /* min 0.5us delay required */
}
else
{
USBFS_1_backup.enableState = 0u;
}
CyExitCriticalSection(enableInterrupts);
/* Set the DP Interrupt for wake-up from sleep mode. */
#if(USBFS_1_DP_ISR_REMOVE == 0u)
(void) CyIntSetVector(USBFS_1_DP_INTC_VECT_NUM, &USBFS_1_DP_ISR);
CyIntSetPriority(USBFS_1_DP_INTC_VECT_NUM, USBFS_1_DP_INTC_PRIOR);
CyIntClearPending(USBFS_1_DP_INTC_VECT_NUM);
CyIntEnable(USBFS_1_DP_INTC_VECT_NUM);
#endif /* (USBFS_1_DP_ISR_REMOVE == 0u) */
}
/*******************************************************************************
* Function Name: USBFS_1_Resume
********************************************************************************
*
* Summary:
* This function enables the USBFS block after power down mode.
*
* Parameters:
* None.
*
* Return:
* None.
*
* Global variables:
* USBFS_1_backup - checked.
*
* Reentrant:
* No.
*
*******************************************************************************/
void USBFS_1_Resume(void)
{
uint8 enableInterrupts;
enableInterrupts = CyEnterCriticalSection();
if(USBFS_1_backup.enableState != 0u)
{
#if(USBFS_1_DP_ISR_REMOVE == 0u)
CyIntDisable(USBFS_1_DP_INTC_VECT_NUM);
#endif /* End USBFS_1_DP_ISR_REMOVE */
/* Enable USB block */
USBFS_1_PM_ACT_CFG_REG |= USBFS_1_PM_ACT_EN_FSUSB;
/* Enable USB block for Standby Power Mode */
USBFS_1_PM_STBY_CFG_REG |= USBFS_1_PM_STBY_EN_FSUSB;
/* Enable core clock */
USBFS_1_USB_CLK_EN_REG |= USBFS_1_USB_CLK_ENABLE;
/* Enable the USBIO reference by setting PM.USB_CR0.fsusbio_ref_en.*/
USBFS_1_PM_USB_CR0_REG |= USBFS_1_PM_USB_CR0_REF_EN;
/* The reference will be available ~40us after power restored */
CyDelayUs(40u);
/* Return VRegulator*/
USBFS_1_CR1_REG |= USBFS_1_backup.mode;
CyDelayUs(0u); /*~50ns delay */
/* Enable USBIO */
USBFS_1_PM_USB_CR0_REG |= USBFS_1_PM_USB_CR0_PD_N;
CyDelayUs(2u);
/* Set the USBIO pull-up enable */
USBFS_1_PM_USB_CR0_REG |= USBFS_1_PM_USB_CR0_PD_PULLUP_N;
/* Reinit Arbiter configuration for DMA transfers */
#if(USBFS_1_EP_MM != USBFS_1__EP_MANUAL)
/* usb arb interrupt enable */
USBFS_1_ARB_INT_EN_REG = USBFS_1_ARB_INT_MASK;
#if(USBFS_1_EP_MM == USBFS_1__EP_DMAMANUAL)
USBFS_1_ARB_CFG_REG = USBFS_1_ARB_CFG_MANUAL_DMA;
#endif /* End USBFS_1_EP_MM == USBFS_1__EP_DMAMANUAL */
#if(USBFS_1_EP_MM == USBFS_1__EP_DMAAUTO)
/*Set cfg cmplt this rises DMA request when the full configuration is done */
USBFS_1_ARB_CFG_REG = USBFS_1_ARB_CFG_AUTO_DMA | USBFS_1_ARB_CFG_AUTO_MEM;
#endif /* End USBFS_1_EP_MM == USBFS_1__EP_DMAAUTO */
#endif /* End USBFS_1_EP_MM != USBFS_1__EP_MANUAL */
/* STALL_IN_OUT */
CY_SET_REG8(USBFS_1_EP0_CR_PTR, USBFS_1_MODE_STALL_IN_OUT);
/* Enable the SIE with a last address */
USBFS_1_CR0_REG |= USBFS_1_CR0_ENABLE;
CyDelayCycles(1u);
/* Finally, Enable d+ pullup and select iomode to USB mode*/
CY_SET_REG8(USBFS_1_USBIO_CR1_PTR, USBFS_1_USBIO_CR1_USBPUEN);
/* Restore USB register settings */
USBFS_1_RestoreConfig();
}
CyExitCriticalSection(enableInterrupts);
}
/* [] END OF FILE */

View File

@ -0,0 +1,190 @@
/*******************************************************************************
* File Name: .h
* Version 2.60
*
* Description:
* This private file provides constants and parameter values for the
* USBFS Component.
* Please do not use this file or its content in your project.
*
* Note:
*
********************************************************************************
* Copyright 2013, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#if !defined(CY_USBFS_USBFS_1_pvt_H)
#define CY_USBFS_USBFS_1_pvt_H
/***************************************
* Private Variables
***************************************/
/* Generated external references for descriptors*/
extern const uint8 CYCODE USBFS_1_DEVICE0_DESCR[18u];
extern const uint8 CYCODE USBFS_1_DEVICE0_CONFIGURATION0_DESCR[25u];
extern const T_USBFS_1_EP_SETTINGS_BLOCK CYCODE USBFS_1_DEVICE0_CONFIGURATION0_EP_SETTINGS_TABLE[1u];
extern const uint8 CYCODE USBFS_1_DEVICE0_CONFIGURATION0_INTERFACE_CLASS[1u];
extern const T_USBFS_1_LUT CYCODE USBFS_1_DEVICE0_CONFIGURATION0_TABLE[4u];
extern const T_USBFS_1_LUT CYCODE USBFS_1_DEVICE0_TABLE[2u];
extern const T_USBFS_1_LUT CYCODE USBFS_1_TABLE[1u];
extern const uint8 CYCODE USBFS_1_MSOS_DESCRIPTOR[USBFS_1_MSOS_DESCRIPTOR_LENGTH];
extern const uint8 CYCODE USBFS_1_MSOS_CONFIGURATION_DESCR[USBFS_1_MSOS_CONF_DESCR_LENGTH];
#if defined(USBFS_1_ENABLE_IDSN_STRING)
extern uint8 USBFS_1_idSerialNumberStringDescriptor[USBFS_1_IDSN_DESCR_LENGTH];
#endif /* USBFS_1_ENABLE_IDSN_STRING */
extern volatile uint8 USBFS_1_interfaceNumber;
extern volatile uint8 USBFS_1_interfaceSetting[USBFS_1_MAX_INTERFACES_NUMBER];
extern volatile uint8 USBFS_1_interfaceSetting_last[USBFS_1_MAX_INTERFACES_NUMBER];
extern volatile uint8 USBFS_1_deviceAddress;
extern volatile uint8 USBFS_1_interfaceStatus[USBFS_1_MAX_INTERFACES_NUMBER];
extern const uint8 CYCODE *USBFS_1_interfaceClass;
extern volatile T_USBFS_1_EP_CTL_BLOCK USBFS_1_EP[USBFS_1_MAX_EP];
extern volatile T_USBFS_1_TD USBFS_1_currentTD;
#if(USBFS_1_EP_MM != USBFS_1__EP_MANUAL)
extern uint8 USBFS_1_DmaChan[USBFS_1_MAX_EP];
extern uint8 USBFS_1_DmaTd[USBFS_1_MAX_EP];
#endif /* End USBFS_1_EP_MM */
extern volatile uint8 USBFS_1_ep0Toggle;
extern volatile uint8 USBFS_1_lastPacketSize;
extern volatile uint8 USBFS_1_ep0Mode;
extern volatile uint8 USBFS_1_ep0Count;
extern volatile uint16 USBFS_1_transferByteCount;
/***************************************
* Private Function Prototypes
***************************************/
void USBFS_1_ReInitComponent(void) ;
void USBFS_1_HandleSetup(void) ;
void USBFS_1_HandleIN(void) ;
void USBFS_1_HandleOUT(void) ;
void USBFS_1_LoadEP0(void) ;
uint8 USBFS_1_InitControlRead(void) ;
uint8 USBFS_1_InitControlWrite(void) ;
void USBFS_1_ControlReadDataStage(void) ;
void USBFS_1_ControlReadStatusStage(void) ;
void USBFS_1_ControlReadPrematureStatus(void)
;
uint8 USBFS_1_InitControlWrite(void) ;
uint8 USBFS_1_InitZeroLengthControlTransfer(void)
;
void USBFS_1_ControlWriteDataStage(void) ;
void USBFS_1_ControlWriteStatusStage(void) ;
void USBFS_1_ControlWritePrematureStatus(void)
;
uint8 USBFS_1_InitNoDataControlTransfer(void) ;
void USBFS_1_NoDataControlStatusStage(void) ;
void USBFS_1_InitializeStatusBlock(void) ;
void USBFS_1_UpdateStatusBlock(uint8 completionCode) ;
uint8 USBFS_1_DispatchClassRqst(void) ;
void USBFS_1_Config(uint8 clearAltSetting) ;
void USBFS_1_ConfigAltChanged(void) ;
void USBFS_1_ConfigReg(void) ;
const T_USBFS_1_LUT CYCODE *USBFS_1_GetConfigTablePtr(uint8 c)
;
const T_USBFS_1_LUT CYCODE *USBFS_1_GetDeviceTablePtr(void)
;
const uint8 CYCODE *USBFS_1_GetInterfaceClassTablePtr(void)
;
uint8 USBFS_1_ClearEndpointHalt(void) ;
uint8 USBFS_1_SetEndpointHalt(void) ;
uint8 USBFS_1_ValidateAlternateSetting(void) ;
void USBFS_1_SaveConfig(void) ;
void USBFS_1_RestoreConfig(void) ;
#if defined(USBFS_1_ENABLE_IDSN_STRING)
void USBFS_1_ReadDieID(uint8 descr[]) ;
#endif /* USBFS_1_ENABLE_IDSN_STRING */
#if defined(USBFS_1_ENABLE_HID_CLASS)
uint8 USBFS_1_DispatchHIDClassRqst(void);
#endif /* End USBFS_1_ENABLE_HID_CLASS */
#if defined(USBFS_1_ENABLE_AUDIO_CLASS)
uint8 USBFS_1_DispatchAUDIOClassRqst(void);
#endif /* End USBFS_1_ENABLE_HID_CLASS */
#if defined(USBFS_1_ENABLE_CDC_CLASS)
uint8 USBFS_1_DispatchCDCClassRqst(void);
#endif /* End USBFS_1_ENABLE_CDC_CLASS */
CY_ISR_PROTO(USBFS_1_EP_0_ISR);
#if(USBFS_1_EP1_ISR_REMOVE == 0u)
CY_ISR_PROTO(USBFS_1_EP_1_ISR);
#endif /* End USBFS_1_EP1_ISR_REMOVE */
#if(USBFS_1_EP2_ISR_REMOVE == 0u)
CY_ISR_PROTO(USBFS_1_EP_2_ISR);
#endif /* End USBFS_1_EP2_ISR_REMOVE */
#if(USBFS_1_EP3_ISR_REMOVE == 0u)
CY_ISR_PROTO(USBFS_1_EP_3_ISR);
#endif /* End USBFS_1_EP3_ISR_REMOVE */
#if(USBFS_1_EP4_ISR_REMOVE == 0u)
CY_ISR_PROTO(USBFS_1_EP_4_ISR);
#endif /* End USBFS_1_EP4_ISR_REMOVE */
#if(USBFS_1_EP5_ISR_REMOVE == 0u)
CY_ISR_PROTO(USBFS_1_EP_5_ISR);
#endif /* End USBFS_1_EP5_ISR_REMOVE */
#if(USBFS_1_EP6_ISR_REMOVE == 0u)
CY_ISR_PROTO(USBFS_1_EP_6_ISR);
#endif /* End USBFS_1_EP6_ISR_REMOVE */
#if(USBFS_1_EP7_ISR_REMOVE == 0u)
CY_ISR_PROTO(USBFS_1_EP_7_ISR);
#endif /* End USBFS_1_EP7_ISR_REMOVE */
#if(USBFS_1_EP8_ISR_REMOVE == 0u)
CY_ISR_PROTO(USBFS_1_EP_8_ISR);
#endif /* End USBFS_1_EP8_ISR_REMOVE */
CY_ISR_PROTO(USBFS_1_BUS_RESET_ISR);
#if(USBFS_1_SOF_ISR_REMOVE == 0u)
CY_ISR_PROTO(USBFS_1_SOF_ISR);
#endif /* End USBFS_1_SOF_ISR_REMOVE */
#if(USBFS_1_EP_MM != USBFS_1__EP_MANUAL)
CY_ISR_PROTO(USBFS_1_ARB_ISR);
#endif /* End USBFS_1_EP_MM */
#if(USBFS_1_DP_ISR_REMOVE == 0u)
CY_ISR_PROTO(USBFS_1_DP_ISR);
#endif /* End USBFS_1_DP_ISR_REMOVE */
/***************************************
* Request Handlers
***************************************/
uint8 USBFS_1_HandleStandardRqst(void) ;
uint8 USBFS_1_DispatchClassRqst(void) ;
uint8 USBFS_1_HandleVendorRqst(void) ;
/***************************************
* HID Internal references
***************************************/
#if defined(USBFS_1_ENABLE_HID_CLASS)
void USBFS_1_FindReport(void) ;
void USBFS_1_FindReportDescriptor(void) ;
void USBFS_1_FindHidClassDecriptor(void) ;
#endif /* USBFS_1_ENABLE_HID_CLASS */
/***************************************
* MIDI Internal references
***************************************/
#if defined(USBFS_1_ENABLE_MIDI_STREAMING)
void USBFS_1_MIDI_IN_EP_Service(void) ;
#endif /* USBFS_1_ENABLE_MIDI_STREAMING */
#endif /* CY_USBFS_USBFS_1_pvt_H */
/* [] END OF FILE */

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,96 @@
/*******************************************************************************
* File Name: USBFS_1_vnd.c
* Version 2.60
*
* Description:
* USB vendor request handler.
*
* Note:
*
********************************************************************************
* Copyright 2008-2013, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#include "USBFS_1.h"
#include "USBFS_1_pvt.h"
#if(USBFS_1_EXTERN_VND == USBFS_1_FALSE)
/***************************************
* Vendor Specific Declarations
***************************************/
/* `#START VENDOR_SPECIFIC_DECLARATIONS` Place your declaration here */
/* `#END` */
/*******************************************************************************
* Function Name: USBFS_1_HandleVendorRqst
********************************************************************************
*
* Summary:
* This routine provide users with a method to implement vendor specifc
* requests.
*
* To implement vendor specific requests, add your code in this function to
* decode and disposition the request. If the request is handled, your code
* must set the variable "requestHandled" to TRUE, indicating that the
* request has been handled.
*
* Parameters:
* None.
*
* Return:
* requestHandled.
*
* Reentrant:
* No.
*
*******************************************************************************/
uint8 USBFS_1_HandleVendorRqst(void)
{
uint8 requestHandled = USBFS_1_FALSE;
if ((CY_GET_REG8(USBFS_1_bmRequestType) & USBFS_1_RQST_DIR_MASK) == USBFS_1_RQST_DIR_D2H)
{
/* Control Read */
switch (CY_GET_REG8(USBFS_1_bRequest))
{
case USBFS_1_GET_EXTENDED_CONFIG_DESCRIPTOR:
#if defined(USBFS_1_ENABLE_MSOS_STRING)
USBFS_1_currentTD.pData = (volatile uint8 *)&USBFS_1_MSOS_CONFIGURATION_DESCR[0u];
USBFS_1_currentTD.count = USBFS_1_MSOS_CONFIGURATION_DESCR[0u];
requestHandled = USBFS_1_InitControlRead();
#endif /* End USBFS_1_ENABLE_MSOS_STRING */
break;
default:
break;
}
}
/* `#START VENDOR_SPECIFIC_CODE` Place your vendor specific request here */
/* `#END` */
return(requestHandled);
}
/*******************************************************************************
* Additional user functions supporting Vendor Specific Requests
********************************************************************************/
/* `#START VENDOR_SPECIFIC_FUNCTIONS` Place any additional functions here */
/* `#END` */
#endif /* USBFS_1_EXTERN_VND */
/* [] END OF FILE */

View File

@ -23,16 +23,16 @@ GROUP(-lgcc -lc -lnosys)
MEMORY
{
rom (rx) : ORIGIN = 0x0, LENGTH = 262144
ram (rwx) : ORIGIN = 0x20000000 - (65536 / 2), LENGTH = 65536
rom (rx) : ORIGIN = 0x0, LENGTH = 131072
ram (rwx) : ORIGIN = 0x20000000 - (32768 / 2), LENGTH = 32768
}
CY_APPL_ORIGIN = 0;
CY_FLASH_ROW_SIZE = 256;
CY_ECC_ROW_SIZE = 32;
CY_EE_IN_BTLDR = 0x0;
CY_APPL_LOADABLE = 0;
CY_EE_IN_BTLDR = 0x00;
CY_APPL_LOADABLE = 1;
CY_EE_SIZE = 2048;
CY_APPL_NUM = 1;
CY_APPL_MAX = 1;

View File

@ -1,69 +1,70 @@
:20000000024500400852004002640040450001403201014044020140540301403D0401407E
:200020005B0501400B0601404E070140100901403C0A01403F0B01400A0D0140020F014021
:2000400003150140481601404317014003190140021B0140074001401041014008420140AD
:20006000054301400844014013450140064601400147014008480140094901400650014000
:200080003602650200C9019C180819041CE12104300431083403820F0140060C07180A60EB
:2000A0000C020F201090124814901624172419241A101B091F03230426802A902C012D243E
:2000C0002F1230013140321C333834E0360237073E413F01580459045B045C995F01850148
:2000E000872C880889328B018F089004920296039740980499069A019E04A008A408A501D5
:20010000A71AAA04AB40AC08B207B307B408B540B738B820B908BE10BF10D804D90BDC9953
:20012000DF010128030205100A780C800D100E60120C1348149016041740184019A81B2021
:200140001E201F14218422012540271429012B012E14318032183608371039483A083B01AF
:200160003D803F1469806B017E808180830485408B108F01C047C2FEC4F7CA69CC6ECE7B6C
:20018000DE80E001E220040F055506F007AA0BFF0EFF10FF13FF150F16FF17F01D691F9657
:2001A0002433253326CC27CC28552AAA2BFF2C962E6931FF34FF3E103F015602572C5804AF
:2001C00059045B0B5D905F01843885108A458E38900792409406964098089C029D039F0CC7
:2001E000A002A105A30AA610A820A906AB09AC01AE02B007B10FB240B510B638BE44BF11DE
:20020000D440D804D904DB0BDC09DD90DF01020A0310050807010A640B020C020E201001FD
:20022000124013141504160817801A501B411D10200423802740284029202D042F24318070
:20024000350837813A043C203E086120632167806C206D916F027602770278027A037E80FC
:200260008120820483408480861088108E4090409180920293089560966C97149801998828
:200280009A089B119C909D119F48A180A210A320A480A688A701AF01B001B340B702C0A74B
:2002A000C23FC4EFCA65CCD8CE62D88EDE81E201E408E603E80200030A010F081528174463
:2002C000192C1B811E031F0320032403278028032B042DD42F22300233E03401351836025E
:2002E00037073B303E5140644102423045E2460D47CF483749FF4AFF4BFF4F2C5601580455
:2003000059045A045B045C905D095F0162C06680684069406E0888018A069405960298035D
:200320009A049C049E03B607BA80D80BDC09DF0101010204051009400E010F141020111056
:20034000130219421B101E011F4021102258232029042A202B01304032583980411042505D
:20036000484049044A0851085240530159A85A026064618069406A086B8870907101722003
:200380007E80810883018580882089108C108E409044919192529560962C979799809A022E
:2003A0009B029C429D019E409F08A020A140A323A490A520A689A710AB80AF20B012B508E0
:2003C000B608C04AC2E1C40ECA0ECC0ECE08D007D204D60FD80FDE80E001E210E404E602DE
:2003E000E801EA50EE8010041202160318041A012A042E04320758045C095F010008010130
:20040000030A09080A840D100E6010221112130217A018201C201E202040210422402A823F
:200420002B16302231083240386039013B044108420443014804494850425120524558804B
:200440006002628078029131924096049714988099429A029BA29C029D109E04A020A140AB
:20046000A302A410A520A681A880A908AA04AB01AC50AD20B240B540B608B720C00FC27EB0
:20048000C4CFCA0FCC0FCE0FD007D20CD608D808DE01E440E80AEE078E019E41A402A841DE
:2004A000AB08AE09AF82B201B441B510B620B704E440E840EA01ECD00001013303CC0802A2
:2004C0000FFF1196136917FF1D551FAA21FF290F2BF0340135FF36023E503F1058045904F0
:2004E0005F0182028533868087CC88808A408BFF8E0891FF92049406950F960897F0988074
:200500009A209D559E609FAAA002A204A410A969AA80AB96AC01ADFFB001B20EB410B6E04B
:20052000B7FFBE15BF40D804D904DB04DC09DF0100010120066107080C020E220F04158058
:20054000161017111A0A1C481E021F0822202640280829022C082F023102320833403408FA
:200560003502374038823D203F085D085E015FA06E206F018128832084048A048B048D40F0
:200580008F10980899029A109B48A008A102A661A808A902B408B740C0FAC2F0C4F0CA3575
:2005A000CCDBCE69D6F0E280E460E601E8508201850286308A408F08E223E440E802EA2094
:2005C000EE60E001E610A840AB20EC8000D00424064308110A220CD0102012D0142816838E
:2005E00018D01E0C20D0260128D02E0230F0360F3A02580B5C095F018038814684438539DD
:20060000863C870688488A208B468D048F20903894619501961E975E982399429A449B04F1
:200620009C189E20A010A146A428A542A610A820A977AA18AB08AD46B108B260B370B41E38
:20064000B50FB601B920BA08BB0CBE40BF01D409D80BD90BDB0BDC99DD90DF0100080101A9
:200660000308040405100680070209490A040C200E420F1010201110124015191601195473
:200680001A041B1C1E42200C2108239429142A022B0230203108388039113B04590A5BA0DB
:2006A000614078027E808B0190809119960497149802990A9AC39B029D109F01A020A14170
:2006C000A280A302A404A508A601A71CC0FEC2FFC4FECA0FCC06CE0FD60FD808DE81E420A3
:2006E000EC80A402B240EC80B002EC805810808086808810D480E240E6805381570A5904F8
:200700005C026008648081048240840898809A80D4E0D6E0D8C0E220E6908C0292409A8036
:200720009C02AF80B302B709EE1023088F0892409A80C8100C015102542080208C40C204ED
:20074000D403E608020403100480074009020B010C188008850294809C109F10AD02B011C7
:20076000B710C00FC20FEA04EE0683408E0493019A049B40E608AB01231027088801924077
:2007800097109A80B310C860080156805A4092409A809C01B308C210D4C0010109010B0172
:2007A0000D0111011B010000C00102000008FF218040000090404000001060807F22800829
:2007C0001F01200000040000C0010100C0070418C001080000019F00003FFF8000000040C9
:2007E000008200000000040163025000040EFCBD3DFFFFFF2200F008040000000000080092
:20080000040B0B04909900010000C00040011011C00100114001400100000000000000001A
:20082000000000000000000000FFFF00FF000000080030000800000000000000000000007B
:2008400010000000FF000000000000010200F10E0E000C000000000000FCFC000400000071
:200860000F00000000000001F00F0F000C000001000000000000000000000000000000004D
:2000000003450040095200400264004044000140360101403E0201404E0301404B04014077
:2000200057050140050601404A07014014090140370A0140380B01400F0D0140020F014032
:2000400005150140421601404417014008190140041B01400E4001400E41014005420140A7
:20006000054301400A440140164501400846014008470140084801400C490140014C0140F8
:200080000650014001510140360265027E020101180419041C6120502198300531097C400B
:2000A0003303870F0304040106320724080209240A540B120D240E100F09100D146216083B
:2000C0001B031C021E0D1F18200D2320240D280D29402C0D307033403507360F37383A804D
:2000E0003F04580B59045B045C995F0182808A188B098E03910893039624982499089A128E
:200100009B049E209F06A024A209A604AA40AC40AE80AF08B0C0B10EB301B438B607BE01BE
:20012000BF04D804D904DB04DC99DF010040020803200550068008010A220D140E0110A0B2
:200140001110134015401628170118401A021D501E4421202284230827A029012A102C02D2
:20016000312032803621378139283A023B803C20588459025B106D4078027C807F018040B4
:2001800081208680C0D7C2EDC4FFCA15CCBCCE2FD60FDE01E004E408140118021C012E013C
:2001A00036033AC058045B045C095F01849685108669872D89678B188C338D028ECC945516
:2001C00096AA9AFF9D02A00FA116A2F0A348A4FFA740AD01AEFFAF02B108B2FFB370B507E5
:2001E000BE04BF01C032C105C240C5D2C60CC7EFC837C9FFCAFFCBFFCF2CD601D804D904BF
:20020000DA04DB04DC90DD09DF01E2C0E680E840E940EE080180021009080A040D100E02C1
:200220000F101140130A1540160417101B081E021FC0206021142220231029042B823280C3
:20024000388039284040411449064A8150405244530158505A085B016018638268066A0180
:200260006B206D407121722281408340870188108B028D108E10924C9538962197C2991050
:200280009B889C079D039EAA9F10A4B2A629A720AD40AF20B210C005C2E6C48DCA0BCC0830
:2002A000CE0ED007D208D60FD80FE206E610EC08030406040730084009410E030F411024A4
:2002C0001141120915121618170D19411A201C401D021F0120402141242425052612270A6C
:2002E00029232A242B0C2C402F08314032383440353C3607370338203B803E103F01580456
:20030000590B5C995F0182FF849685698669879688FF8C0F8D338EF08FCC9033910F92CC13
:2003200093F095FF99FF9D559FAAA6FFAC55AEAAAFFFB6FFB7FFBE40BF40D608D804D90428
:20034000DB04DD90DF01000801800308040205500610070209200A110B800F801180126002
:200360001310178819801A101B501E0120042243254028042A022B222D4030013248331080
:200380003510378A380439903B413F845E406402668078028008821084408A808C018D406D
:2003A00091689240939095109630974099109A019BA89C4B9D809E189F02A004A120A22103
:2003C000A308A4A0A608A731A810A908AB80AC04AE40B681B710C0F7C21FC4AFCA1FCCFFB9
:2003E000CE5FD610D810DE01E001E60CE801EA10EC10EE012C0136013E4058045F01015093
:20040000036008040AA80E010F02102212081302160119011E0120042204230128212911F9
:2004200030223244380439403A023B10426043204401474049044A0A4B02500252145302EC
:200440006280686069D46B50708072027302780289029128928295909620970198029A01A7
:200460009B209C059D409E0A9F10A283A4A0A608A723AD80B2D0B304B404C00FC20EC48FFB
:20048000CA0FCC0FCE0FD007D20CD808DE01E601E80880108801901097809C409D089E2071
:2004A000A401A908AD01AF80B122B211B404B740E080E808EA83EC40EEA0003302CC0855EF
:2004C0000AAA0D011069129616FF1AFF1C0F1EF026FF29023301350236FF3E403F145804B5
:2004E00059045F0180058138820A842089258B028C038E0C8F3894109509970699049B038C
:200500009C069D409E09A103A314AC40B00FB240B338B420B507B610B740BB20BE55BF4494
:20052000D804D908DC90DF010101020404080542086809020D080F01130816011A011C0846
:200540001D021F842208230424102610270229202F4035083610378038803C023E203F80F0
:200560007E02838187048A028C0890809704982099429A059B089C409F02A404A608AA044B
:20058000AB02C0BAC2AFC484CA84CC70CEB8DE10E040E420E801EE408208844087048804DD
:2005A0008C6099429A019B08AD02B601E040E220E408E680EE208308854082209E20AE08E8
:2005C000B208B51006040E03160418041A021C041E013607544058045B0B5C095D905F01AB
:2005E000803084108542860F870488408A0C8B468C4C8D46900494019539962E9706980105
:2006000099019A129B5E9D429E40A04CA146A444A504A608A720A808A977AB08AC0CAD46D7
:20062000AE40B031B108B240B30FB40FB570B701B802B908BB30BE04BF41D409D80BD90B12
:20064000DB0BDC99DD90DF0100840112054007200A840B120D140E02102011401204130267
:20066000191A1A041B201D402004212022982398281129102A06312032483954442047080A
:20068000581059045A025B80628065086610670278027C02812082408940917C9282930256
:2006A00096609710980399049A169B229C209D529E28A060A201A608A720C0AFC2EFC40F7C
:2006C000CA0FCC0ECE0ED60FD878DE81E004EE088220884097809C409D089E20E080EE0807
:2006E000B340B508E840EC8033805B40620163026680670882038704CC10D480D6C0D8C0DD
:20070000E220E6305210530183018E809A129E809F40A780AE10AF01D4A0E620EA40EE1099
:2007200094019A02A780B401B740822094019A02A780E6800C041080538054105A105C4078
:20074000C204C408D407D6040301048109040B040E020F40878088048C41944096109704D9
:200760009804A410A780B304B480C007C20FE002E609EE06908093409B01A201A410AA102A
:20078000B504EE020808A840AC10AF01B340B601C208EA0C2340240194019A02A220AF8038
:2007A000C860EE1007105220560283109A02A220AF40C020D420D620E020EC40AC080101A6
:2007C00009010B010D0111011B010002C00102001F402000C00808219001400080100080B1
:2007E0007F0480000001600000010000C0400100C02204080007FF1800019F00FF000040A8
:20080000003F008000280000000001106402500003DEF0BC3BFFFFFF2200F0080400000047
:2008200000000220040B0B0B909900010000C00040011011C00100114001400100000000D1
:2008400000000000000000000000000000FFFF000300000008003000080000000000000057
:2008600000000000100000000000000000000000C0000000FF000000000000011000631C19
:200880001C000C000000000000FCFC00F80000000F00000000000001F00F0F000F00000112
:00000001FF

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
/* GENERATED CODE -- CHANGES WILL BE OVERWRITTEN */
define symbol CYDEV_BTLDR_SIZE = 0x00002300;

View File

@ -17,21 +17,21 @@
#if !defined(CYDEVICE_H)
#define CYDEVICE_H
#define CYDEV_FLASH_BASE 0x00000000u
#define CYDEV_FLASH_SIZE 0x00040000u
#define CYDEV_FLASH_SIZE 0x00020000u
#define CYDEV_FLASH_DATA_MBASE 0x00000000u
#define CYDEV_FLASH_DATA_MSIZE 0x00040000u
#define CYDEV_SRAM_BASE 0x1fff8000u
#define CYDEV_SRAM_SIZE 0x00010000u
#define CYDEV_FLASH_DATA_MSIZE 0x00020000u
#define CYDEV_SRAM_BASE 0x1fffc000u
#define CYDEV_SRAM_SIZE 0x00008000u
#define CYDEV_SRAM_CODE64K_MBASE 0x1fff8000u
#define CYDEV_SRAM_CODE64K_MSIZE 0x00004000u
#define CYDEV_SRAM_CODE32K_MBASE 0x1fffc000u
#define CYDEV_SRAM_CODE32K_MSIZE 0x00002000u
#define CYDEV_SRAM_CODE16K_MBASE 0x1fffe000u
#define CYDEV_SRAM_CODE16K_MSIZE 0x00001000u
#define CYDEV_SRAM_CODE_MBASE 0x1fff8000u
#define CYDEV_SRAM_CODE_MSIZE 0x00008000u
#define CYDEV_SRAM_CODE_MBASE 0x1fffc000u
#define CYDEV_SRAM_CODE_MSIZE 0x00004000u
#define CYDEV_SRAM_DATA_MBASE 0x20000000u
#define CYDEV_SRAM_DATA_MSIZE 0x00008000u
#define CYDEV_SRAM_DATA_MSIZE 0x00004000u
#define CYDEV_SRAM_DATA16K_MBASE 0x20001000u
#define CYDEV_SRAM_DATA16K_MSIZE 0x00001000u
#define CYDEV_SRAM_DATA32K_MBASE 0x20002000u
@ -5331,7 +5331,6 @@
#define CYDEV_ECC_BASE CYDEV_FLSECC_BASE
#define CYDEV_FLS_SECTOR_SIZE 0x00010000u
#define CYDEV_FLS_ROW_SIZE 0x00000100u
#define CYDEV_ALLOCATE_EEPROM 0x00000001u
#define CYDEV_ECC_SECTOR_SIZE 0x00002000u
#define CYDEV_ECC_ROW_SIZE 0x00000020u
#define CYDEV_EEPROM_SECTOR_SIZE 0x00000400u

View File

@ -17,21 +17,21 @@
#if !defined(CYDEVICE_TRM_H)
#define CYDEVICE_TRM_H
#define CYDEV_FLASH_BASE 0x00000000u
#define CYDEV_FLASH_SIZE 0x00040000u
#define CYDEV_FLASH_SIZE 0x00020000u
#define CYREG_FLASH_DATA_MBASE 0x00000000u
#define CYREG_FLASH_DATA_MSIZE 0x00040000u
#define CYDEV_SRAM_BASE 0x1fff8000u
#define CYDEV_SRAM_SIZE 0x00010000u
#define CYREG_FLASH_DATA_MSIZE 0x00020000u
#define CYDEV_SRAM_BASE 0x1fffc000u
#define CYDEV_SRAM_SIZE 0x00008000u
#define CYREG_SRAM_CODE64K_MBASE 0x1fff8000u
#define CYREG_SRAM_CODE64K_MSIZE 0x00004000u
#define CYREG_SRAM_CODE32K_MBASE 0x1fffc000u
#define CYREG_SRAM_CODE32K_MSIZE 0x00002000u
#define CYREG_SRAM_CODE16K_MBASE 0x1fffe000u
#define CYREG_SRAM_CODE16K_MSIZE 0x00001000u
#define CYREG_SRAM_CODE_MBASE 0x1fff8000u
#define CYREG_SRAM_CODE_MSIZE 0x00008000u
#define CYREG_SRAM_CODE_MBASE 0x1fffc000u
#define CYREG_SRAM_CODE_MSIZE 0x00004000u
#define CYREG_SRAM_DATA_MBASE 0x20000000u
#define CYREG_SRAM_DATA_MSIZE 0x00008000u
#define CYREG_SRAM_DATA_MSIZE 0x00004000u
#define CYREG_SRAM_DATA16K_MBASE 0x20001000u
#define CYREG_SRAM_DATA16K_MSIZE 0x00001000u
#define CYREG_SRAM_DATA32K_MBASE 0x20002000u
@ -5331,7 +5331,6 @@
#define CYDEV_ECC_BASE CYDEV_FLSECC_BASE
#define CYDEV_FLS_SECTOR_SIZE 0x00010000u
#define CYDEV_FLS_ROW_SIZE 0x00000100u
#define CYDEV_ALLOCATE_EEPROM 0x00000001u
#define CYDEV_ECC_SECTOR_SIZE 0x00002000u
#define CYDEV_ECC_ROW_SIZE 0x00000020u
#define CYDEV_EEPROM_SECTOR_SIZE 0x00000400u

View File

@ -15,21 +15,21 @@
********************************************************************************/
.set CYDEV_FLASH_BASE, 0x00000000
.set CYDEV_FLASH_SIZE, 0x00040000
.set CYDEV_FLASH_SIZE, 0x00020000
.set CYDEV_FLASH_DATA_MBASE, 0x00000000
.set CYDEV_FLASH_DATA_MSIZE, 0x00040000
.set CYDEV_SRAM_BASE, 0x1fff8000
.set CYDEV_SRAM_SIZE, 0x00010000
.set CYDEV_FLASH_DATA_MSIZE, 0x00020000
.set CYDEV_SRAM_BASE, 0x1fffc000
.set CYDEV_SRAM_SIZE, 0x00008000
.set CYDEV_SRAM_CODE64K_MBASE, 0x1fff8000
.set CYDEV_SRAM_CODE64K_MSIZE, 0x00004000
.set CYDEV_SRAM_CODE32K_MBASE, 0x1fffc000
.set CYDEV_SRAM_CODE32K_MSIZE, 0x00002000
.set CYDEV_SRAM_CODE16K_MBASE, 0x1fffe000
.set CYDEV_SRAM_CODE16K_MSIZE, 0x00001000
.set CYDEV_SRAM_CODE_MBASE, 0x1fff8000
.set CYDEV_SRAM_CODE_MSIZE, 0x00008000
.set CYDEV_SRAM_CODE_MBASE, 0x1fffc000
.set CYDEV_SRAM_CODE_MSIZE, 0x00004000
.set CYDEV_SRAM_DATA_MBASE, 0x20000000
.set CYDEV_SRAM_DATA_MSIZE, 0x00008000
.set CYDEV_SRAM_DATA_MSIZE, 0x00004000
.set CYDEV_SRAM_DATA16K_MBASE, 0x20001000
.set CYDEV_SRAM_DATA16K_MSIZE, 0x00001000
.set CYDEV_SRAM_DATA32K_MBASE, 0x20002000
@ -5329,7 +5329,6 @@
.set CYDEV_ECC_BASE, CYDEV_FLSECC_BASE
.set CYDEV_FLS_SECTOR_SIZE, 0x00010000
.set CYDEV_FLS_ROW_SIZE, 0x00000100
.set CYDEV_ALLOCATE_EEPROM, 0x00000001
.set CYDEV_ECC_SECTOR_SIZE, 0x00002000
.set CYDEV_ECC_ROW_SIZE, 0x00000020
.set CYDEV_EEPROM_SECTOR_SIZE, 0x00000400

View File

@ -15,21 +15,21 @@
********************************************************************************/
.set CYDEV_FLASH_BASE, 0x00000000
.set CYDEV_FLASH_SIZE, 0x00040000
.set CYDEV_FLASH_SIZE, 0x00020000
.set CYREG_FLASH_DATA_MBASE, 0x00000000
.set CYREG_FLASH_DATA_MSIZE, 0x00040000
.set CYDEV_SRAM_BASE, 0x1fff8000
.set CYDEV_SRAM_SIZE, 0x00010000
.set CYREG_FLASH_DATA_MSIZE, 0x00020000
.set CYDEV_SRAM_BASE, 0x1fffc000
.set CYDEV_SRAM_SIZE, 0x00008000
.set CYREG_SRAM_CODE64K_MBASE, 0x1fff8000
.set CYREG_SRAM_CODE64K_MSIZE, 0x00004000
.set CYREG_SRAM_CODE32K_MBASE, 0x1fffc000
.set CYREG_SRAM_CODE32K_MSIZE, 0x00002000
.set CYREG_SRAM_CODE16K_MBASE, 0x1fffe000
.set CYREG_SRAM_CODE16K_MSIZE, 0x00001000
.set CYREG_SRAM_CODE_MBASE, 0x1fff8000
.set CYREG_SRAM_CODE_MSIZE, 0x00008000
.set CYREG_SRAM_CODE_MBASE, 0x1fffc000
.set CYREG_SRAM_CODE_MSIZE, 0x00004000
.set CYREG_SRAM_DATA_MBASE, 0x20000000
.set CYREG_SRAM_DATA_MSIZE, 0x00008000
.set CYREG_SRAM_DATA_MSIZE, 0x00004000
.set CYREG_SRAM_DATA16K_MBASE, 0x20001000
.set CYREG_SRAM_DATA16K_MSIZE, 0x00001000
.set CYREG_SRAM_DATA32K_MBASE, 0x20002000
@ -5329,7 +5329,6 @@
.set CYDEV_ECC_BASE, CYDEV_FLSECC_BASE
.set CYDEV_FLS_SECTOR_SIZE, 0x00010000
.set CYDEV_FLS_ROW_SIZE, 0x00000100
.set CYDEV_ALLOCATE_EEPROM, 0x00000001
.set CYDEV_ECC_SECTOR_SIZE, 0x00002000
.set CYDEV_ECC_ROW_SIZE, 0x00000020
.set CYDEV_EEPROM_SECTOR_SIZE, 0x00000400

View File

@ -14,21 +14,21 @@
;-------------------------------------------------------------------------------
#define CYDEV_FLASH_BASE 0x00000000
#define CYDEV_FLASH_SIZE 0x00040000
#define CYDEV_FLASH_SIZE 0x00020000
#define CYDEV_FLASH_DATA_MBASE 0x00000000
#define CYDEV_FLASH_DATA_MSIZE 0x00040000
#define CYDEV_SRAM_BASE 0x1fff8000
#define CYDEV_SRAM_SIZE 0x00010000
#define CYDEV_FLASH_DATA_MSIZE 0x00020000
#define CYDEV_SRAM_BASE 0x1fffc000
#define CYDEV_SRAM_SIZE 0x00008000
#define CYDEV_SRAM_CODE64K_MBASE 0x1fff8000
#define CYDEV_SRAM_CODE64K_MSIZE 0x00004000
#define CYDEV_SRAM_CODE32K_MBASE 0x1fffc000
#define CYDEV_SRAM_CODE32K_MSIZE 0x00002000
#define CYDEV_SRAM_CODE16K_MBASE 0x1fffe000
#define CYDEV_SRAM_CODE16K_MSIZE 0x00001000
#define CYDEV_SRAM_CODE_MBASE 0x1fff8000
#define CYDEV_SRAM_CODE_MSIZE 0x00008000
#define CYDEV_SRAM_CODE_MBASE 0x1fffc000
#define CYDEV_SRAM_CODE_MSIZE 0x00004000
#define CYDEV_SRAM_DATA_MBASE 0x20000000
#define CYDEV_SRAM_DATA_MSIZE 0x00008000
#define CYDEV_SRAM_DATA_MSIZE 0x00004000
#define CYDEV_SRAM_DATA16K_MBASE 0x20001000
#define CYDEV_SRAM_DATA16K_MSIZE 0x00001000
#define CYDEV_SRAM_DATA32K_MBASE 0x20002000
@ -5328,7 +5328,6 @@
#define CYDEV_ECC_BASE CYDEV_FLSECC_BASE
#define CYDEV_FLS_SECTOR_SIZE 0x00010000
#define CYDEV_FLS_ROW_SIZE 0x00000100
#define CYDEV_ALLOCATE_EEPROM 0x00000001
#define CYDEV_ECC_SECTOR_SIZE 0x00002000
#define CYDEV_ECC_ROW_SIZE 0x00000020
#define CYDEV_EEPROM_SECTOR_SIZE 0x00000400

View File

@ -14,21 +14,21 @@
;-------------------------------------------------------------------------------
#define CYDEV_FLASH_BASE 0x00000000
#define CYDEV_FLASH_SIZE 0x00040000
#define CYDEV_FLASH_SIZE 0x00020000
#define CYREG_FLASH_DATA_MBASE 0x00000000
#define CYREG_FLASH_DATA_MSIZE 0x00040000
#define CYDEV_SRAM_BASE 0x1fff8000
#define CYDEV_SRAM_SIZE 0x00010000
#define CYREG_FLASH_DATA_MSIZE 0x00020000
#define CYDEV_SRAM_BASE 0x1fffc000
#define CYDEV_SRAM_SIZE 0x00008000
#define CYREG_SRAM_CODE64K_MBASE 0x1fff8000
#define CYREG_SRAM_CODE64K_MSIZE 0x00004000
#define CYREG_SRAM_CODE32K_MBASE 0x1fffc000
#define CYREG_SRAM_CODE32K_MSIZE 0x00002000
#define CYREG_SRAM_CODE16K_MBASE 0x1fffe000
#define CYREG_SRAM_CODE16K_MSIZE 0x00001000
#define CYREG_SRAM_CODE_MBASE 0x1fff8000
#define CYREG_SRAM_CODE_MSIZE 0x00008000
#define CYREG_SRAM_CODE_MBASE 0x1fffc000
#define CYREG_SRAM_CODE_MSIZE 0x00004000
#define CYREG_SRAM_DATA_MBASE 0x20000000
#define CYREG_SRAM_DATA_MSIZE 0x00008000
#define CYREG_SRAM_DATA_MSIZE 0x00004000
#define CYREG_SRAM_DATA16K_MBASE 0x20001000
#define CYREG_SRAM_DATA16K_MSIZE 0x00001000
#define CYREG_SRAM_DATA32K_MBASE 0x20002000
@ -5328,7 +5328,6 @@
#define CYDEV_ECC_BASE CYDEV_FLSECC_BASE
#define CYDEV_FLS_SECTOR_SIZE 0x00010000
#define CYDEV_FLS_ROW_SIZE 0x00000100
#define CYDEV_ALLOCATE_EEPROM 0x00000001
#define CYDEV_ECC_SECTOR_SIZE 0x00002000
#define CYDEV_ECC_ROW_SIZE 0x00000020
#define CYDEV_EEPROM_SECTOR_SIZE 0x00000400

View File

@ -17,19 +17,19 @@
CYDEV_FLASH_BASE EQU 0x00000000
ENDIF
IF :LNOT::DEF:CYDEV_FLASH_SIZE
CYDEV_FLASH_SIZE EQU 0x00040000
CYDEV_FLASH_SIZE EQU 0x00020000
ENDIF
IF :LNOT::DEF:CYDEV_FLASH_DATA_MBASE
CYDEV_FLASH_DATA_MBASE EQU 0x00000000
ENDIF
IF :LNOT::DEF:CYDEV_FLASH_DATA_MSIZE
CYDEV_FLASH_DATA_MSIZE EQU 0x00040000
CYDEV_FLASH_DATA_MSIZE EQU 0x00020000
ENDIF
IF :LNOT::DEF:CYDEV_SRAM_BASE
CYDEV_SRAM_BASE EQU 0x1fff8000
CYDEV_SRAM_BASE EQU 0x1fffc000
ENDIF
IF :LNOT::DEF:CYDEV_SRAM_SIZE
CYDEV_SRAM_SIZE EQU 0x00010000
CYDEV_SRAM_SIZE EQU 0x00008000
ENDIF
IF :LNOT::DEF:CYDEV_SRAM_CODE64K_MBASE
CYDEV_SRAM_CODE64K_MBASE EQU 0x1fff8000
@ -50,16 +50,16 @@ CYDEV_SRAM_CODE16K_MBASE EQU 0x1fffe000
CYDEV_SRAM_CODE16K_MSIZE EQU 0x00001000
ENDIF
IF :LNOT::DEF:CYDEV_SRAM_CODE_MBASE
CYDEV_SRAM_CODE_MBASE EQU 0x1fff8000
CYDEV_SRAM_CODE_MBASE EQU 0x1fffc000
ENDIF
IF :LNOT::DEF:CYDEV_SRAM_CODE_MSIZE
CYDEV_SRAM_CODE_MSIZE EQU 0x00008000
CYDEV_SRAM_CODE_MSIZE EQU 0x00004000
ENDIF
IF :LNOT::DEF:CYDEV_SRAM_DATA_MBASE
CYDEV_SRAM_DATA_MBASE EQU 0x20000000
ENDIF
IF :LNOT::DEF:CYDEV_SRAM_DATA_MSIZE
CYDEV_SRAM_DATA_MSIZE EQU 0x00008000
CYDEV_SRAM_DATA_MSIZE EQU 0x00004000
ENDIF
IF :LNOT::DEF:CYDEV_SRAM_DATA16K_MBASE
CYDEV_SRAM_DATA16K_MBASE EQU 0x20001000
@ -15957,9 +15957,6 @@ CYDEV_FLS_SECTOR_SIZE EQU 0x00010000
ENDIF
IF :LNOT::DEF:CYDEV_FLS_ROW_SIZE
CYDEV_FLS_ROW_SIZE EQU 0x00000100
ENDIF
IF :LNOT::DEF:CYDEV_ALLOCATE_EEPROM
CYDEV_ALLOCATE_EEPROM EQU 0x00000001
ENDIF
IF :LNOT::DEF:CYDEV_ECC_SECTOR_SIZE
CYDEV_ECC_SECTOR_SIZE EQU 0x00002000

View File

@ -17,19 +17,19 @@
CYDEV_FLASH_BASE EQU 0x00000000
ENDIF
IF :LNOT::DEF:CYDEV_FLASH_SIZE
CYDEV_FLASH_SIZE EQU 0x00040000
CYDEV_FLASH_SIZE EQU 0x00020000
ENDIF
IF :LNOT::DEF:CYREG_FLASH_DATA_MBASE
CYREG_FLASH_DATA_MBASE EQU 0x00000000
ENDIF
IF :LNOT::DEF:CYREG_FLASH_DATA_MSIZE
CYREG_FLASH_DATA_MSIZE EQU 0x00040000
CYREG_FLASH_DATA_MSIZE EQU 0x00020000
ENDIF
IF :LNOT::DEF:CYDEV_SRAM_BASE
CYDEV_SRAM_BASE EQU 0x1fff8000
CYDEV_SRAM_BASE EQU 0x1fffc000
ENDIF
IF :LNOT::DEF:CYDEV_SRAM_SIZE
CYDEV_SRAM_SIZE EQU 0x00010000
CYDEV_SRAM_SIZE EQU 0x00008000
ENDIF
IF :LNOT::DEF:CYREG_SRAM_CODE64K_MBASE
CYREG_SRAM_CODE64K_MBASE EQU 0x1fff8000
@ -50,16 +50,16 @@ CYREG_SRAM_CODE16K_MBASE EQU 0x1fffe000
CYREG_SRAM_CODE16K_MSIZE EQU 0x00001000
ENDIF
IF :LNOT::DEF:CYREG_SRAM_CODE_MBASE
CYREG_SRAM_CODE_MBASE EQU 0x1fff8000
CYREG_SRAM_CODE_MBASE EQU 0x1fffc000
ENDIF
IF :LNOT::DEF:CYREG_SRAM_CODE_MSIZE
CYREG_SRAM_CODE_MSIZE EQU 0x00008000
CYREG_SRAM_CODE_MSIZE EQU 0x00004000
ENDIF
IF :LNOT::DEF:CYREG_SRAM_DATA_MBASE
CYREG_SRAM_DATA_MBASE EQU 0x20000000
ENDIF
IF :LNOT::DEF:CYREG_SRAM_DATA_MSIZE
CYREG_SRAM_DATA_MSIZE EQU 0x00008000
CYREG_SRAM_DATA_MSIZE EQU 0x00004000
ENDIF
IF :LNOT::DEF:CYREG_SRAM_DATA16K_MBASE
CYREG_SRAM_DATA16K_MBASE EQU 0x20001000
@ -15957,9 +15957,6 @@ CYDEV_FLS_SECTOR_SIZE EQU 0x00010000
ENDIF
IF :LNOT::DEF:CYDEV_FLS_ROW_SIZE
CYDEV_FLS_ROW_SIZE EQU 0x00000100
ENDIF
IF :LNOT::DEF:CYDEV_ALLOCATE_EEPROM
CYDEV_ALLOCATE_EEPROM EQU 0x00000001
ENDIF
IF :LNOT::DEF:CYDEV_ECC_SECTOR_SIZE
CYDEV_ECC_SECTOR_SIZE EQU 0x00002000

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -19,609 +19,17 @@
#if defined(__GNUC__) || defined(__ARMCC_VERSION)
__attribute__ ((__section__(".cyconfigecc"), used))
__attribute__ ((__section__(".cyloadablemeta"), used))
#elif defined(__ICCARM__)
#pragma location=".cyconfigecc"
#pragma location=".cyloadablemeta"
#else
#error "Unsupported toolchain"
#endif
const uint8 cy_meta_configecc[] = {
0x02u, 0x45u, 0x00u, 0x40u, 0x08u, 0x52u, 0x00u, 0x40u,
0x02u, 0x64u, 0x00u, 0x40u, 0x45u, 0x00u, 0x01u, 0x40u,
0x32u, 0x01u, 0x01u, 0x40u, 0x44u, 0x02u, 0x01u, 0x40u,
0x54u, 0x03u, 0x01u, 0x40u, 0x3Du, 0x04u, 0x01u, 0x40u,
0x5Bu, 0x05u, 0x01u, 0x40u, 0x0Bu, 0x06u, 0x01u, 0x40u,
0x4Eu, 0x07u, 0x01u, 0x40u, 0x10u, 0x09u, 0x01u, 0x40u,
0x3Cu, 0x0Au, 0x01u, 0x40u, 0x3Fu, 0x0Bu, 0x01u, 0x40u,
0x0Au, 0x0Du, 0x01u, 0x40u, 0x02u, 0x0Fu, 0x01u, 0x40u,
0x03u, 0x15u, 0x01u, 0x40u, 0x48u, 0x16u, 0x01u, 0x40u,
0x43u, 0x17u, 0x01u, 0x40u, 0x03u, 0x19u, 0x01u, 0x40u,
0x02u, 0x1Bu, 0x01u, 0x40u, 0x07u, 0x40u, 0x01u, 0x40u,
0x10u, 0x41u, 0x01u, 0x40u, 0x08u, 0x42u, 0x01u, 0x40u,
0x05u, 0x43u, 0x01u, 0x40u, 0x08u, 0x44u, 0x01u, 0x40u,
0x13u, 0x45u, 0x01u, 0x40u, 0x06u, 0x46u, 0x01u, 0x40u,
0x01u, 0x47u, 0x01u, 0x40u, 0x08u, 0x48u, 0x01u, 0x40u,
0x09u, 0x49u, 0x01u, 0x40u, 0x06u, 0x50u, 0x01u, 0x40u,
0x36u, 0x02u, 0x65u, 0x02u, 0x00u, 0xC9u, 0x01u, 0x9Cu,
0x18u, 0x08u, 0x19u, 0x04u, 0x1Cu, 0xE1u, 0x21u, 0x04u,
0x30u, 0x04u, 0x31u, 0x08u, 0x34u, 0x03u, 0x82u, 0x0Fu,
0x01u, 0x40u, 0x06u, 0x0Cu, 0x07u, 0x18u, 0x0Au, 0x60u,
0x0Cu, 0x02u, 0x0Fu, 0x20u, 0x10u, 0x90u, 0x12u, 0x48u,
0x14u, 0x90u, 0x16u, 0x24u, 0x17u, 0x24u, 0x19u, 0x24u,
0x1Au, 0x10u, 0x1Bu, 0x09u, 0x1Fu, 0x03u, 0x23u, 0x04u,
0x26u, 0x80u, 0x2Au, 0x90u, 0x2Cu, 0x01u, 0x2Du, 0x24u,
0x2Fu, 0x12u, 0x30u, 0x01u, 0x31u, 0x40u, 0x32u, 0x1Cu,
0x33u, 0x38u, 0x34u, 0xE0u, 0x36u, 0x02u, 0x37u, 0x07u,
0x3Eu, 0x41u, 0x3Fu, 0x01u, 0x58u, 0x04u, 0x59u, 0x04u,
0x5Bu, 0x04u, 0x5Cu, 0x99u, 0x5Fu, 0x01u, 0x85u, 0x01u,
0x87u, 0x2Cu, 0x88u, 0x08u, 0x89u, 0x32u, 0x8Bu, 0x01u,
0x8Fu, 0x08u, 0x90u, 0x04u, 0x92u, 0x02u, 0x96u, 0x03u,
0x97u, 0x40u, 0x98u, 0x04u, 0x99u, 0x06u, 0x9Au, 0x01u,
0x9Eu, 0x04u, 0xA0u, 0x08u, 0xA4u, 0x08u, 0xA5u, 0x01u,
0xA7u, 0x1Au, 0xAAu, 0x04u, 0xABu, 0x40u, 0xACu, 0x08u,
0xB2u, 0x07u, 0xB3u, 0x07u, 0xB4u, 0x08u, 0xB5u, 0x40u,
0xB7u, 0x38u, 0xB8u, 0x20u, 0xB9u, 0x08u, 0xBEu, 0x10u,
0xBFu, 0x10u, 0xD8u, 0x04u, 0xD9u, 0x0Bu, 0xDCu, 0x99u,
0xDFu, 0x01u, 0x01u, 0x28u, 0x03u, 0x02u, 0x05u, 0x10u,
0x0Au, 0x78u, 0x0Cu, 0x80u, 0x0Du, 0x10u, 0x0Eu, 0x60u,
0x12u, 0x0Cu, 0x13u, 0x48u, 0x14u, 0x90u, 0x16u, 0x04u,
0x17u, 0x40u, 0x18u, 0x40u, 0x19u, 0xA8u, 0x1Bu, 0x20u,
0x1Eu, 0x20u, 0x1Fu, 0x14u, 0x21u, 0x84u, 0x22u, 0x01u,
0x25u, 0x40u, 0x27u, 0x14u, 0x29u, 0x01u, 0x2Bu, 0x01u,
0x2Eu, 0x14u, 0x31u, 0x80u, 0x32u, 0x18u, 0x36u, 0x08u,
0x37u, 0x10u, 0x39u, 0x48u, 0x3Au, 0x08u, 0x3Bu, 0x01u,
0x3Du, 0x80u, 0x3Fu, 0x14u, 0x69u, 0x80u, 0x6Bu, 0x01u,
0x7Eu, 0x80u, 0x81u, 0x80u, 0x83u, 0x04u, 0x85u, 0x40u,
0x8Bu, 0x10u, 0x8Fu, 0x01u, 0xC0u, 0x47u, 0xC2u, 0xFEu,
0xC4u, 0xF7u, 0xCAu, 0x69u, 0xCCu, 0x6Eu, 0xCEu, 0x7Bu,
0xDEu, 0x80u, 0xE0u, 0x01u, 0xE2u, 0x20u, 0x04u, 0x0Fu,
0x05u, 0x55u, 0x06u, 0xF0u, 0x07u, 0xAAu, 0x0Bu, 0xFFu,
0x0Eu, 0xFFu, 0x10u, 0xFFu, 0x13u, 0xFFu, 0x15u, 0x0Fu,
0x16u, 0xFFu, 0x17u, 0xF0u, 0x1Du, 0x69u, 0x1Fu, 0x96u,
0x24u, 0x33u, 0x25u, 0x33u, 0x26u, 0xCCu, 0x27u, 0xCCu,
0x28u, 0x55u, 0x2Au, 0xAAu, 0x2Bu, 0xFFu, 0x2Cu, 0x96u,
0x2Eu, 0x69u, 0x31u, 0xFFu, 0x34u, 0xFFu, 0x3Eu, 0x10u,
0x3Fu, 0x01u, 0x56u, 0x02u, 0x57u, 0x2Cu, 0x58u, 0x04u,
0x59u, 0x04u, 0x5Bu, 0x0Bu, 0x5Du, 0x90u, 0x5Fu, 0x01u,
0x84u, 0x38u, 0x85u, 0x10u, 0x8Au, 0x45u, 0x8Eu, 0x38u,
0x90u, 0x07u, 0x92u, 0x40u, 0x94u, 0x06u, 0x96u, 0x40u,
0x98u, 0x08u, 0x9Cu, 0x02u, 0x9Du, 0x03u, 0x9Fu, 0x0Cu,
0xA0u, 0x02u, 0xA1u, 0x05u, 0xA3u, 0x0Au, 0xA6u, 0x10u,
0xA8u, 0x20u, 0xA9u, 0x06u, 0xABu, 0x09u, 0xACu, 0x01u,
0xAEu, 0x02u, 0xB0u, 0x07u, 0xB1u, 0x0Fu, 0xB2u, 0x40u,
0xB5u, 0x10u, 0xB6u, 0x38u, 0xBEu, 0x44u, 0xBFu, 0x11u,
0xD4u, 0x40u, 0xD8u, 0x04u, 0xD9u, 0x04u, 0xDBu, 0x0Bu,
0xDCu, 0x09u, 0xDDu, 0x90u, 0xDFu, 0x01u, 0x02u, 0x0Au,
0x03u, 0x10u, 0x05u, 0x08u, 0x07u, 0x01u, 0x0Au, 0x64u,
0x0Bu, 0x02u, 0x0Cu, 0x02u, 0x0Eu, 0x20u, 0x10u, 0x01u,
0x12u, 0x40u, 0x13u, 0x14u, 0x15u, 0x04u, 0x16u, 0x08u,
0x17u, 0x80u, 0x1Au, 0x50u, 0x1Bu, 0x41u, 0x1Du, 0x10u,
0x20u, 0x04u, 0x23u, 0x80u, 0x27u, 0x40u, 0x28u, 0x40u,
0x29u, 0x20u, 0x2Du, 0x04u, 0x2Fu, 0x24u, 0x31u, 0x80u,
0x35u, 0x08u, 0x37u, 0x81u, 0x3Au, 0x04u, 0x3Cu, 0x20u,
0x3Eu, 0x08u, 0x61u, 0x20u, 0x63u, 0x21u, 0x67u, 0x80u,
0x6Cu, 0x20u, 0x6Du, 0x91u, 0x6Fu, 0x02u, 0x76u, 0x02u,
0x77u, 0x02u, 0x78u, 0x02u, 0x7Au, 0x03u, 0x7Eu, 0x80u,
0x81u, 0x20u, 0x82u, 0x04u, 0x83u, 0x40u, 0x84u, 0x80u,
0x86u, 0x10u, 0x88u, 0x10u, 0x8Eu, 0x40u, 0x90u, 0x40u,
0x91u, 0x80u, 0x92u, 0x02u, 0x93u, 0x08u, 0x95u, 0x60u,
0x96u, 0x6Cu, 0x97u, 0x14u, 0x98u, 0x01u, 0x99u, 0x88u,
0x9Au, 0x08u, 0x9Bu, 0x11u, 0x9Cu, 0x90u, 0x9Du, 0x11u,
0x9Fu, 0x48u, 0xA1u, 0x80u, 0xA2u, 0x10u, 0xA3u, 0x20u,
0xA4u, 0x80u, 0xA6u, 0x88u, 0xA7u, 0x01u, 0xAFu, 0x01u,
0xB0u, 0x01u, 0xB3u, 0x40u, 0xB7u, 0x02u, 0xC0u, 0xA7u,
0xC2u, 0x3Fu, 0xC4u, 0xEFu, 0xCAu, 0x65u, 0xCCu, 0xD8u,
0xCEu, 0x62u, 0xD8u, 0x8Eu, 0xDEu, 0x81u, 0xE2u, 0x01u,
0xE4u, 0x08u, 0xE6u, 0x03u, 0xE8u, 0x02u, 0x00u, 0x03u,
0x0Au, 0x01u, 0x0Fu, 0x08u, 0x15u, 0x28u, 0x17u, 0x44u,
0x19u, 0x2Cu, 0x1Bu, 0x81u, 0x1Eu, 0x03u, 0x1Fu, 0x03u,
0x20u, 0x03u, 0x24u, 0x03u, 0x27u, 0x80u, 0x28u, 0x03u,
0x2Bu, 0x04u, 0x2Du, 0xD4u, 0x2Fu, 0x22u, 0x30u, 0x02u,
0x33u, 0xE0u, 0x34u, 0x01u, 0x35u, 0x18u, 0x36u, 0x02u,
0x37u, 0x07u, 0x3Bu, 0x30u, 0x3Eu, 0x51u, 0x40u, 0x64u,
0x41u, 0x02u, 0x42u, 0x30u, 0x45u, 0xE2u, 0x46u, 0x0Du,
0x47u, 0xCFu, 0x48u, 0x37u, 0x49u, 0xFFu, 0x4Au, 0xFFu,
0x4Bu, 0xFFu, 0x4Fu, 0x2Cu, 0x56u, 0x01u, 0x58u, 0x04u,
0x59u, 0x04u, 0x5Au, 0x04u, 0x5Bu, 0x04u, 0x5Cu, 0x90u,
0x5Du, 0x09u, 0x5Fu, 0x01u, 0x62u, 0xC0u, 0x66u, 0x80u,
0x68u, 0x40u, 0x69u, 0x40u, 0x6Eu, 0x08u, 0x88u, 0x01u,
0x8Au, 0x06u, 0x94u, 0x05u, 0x96u, 0x02u, 0x98u, 0x03u,
0x9Au, 0x04u, 0x9Cu, 0x04u, 0x9Eu, 0x03u, 0xB6u, 0x07u,
0xBAu, 0x80u, 0xD8u, 0x0Bu, 0xDCu, 0x09u, 0xDFu, 0x01u,
0x01u, 0x01u, 0x02u, 0x04u, 0x05u, 0x10u, 0x09u, 0x40u,
0x0Eu, 0x01u, 0x0Fu, 0x14u, 0x10u, 0x20u, 0x11u, 0x10u,
0x13u, 0x02u, 0x19u, 0x42u, 0x1Bu, 0x10u, 0x1Eu, 0x01u,
0x1Fu, 0x40u, 0x21u, 0x10u, 0x22u, 0x58u, 0x23u, 0x20u,
0x29u, 0x04u, 0x2Au, 0x20u, 0x2Bu, 0x01u, 0x30u, 0x40u,
0x32u, 0x58u, 0x39u, 0x80u, 0x41u, 0x10u, 0x42u, 0x50u,
0x48u, 0x40u, 0x49u, 0x04u, 0x4Au, 0x08u, 0x51u, 0x08u,
0x52u, 0x40u, 0x53u, 0x01u, 0x59u, 0xA8u, 0x5Au, 0x02u,
0x60u, 0x64u, 0x61u, 0x80u, 0x69u, 0x40u, 0x6Au, 0x08u,
0x6Bu, 0x88u, 0x70u, 0x90u, 0x71u, 0x01u, 0x72u, 0x20u,
0x7Eu, 0x80u, 0x81u, 0x08u, 0x83u, 0x01u, 0x85u, 0x80u,
0x88u, 0x20u, 0x89u, 0x10u, 0x8Cu, 0x10u, 0x8Eu, 0x40u,
0x90u, 0x44u, 0x91u, 0x91u, 0x92u, 0x52u, 0x95u, 0x60u,
0x96u, 0x2Cu, 0x97u, 0x97u, 0x99u, 0x80u, 0x9Au, 0x02u,
0x9Bu, 0x02u, 0x9Cu, 0x42u, 0x9Du, 0x01u, 0x9Eu, 0x40u,
0x9Fu, 0x08u, 0xA0u, 0x20u, 0xA1u, 0x40u, 0xA3u, 0x23u,
0xA4u, 0x90u, 0xA5u, 0x20u, 0xA6u, 0x89u, 0xA7u, 0x10u,
0xABu, 0x80u, 0xAFu, 0x20u, 0xB0u, 0x12u, 0xB5u, 0x08u,
0xB6u, 0x08u, 0xC0u, 0x4Au, 0xC2u, 0xE1u, 0xC4u, 0x0Eu,
0xCAu, 0x0Eu, 0xCCu, 0x0Eu, 0xCEu, 0x08u, 0xD0u, 0x07u,
0xD2u, 0x04u, 0xD6u, 0x0Fu, 0xD8u, 0x0Fu, 0xDEu, 0x80u,
0xE0u, 0x01u, 0xE2u, 0x10u, 0xE4u, 0x04u, 0xE6u, 0x02u,
0xE8u, 0x01u, 0xEAu, 0x50u, 0xEEu, 0x80u, 0x10u, 0x04u,
0x12u, 0x02u, 0x16u, 0x03u, 0x18u, 0x04u, 0x1Au, 0x01u,
0x2Au, 0x04u, 0x2Eu, 0x04u, 0x32u, 0x07u, 0x58u, 0x04u,
0x5Cu, 0x09u, 0x5Fu, 0x01u, 0x00u, 0x08u, 0x01u, 0x01u,
0x03u, 0x0Au, 0x09u, 0x08u, 0x0Au, 0x84u, 0x0Du, 0x10u,
0x0Eu, 0x60u, 0x10u, 0x22u, 0x11u, 0x12u, 0x13u, 0x02u,
0x17u, 0xA0u, 0x18u, 0x20u, 0x1Cu, 0x20u, 0x1Eu, 0x20u,
0x20u, 0x40u, 0x21u, 0x04u, 0x22u, 0x40u, 0x2Au, 0x82u,
0x2Bu, 0x16u, 0x30u, 0x22u, 0x31u, 0x08u, 0x32u, 0x40u,
0x38u, 0x60u, 0x39u, 0x01u, 0x3Bu, 0x04u, 0x41u, 0x08u,
0x42u, 0x04u, 0x43u, 0x01u, 0x48u, 0x04u, 0x49u, 0x48u,
0x50u, 0x42u, 0x51u, 0x20u, 0x52u, 0x45u, 0x58u, 0x80u,
0x60u, 0x02u, 0x62u, 0x80u, 0x78u, 0x02u, 0x91u, 0x31u,
0x92u, 0x40u, 0x96u, 0x04u, 0x97u, 0x14u, 0x98u, 0x80u,
0x99u, 0x42u, 0x9Au, 0x02u, 0x9Bu, 0xA2u, 0x9Cu, 0x02u,
0x9Du, 0x10u, 0x9Eu, 0x04u, 0xA0u, 0x20u, 0xA1u, 0x40u,
0xA3u, 0x02u, 0xA4u, 0x10u, 0xA5u, 0x20u, 0xA6u, 0x81u,
0xA8u, 0x80u, 0xA9u, 0x08u, 0xAAu, 0x04u, 0xABu, 0x01u,
0xACu, 0x50u, 0xADu, 0x20u, 0xB2u, 0x40u, 0xB5u, 0x40u,
0xB6u, 0x08u, 0xB7u, 0x20u, 0xC0u, 0x0Fu, 0xC2u, 0x7Eu,
0xC4u, 0xCFu, 0xCAu, 0x0Fu, 0xCCu, 0x0Fu, 0xCEu, 0x0Fu,
0xD0u, 0x07u, 0xD2u, 0x0Cu, 0xD6u, 0x08u, 0xD8u, 0x08u,
0xDEu, 0x01u, 0xE4u, 0x40u, 0xE8u, 0x0Au, 0xEEu, 0x07u,
0x8Eu, 0x01u, 0x9Eu, 0x41u, 0xA4u, 0x02u, 0xA8u, 0x41u,
0xABu, 0x08u, 0xAEu, 0x09u, 0xAFu, 0x82u, 0xB2u, 0x01u,
0xB4u, 0x41u, 0xB5u, 0x10u, 0xB6u, 0x20u, 0xB7u, 0x04u,
0xE4u, 0x40u, 0xE8u, 0x40u, 0xEAu, 0x01u, 0xECu, 0xD0u,
0x00u, 0x01u, 0x01u, 0x33u, 0x03u, 0xCCu, 0x08u, 0x02u,
0x0Fu, 0xFFu, 0x11u, 0x96u, 0x13u, 0x69u, 0x17u, 0xFFu,
0x1Du, 0x55u, 0x1Fu, 0xAAu, 0x21u, 0xFFu, 0x29u, 0x0Fu,
0x2Bu, 0xF0u, 0x34u, 0x01u, 0x35u, 0xFFu, 0x36u, 0x02u,
0x3Eu, 0x50u, 0x3Fu, 0x10u, 0x58u, 0x04u, 0x59u, 0x04u,
0x5Fu, 0x01u, 0x82u, 0x02u, 0x85u, 0x33u, 0x86u, 0x80u,
0x87u, 0xCCu, 0x88u, 0x80u, 0x8Au, 0x40u, 0x8Bu, 0xFFu,
0x8Eu, 0x08u, 0x91u, 0xFFu, 0x92u, 0x04u, 0x94u, 0x06u,
0x95u, 0x0Fu, 0x96u, 0x08u, 0x97u, 0xF0u, 0x98u, 0x80u,
0x9Au, 0x20u, 0x9Du, 0x55u, 0x9Eu, 0x60u, 0x9Fu, 0xAAu,
0xA0u, 0x02u, 0xA2u, 0x04u, 0xA4u, 0x10u, 0xA9u, 0x69u,
0xAAu, 0x80u, 0xABu, 0x96u, 0xACu, 0x01u, 0xADu, 0xFFu,
0xB0u, 0x01u, 0xB2u, 0x0Eu, 0xB4u, 0x10u, 0xB6u, 0xE0u,
0xB7u, 0xFFu, 0xBEu, 0x15u, 0xBFu, 0x40u, 0xD8u, 0x04u,
0xD9u, 0x04u, 0xDBu, 0x04u, 0xDCu, 0x09u, 0xDFu, 0x01u,
0x00u, 0x01u, 0x01u, 0x20u, 0x06u, 0x61u, 0x07u, 0x08u,
0x0Cu, 0x02u, 0x0Eu, 0x22u, 0x0Fu, 0x04u, 0x15u, 0x80u,
0x16u, 0x10u, 0x17u, 0x11u, 0x1Au, 0x0Au, 0x1Cu, 0x48u,
0x1Eu, 0x02u, 0x1Fu, 0x08u, 0x22u, 0x20u, 0x26u, 0x40u,
0x28u, 0x08u, 0x29u, 0x02u, 0x2Cu, 0x08u, 0x2Fu, 0x02u,
0x31u, 0x02u, 0x32u, 0x08u, 0x33u, 0x40u, 0x34u, 0x08u,
0x35u, 0x02u, 0x37u, 0x40u, 0x38u, 0x82u, 0x3Du, 0x20u,
0x3Fu, 0x08u, 0x5Du, 0x08u, 0x5Eu, 0x01u, 0x5Fu, 0xA0u,
0x6Eu, 0x20u, 0x6Fu, 0x01u, 0x81u, 0x28u, 0x83u, 0x20u,
0x84u, 0x04u, 0x8Au, 0x04u, 0x8Bu, 0x04u, 0x8Du, 0x40u,
0x8Fu, 0x10u, 0x98u, 0x08u, 0x99u, 0x02u, 0x9Au, 0x10u,
0x9Bu, 0x48u, 0xA0u, 0x08u, 0xA1u, 0x02u, 0xA6u, 0x61u,
0xA8u, 0x08u, 0xA9u, 0x02u, 0xB4u, 0x08u, 0xB7u, 0x40u,
0xC0u, 0xFAu, 0xC2u, 0xF0u, 0xC4u, 0xF0u, 0xCAu, 0x35u,
0xCCu, 0xDBu, 0xCEu, 0x69u, 0xD6u, 0xF0u, 0xE2u, 0x80u,
0xE4u, 0x60u, 0xE6u, 0x01u, 0xE8u, 0x50u, 0x82u, 0x01u,
0x85u, 0x02u, 0x86u, 0x30u, 0x8Au, 0x40u, 0x8Fu, 0x08u,
0xE2u, 0x23u, 0xE4u, 0x40u, 0xE8u, 0x02u, 0xEAu, 0x20u,
0xEEu, 0x60u, 0xE0u, 0x01u, 0xE6u, 0x10u, 0xA8u, 0x40u,
0xABu, 0x20u, 0xECu, 0x80u, 0x00u, 0xD0u, 0x04u, 0x24u,
0x06u, 0x43u, 0x08u, 0x11u, 0x0Au, 0x22u, 0x0Cu, 0xD0u,
0x10u, 0x20u, 0x12u, 0xD0u, 0x14u, 0x28u, 0x16u, 0x83u,
0x18u, 0xD0u, 0x1Eu, 0x0Cu, 0x20u, 0xD0u, 0x26u, 0x01u,
0x28u, 0xD0u, 0x2Eu, 0x02u, 0x30u, 0xF0u, 0x36u, 0x0Fu,
0x3Au, 0x02u, 0x58u, 0x0Bu, 0x5Cu, 0x09u, 0x5Fu, 0x01u,
0x80u, 0x38u, 0x81u, 0x46u, 0x84u, 0x43u, 0x85u, 0x39u,
0x86u, 0x3Cu, 0x87u, 0x06u, 0x88u, 0x48u, 0x8Au, 0x20u,
0x8Bu, 0x46u, 0x8Du, 0x04u, 0x8Fu, 0x20u, 0x90u, 0x38u,
0x94u, 0x61u, 0x95u, 0x01u, 0x96u, 0x1Eu, 0x97u, 0x5Eu,
0x98u, 0x23u, 0x99u, 0x42u, 0x9Au, 0x44u, 0x9Bu, 0x04u,
0x9Cu, 0x18u, 0x9Eu, 0x20u, 0xA0u, 0x10u, 0xA1u, 0x46u,
0xA4u, 0x28u, 0xA5u, 0x42u, 0xA6u, 0x10u, 0xA8u, 0x20u,
0xA9u, 0x77u, 0xAAu, 0x18u, 0xABu, 0x08u, 0xADu, 0x46u,
0xB1u, 0x08u, 0xB2u, 0x60u, 0xB3u, 0x70u, 0xB4u, 0x1Eu,
0xB5u, 0x0Fu, 0xB6u, 0x01u, 0xB9u, 0x20u, 0xBAu, 0x08u,
0xBBu, 0x0Cu, 0xBEu, 0x40u, 0xBFu, 0x01u, 0xD4u, 0x09u,
0xD8u, 0x0Bu, 0xD9u, 0x0Bu, 0xDBu, 0x0Bu, 0xDCu, 0x99u,
0xDDu, 0x90u, 0xDFu, 0x01u, 0x00u, 0x08u, 0x01u, 0x01u,
0x03u, 0x08u, 0x04u, 0x04u, 0x05u, 0x10u, 0x06u, 0x80u,
0x07u, 0x02u, 0x09u, 0x49u, 0x0Au, 0x04u, 0x0Cu, 0x20u,
0x0Eu, 0x42u, 0x0Fu, 0x10u, 0x10u, 0x20u, 0x11u, 0x10u,
0x12u, 0x40u, 0x15u, 0x19u, 0x16u, 0x01u, 0x19u, 0x54u,
0x1Au, 0x04u, 0x1Bu, 0x1Cu, 0x1Eu, 0x42u, 0x20u, 0x0Cu,
0x21u, 0x08u, 0x23u, 0x94u, 0x29u, 0x14u, 0x2Au, 0x02u,
0x2Bu, 0x02u, 0x30u, 0x20u, 0x31u, 0x08u, 0x38u, 0x80u,
0x39u, 0x11u, 0x3Bu, 0x04u, 0x59u, 0x0Au, 0x5Bu, 0xA0u,
0x61u, 0x40u, 0x78u, 0x02u, 0x7Eu, 0x80u, 0x8Bu, 0x01u,
0x90u, 0x80u, 0x91u, 0x19u, 0x96u, 0x04u, 0x97u, 0x14u,
0x98u, 0x02u, 0x99u, 0x0Au, 0x9Au, 0xC3u, 0x9Bu, 0x02u,
0x9Du, 0x10u, 0x9Fu, 0x01u, 0xA0u, 0x20u, 0xA1u, 0x41u,
0xA2u, 0x80u, 0xA3u, 0x02u, 0xA4u, 0x04u, 0xA5u, 0x08u,
0xA6u, 0x01u, 0xA7u, 0x1Cu, 0xC0u, 0xFEu, 0xC2u, 0xFFu,
0xC4u, 0xFEu, 0xCAu, 0x0Fu, 0xCCu, 0x06u, 0xCEu, 0x0Fu,
0xD6u, 0x0Fu, 0xD8u, 0x08u, 0xDEu, 0x81u, 0xE4u, 0x20u,
0xECu, 0x80u, 0xA4u, 0x02u, 0xB2u, 0x40u, 0xECu, 0x80u,
0xB0u, 0x02u, 0xECu, 0x80u, 0x58u, 0x10u, 0x80u, 0x80u,
0x86u, 0x80u, 0x88u, 0x10u, 0xD4u, 0x80u, 0xE2u, 0x40u,
0xE6u, 0x80u, 0x53u, 0x81u, 0x57u, 0x0Au, 0x59u, 0x04u,
0x5Cu, 0x02u, 0x60u, 0x08u, 0x64u, 0x80u, 0x81u, 0x04u,
0x82u, 0x40u, 0x84u, 0x08u, 0x98u, 0x80u, 0x9Au, 0x80u,
0xD4u, 0xE0u, 0xD6u, 0xE0u, 0xD8u, 0xC0u, 0xE2u, 0x20u,
0xE6u, 0x90u, 0x8Cu, 0x02u, 0x92u, 0x40u, 0x9Au, 0x80u,
0x9Cu, 0x02u, 0xAFu, 0x80u, 0xB3u, 0x02u, 0xB7u, 0x09u,
0xEEu, 0x10u, 0x23u, 0x08u, 0x8Fu, 0x08u, 0x92u, 0x40u,
0x9Au, 0x80u, 0xC8u, 0x10u, 0x0Cu, 0x01u, 0x51u, 0x02u,
0x54u, 0x20u, 0x80u, 0x20u, 0x8Cu, 0x40u, 0xC2u, 0x04u,
0xD4u, 0x03u, 0xE6u, 0x08u, 0x02u, 0x04u, 0x03u, 0x10u,
0x04u, 0x80u, 0x07u, 0x40u, 0x09u, 0x02u, 0x0Bu, 0x01u,
0x0Cu, 0x18u, 0x80u, 0x08u, 0x85u, 0x02u, 0x94u, 0x80u,
0x9Cu, 0x10u, 0x9Fu, 0x10u, 0xADu, 0x02u, 0xB0u, 0x11u,
0xB7u, 0x10u, 0xC0u, 0x0Fu, 0xC2u, 0x0Fu, 0xEAu, 0x04u,
0xEEu, 0x06u, 0x83u, 0x40u, 0x8Eu, 0x04u, 0x93u, 0x01u,
0x9Au, 0x04u, 0x9Bu, 0x40u, 0xE6u, 0x08u, 0xABu, 0x01u,
0x23u, 0x10u, 0x27u, 0x08u, 0x88u, 0x01u, 0x92u, 0x40u,
0x97u, 0x10u, 0x9Au, 0x80u, 0xB3u, 0x10u, 0xC8u, 0x60u,
0x08u, 0x01u, 0x56u, 0x80u, 0x5Au, 0x40u, 0x92u, 0x40u,
0x9Au, 0x80u, 0x9Cu, 0x01u, 0xB3u, 0x08u, 0xC2u, 0x10u,
0xD4u, 0xC0u, 0x01u, 0x01u, 0x09u, 0x01u, 0x0Bu, 0x01u,
0x0Du, 0x01u, 0x11u, 0x01u, 0x1Bu, 0x01u, 0x00u, 0x00u,
0xC0u, 0x01u, 0x02u, 0x00u, 0x00u, 0x08u, 0xFFu, 0x21u,
0x80u, 0x40u, 0x00u, 0x00u, 0x90u, 0x40u, 0x40u, 0x00u,
0x00u, 0x10u, 0x60u, 0x80u, 0x7Fu, 0x22u, 0x80u, 0x08u,
0x1Fu, 0x01u, 0x20u, 0x00u, 0x00u, 0x04u, 0x00u, 0x00u,
0xC0u, 0x01u, 0x01u, 0x00u, 0xC0u, 0x07u, 0x04u, 0x18u,
0xC0u, 0x01u, 0x08u, 0x00u, 0x00u, 0x01u, 0x9Fu, 0x00u,
0x00u, 0x3Fu, 0xFFu, 0x80u, 0x00u, 0x00u, 0x00u, 0x40u,
0x00u, 0x82u, 0x00u, 0x00u, 0x00u, 0x00u, 0x04u, 0x01u,
0x63u, 0x02u, 0x50u, 0x00u, 0x04u, 0x0Eu, 0xFCu, 0xBDu,
0x3Du, 0xFFu, 0xFFu, 0xFFu, 0x22u, 0x00u, 0xF0u, 0x08u,
0x04u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x08u, 0x00u,
0x04u, 0x0Bu, 0x0Bu, 0x04u, 0x90u, 0x99u, 0x00u, 0x01u,
0x00u, 0x00u, 0xC0u, 0x00u, 0x40u, 0x01u, 0x10u, 0x11u,
0xC0u, 0x01u, 0x00u, 0x11u, 0x40u, 0x01u, 0x40u, 0x01u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0xFFu, 0xFFu, 0x00u, 0xFFu, 0x00u, 0x00u, 0x00u,
0x08u, 0x00u, 0x30u, 0x00u, 0x08u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x10u, 0x00u, 0x00u, 0x00u, 0xFFu, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x01u, 0x02u, 0x00u, 0xF1u, 0x0Eu,
0x0Eu, 0x00u, 0x0Cu, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0xFCu, 0xFCu, 0x00u, 0x04u, 0x00u, 0x00u, 0x00u,
0x0Fu, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x01u,
0xF0u, 0x0Fu, 0x0Fu, 0x00u, 0x0Cu, 0x00u, 0x00u, 0x01u
};
#if defined(__GNUC__) || defined(__ARMCC_VERSION)
__attribute__ ((__section__(".cycustnvl"), used))
#elif defined(__ICCARM__)
#pragma location=".cycustnvl"
#else
#error "Unsupported toolchain"
#endif
const uint8 cy_meta_custnvl[] = {
0x00u, 0x00u, 0x40u, 0x05u
};
#if defined(__GNUC__) || defined(__ARMCC_VERSION)
__attribute__ ((__section__(".cywolatch"), used))
#elif defined(__ICCARM__)
#pragma location=".cywolatch"
#else
#error "Unsupported toolchain"
#endif
const uint8 cy_meta_wonvl[] = {
0xBCu, 0x90u, 0xACu, 0xAFu
};
#if defined(__GNUC__) || defined(__ARMCC_VERSION)
__attribute__ ((__section__(".cyeeprom"), used))
#elif defined(__ICCARM__)
#pragma location=".cyeeprom"
#else
#error "Unsupported toolchain"
#endif
const uint8 cy_eeprom[] = {
0x00u, 0x20u, 0x63u, 0x6Fu, 0x64u, 0x65u, 0x73u, 0x72u,
0x63u, 0x20u, 0x20u, 0x20u, 0x20u, 0x20u, 0x20u, 0x20u,
0x20u, 0x20u, 0x53u, 0x43u, 0x53u, 0x49u, 0x32u, 0x53u,
0x44u, 0x32u, 0x2Eu, 0x30u, 0x61u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x63u, 0x6Fu, 0x64u, 0x65u, 0x73u, 0x72u, 0x63u, 0x5Fu,
0x30u, 0x30u, 0x30u, 0x30u, 0x30u, 0x30u, 0x30u, 0x31u,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu
};
#if defined(__GNUC__) || defined(__ARMCC_VERSION)
__attribute__ ((__section__(".cyflashprotect"), used))
#elif defined(__ICCARM__)
#pragma location=".cyflashprotect"
#else
#error "Unsupported toolchain"
#endif
const uint8 cy_meta_flashprotect[] = {
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
const uint8 cy_meta_loadable[] = {
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x5Cu, 0xD1u, 0x01u, 0x00u,
0x01u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
@ -629,13 +37,12 @@ const uint8 cy_meta_flashprotect[] = {
};
#if defined(__GNUC__) || defined(__ARMCC_VERSION)
__attribute__ ((__section__(".cymeta"), used))
__attribute__ ((__section__(".cyconfigecc"), used))
#elif defined(__ICCARM__)
#pragma location=".cymeta"
#pragma location=".cyconfigecc"
#else
#error "Unsupported toolchain"
#endif
const uint8 cy_metadata[] = {
0x00u, 0x01u, 0x2Eu, 0x12u, 0xF0u, 0x69u, 0x00u, 0x01u,
0x00u, 0x00u, 0x00u, 0x00u
const uint8 cy_meta_configecc[] = {
0x00u
};

View File

@ -1,33 +0,0 @@
:400000000020636F646573726320202020202020202053435349325344322E30610000000000000000000000000000000000000000000000000000000000000000000000B1
:40004000636F64657372635F3030303030303031FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED
:40008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80
:4000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40
:40010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
:40014000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF
:40018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F
:4001C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F
:40020000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
:40024000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE
:40028000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E
:4002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E
:40030000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
:40034000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD
:40038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D
:4003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D
:40040000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC
:40044000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC
:40048000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C
:4004C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C
:40050000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB
:40054000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB
:40058000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B
:4005C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B
:40060000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA
:40064000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA
:40068000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A
:4006C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A
:40070000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9
:40074000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9
:40078000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79
:4007C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39
:00000001FF

View File

@ -20,16 +20,12 @@
#include <cyfitter.h>
#include <cydisabledsheets.h>
#include <SCSI_In_DBx_aliases.h>
#include <SCSI_In_DBx.h>
#include <SCSI_Out_DBx_aliases.h>
#include <SCSI_Out_DBx.h>
#include <SD_Clk_Ctl.h>
#include <SD_Data_Clk.h>
#include <SD_Init_Clk.h>
#include <SD_CD_aliases.h>
#include <SD_CD.h>
#include <SD_WP_aliases.h>
#include <SD_WP.h>
#include <SD_DAT2_aliases.h>
#include <SD_DAT2.h>
#include <SD_DAT1_aliases.h>
@ -56,6 +52,17 @@
#include <SDCard_PVT.h>
#include <SD_MISO_aliases.h>
#include <SD_MISO.h>
#include <USBFS_1.h>
#include <USBFS_1_audio.h>
#include <USBFS_1_cdc.h>
#include <USBFS_1_hid.h>
#include <USBFS_1_midi.h>
#include <USBFS_1_pvt.h>
#include <Bootloadable_1.h>
#include <USBFS_1_Dm_aliases.h>
#include <USBFS_1_Dm.h>
#include <USBFS_1_Dp_aliases.h>
#include <USBFS_1_Dp.h>
#include <core_cm3_psoc5.h>
#include <core_cm3.h>
#include <CyDmac.h>

View File

@ -1,5 +1,3 @@
:4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C0
:400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080
:400080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040
:4000C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
:00000001FF

118
software/SCSI2SD/SCSI2SD.cydsn/SCSI2SD.cycdx Normal file → Executable file
View File

@ -1,13 +1,91 @@
<?xml version="1.0" encoding="utf-8"?>
<blockRegMap version="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://cypress.com/xsd/cyblockregmap cyblockregmap.xsd" xmlns="http://cypress.com/xsd/cyblockregmap">
<block name="SD_MOSI" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Clock_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_RST" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_SCK" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_Out" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="CFG_EEPROM" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_ATN" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_RST_ISR" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Clock_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_CS" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="LED1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_SCK" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_MOSI" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_MISO" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="USBFS_1" BASE="0x0" SIZE="0x0" desc="USBFS" visible="true">
<block name="bus_reset" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ep_0" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="arb_int" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="USB" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="sof_int" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="dp_int" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Clock_vbus" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Dp" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ep_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Dm" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<register name="USBFS_1_PM_USB_CR0" address="0x40004394" bitWidth="8" desc="USB Power Mode Control Register 0">
<field name="fsusbio_ref_en" from="0" to="0" access="RW" resetVal="" desc="" />
<field name="fsusbio_pd_n" from="1" to="1" access="RW" resetVal="" desc="" />
<field name="fsusbio_pd_pullup_n" from="2" to="2" access="RW" resetVal="" desc="" />
</register>
<register name="USBFS_1_PM_ACT_CFG" address="0x400043A5" bitWidth="8" desc="Active Power Mode Configuration Register" />
<register name="USBFS_1_PM_STBY_CFG" address="0x400043B5" bitWidth="8" desc="Standby Power Mode Configuration Register" />
<register name="USBFS_1_PRT.PS" address="0x400051F1" bitWidth="8" desc="Port Pin State Register">
<field name="PinState_DP" from="6" to="6" access="R" resetVal="" desc="" />
<field name="PinState_DM" from="7" to="7" access="R" resetVal="" desc="" />
</register>
<register name="USBFS_1_PRT_DM0" address="0x400051F2" bitWidth="8" desc="Port Drive Mode Register">
<field name="DriveMode_DP" from="6" to="6" access="RW" resetVal="" desc="" />
<field name="DriveMode_DM" from="7" to="7" access="RW" resetVal="" desc="" />
</register>
<register name="USBFS_1_PRT_DM1" address="0x400051F3" bitWidth="8" desc="Port Drive Mode Register">
<field name="PullUp_en_DP" from="6" to="6" access="RW" resetVal="" desc="" />
<field name="PullUp_en_DM" from="7" to="7" access="RW" resetVal="" desc="" />
</register>
<register name="USBFS_1_PRT.INP_DIS" address="0x400051F8" bitWidth="8" desc="Input buffer disable override">
<field name="seinput_dis_dp" from="6" to="6" access="RW" resetVal="" desc="" />
<field name="seinput_dis_dm" from="7" to="7" access="RW" resetVal="" desc="" />
</register>
<register name="USBFS_1_EP0_DR0" address="0x40006000" bitWidth="8" desc="bmRequestType" />
<register name="USBFS_1_EP0_DR1" address="0x40006001" bitWidth="8" desc="bRequest" />
<register name="USBFS_1_EP0_DR2" address="0x40006002" bitWidth="8" desc="wValueLo" />
<register name="USBFS_1_EP0_DR3" address="0x40006003" bitWidth="8" desc="wValueHi" />
<register name="USBFS_1_EP0_DR4" address="0x40006004" bitWidth="8" desc="wIndexLo" />
<register name="USBFS_1_EP0_DR5" address="0x40006005" bitWidth="8" desc="wIndexHi" />
<register name="USBFS_1_EP0_DR6" address="0x40006006" bitWidth="8" desc="lengthLo" />
<register name="USBFS_1_EP0_DR7" address="0x40006007" bitWidth="8" desc="lengthHi" />
<register name="USBFS_1_CR0" address="0x40006008" bitWidth="8" desc="USB Control Register 0">
<field name="device_address" from="0" to="6" access="R" resetVal="" desc="" />
<field name="usb_enable" from="7" to="7" access="RW" resetVal="" desc="" />
</register>
<register name="USBFS_1_CR1" address="0x40006009" bitWidth="8" desc="USB Control Register 1">
<field name="reg_enable" from="0" to="0" access="RW" resetVal="" desc="" />
<field name="enable_lock" from="1" to="1" access="RW" resetVal="" desc="" />
<field name="bus_activity" from="2" to="2" access="RW" resetVal="" desc="" />
<field name="trim_offset_msb" from="3" to="3" access="RW" resetVal="" desc="" />
</register>
<register name="USBFS_1_SIE_EP1_CR0" address="0x4000600E" bitWidth="8" desc="The Endpoint1 Control Register" />
<register name="USBFS_1_USBIO_CR0" address="0x40006010" bitWidth="8" desc="USBIO Control Register 0">
<field name="rd" from="0" to="0" access="R" resetVal="" desc="" />
<field name="td" from="5" to="5" access="RW" resetVal="" desc="" />
<field name="tse0" from="6" to="6" access="RW" resetVal="" desc="" />
<field name="ten" from="7" to="7" access="RW" resetVal="" desc="" />
</register>
<register name="USBFS_1_USBIO_CR1" address="0x40006012" bitWidth="8" desc="USBIO Control Register 1">
<field name="dmo" from="0" to="0" access="R" resetVal="" desc="" />
<field name="dpo" from="1" to="1" access="R" resetVal="" desc="" />
<field name="usbpuen" from="2" to="2" access="RW" resetVal="" desc="" />
<field name="iomode" from="5" to="5" access="RW" resetVal="" desc="" />
</register>
<register name="USBFS_1_SIE_EP2_CR0" address="0x4000601E" bitWidth="8" desc="The Endpoint2 Control Register" />
<register name="USBFS_1_SIE_EP3_CR0" address="0x4000602E" bitWidth="8" desc="The Endpoint3 Control Register" />
<register name="USBFS_1_SIE_EP4_CR0" address="0x4000603E" bitWidth="8" desc="The Endpoint4 Control Register" />
<register name="USBFS_1_SIE_EP5_CR0" address="0x4000604E" bitWidth="8" desc="The Endpoint5 Control Register" />
<register name="USBFS_1_SIE_EP6_CR0" address="0x4000605E" bitWidth="8" desc="The Endpoint6 Control Register" />
<register name="USBFS_1_SIE_EP7_CR0" address="0x4000606E" bitWidth="8" desc="The Endpoint7 Control Register" />
<register name="USBFS_1_SIE_EP8_CR0" address="0x4000607E" bitWidth="8" desc="The Endpoint8 Control Register" />
<register name="USBFS_1_BUF_SIZE" address="0x4000608C" bitWidth="8" desc="Dedicated Endpoint Buffer Size Register" />
<register name="USBFS_1_EP_ACTIVE" address="0x4000608E" bitWidth="8" desc="Endpoint Active Indication Register" />
<register name="USBFS_1_EP_TYPE" address="0x4000608F" bitWidth="8" desc="Endpoint Type (IN/OUT) Indication" />
<register name="USBFS_1_USB_CLK_EN" address="0x4000609D" bitWidth="8" desc="USB Block Clock Enable Register" />
</block>
<block name="Bootloadable_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SDCard" BASE="0x0" SIZE="0x0" desc="" visible="true">
<block name="VirtualMux_3" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ZeroTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
@ -15,27 +93,25 @@
<block name="VirtualMux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="BSPIM" BASE="0x0" SIZE="0x0" desc="" visible="true" />
</block>
<block name="SD_MISO" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="scsiTarget" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_ATN" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_RST_ISR" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_ATN_ISR" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_Clk_mux" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="scsiTarget" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="LED1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_Data_Clk" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_Init_Clk" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_Clk_Ctl" BASE="0x0" SIZE="0x0" desc="" visible="true">
<register name="SD_Clk_Ctl_CONTROL_REG" address="0x4000647B" bitWidth="8" desc="" />
</block>
<block name="SD_CD" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_Clk_mux" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_In_DBx" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_Out_DBx" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_Overclock" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_CTL_IO" BASE="0x0" SIZE="0x0" desc="" visible="true">
<register name="SCSI_CTL_IO_CONTROL_REG" address="0x40006470" bitWidth="8" desc="" />
<block name="SD_Clk_Ctl" BASE="0x0" SIZE="0x0" desc="" visible="true">
<register name="SD_Clk_Ctl_CONTROL_REG" address="0x40006471" bitWidth="8" desc="" />
</block>
<block name="OddParityGen_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_In" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_DAT1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_CD" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_WP" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_Out" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="CFG_EEPROM" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="OddParityGen_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_DAT2" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_DAT1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_CTL_IO" BASE="0x0" SIZE="0x0" desc="" visible="true">
<register name="SCSI_CTL_IO_CONTROL_REG" address="0x40006472" bitWidth="8" desc="" />
</block>
</blockRegMap>

BIN
software/SCSI2SD/SCSI2SD.cydsn/SCSI2SD.cyfit Normal file → Executable file

Binary file not shown.

View File

@ -424,7 +424,7 @@
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SCSI_In_DBx.c" persistent=".\Generated_Source\PSoC5\SCSI_In_DBx.c">
<Hidden v="False" />
<Hidden v="True" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
@ -433,7 +433,7 @@
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SCSI_In_DBx.h" persistent=".\Generated_Source\PSoC5\SCSI_In_DBx.h">
<Hidden v="False" />
<Hidden v="True" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="NONE" />
<PropertyDeltas />
@ -463,7 +463,7 @@
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SCSI_Out_DBx.c" persistent=".\Generated_Source\PSoC5\SCSI_Out_DBx.c">
<Hidden v="False" />
<Hidden v="True" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
@ -472,7 +472,7 @@
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SCSI_Out_DBx.h" persistent=".\Generated_Source\PSoC5\SCSI_Out_DBx.h">
<Hidden v="False" />
<Hidden v="True" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="NONE" />
<PropertyDeltas />
@ -777,14 +777,14 @@
<CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFolder" version="2">
<CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtBaseContainer" version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SD_WP" persistent="">
<Hidden v="False" />
<Hidden v="True" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<CyGuid_0820c2e7-528d-4137-9a08-97257b946089 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItemList" version="2">
<dependencies>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SD_WP_aliases.h" persistent=".\Generated_Source\PSoC5\SD_WP_aliases.h">
<Hidden v="False" />
<Hidden v="True" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="NONE" />
<PropertyDeltas />
@ -793,7 +793,7 @@
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SD_WP.c" persistent=".\Generated_Source\PSoC5\SD_WP.c">
<Hidden v="False" />
<Hidden v="True" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
@ -802,7 +802,7 @@
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="SD_WP.h" persistent=".\Generated_Source\PSoC5\SD_WP.h">
<Hidden v="False" />
<Hidden v="True" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="NONE" />
<PropertyDeltas />
@ -1758,6 +1758,324 @@
</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>
<filters />
</CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0>
<CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFolder" version="2">
<CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtBaseContainer" version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1" persistent="">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<CyGuid_0820c2e7-528d-4137-9a08-97257b946089 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItemList" version="2">
<dependencies>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1.c" persistent=".\Generated_Source\PSoC5\USBFS_1.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1.h" persistent=".\Generated_Source\PSoC5\USBFS_1.h">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="NONE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_audio.c" persistent=".\Generated_Source\PSoC5\USBFS_1_audio.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_audio.h" persistent=".\Generated_Source\PSoC5\USBFS_1_audio.h">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="NONE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_boot.c" persistent=".\Generated_Source\PSoC5\USBFS_1_boot.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_cdc.c" persistent=".\Generated_Source\PSoC5\USBFS_1_cdc.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_cdc.h" persistent=".\Generated_Source\PSoC5\USBFS_1_cdc.h">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="NONE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_cls.c" persistent=".\Generated_Source\PSoC5\USBFS_1_cls.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_descr.c" persistent=".\Generated_Source\PSoC5\USBFS_1_descr.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_drv.c" persistent=".\Generated_Source\PSoC5\USBFS_1_drv.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_episr.c" persistent=".\Generated_Source\PSoC5\USBFS_1_episr.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_hid.c" persistent=".\Generated_Source\PSoC5\USBFS_1_hid.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_hid.h" persistent=".\Generated_Source\PSoC5\USBFS_1_hid.h">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="NONE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_pm.c" persistent=".\Generated_Source\PSoC5\USBFS_1_pm.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_std.c" persistent=".\Generated_Source\PSoC5\USBFS_1_std.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_vnd.c" persistent=".\Generated_Source\PSoC5\USBFS_1_vnd.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_cdc.inf" persistent=".\Generated_Source\PSoC5\USBFS_1_cdc.inf">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="NONE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_midi.c" persistent=".\Generated_Source\PSoC5\USBFS_1_midi.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_midi.h" persistent=".\Generated_Source\PSoC5\USBFS_1_midi.h">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="NONE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_pvt.h" persistent=".\Generated_Source\PSoC5\USBFS_1_pvt.h">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="NONE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
</dependencies>
</CyGuid_0820c2e7-528d-4137-9a08-97257b946089>
</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>
<filters />
</CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0>
<CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFolder" version="2">
<CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtBaseContainer" version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_Dm" persistent="">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<CyGuid_0820c2e7-528d-4137-9a08-97257b946089 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItemList" version="2">
<dependencies>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_Dm_aliases.h" persistent=".\Generated_Source\PSoC5\USBFS_1_Dm_aliases.h">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="NONE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_Dm.c" persistent=".\Generated_Source\PSoC5\USBFS_1_Dm.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_Dm.h" persistent=".\Generated_Source\PSoC5\USBFS_1_Dm.h">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="NONE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
</dependencies>
</CyGuid_0820c2e7-528d-4137-9a08-97257b946089>
</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>
<filters />
</CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0>
<CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFolder" version="2">
<CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtBaseContainer" version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_Dp" persistent="">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<CyGuid_0820c2e7-528d-4137-9a08-97257b946089 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItemList" version="2">
<dependencies>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_Dp_aliases.h" persistent=".\Generated_Source\PSoC5\USBFS_1_Dp_aliases.h">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="NONE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_Dp.c" persistent=".\Generated_Source\PSoC5\USBFS_1_Dp.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="USBFS_1_Dp.h" persistent=".\Generated_Source\PSoC5\USBFS_1_Dp.h">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="NONE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
</dependencies>
</CyGuid_0820c2e7-528d-4137-9a08-97257b946089>
</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>
<filters />
</CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="cybootloader.icf" persistent=".\Generated_Source\PSoC5\cybootloader.icf">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="NONE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="cybootloader.c" persistent=".\Generated_Source\PSoC5\cybootloader.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFolder" version="2">
<CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtBaseContainer" version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="Bootloadable_1" persistent="">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<CyGuid_0820c2e7-528d-4137-9a08-97257b946089 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItemList" version="2">
<dependencies>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="Bootloadable_1.c" persistent=".\Generated_Source\PSoC5\Bootloadable_1.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="ARM_C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
<CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileGenerated" version="1">
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFile" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItem" version="2" name="Bootloadable_1.h" persistent=".\Generated_Source\PSoC5\Bootloadable_1.h">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="NONE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</CyGuid_405e30c3-81d4-4133-98d6-c3ecf21fec0d>
</dependencies>
</CyGuid_0820c2e7-528d-4137-9a08-97257b946089>
</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>
<filters />
</CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0>
</dependencies>
</CyGuid_0820c2e7-528d-4137-9a08-97257b946089>
</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>
@ -1846,7 +2164,7 @@
<name_val_pair name="General@Skip Code Generation" v="False" />
<name_val_pair name="General@Custom Code Gen Options" v="" />
<name_val_pair name="General@Virtual Node Substitution" v="3" />
<name_val_pair name="General@Application Type" v="Normal" />
<name_val_pair name="General@Application Type" v="Bootloadable" />
<name_val_pair name="General@Custom Fitter Options" v="" />
</GlobalPages>
</GlobalTools>
@ -2016,7 +2334,7 @@
</CyGuid_49cfd574-032a-4a64-b7be-d4eeeaf25e43>
</CyGuid_60697ce6-dce2-4816-8680-4de0635742eb>
<top_block v="TopDesign" />
<selected_device v="CY8C5268AXI-LP047" />
<selected_device v="CY8C5267AXI-LP051" />
<CyGuid_495451fe-d201-4d01-b22d-5d3f5609ac37 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtComponentMgr" version="4" xml_contents_version="1">
<library_deps>
<library_dep persistent="${CyRoot}\psoc\content\default\CyAnnotationLibrary\CyAnnotationLibrary.cylib\CyAnnotationLibrary.cyprj" />
@ -2029,4 +2347,4 @@
<BootloaderTag hexFile="" elfFile="" />
<current_generation v="2" />
</CyGuid_fec8f9e8-2365-4bdb-96d3-a4380222e01b>
</CyXmlSerializer>
</CyXmlSerializer>

490
software/SCSI2SD/SCSI2SD.cydsn/SCSI2SD.svd Normal file → Executable file
View File

@ -1,15 +1,499 @@
<?xml version="1.0" encoding="utf-8"?>
<device schemaVersion="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="CMSIS-SVD_Schema_1_0.xsd">
<name>CY8C5268AXI_LP047</name>
<name>CY8C5267AXI_LP051</name>
<version>0.1</version>
<description>CY8C52LP</description>
<addressUnitBits>8</addressUnitBits>
<width>32</width>
<peripherals>
<peripheral>
<name>USBFS_1</name>
<description>USBFS</description>
<baseAddress>0x40004394</baseAddress>
<addressBlock>
<offset>0</offset>
<size>0x1D0A</size>
<usage>registers</usage>
</addressBlock>
<registers>
<register>
<name>USBFS_1_PM_USB_CR0</name>
<description>USB Power Mode Control Register 0</description>
<addressOffset>0x0</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
<fields>
<field>
<name>fsusbio_ref_en</name>
<description>No description available</description>
<lsb>0</lsb>
<msb>0</msb>
<access>read-write</access>
</field>
<field>
<name>fsusbio_pd_n</name>
<description>No description available</description>
<lsb>1</lsb>
<msb>1</msb>
<access>read-write</access>
</field>
<field>
<name>fsusbio_pd_pullup_n</name>
<description>No description available</description>
<lsb>2</lsb>
<msb>2</msb>
<access>read-write</access>
</field>
</fields>
</register>
<register>
<name>USBFS_1_PM_ACT_CFG</name>
<description>Active Power Mode Configuration Register</description>
<addressOffset>0x11</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_PM_STBY_CFG</name>
<description>Standby Power Mode Configuration Register</description>
<addressOffset>0x21</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_PRT_PS</name>
<description>Port Pin State Register</description>
<addressOffset>0xE5D</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
<fields>
<field>
<name>PinState_DP</name>
<description>No description available</description>
<lsb>6</lsb>
<msb>6</msb>
<access>read-only</access>
</field>
<field>
<name>PinState_DM</name>
<description>No description available</description>
<lsb>7</lsb>
<msb>7</msb>
<access>read-only</access>
</field>
</fields>
</register>
<register>
<name>USBFS_1_PRT_DM0</name>
<description>Port Drive Mode Register</description>
<addressOffset>0xE5E</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
<fields>
<field>
<name>DriveMode_DP</name>
<description>No description available</description>
<lsb>6</lsb>
<msb>6</msb>
<access>read-write</access>
</field>
<field>
<name>DriveMode_DM</name>
<description>No description available</description>
<lsb>7</lsb>
<msb>7</msb>
<access>read-write</access>
</field>
</fields>
</register>
<register>
<name>USBFS_1_PRT_DM1</name>
<description>Port Drive Mode Register</description>
<addressOffset>0xE5F</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
<fields>
<field>
<name>PullUp_en_DP</name>
<description>No description available</description>
<lsb>6</lsb>
<msb>6</msb>
<access>read-write</access>
</field>
<field>
<name>PullUp_en_DM</name>
<description>No description available</description>
<lsb>7</lsb>
<msb>7</msb>
<access>read-write</access>
</field>
</fields>
</register>
<register>
<name>USBFS_1_PRT_INP_DIS</name>
<description>Input buffer disable override</description>
<addressOffset>0xE64</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
<fields>
<field>
<name>seinput_dis_dp</name>
<description>No description available</description>
<lsb>6</lsb>
<msb>6</msb>
<access>read-write</access>
</field>
<field>
<name>seinput_dis_dm</name>
<description>No description available</description>
<lsb>7</lsb>
<msb>7</msb>
<access>read-write</access>
</field>
</fields>
</register>
<register>
<name>USBFS_1_EP0_DR0</name>
<description>bmRequestType</description>
<addressOffset>0x1C6C</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_EP0_DR1</name>
<description>bRequest</description>
<addressOffset>0x1C6D</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_EP0_DR2</name>
<description>wValueLo</description>
<addressOffset>0x1C6E</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_EP0_DR3</name>
<description>wValueHi</description>
<addressOffset>0x1C6F</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_EP0_DR4</name>
<description>wIndexLo</description>
<addressOffset>0x1C70</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_EP0_DR5</name>
<description>wIndexHi</description>
<addressOffset>0x1C71</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_EP0_DR6</name>
<description>lengthLo</description>
<addressOffset>0x1C72</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_EP0_DR7</name>
<description>lengthHi</description>
<addressOffset>0x1C73</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_CR0</name>
<description>USB Control Register 0</description>
<addressOffset>0x1C74</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
<fields>
<field>
<name>device_address</name>
<description>No description available</description>
<lsb>6</lsb>
<msb>0</msb>
<access>read-only</access>
</field>
<field>
<name>usb_enable</name>
<description>No description available</description>
<lsb>7</lsb>
<msb>7</msb>
<access>read-write</access>
</field>
</fields>
</register>
<register>
<name>USBFS_1_CR1</name>
<description>USB Control Register 1</description>
<addressOffset>0x1C75</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
<fields>
<field>
<name>reg_enable</name>
<description>No description available</description>
<lsb>0</lsb>
<msb>0</msb>
<access>read-write</access>
</field>
<field>
<name>enable_lock</name>
<description>No description available</description>
<lsb>1</lsb>
<msb>1</msb>
<access>read-write</access>
</field>
<field>
<name>bus_activity</name>
<description>No description available</description>
<lsb>2</lsb>
<msb>2</msb>
<access>read-write</access>
</field>
<field>
<name>trim_offset_msb</name>
<description>No description available</description>
<lsb>3</lsb>
<msb>3</msb>
<access>read-write</access>
</field>
</fields>
</register>
<register>
<name>USBFS_1_SIE_EP1_CR0</name>
<description>The Endpoint1 Control Register</description>
<addressOffset>0x1C7A</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_USBIO_CR0</name>
<description>USBIO Control Register 0</description>
<addressOffset>0x1C7C</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
<fields>
<field>
<name>rd</name>
<description>No description available</description>
<lsb>0</lsb>
<msb>0</msb>
<access>read-only</access>
</field>
<field>
<name>td</name>
<description>No description available</description>
<lsb>5</lsb>
<msb>5</msb>
<access>read-write</access>
</field>
<field>
<name>tse0</name>
<description>No description available</description>
<lsb>6</lsb>
<msb>6</msb>
<access>read-write</access>
</field>
<field>
<name>ten</name>
<description>No description available</description>
<lsb>7</lsb>
<msb>7</msb>
<access>read-write</access>
</field>
</fields>
</register>
<register>
<name>USBFS_1_USBIO_CR1</name>
<description>USBIO Control Register 1</description>
<addressOffset>0x1C7E</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
<fields>
<field>
<name>dmo</name>
<description>No description available</description>
<lsb>0</lsb>
<msb>0</msb>
<access>read-only</access>
</field>
<field>
<name>dpo</name>
<description>No description available</description>
<lsb>1</lsb>
<msb>1</msb>
<access>read-only</access>
</field>
<field>
<name>usbpuen</name>
<description>No description available</description>
<lsb>2</lsb>
<msb>2</msb>
<access>read-write</access>
</field>
<field>
<name>iomode</name>
<description>No description available</description>
<lsb>5</lsb>
<msb>5</msb>
<access>read-write</access>
</field>
</fields>
</register>
<register>
<name>USBFS_1_SIE_EP2_CR0</name>
<description>The Endpoint2 Control Register</description>
<addressOffset>0x1C8A</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_SIE_EP3_CR0</name>
<description>The Endpoint3 Control Register</description>
<addressOffset>0x1C9A</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_SIE_EP4_CR0</name>
<description>The Endpoint4 Control Register</description>
<addressOffset>0x1CAA</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_SIE_EP5_CR0</name>
<description>The Endpoint5 Control Register</description>
<addressOffset>0x1CBA</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_SIE_EP6_CR0</name>
<description>The Endpoint6 Control Register</description>
<addressOffset>0x1CCA</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_SIE_EP7_CR0</name>
<description>The Endpoint7 Control Register</description>
<addressOffset>0x1CDA</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_SIE_EP8_CR0</name>
<description>The Endpoint8 Control Register</description>
<addressOffset>0x1CEA</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_BUF_SIZE</name>
<description>Dedicated Endpoint Buffer Size Register</description>
<addressOffset>0x1CF8</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_EP_ACTIVE</name>
<description>Endpoint Active Indication Register</description>
<addressOffset>0x1CFA</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_EP_TYPE</name>
<description>Endpoint Type (IN/OUT) Indication</description>
<addressOffset>0x1CFB</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
<register>
<name>USBFS_1_USB_CLK_EN</name>
<description>USB Block Clock Enable Register</description>
<addressOffset>0x1D09</addressOffset>
<size>8</size>
<access>read-write</access>
<resetValue>0</resetValue>
<resetMask>0</resetMask>
</register>
</registers>
</peripheral>
<peripheral>
<name>SD_Clk_Ctl</name>
<description>No description available</description>
<baseAddress>0x4000647B</baseAddress>
<baseAddress>0x40006471</baseAddress>
<addressBlock>
<offset>0</offset>
<size>0x1</size>
@ -30,7 +514,7 @@
<peripheral>
<name>SCSI_CTL_IO</name>
<description>No description available</description>
<baseAddress>0x40006470</baseAddress>
<baseAddress>0x40006472</baseAddress>
<addressBlock>
<offset>0</offset>
<size>0x1</size>

View File

@ -32,7 +32,6 @@ static Config shadow =
"2.0a", // revision (68k Apple Drive Setup: Set to "1.0 ")
1, // enable parity
0, // disable unit attention,
0, // overclock SPI
0, // Max blocks (0 == disabled)
"" // reserved
};

View File

@ -27,7 +27,6 @@ typedef struct
char revision[4];
uint8 enableParity;
uint8 enableUnitAttention;
uint8 overclockSPI;
uint32 maxBlocks;
// Pad to 64 bytes, which is what we can fit into a USB HID packet.

View File

@ -409,12 +409,16 @@ void scsiDiskInit()
// Don't require the host to send us a START STOP UNIT command
blockDev.state = DISK_STARTED;
// WP pin not available for micro-sd
// TODO read card WP register
#if 0
if (SD_WP_Read())
{
blockDev.state = blockDev.state | DISK_WP;
}
#endif
if (SD_CD_Read() == 0)
//if (SD_CD_Read() == 0)
{
blockDev.state = blockDev.state | DISK_PRESENT;

View File

@ -18,13 +18,14 @@
#include "loopback.h"
#include "scsi.h"
#include "device.h"
#include "scsiPhy.h"
// Return true if all inputs are un-asserted (1)
// Note that CyPins returns non-zero if pin is active. It does NOT
// necessarily return 1.
static int test_initial_inputs(void)
{
uint8 dbx = SCSI_In_DBx_Read();
uint8 dbx = scsiReadDBxPins();
int result =
(dbx == 0xFF) &&
CyPins_ReadPin(SCSI_In_DBP) &&
@ -41,6 +42,7 @@ static int test_initial_inputs(void)
return result;
}
/* Not currently possible to write directly to the output pins
static int test_data_lines(void)
{
int result = 1;
@ -58,6 +60,7 @@ static int test_data_lines(void)
SCSI_Out_DBx_Write(0);
return result;
}
*/
static int test_data_10MHz(void)
{
@ -132,7 +135,7 @@ static void test_success(void)
void scsi2sd_test_loopback(void)
{
if (!test_initial_inputs() ||
!test_data_lines() ||
//!test_data_lines() ||
!test_data_10MHz() ||
!test_ATN_interrupt())
{

View File

@ -16,7 +16,7 @@
// along with SCSI2SD. If not, see <http://www.gnu.org/licenses/>.
#include "device.h"
// #include "blinky.h"
#include "blinky.h"
#include "loopback.h"
#include "scsi.h"
#include "scsiPhy.h"
@ -28,7 +28,7 @@ const char* Notice = "Copyright (C) 2013 Michael McMaster <michael@codesrc.com>"
int main()
{
// scsi2sd_test_blinky(); // Initial test. Will not return.
// scsi2sd_test_blink(); // Initial test. Will not return.
ledOff();
// Enable global interrupts.
@ -44,7 +44,7 @@ int main()
configInit();
scsiInit(0, 1); // ID 0 is mac boot disk
scsiInit();
scsiDiskInit();
// Reading jumpers

View File

@ -370,14 +370,14 @@ static void enter_SelectionPhase()
static void process_SelectionPhase()
{
uint8 mask = ~SCSI_In_DBx_Read();
uint8 mask = scsiReadDBxPins();
int goodParity = (Lookup_OddParity[mask] == SCSI_ReadPin(SCSI_In_DBP));
int sel = SCSI_ReadPin(SCSI_In_SEL);
int bsy = SCSI_ReadPin(SCSI_In_BSY);
if (!bsy && sel &&
(mask & scsiDev.scsiIdMask) &&
goodParity && (countBits(mask) == 2))
(goodParity || !config->enableParity) && (countBits(mask) == 2))
{
// We've been selected!
// Assert BSY - Selection success!
@ -413,6 +413,9 @@ static void process_SelectionPhase()
}
scsiDev.phase = COMMAND;
CyDelayUs(2); // DODGY HACK
scsiDev.atnFlag |= SCSI_ReadPin(SCSI_ATN_INT);
}
else if (!sel)
{

View File

@ -34,6 +34,19 @@ CY_ISR(scsiAttentionISR)
SCSI_ATN_ClearInterrupt();
}
uint8 scsiReadDBxPins()
{
return
(SCSI_ReadPin(SCSI_In_DBx_DB7) << 7) |
(SCSI_ReadPin(SCSI_In_DBx_DB6) << 6) |
(SCSI_ReadPin(SCSI_In_DBx_DB5) << 5) |
(SCSI_ReadPin(SCSI_In_DBx_DB4) << 4) |
(SCSI_ReadPin(SCSI_In_DBx_DB3) << 3) |
(SCSI_ReadPin(SCSI_In_DBx_DB2) << 2) |
(SCSI_ReadPin(SCSI_In_DBx_DB1) << 1) |
SCSI_ReadPin(SCSI_In_DBx_DB0);
}
uint8 scsiReadByte(void)
{
while (!(CY_GET_REG8(scsiTarget_StatusReg__STATUS_REG) & 1)) {}

View File

@ -36,6 +36,8 @@ void scsiRead(uint8* data, uint32 count);
void scsiWriteByte(uint8 value);
void scsiWrite(uint8* data, uint32 count);
uint8 scsiReadDBxPins();
void scsiEnterPhase(int phase);
#endif

View File

@ -202,49 +202,49 @@ cy_psoc3_dp #(.d1_init(3),
`CS_ALU_OP_PASS, `CS_SRCA_A0, `CS_SRCB_D0,
`CS_SHFT_OP_PASS, `CS_A0_SRC_NONE, `CS_A1_SRC_NONE,
`CS_FEEDBACK_DSBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,
`CS_CMP_SEL_CFGA, /*CFGRAM0: IDLE*/
`CS_CMP_SEL_CFGA, /*CFGRAM0: IDLE*/
`CS_ALU_OP_PASS, `CS_SRCA_A0, `CS_SRCB_D0,
`CS_SHFT_OP_PASS, `CS_A0_SRC___F0, `CS_A1_SRC_NONE,
`CS_FEEDBACK_DSBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,
`CS_CMP_SEL_CFGA, /*CFGRAM1: FIFO Load*/
`CS_CMP_SEL_CFGA, /*CFGRAM1: FIFO Load*/
`CS_ALU_OP_PASS, `CS_SRCA_A0, `CS_SRCB_D0,
`CS_SHFT_OP_PASS, `CS_A0_SRC_NONE, `CS_A1_SRC_NONE,
`CS_FEEDBACK_DSBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,
`CS_CMP_SEL_CFGA, /*CFGRAM2: TX*/
`CS_CMP_SEL_CFGA, /*CFGRAM2: TX*/
`CS_ALU_OP_PASS, `CS_SRCA_A0, `CS_SRCB_D0,
`CS_SHFT_OP_PASS, `CS_A0_SRC___D0, `CS_A1_SRC_NONE,
`CS_FEEDBACK_DSBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,
`CS_CMP_SEL_CFGA, /*CFGRAM3: DESKEW INIT*/
`CS_CMP_SEL_CFGA, /*CFGRAM3: DESKEW INIT*/
`CS_ALU_OP__DEC, `CS_SRCA_A0, `CS_SRCB_D0,
`CS_SHFT_OP_PASS, `CS_A0_SRC__ALU, `CS_A1_SRC_NONE,
`CS_FEEDBACK_DSBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,
`CS_CMP_SEL_CFGA, /*CFGRAM4: DESKEW*/
`CS_CMP_SEL_CFGA, /*CFGRAM4: DESKEW*/
`CS_ALU_OP_PASS, `CS_SRCA_A0, `CS_SRCB_D0,
`CS_SHFT_OP_PASS, `CS_A0_SRC_NONE, `CS_A1_SRC_NONE,
`CS_FEEDBACK_DSBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,
`CS_CMP_SEL_CFGA, /*CFGRAM5: Not used*/
`CS_CMP_SEL_CFGA, /*CFGRAM5: Not used*/
`CS_ALU_OP_PASS, `CS_SRCA_A0, `CS_SRCB_D0,
`CS_SHFT_OP_PASS, `CS_A0_SRC_NONE, `CS_A1_SRC_NONE,
`CS_FEEDBACK_DSBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,
`CS_CMP_SEL_CFGA, /*CFGRAM6: READY*/
`CS_CMP_SEL_CFGA, /*CFGRAM6: READY*/
`CS_ALU_OP_PASS, `CS_SRCA_A0, `CS_SRCB_D0,
`CS_SHFT_OP_PASS, `CS_A0_SRC_NONE, `CS_A1_SRC_NONE,
`CS_FEEDBACK_ENBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,
`CS_CMP_SEL_CFGA, /*CFGRAM7: RX*/
8'hFF, 8'h00, /*CFG9: */
8'hFF, 8'hFF, /*CFG11-10: */
`CS_CMP_SEL_CFGA, /*CFGRAM7: RX*/
8'hFF, 8'h00, /*CFG9: */
8'hFF, 8'hFF, /*CFG11-10: */
`SC_CMPB_A1_D1, `SC_CMPA_A1_D1, `SC_CI_B_ARITH,
`SC_CI_A_ARITH, `SC_C1_MASK_DSBL, `SC_C0_MASK_DSBL,
`SC_A_MASK_DSBL, `SC_DEF_SI_0, `SC_SI_B_DEFSI,
`SC_SI_A_DEFSI, /*CFG13-12: */
`SC_SI_A_DEFSI, /*CFG13-12: */
`SC_A0_SRC_ACC, `SC_SHIFT_SL, `SC_PI_DYN_EN,
1'h0, `SC_FIFO1_ALU, `SC_FIFO0_BUS,
`SC_MSB_DSBL, `SC_MSB_BIT0, `SC_MSB_NOCHN,
`SC_FB_NOCHN, `SC_CMP1_NOCHN,
`SC_CMP0_NOCHN, /*CFG15-14: */
`SC_CMP0_NOCHN, /*CFG15-14: */
10'h00, `SC_FIFO_CLK__DP,`SC_FIFO_CAP_AX,
`SC_FIFO_LEVEL,`SC_FIFO__SYNC,`SC_EXTCRC_DSBL,
`SC_WRK16CAT_DSBL /*CFG17-16: */
`SC_WRK16CAT_DSBL /*CFG17-16: */
}
)) datapath(
/* input */ .reset(1'b0),
@ -318,3 +318,5 @@ endmodule

View File

@ -68,6 +68,8 @@ static void sdSendCRCCommand(uint8 cmd, uint32 param)
{
sdSpiByte(send[cmd]);
}
// Allow command to process before reading result code.
sdSpiByte(0xFF);
}
static void sdSendCommand(uint8 cmd, uint32 param)
@ -85,6 +87,8 @@ static void sdSendCommand(uint8 cmd, uint32 param)
{
sdSpiByte(send[cmd]);
}
// Allow command to process before reading result code.
sdSpiByte(0xFF);
}
static uint8 sdReadResp()
@ -149,11 +153,26 @@ void sdPrepareRead()
void sdReadSector()
{
// Wait for a start-block token.
uint8 token;
do
// Don't wait more than 200ms.
int maxWait = 200000;
uint8 token = sdSpiByte(0xFF);
while (token != 0xFE && (maxWait-- > 0))
{
CyDelayUs(1);
token = sdSpiByte(0xFF);
} while(token != 0xFE); // TODO don't loop forever here in case of error!
}
if (token != 0xFE)
{
sdCompleteRead();
if (scsiDev.status != CHECK_CONDITION)
{
scsiDev.status = CHECK_CONDITION;
scsiDev.sense.code = HARDWARE_ERROR;
scsiDev.sense.asc = UNRECOVERED_READ_ERROR;
scsiDev.phase = STATUS;
}
return;
}
int prep = 0;
int i = 0;
@ -181,10 +200,12 @@ void sdReadSector()
void sdCompleteRead()
{
//uint8 r1b = sdCommandAndResponse(SD_STOP_TRANSMISSION, 0);
sdSendCommand(SD_STOP_TRANSMISSION, 0);
sdSpiByte(0xFF); // NEED STUFF BYTE for cmd12
uint8 r1b = sdReadResp();
int counter = 512;
uint8 r1b;
do
{
r1b = sdCommandAndResponse(SD_STOP_TRANSMISSION, 0);
} while (r1b && (counter-- > 0));
if (r1b)
{
scsiDev.status = CHECK_CONDITION;
@ -230,14 +251,38 @@ int sdWriteSector()
SDCard_ReadRxData();
SDCard_ReadRxData();
SDCard_ReadRxData();
SDCard_ReadRxData();
sdSpiByte(0x00); // CRC
sdSpiByte(0x00); // CRC
// Don't wait more than 1000ms.
// My 2g Kingston micro-sd card doesn't respond immediately.
// My 16Gb card does.
int maxWait = 1000;
uint8 dataToken = sdSpiByte(0xFF); // Response
while (dataToken == 0xFF && maxWait-- > 0)
{
CyDelay(1); // 1ms.
dataToken = sdSpiByte(0xFF);
}
if (((dataToken & 0x1F) >> 1) != 0x2) // Accepted.
{
sdWaitWriteBusy();
sdSpiByte(0xFD); // STOP TOKEN
int counter = 512;
uint8 r1b;
do
{
r1b = sdCommandAndResponse(SD_STOP_TRANSMISSION, 0);
} while (r1b && (counter-- > 0));
// R1b has an optional trailing "busy" signal.
uint8 busy;
do
{
busy = sdSpiByte(0xFF);
} while (busy == 0);
// Wait for the card to come out of busy.
sdWaitWriteBusy();
@ -432,7 +477,7 @@ int sdInit()
// now set the sd card up for full speed
SD_Data_Clk_Start(); // Turn on the fast clock
SD_Clk_Ctl_Write(config->overclockSPI ? 2 : 1); // Select the fast clock source.
SD_Clk_Ctl_Write(1); // Select the fast clock source.
SD_Init_Clk_Stop(); // Stop the slow clock.
if (!sdReadCSD()) goto bad;

View File

@ -0,0 +1,162 @@
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/BL.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/BL.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/BL_PVT.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyDmac.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/SCSI_Out_DBx_aliases.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/SCSI_Out_aliases.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dm_aliases.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dp.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dp_aliases.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_audio.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_cdc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_hid.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_midi.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_pvt.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cm3.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cm3_psoc5.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cmFunc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cmInstr.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydisabledsheets.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter_cfg.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cypins.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/project.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/BL.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/BL.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/BL_PVT.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyDmac.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/SCSI_Out_DBx_aliases.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/SCSI_Out_aliases.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dm.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dm_aliases.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dp.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dp_aliases.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_audio.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_cdc.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_hid.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_midi.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_pvt.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cm3.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cm3_psoc5.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cmFunc.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cmInstr.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydisabledsheets.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter_cfg.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cypins.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/project.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/BL.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/Cm3Start.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyDmac.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter_cfg.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/Cm3Start.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/Cm3Start.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/CyDmac.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyDmac.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyDmac.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyDmac.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/CyFlash.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/CyLib.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/CySpc.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/USBFS.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyDmac.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_hid.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_pvt.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/USBFS_Dm.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dm_aliases.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cypins.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dm.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dm.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/USBFS_Dp.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dp.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dp_aliases.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cypins.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dp.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dp.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/USBFS_audio.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyDmac.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_audio.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_midi.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_pvt.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_audio.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_audio.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/USBFS_boot.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_boot.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_boot.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/USBFS_cdc.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_cdc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_pvt.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_cdc.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_cdc.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/USBFS_cls.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_pvt.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_cls.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_cls.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/USBFS_descr.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_pvt.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_descr.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_descr.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/USBFS_drv.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_pvt.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_drv.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_drv.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/USBFS_episr.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyDmac.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_midi.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_pvt.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_episr.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_episr.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/USBFS_hid.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_hid.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_pvt.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_hid.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_hid.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/USBFS_midi.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyDmac.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_midi.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_pvt.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_midi.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_midi.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/USBFS_pm.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/BL.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/BL_PVT.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyDmac.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/SCSI_Out_DBx_aliases.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/SCSI_Out_aliases.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dm_aliases.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dp.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dp_aliases.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_audio.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_cdc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_hid.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_midi.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_pvt.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cm3.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cm3_psoc5.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cmFunc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cmInstr.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydisabledsheets.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter_cfg.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cypins.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/project.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_pm.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_pm.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/USBFS_std.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyDmac.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_cdc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_midi.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_pvt.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_std.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_std.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/USBFS_vnd.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_pvt.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_vnd.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_vnd.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/cyPm.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/cyfitter_cfg.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter_cfg.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter_cfg.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter_cfg.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/cymetadata.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cymetadata.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cymetadata.c :
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/cyutils.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyutils.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyutils.c :

View File

@ -0,0 +1,66 @@
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/main.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/BL.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/BL_PVT.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyDmac.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/SCSI_Out_DBx_aliases.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/SCSI_Out_aliases.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dm_aliases.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dp.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dp_aliases.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_audio.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_cdc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_hid.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_midi.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_pvt.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cm3.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cm3_psoc5.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cmFunc.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cmInstr.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydisabledsheets.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter_cfg.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cypins.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/project.h W:/SCSI2SD/USB_Bootloader.cydsn/main.c
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/BL.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/BL_PVT.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyDmac.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyFlash.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyLib.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CySpc.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/SCSI_Out_DBx_aliases.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/SCSI_Out_aliases.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dm.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dm_aliases.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dp.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_Dp_aliases.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_audio.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_cdc.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_hid.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_midi.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/USBFS_pvt.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cm3.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cm3_psoc5.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cmFunc.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/core_cmInstr.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyPm.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevice_trm.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydisabledsheets.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfitter_cfg.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cypins.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cytypes.h :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/project.h :
W:/SCSI2SD/USB_Bootloader.cydsn/main.c :

View File

@ -0,0 +1,10 @@
W:/SCSI2SD/USB_Bootloader.cydsn/CortexM3/ARM_GCC_473/Release/CyBootAsmGnu.o : W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevicegnu.inc W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevicegnu_trm.inc W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfittergnu.inc W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyBootAsmGnu.s
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevicegnu.inc :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cydevicegnu_trm.inc :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/cyfittergnu.inc :
W:/SCSI2SD/USB_Bootloader.cydsn/Generated_Source/PSoC5/CyBootAsmGnu.s :

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,775 @@
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccc12yfW.s page 1
1 .syntax unified
2 .cpu cortex-m3
3 .fpu softvfp
4 .eabi_attribute 20, 1
5 .eabi_attribute 21, 1
6 .eabi_attribute 23, 3
7 .eabi_attribute 24, 1
8 .eabi_attribute 25, 1
9 .eabi_attribute 26, 1
10 .eabi_attribute 30, 4
11 .eabi_attribute 34, 1
12 .eabi_attribute 18, 4
13 .thumb
14 .file "USBFS_Dm.c"
15 .text
16 .Ltext0:
17 .cfi_sections .debug_frame
18 .section .text.USBFS_Dm_Write,"ax",%progbits
19 .align 1
20 .global USBFS_Dm_Write
21 .thumb
22 .thumb_func
23 .type USBFS_Dm_Write, %function
24 USBFS_Dm_Write:
25 .LFB0:
26 .file 1 ".\\Generated_Source\\PSoC5\\USBFS_Dm.c"
1:.\Generated_Source\PSoC5/USBFS_Dm.c **** /*******************************************************************************
2:.\Generated_Source\PSoC5/USBFS_Dm.c **** * File Name: USBFS_Dm.c
3:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Version 1.90
4:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
5:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Description:
6:.\Generated_Source\PSoC5/USBFS_Dm.c **** * This file contains API to enable firmware control of a Pins component.
7:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
8:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Note:
9:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
10:.\Generated_Source\PSoC5/USBFS_Dm.c **** ********************************************************************************
11:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Copyright 2008-2012, Cypress Semiconductor Corporation. All rights reserved.
12:.\Generated_Source\PSoC5/USBFS_Dm.c **** * You may use this file only in accordance with the license, terms, conditions,
13:.\Generated_Source\PSoC5/USBFS_Dm.c **** * disclaimers, and limitations in the end user license agreement accompanying
14:.\Generated_Source\PSoC5/USBFS_Dm.c **** * the software package with which this file was provided.
15:.\Generated_Source\PSoC5/USBFS_Dm.c **** *******************************************************************************/
16:.\Generated_Source\PSoC5/USBFS_Dm.c ****
17:.\Generated_Source\PSoC5/USBFS_Dm.c **** #include "cytypes.h"
18:.\Generated_Source\PSoC5/USBFS_Dm.c **** #include "USBFS_Dm.h"
19:.\Generated_Source\PSoC5/USBFS_Dm.c ****
20:.\Generated_Source\PSoC5/USBFS_Dm.c **** /* APIs are not generated for P15[7:6] on PSoC 5 */
21:.\Generated_Source\PSoC5/USBFS_Dm.c **** #if !(CY_PSOC5A &&\
22:.\Generated_Source\PSoC5/USBFS_Dm.c **** USBFS_Dm__PORT == 15 && ((USBFS_Dm__MASK & 0xC0) != 0))
23:.\Generated_Source\PSoC5/USBFS_Dm.c ****
24:.\Generated_Source\PSoC5/USBFS_Dm.c ****
25:.\Generated_Source\PSoC5/USBFS_Dm.c **** /*******************************************************************************
26:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Function Name: USBFS_Dm_Write
27:.\Generated_Source\PSoC5/USBFS_Dm.c **** ********************************************************************************
28:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
29:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Summary:
30:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Assign a new value to the digital port's data output register.
31:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccc12yfW.s page 2
32:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Parameters:
33:.\Generated_Source\PSoC5/USBFS_Dm.c **** * prtValue: The value to be assigned to the Digital Port.
34:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
35:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Return:
36:.\Generated_Source\PSoC5/USBFS_Dm.c **** * None
37:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
38:.\Generated_Source\PSoC5/USBFS_Dm.c **** *******************************************************************************/
39:.\Generated_Source\PSoC5/USBFS_Dm.c **** void USBFS_Dm_Write(uint8 value)
40:.\Generated_Source\PSoC5/USBFS_Dm.c **** {
27 .loc 1 40 0
28 .cfi_startproc
29 @ args = 0, pretend = 0, frame = 0
30 @ frame_needed = 0, uses_anonymous_args = 0
31 @ link register save eliminated.
32 .LVL0:
41:.\Generated_Source\PSoC5/USBFS_Dm.c **** uint8 staticBits = (USBFS_Dm_DR & (uint8)(~USBFS_Dm_MASK));
33 .loc 1 41 0
34 0000 044B ldr r3, .L2
35 0002 1A78 ldrb r2, [r3, #0] @ zero_extendqisi2
36 .LVL1:
37 0004 02F07F01 and r1, r2, #127
42:.\Generated_Source\PSoC5/USBFS_Dm.c **** USBFS_Dm_DR = staticBits | ((uint8)(value << USBFS_Dm_SHIFT) & USBFS_Dm_MASK);
38 .loc 1 42 0
39 0008 41EAC010 orr r0, r1, r0, lsl #7
40 .LVL2:
41 000c C2B2 uxtb r2, r0
42 .LVL3:
43 000e 1A70 strb r2, [r3, #0]
44 0010 7047 bx lr
45 .L3:
46 0012 00BF .align 2
47 .L2:
48 0014 F0510040 .word 1073762800
49 .cfi_endproc
50 .LFE0:
51 .size USBFS_Dm_Write, .-USBFS_Dm_Write
52 .section .text.USBFS_Dm_SetDriveMode,"ax",%progbits
53 .align 1
54 .global USBFS_Dm_SetDriveMode
55 .thumb
56 .thumb_func
57 .type USBFS_Dm_SetDriveMode, %function
58 USBFS_Dm_SetDriveMode:
59 .LFB1:
43:.\Generated_Source\PSoC5/USBFS_Dm.c **** }
44:.\Generated_Source\PSoC5/USBFS_Dm.c ****
45:.\Generated_Source\PSoC5/USBFS_Dm.c ****
46:.\Generated_Source\PSoC5/USBFS_Dm.c **** /*******************************************************************************
47:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Function Name: USBFS_Dm_SetDriveMode
48:.\Generated_Source\PSoC5/USBFS_Dm.c **** ********************************************************************************
49:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
50:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Summary:
51:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Change the drive mode on the pins of the port.
52:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
53:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Parameters:
54:.\Generated_Source\PSoC5/USBFS_Dm.c **** * mode: Change the pins to this drive mode.
55:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccc12yfW.s page 3
56:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Return:
57:.\Generated_Source\PSoC5/USBFS_Dm.c **** * None
58:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
59:.\Generated_Source\PSoC5/USBFS_Dm.c **** *******************************************************************************/
60:.\Generated_Source\PSoC5/USBFS_Dm.c **** void USBFS_Dm_SetDriveMode(uint8 mode)
61:.\Generated_Source\PSoC5/USBFS_Dm.c **** {
60 .loc 1 61 0
61 .cfi_startproc
62 @ args = 0, pretend = 0, frame = 0
63 @ frame_needed = 0, uses_anonymous_args = 0
64 @ link register save eliminated.
65 .LVL4:
62:.\Generated_Source\PSoC5/USBFS_Dm.c **** CyPins_SetPinDriveMode(USBFS_Dm_0, mode);
66 .loc 1 62 0
67 0000 044B ldr r3, .L5
68 0002 00F00E00 and r0, r0, #14
69 .LVL5:
70 0006 1A78 ldrb r2, [r3, #0] @ zero_extendqisi2
71 0008 22F00E01 bic r1, r2, #14
72 000c 40EA0102 orr r2, r0, r1
73 0010 1A70 strb r2, [r3, #0]
74 0012 7047 bx lr
75 .L6:
76 .align 2
77 .L5:
78 0014 7F500040 .word 1073762431
79 .cfi_endproc
80 .LFE1:
81 .size USBFS_Dm_SetDriveMode, .-USBFS_Dm_SetDriveMode
82 .section .text.USBFS_Dm_Read,"ax",%progbits
83 .align 1
84 .global USBFS_Dm_Read
85 .thumb
86 .thumb_func
87 .type USBFS_Dm_Read, %function
88 USBFS_Dm_Read:
89 .LFB2:
63:.\Generated_Source\PSoC5/USBFS_Dm.c **** }
64:.\Generated_Source\PSoC5/USBFS_Dm.c ****
65:.\Generated_Source\PSoC5/USBFS_Dm.c ****
66:.\Generated_Source\PSoC5/USBFS_Dm.c **** /*******************************************************************************
67:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Function Name: USBFS_Dm_Read
68:.\Generated_Source\PSoC5/USBFS_Dm.c **** ********************************************************************************
69:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
70:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Summary:
71:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Read the current value on the pins of the Digital Port in right justified
72:.\Generated_Source\PSoC5/USBFS_Dm.c **** * form.
73:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
74:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Parameters:
75:.\Generated_Source\PSoC5/USBFS_Dm.c **** * None
76:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
77:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Return:
78:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Returns the current value of the Digital Port as a right justified number
79:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
80:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Note:
81:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Macro USBFS_Dm_ReadPS calls this function.
82:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccc12yfW.s page 4
83:.\Generated_Source\PSoC5/USBFS_Dm.c **** *******************************************************************************/
84:.\Generated_Source\PSoC5/USBFS_Dm.c **** uint8 USBFS_Dm_Read(void)
85:.\Generated_Source\PSoC5/USBFS_Dm.c **** {
90 .loc 1 85 0
91 .cfi_startproc
92 @ args = 0, pretend = 0, frame = 0
93 @ frame_needed = 0, uses_anonymous_args = 0
94 @ link register save eliminated.
86:.\Generated_Source\PSoC5/USBFS_Dm.c **** return (USBFS_Dm_PS & USBFS_Dm_MASK) >> USBFS_Dm_SHIFT;
95 .loc 1 86 0
96 0000 014B ldr r3, .L8
97 0002 1878 ldrb r0, [r3, #0] @ zero_extendqisi2
87:.\Generated_Source\PSoC5/USBFS_Dm.c **** }
98 .loc 1 87 0
99 0004 C009 lsrs r0, r0, #7
100 0006 7047 bx lr
101 .L9:
102 .align 2
103 .L8:
104 0008 F1510040 .word 1073762801
105 .cfi_endproc
106 .LFE2:
107 .size USBFS_Dm_Read, .-USBFS_Dm_Read
108 .section .text.USBFS_Dm_ReadDataReg,"ax",%progbits
109 .align 1
110 .global USBFS_Dm_ReadDataReg
111 .thumb
112 .thumb_func
113 .type USBFS_Dm_ReadDataReg, %function
114 USBFS_Dm_ReadDataReg:
115 .LFB3:
88:.\Generated_Source\PSoC5/USBFS_Dm.c ****
89:.\Generated_Source\PSoC5/USBFS_Dm.c ****
90:.\Generated_Source\PSoC5/USBFS_Dm.c **** /*******************************************************************************
91:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Function Name: USBFS_Dm_ReadDataReg
92:.\Generated_Source\PSoC5/USBFS_Dm.c **** ********************************************************************************
93:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
94:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Summary:
95:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Read the current value assigned to a Digital Port's data output register
96:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
97:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Parameters:
98:.\Generated_Source\PSoC5/USBFS_Dm.c **** * None
99:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
100:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Return:
101:.\Generated_Source\PSoC5/USBFS_Dm.c **** * Returns the current value assigned to the Digital Port's data output register
102:.\Generated_Source\PSoC5/USBFS_Dm.c **** *
103:.\Generated_Source\PSoC5/USBFS_Dm.c **** *******************************************************************************/
104:.\Generated_Source\PSoC5/USBFS_Dm.c **** uint8 USBFS_Dm_ReadDataReg(void)
105:.\Generated_Source\PSoC5/USBFS_Dm.c **** {
116 .loc 1 105 0
117 .cfi_startproc
118 @ args = 0, pretend = 0, frame = 0
119 @ frame_needed = 0, uses_anonymous_args = 0
120 @ link register save eliminated.
106:.\Generated_Source\PSoC5/USBFS_Dm.c **** return (USBFS_Dm_DR & USBFS_Dm_MASK) >> USBFS_Dm_SHIFT;
121 .loc 1 106 0
122 0000 014B ldr r3, .L11
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccc12yfW.s page 5
123 0002 1878 ldrb r0, [r3, #0] @ zero_extendqisi2
107:.\Generated_Source\PSoC5/USBFS_Dm.c **** }
124 .loc 1 107 0
125 0004 C009 lsrs r0, r0, #7
126 0006 7047 bx lr
127 .L12:
128 .align 2
129 .L11:
130 0008 F0510040 .word 1073762800
131 .cfi_endproc
132 .LFE3:
133 .size USBFS_Dm_ReadDataReg, .-USBFS_Dm_ReadDataReg
134 .text
135 .Letext0:
136 .file 2 ".\\Generated_Source\\PSoC5\\cytypes.h"
137 .section .debug_info,"",%progbits
138 .Ldebug_info0:
139 0000 2F010000 .4byte 0x12f
140 0004 0200 .2byte 0x2
141 0006 00000000 .4byte .Ldebug_abbrev0
142 000a 04 .byte 0x4
143 000b 01 .uleb128 0x1
144 000c 0E010000 .4byte .LASF20
145 0010 01 .byte 0x1
146 0011 89000000 .4byte .LASF21
147 0015 57010000 .4byte .LASF22
148 0019 00000000 .4byte .Ldebug_ranges0+0
149 001d 00000000 .4byte 0
150 0021 00000000 .4byte 0
151 0025 00000000 .4byte .Ldebug_line0
152 0029 02 .uleb128 0x2
153 002a 01 .byte 0x1
154 002b 06 .byte 0x6
155 002c 80010000 .4byte .LASF0
156 0030 02 .uleb128 0x2
157 0031 01 .byte 0x1
158 0032 08 .byte 0x8
159 0033 51000000 .4byte .LASF1
160 0037 02 .uleb128 0x2
161 0038 02 .byte 0x2
162 0039 05 .byte 0x5
163 003a FE000000 .4byte .LASF2
164 003e 02 .uleb128 0x2
165 003f 02 .byte 0x2
166 0040 07 .byte 0x7
167 0041 76000000 .4byte .LASF3
168 0045 02 .uleb128 0x2
169 0046 04 .byte 0x4
170 0047 05 .byte 0x5
171 0048 77010000 .4byte .LASF4
172 004c 02 .uleb128 0x2
173 004d 04 .byte 0x4
174 004e 07 .byte 0x7
175 004f 64000000 .4byte .LASF5
176 0053 02 .uleb128 0x2
177 0054 08 .byte 0x8
178 0055 05 .byte 0x5
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccc12yfW.s page 6
179 0056 EB000000 .4byte .LASF6
180 005a 02 .uleb128 0x2
181 005b 08 .byte 0x8
182 005c 07 .byte 0x7
183 005d CF000000 .4byte .LASF7
184 0061 03 .uleb128 0x3
185 0062 04 .byte 0x4
186 0063 05 .byte 0x5
187 0064 696E7400 .ascii "int\000"
188 0068 02 .uleb128 0x2
189 0069 04 .byte 0x4
190 006a 07 .byte 0x7
191 006b C2000000 .4byte .LASF8
192 006f 04 .uleb128 0x4
193 0070 08010000 .4byte .LASF12
194 0074 02 .byte 0x2
195 0075 5B .byte 0x5b
196 0076 30000000 .4byte 0x30
197 007a 02 .uleb128 0x2
198 007b 04 .byte 0x4
199 007c 04 .byte 0x4
200 007d 4B000000 .4byte .LASF9
201 0081 02 .uleb128 0x2
202 0082 08 .byte 0x8
203 0083 04 .byte 0x4
204 0084 2E000000 .4byte .LASF10
205 0088 02 .uleb128 0x2
206 0089 01 .byte 0x1
207 008a 08 .byte 0x8
208 008b F9000000 .4byte .LASF11
209 008f 04 .uleb128 0x4
210 0090 5F000000 .4byte .LASF13
211 0094 02 .byte 0x2
212 0095 F0 .byte 0xf0
213 0096 9A000000 .4byte 0x9a
214 009a 05 .uleb128 0x5
215 009b 6F000000 .4byte 0x6f
216 009f 06 .uleb128 0x6
217 00a0 01 .byte 0x1
218 00a1 00000000 .4byte .LASF14
219 00a5 01 .byte 0x1
220 00a6 27 .byte 0x27
221 00a7 01 .byte 0x1
222 00a8 00000000 .4byte .LFB0
223 00ac 18000000 .4byte .LFE0
224 00b0 02 .byte 0x2
225 00b1 7D .byte 0x7d
226 00b2 00 .sleb128 0
227 00b3 01 .byte 0x1
228 00b4 D7000000 .4byte 0xd7
229 00b8 07 .uleb128 0x7
230 00b9 1D000000 .4byte .LASF16
231 00bd 01 .byte 0x1
232 00be 27 .byte 0x27
233 00bf 6F000000 .4byte 0x6f
234 00c3 00000000 .4byte .LLST0
235 00c7 08 .uleb128 0x8
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccc12yfW.s page 7
236 00c8 23000000 .4byte .LASF23
237 00cc 01 .byte 0x1
238 00cd 29 .byte 0x29
239 00ce 6F000000 .4byte 0x6f
240 00d2 21000000 .4byte .LLST1
241 00d6 00 .byte 0
242 00d7 06 .uleb128 0x6
243 00d8 01 .byte 0x1
244 00d9 35000000 .4byte .LASF15
245 00dd 01 .byte 0x1
246 00de 3C .byte 0x3c
247 00df 01 .byte 0x1
248 00e0 00000000 .4byte .LFB1
249 00e4 18000000 .4byte .LFE1
250 00e8 02 .byte 0x2
251 00e9 7D .byte 0x7d
252 00ea 00 .sleb128 0
253 00eb 01 .byte 0x1
254 00ec 00010000 .4byte 0x100
255 00f0 07 .uleb128 0x7
256 00f1 E6000000 .4byte .LASF17
257 00f5 01 .byte 0x1
258 00f6 3C .byte 0x3c
259 00f7 6F000000 .4byte 0x6f
260 00fb 39000000 .4byte .LLST2
261 00ff 00 .byte 0
262 0100 09 .uleb128 0x9
263 0101 01 .byte 0x1
264 0102 0F000000 .4byte .LASF18
265 0106 01 .byte 0x1
266 0107 54 .byte 0x54
267 0108 01 .byte 0x1
268 0109 6F000000 .4byte 0x6f
269 010d 00000000 .4byte .LFB2
270 0111 0C000000 .4byte .LFE2
271 0115 02 .byte 0x2
272 0116 7D .byte 0x7d
273 0117 00 .sleb128 0
274 0118 01 .byte 0x1
275 0119 09 .uleb128 0x9
276 011a 01 .byte 0x1
277 011b AD000000 .4byte .LASF19
278 011f 01 .byte 0x1
279 0120 68 .byte 0x68
280 0121 01 .byte 0x1
281 0122 6F000000 .4byte 0x6f
282 0126 00000000 .4byte .LFB3
283 012a 0C000000 .4byte .LFE3
284 012e 02 .byte 0x2
285 012f 7D .byte 0x7d
286 0130 00 .sleb128 0
287 0131 01 .byte 0x1
288 0132 00 .byte 0
289 .section .debug_abbrev,"",%progbits
290 .Ldebug_abbrev0:
291 0000 01 .uleb128 0x1
292 0001 11 .uleb128 0x11
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccc12yfW.s page 8
293 0002 01 .byte 0x1
294 0003 25 .uleb128 0x25
295 0004 0E .uleb128 0xe
296 0005 13 .uleb128 0x13
297 0006 0B .uleb128 0xb
298 0007 03 .uleb128 0x3
299 0008 0E .uleb128 0xe
300 0009 1B .uleb128 0x1b
301 000a 0E .uleb128 0xe
302 000b 55 .uleb128 0x55
303 000c 06 .uleb128 0x6
304 000d 11 .uleb128 0x11
305 000e 01 .uleb128 0x1
306 000f 52 .uleb128 0x52
307 0010 01 .uleb128 0x1
308 0011 10 .uleb128 0x10
309 0012 06 .uleb128 0x6
310 0013 00 .byte 0
311 0014 00 .byte 0
312 0015 02 .uleb128 0x2
313 0016 24 .uleb128 0x24
314 0017 00 .byte 0
315 0018 0B .uleb128 0xb
316 0019 0B .uleb128 0xb
317 001a 3E .uleb128 0x3e
318 001b 0B .uleb128 0xb
319 001c 03 .uleb128 0x3
320 001d 0E .uleb128 0xe
321 001e 00 .byte 0
322 001f 00 .byte 0
323 0020 03 .uleb128 0x3
324 0021 24 .uleb128 0x24
325 0022 00 .byte 0
326 0023 0B .uleb128 0xb
327 0024 0B .uleb128 0xb
328 0025 3E .uleb128 0x3e
329 0026 0B .uleb128 0xb
330 0027 03 .uleb128 0x3
331 0028 08 .uleb128 0x8
332 0029 00 .byte 0
333 002a 00 .byte 0
334 002b 04 .uleb128 0x4
335 002c 16 .uleb128 0x16
336 002d 00 .byte 0
337 002e 03 .uleb128 0x3
338 002f 0E .uleb128 0xe
339 0030 3A .uleb128 0x3a
340 0031 0B .uleb128 0xb
341 0032 3B .uleb128 0x3b
342 0033 0B .uleb128 0xb
343 0034 49 .uleb128 0x49
344 0035 13 .uleb128 0x13
345 0036 00 .byte 0
346 0037 00 .byte 0
347 0038 05 .uleb128 0x5
348 0039 35 .uleb128 0x35
349 003a 00 .byte 0
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccc12yfW.s page 9
350 003b 49 .uleb128 0x49
351 003c 13 .uleb128 0x13
352 003d 00 .byte 0
353 003e 00 .byte 0
354 003f 06 .uleb128 0x6
355 0040 2E .uleb128 0x2e
356 0041 01 .byte 0x1
357 0042 3F .uleb128 0x3f
358 0043 0C .uleb128 0xc
359 0044 03 .uleb128 0x3
360 0045 0E .uleb128 0xe
361 0046 3A .uleb128 0x3a
362 0047 0B .uleb128 0xb
363 0048 3B .uleb128 0x3b
364 0049 0B .uleb128 0xb
365 004a 27 .uleb128 0x27
366 004b 0C .uleb128 0xc
367 004c 11 .uleb128 0x11
368 004d 01 .uleb128 0x1
369 004e 12 .uleb128 0x12
370 004f 01 .uleb128 0x1
371 0050 40 .uleb128 0x40
372 0051 0A .uleb128 0xa
373 0052 9742 .uleb128 0x2117
374 0054 0C .uleb128 0xc
375 0055 01 .uleb128 0x1
376 0056 13 .uleb128 0x13
377 0057 00 .byte 0
378 0058 00 .byte 0
379 0059 07 .uleb128 0x7
380 005a 05 .uleb128 0x5
381 005b 00 .byte 0
382 005c 03 .uleb128 0x3
383 005d 0E .uleb128 0xe
384 005e 3A .uleb128 0x3a
385 005f 0B .uleb128 0xb
386 0060 3B .uleb128 0x3b
387 0061 0B .uleb128 0xb
388 0062 49 .uleb128 0x49
389 0063 13 .uleb128 0x13
390 0064 02 .uleb128 0x2
391 0065 06 .uleb128 0x6
392 0066 00 .byte 0
393 0067 00 .byte 0
394 0068 08 .uleb128 0x8
395 0069 34 .uleb128 0x34
396 006a 00 .byte 0
397 006b 03 .uleb128 0x3
398 006c 0E .uleb128 0xe
399 006d 3A .uleb128 0x3a
400 006e 0B .uleb128 0xb
401 006f 3B .uleb128 0x3b
402 0070 0B .uleb128 0xb
403 0071 49 .uleb128 0x49
404 0072 13 .uleb128 0x13
405 0073 02 .uleb128 0x2
406 0074 06 .uleb128 0x6
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccc12yfW.s page 10
407 0075 00 .byte 0
408 0076 00 .byte 0
409 0077 09 .uleb128 0x9
410 0078 2E .uleb128 0x2e
411 0079 00 .byte 0
412 007a 3F .uleb128 0x3f
413 007b 0C .uleb128 0xc
414 007c 03 .uleb128 0x3
415 007d 0E .uleb128 0xe
416 007e 3A .uleb128 0x3a
417 007f 0B .uleb128 0xb
418 0080 3B .uleb128 0x3b
419 0081 0B .uleb128 0xb
420 0082 27 .uleb128 0x27
421 0083 0C .uleb128 0xc
422 0084 49 .uleb128 0x49
423 0085 13 .uleb128 0x13
424 0086 11 .uleb128 0x11
425 0087 01 .uleb128 0x1
426 0088 12 .uleb128 0x12
427 0089 01 .uleb128 0x1
428 008a 40 .uleb128 0x40
429 008b 0A .uleb128 0xa
430 008c 9742 .uleb128 0x2117
431 008e 0C .uleb128 0xc
432 008f 00 .byte 0
433 0090 00 .byte 0
434 0091 00 .byte 0
435 .section .debug_loc,"",%progbits
436 .Ldebug_loc0:
437 .LLST0:
438 0000 00000000 .4byte .LVL0
439 0004 0C000000 .4byte .LVL2
440 0008 0100 .2byte 0x1
441 000a 50 .byte 0x50
442 000b 0C000000 .4byte .LVL2
443 000f 18000000 .4byte .LFE0
444 0013 0400 .2byte 0x4
445 0015 F3 .byte 0xf3
446 0016 01 .uleb128 0x1
447 0017 50 .byte 0x50
448 0018 9F .byte 0x9f
449 0019 00000000 .4byte 0
450 001d 00000000 .4byte 0
451 .LLST1:
452 0021 04000000 .4byte .LVL1
453 0025 0E000000 .4byte .LVL3
454 0029 0600 .2byte 0x6
455 002b 72 .byte 0x72
456 002c 00 .sleb128 0
457 002d 08 .byte 0x8
458 002e 7F .byte 0x7f
459 002f 1A .byte 0x1a
460 0030 9F .byte 0x9f
461 0031 00000000 .4byte 0
462 0035 00000000 .4byte 0
463 .LLST2:
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccc12yfW.s page 11
464 0039 00000000 .4byte .LVL4
465 003d 06000000 .4byte .LVL5
466 0041 0100 .2byte 0x1
467 0043 50 .byte 0x50
468 0044 06000000 .4byte .LVL5
469 0048 18000000 .4byte .LFE1
470 004c 0400 .2byte 0x4
471 004e F3 .byte 0xf3
472 004f 01 .uleb128 0x1
473 0050 50 .byte 0x50
474 0051 9F .byte 0x9f
475 0052 00000000 .4byte 0
476 0056 00000000 .4byte 0
477 .section .debug_aranges,"",%progbits
478 0000 34000000 .4byte 0x34
479 0004 0200 .2byte 0x2
480 0006 00000000 .4byte .Ldebug_info0
481 000a 04 .byte 0x4
482 000b 00 .byte 0
483 000c 0000 .2byte 0
484 000e 0000 .2byte 0
485 0010 00000000 .4byte .LFB0
486 0014 18000000 .4byte .LFE0-.LFB0
487 0018 00000000 .4byte .LFB1
488 001c 18000000 .4byte .LFE1-.LFB1
489 0020 00000000 .4byte .LFB2
490 0024 0C000000 .4byte .LFE2-.LFB2
491 0028 00000000 .4byte .LFB3
492 002c 0C000000 .4byte .LFE3-.LFB3
493 0030 00000000 .4byte 0
494 0034 00000000 .4byte 0
495 .section .debug_ranges,"",%progbits
496 .Ldebug_ranges0:
497 0000 00000000 .4byte .LFB0
498 0004 18000000 .4byte .LFE0
499 0008 00000000 .4byte .LFB1
500 000c 18000000 .4byte .LFE1
501 0010 00000000 .4byte .LFB2
502 0014 0C000000 .4byte .LFE2
503 0018 00000000 .4byte .LFB3
504 001c 0C000000 .4byte .LFE3
505 0020 00000000 .4byte 0
506 0024 00000000 .4byte 0
507 .section .debug_line,"",%progbits
508 .Ldebug_line0:
509 0000 92000000 .section .debug_str,"MS",%progbits,1
509 02004700
509 00000201
509 FB0E0D00
509 01010101
510 .LASF14:
511 0000 55534246 .ascii "USBFS_Dm_Write\000"
511 535F446D
511 5F577269
511 746500
512 .LASF18:
513 000f 55534246 .ascii "USBFS_Dm_Read\000"
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccc12yfW.s page 12
513 535F446D
513 5F526561
513 6400
514 .LASF16:
515 001d 76616C75 .ascii "value\000"
515 6500
516 .LASF23:
517 0023 73746174 .ascii "staticBits\000"
517 69634269
517 747300
518 .LASF10:
519 002e 646F7562 .ascii "double\000"
519 6C6500
520 .LASF15:
521 0035 55534246 .ascii "USBFS_Dm_SetDriveMode\000"
521 535F446D
521 5F536574
521 44726976
521 654D6F64
522 .LASF9:
523 004b 666C6F61 .ascii "float\000"
523 7400
524 .LASF1:
525 0051 756E7369 .ascii "unsigned char\000"
525 676E6564
525 20636861
525 7200
526 .LASF13:
527 005f 72656738 .ascii "reg8\000"
527 00
528 .LASF5:
529 0064 6C6F6E67 .ascii "long unsigned int\000"
529 20756E73
529 69676E65
529 6420696E
529 7400
530 .LASF3:
531 0076 73686F72 .ascii "short unsigned int\000"
531 7420756E
531 7369676E
531 65642069
531 6E7400
532 .LASF21:
533 0089 2E5C4765 .ascii ".\\Generated_Source\\PSoC5\\USBFS_Dm.c\000"
533 6E657261
533 7465645F
533 536F7572
533 63655C50
534 .LASF19:
535 00ad 55534246 .ascii "USBFS_Dm_ReadDataReg\000"
535 535F446D
535 5F526561
535 64446174
535 61526567
536 .LASF8:
537 00c2 756E7369 .ascii "unsigned int\000"
537 676E6564
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccc12yfW.s page 13
537 20696E74
537 00
538 .LASF7:
539 00cf 6C6F6E67 .ascii "long long unsigned int\000"
539 206C6F6E
539 6720756E
539 7369676E
539 65642069
540 .LASF17:
541 00e6 6D6F6465 .ascii "mode\000"
541 00
542 .LASF6:
543 00eb 6C6F6E67 .ascii "long long int\000"
543 206C6F6E
543 6720696E
543 7400
544 .LASF11:
545 00f9 63686172 .ascii "char\000"
545 00
546 .LASF2:
547 00fe 73686F72 .ascii "short int\000"
547 7420696E
547 7400
548 .LASF12:
549 0108 75696E74 .ascii "uint8\000"
549 3800
550 .LASF20:
551 010e 474E5520 .ascii "GNU C 4.7.3 20130312 (release) [ARM/embedded-4_7-br"
551 4320342E
551 372E3320
551 32303133
551 30333132
552 0141 616E6368 .ascii "anch revision 196615]\000"
552 20726576
552 6973696F
552 6E203139
552 36363135
553 .LASF22:
554 0157 573A5C53 .ascii "W:\\SCSI2SD\\USB_Bootloader.cydsn\000"
554 43534932
554 53445C55
554 53425F42
554 6F6F746C
555 .LASF4:
556 0177 6C6F6E67 .ascii "long int\000"
556 20696E74
556 00
557 .LASF0:
558 0180 7369676E .ascii "signed char\000"
558 65642063
558 68617200
559 .ident "GCC: (GNU Tools for ARM Embedded Processors) 4.7.3 20130312 (release) [ARM/embedded-4_7-br

View File

@ -0,0 +1,860 @@
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccAFwykg.s page 1
1 .syntax unified
2 .cpu cortex-m3
3 .fpu softvfp
4 .eabi_attribute 20, 1
5 .eabi_attribute 21, 1
6 .eabi_attribute 23, 3
7 .eabi_attribute 24, 1
8 .eabi_attribute 25, 1
9 .eabi_attribute 26, 1
10 .eabi_attribute 30, 4
11 .eabi_attribute 34, 1
12 .eabi_attribute 18, 4
13 .thumb
14 .file "USBFS_Dp.c"
15 .text
16 .Ltext0:
17 .cfi_sections .debug_frame
18 .section .text.USBFS_Dp_Write,"ax",%progbits
19 .align 1
20 .global USBFS_Dp_Write
21 .thumb
22 .thumb_func
23 .type USBFS_Dp_Write, %function
24 USBFS_Dp_Write:
25 .LFB0:
26 .file 1 ".\\Generated_Source\\PSoC5\\USBFS_Dp.c"
1:.\Generated_Source\PSoC5/USBFS_Dp.c **** /*******************************************************************************
2:.\Generated_Source\PSoC5/USBFS_Dp.c **** * File Name: USBFS_Dp.c
3:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Version 1.90
4:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
5:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Description:
6:.\Generated_Source\PSoC5/USBFS_Dp.c **** * This file contains API to enable firmware control of a Pins component.
7:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
8:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Note:
9:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
10:.\Generated_Source\PSoC5/USBFS_Dp.c **** ********************************************************************************
11:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Copyright 2008-2012, Cypress Semiconductor Corporation. All rights reserved.
12:.\Generated_Source\PSoC5/USBFS_Dp.c **** * You may use this file only in accordance with the license, terms, conditions,
13:.\Generated_Source\PSoC5/USBFS_Dp.c **** * disclaimers, and limitations in the end user license agreement accompanying
14:.\Generated_Source\PSoC5/USBFS_Dp.c **** * the software package with which this file was provided.
15:.\Generated_Source\PSoC5/USBFS_Dp.c **** *******************************************************************************/
16:.\Generated_Source\PSoC5/USBFS_Dp.c ****
17:.\Generated_Source\PSoC5/USBFS_Dp.c **** #include "cytypes.h"
18:.\Generated_Source\PSoC5/USBFS_Dp.c **** #include "USBFS_Dp.h"
19:.\Generated_Source\PSoC5/USBFS_Dp.c ****
20:.\Generated_Source\PSoC5/USBFS_Dp.c **** /* APIs are not generated for P15[7:6] on PSoC 5 */
21:.\Generated_Source\PSoC5/USBFS_Dp.c **** #if !(CY_PSOC5A &&\
22:.\Generated_Source\PSoC5/USBFS_Dp.c **** USBFS_Dp__PORT == 15 && ((USBFS_Dp__MASK & 0xC0) != 0))
23:.\Generated_Source\PSoC5/USBFS_Dp.c ****
24:.\Generated_Source\PSoC5/USBFS_Dp.c ****
25:.\Generated_Source\PSoC5/USBFS_Dp.c **** /*******************************************************************************
26:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Function Name: USBFS_Dp_Write
27:.\Generated_Source\PSoC5/USBFS_Dp.c **** ********************************************************************************
28:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
29:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Summary:
30:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Assign a new value to the digital port's data output register.
31:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccAFwykg.s page 2
32:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Parameters:
33:.\Generated_Source\PSoC5/USBFS_Dp.c **** * prtValue: The value to be assigned to the Digital Port.
34:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
35:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Return:
36:.\Generated_Source\PSoC5/USBFS_Dp.c **** * None
37:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
38:.\Generated_Source\PSoC5/USBFS_Dp.c **** *******************************************************************************/
39:.\Generated_Source\PSoC5/USBFS_Dp.c **** void USBFS_Dp_Write(uint8 value)
40:.\Generated_Source\PSoC5/USBFS_Dp.c **** {
27 .loc 1 40 0
28 .cfi_startproc
29 @ args = 0, pretend = 0, frame = 0
30 @ frame_needed = 0, uses_anonymous_args = 0
31 @ link register save eliminated.
32 .LVL0:
41:.\Generated_Source\PSoC5/USBFS_Dp.c **** uint8 staticBits = (USBFS_Dp_DR & (uint8)(~USBFS_Dp_MASK));
33 .loc 1 41 0
34 0000 054B ldr r3, .L2
42:.\Generated_Source\PSoC5/USBFS_Dp.c **** USBFS_Dp_DR = staticBits | ((uint8)(value << USBFS_Dp_SHIFT) & USBFS_Dp_MASK);
35 .loc 1 42 0
36 0002 8001 lsls r0, r0, #6
37 .LVL1:
41:.\Generated_Source\PSoC5/USBFS_Dp.c **** uint8 staticBits = (USBFS_Dp_DR & (uint8)(~USBFS_Dp_MASK));
38 .loc 1 41 0
39 0004 1A78 ldrb r2, [r3, #0] @ zero_extendqisi2
40 .LVL2:
41 .loc 1 42 0
42 0006 00F04001 and r1, r0, #64
41:.\Generated_Source\PSoC5/USBFS_Dp.c **** uint8 staticBits = (USBFS_Dp_DR & (uint8)(~USBFS_Dp_MASK));
43 .loc 1 41 0
44 000a 02F0BF02 and r2, r2, #191
45 .LVL3:
46 .loc 1 42 0
47 000e 41EA0200 orr r0, r1, r2
48 0012 1870 strb r0, [r3, #0]
49 0014 7047 bx lr
50 .L3:
51 0016 00BF .align 2
52 .L2:
53 0018 F0510040 .word 1073762800
54 .cfi_endproc
55 .LFE0:
56 .size USBFS_Dp_Write, .-USBFS_Dp_Write
57 .section .text.USBFS_Dp_SetDriveMode,"ax",%progbits
58 .align 1
59 .global USBFS_Dp_SetDriveMode
60 .thumb
61 .thumb_func
62 .type USBFS_Dp_SetDriveMode, %function
63 USBFS_Dp_SetDriveMode:
64 .LFB1:
43:.\Generated_Source\PSoC5/USBFS_Dp.c **** }
44:.\Generated_Source\PSoC5/USBFS_Dp.c ****
45:.\Generated_Source\PSoC5/USBFS_Dp.c ****
46:.\Generated_Source\PSoC5/USBFS_Dp.c **** /*******************************************************************************
47:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Function Name: USBFS_Dp_SetDriveMode
48:.\Generated_Source\PSoC5/USBFS_Dp.c **** ********************************************************************************
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccAFwykg.s page 3
49:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
50:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Summary:
51:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Change the drive mode on the pins of the port.
52:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
53:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Parameters:
54:.\Generated_Source\PSoC5/USBFS_Dp.c **** * mode: Change the pins to this drive mode.
55:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
56:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Return:
57:.\Generated_Source\PSoC5/USBFS_Dp.c **** * None
58:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
59:.\Generated_Source\PSoC5/USBFS_Dp.c **** *******************************************************************************/
60:.\Generated_Source\PSoC5/USBFS_Dp.c **** void USBFS_Dp_SetDriveMode(uint8 mode)
61:.\Generated_Source\PSoC5/USBFS_Dp.c **** {
65 .loc 1 61 0
66 .cfi_startproc
67 @ args = 0, pretend = 0, frame = 0
68 @ frame_needed = 0, uses_anonymous_args = 0
69 @ link register save eliminated.
70 .LVL4:
62:.\Generated_Source\PSoC5/USBFS_Dp.c **** CyPins_SetPinDriveMode(USBFS_Dp_0, mode);
71 .loc 1 62 0
72 0000 044B ldr r3, .L5
73 0002 00F00E00 and r0, r0, #14
74 .LVL5:
75 0006 1A78 ldrb r2, [r3, #0] @ zero_extendqisi2
76 0008 22F00E01 bic r1, r2, #14
77 000c 40EA0102 orr r2, r0, r1
78 0010 1A70 strb r2, [r3, #0]
79 0012 7047 bx lr
80 .L6:
81 .align 2
82 .L5:
83 0014 7E500040 .word 1073762430
84 .cfi_endproc
85 .LFE1:
86 .size USBFS_Dp_SetDriveMode, .-USBFS_Dp_SetDriveMode
87 .section .text.USBFS_Dp_Read,"ax",%progbits
88 .align 1
89 .global USBFS_Dp_Read
90 .thumb
91 .thumb_func
92 .type USBFS_Dp_Read, %function
93 USBFS_Dp_Read:
94 .LFB2:
63:.\Generated_Source\PSoC5/USBFS_Dp.c **** }
64:.\Generated_Source\PSoC5/USBFS_Dp.c ****
65:.\Generated_Source\PSoC5/USBFS_Dp.c ****
66:.\Generated_Source\PSoC5/USBFS_Dp.c **** /*******************************************************************************
67:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Function Name: USBFS_Dp_Read
68:.\Generated_Source\PSoC5/USBFS_Dp.c **** ********************************************************************************
69:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
70:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Summary:
71:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Read the current value on the pins of the Digital Port in right justified
72:.\Generated_Source\PSoC5/USBFS_Dp.c **** * form.
73:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
74:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Parameters:
75:.\Generated_Source\PSoC5/USBFS_Dp.c **** * None
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccAFwykg.s page 4
76:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
77:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Return:
78:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Returns the current value of the Digital Port as a right justified number
79:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
80:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Note:
81:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Macro USBFS_Dp_ReadPS calls this function.
82:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
83:.\Generated_Source\PSoC5/USBFS_Dp.c **** *******************************************************************************/
84:.\Generated_Source\PSoC5/USBFS_Dp.c **** uint8 USBFS_Dp_Read(void)
85:.\Generated_Source\PSoC5/USBFS_Dp.c **** {
95 .loc 1 85 0
96 .cfi_startproc
97 @ args = 0, pretend = 0, frame = 0
98 @ frame_needed = 0, uses_anonymous_args = 0
99 @ link register save eliminated.
86:.\Generated_Source\PSoC5/USBFS_Dp.c **** return (USBFS_Dp_PS & USBFS_Dp_MASK) >> USBFS_Dp_SHIFT;
100 .loc 1 86 0
101 0000 024B ldr r3, .L8
102 0002 1878 ldrb r0, [r3, #0] @ zero_extendqisi2
87:.\Generated_Source\PSoC5/USBFS_Dp.c **** }
103 .loc 1 87 0
104 0004 C0F38010 ubfx r0, r0, #6, #1
105 0008 7047 bx lr
106 .L9:
107 000a 00BF .align 2
108 .L8:
109 000c F1510040 .word 1073762801
110 .cfi_endproc
111 .LFE2:
112 .size USBFS_Dp_Read, .-USBFS_Dp_Read
113 .section .text.USBFS_Dp_ReadDataReg,"ax",%progbits
114 .align 1
115 .global USBFS_Dp_ReadDataReg
116 .thumb
117 .thumb_func
118 .type USBFS_Dp_ReadDataReg, %function
119 USBFS_Dp_ReadDataReg:
120 .LFB3:
88:.\Generated_Source\PSoC5/USBFS_Dp.c ****
89:.\Generated_Source\PSoC5/USBFS_Dp.c ****
90:.\Generated_Source\PSoC5/USBFS_Dp.c **** /*******************************************************************************
91:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Function Name: USBFS_Dp_ReadDataReg
92:.\Generated_Source\PSoC5/USBFS_Dp.c **** ********************************************************************************
93:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
94:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Summary:
95:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Read the current value assigned to a Digital Port's data output register
96:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
97:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Parameters:
98:.\Generated_Source\PSoC5/USBFS_Dp.c **** * None
99:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
100:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Return:
101:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Returns the current value assigned to the Digital Port's data output register
102:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
103:.\Generated_Source\PSoC5/USBFS_Dp.c **** *******************************************************************************/
104:.\Generated_Source\PSoC5/USBFS_Dp.c **** uint8 USBFS_Dp_ReadDataReg(void)
105:.\Generated_Source\PSoC5/USBFS_Dp.c **** {
121 .loc 1 105 0
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccAFwykg.s page 5
122 .cfi_startproc
123 @ args = 0, pretend = 0, frame = 0
124 @ frame_needed = 0, uses_anonymous_args = 0
125 @ link register save eliminated.
106:.\Generated_Source\PSoC5/USBFS_Dp.c **** return (USBFS_Dp_DR & USBFS_Dp_MASK) >> USBFS_Dp_SHIFT;
126 .loc 1 106 0
127 0000 024B ldr r3, .L11
128 0002 1878 ldrb r0, [r3, #0] @ zero_extendqisi2
107:.\Generated_Source\PSoC5/USBFS_Dp.c **** }
129 .loc 1 107 0
130 0004 C0F38010 ubfx r0, r0, #6, #1
131 0008 7047 bx lr
132 .L12:
133 000a 00BF .align 2
134 .L11:
135 000c F0510040 .word 1073762800
136 .cfi_endproc
137 .LFE3:
138 .size USBFS_Dp_ReadDataReg, .-USBFS_Dp_ReadDataReg
139 .section .text.USBFS_Dp_ClearInterrupt,"ax",%progbits
140 .align 1
141 .global USBFS_Dp_ClearInterrupt
142 .thumb
143 .thumb_func
144 .type USBFS_Dp_ClearInterrupt, %function
145 USBFS_Dp_ClearInterrupt:
146 .LFB4:
108:.\Generated_Source\PSoC5/USBFS_Dp.c ****
109:.\Generated_Source\PSoC5/USBFS_Dp.c ****
110:.\Generated_Source\PSoC5/USBFS_Dp.c **** /* If Interrupts Are Enabled for this Pins component */
111:.\Generated_Source\PSoC5/USBFS_Dp.c **** #if defined(USBFS_Dp_INTSTAT)
112:.\Generated_Source\PSoC5/USBFS_Dp.c ****
113:.\Generated_Source\PSoC5/USBFS_Dp.c **** /*******************************************************************************
114:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Function Name: USBFS_Dp_ClearInterrupt
115:.\Generated_Source\PSoC5/USBFS_Dp.c **** ********************************************************************************
116:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Summary:
117:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Clears any active interrupts attached to port and returns the value of the
118:.\Generated_Source\PSoC5/USBFS_Dp.c **** * interrupt status register.
119:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
120:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Parameters:
121:.\Generated_Source\PSoC5/USBFS_Dp.c **** * None
122:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
123:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Return:
124:.\Generated_Source\PSoC5/USBFS_Dp.c **** * Returns the value of the interrupt status register
125:.\Generated_Source\PSoC5/USBFS_Dp.c **** *
126:.\Generated_Source\PSoC5/USBFS_Dp.c **** *******************************************************************************/
127:.\Generated_Source\PSoC5/USBFS_Dp.c **** uint8 USBFS_Dp_ClearInterrupt(void)
128:.\Generated_Source\PSoC5/USBFS_Dp.c **** {
147 .loc 1 128 0
148 .cfi_startproc
149 @ args = 0, pretend = 0, frame = 0
150 @ frame_needed = 0, uses_anonymous_args = 0
151 @ link register save eliminated.
129:.\Generated_Source\PSoC5/USBFS_Dp.c **** return (USBFS_Dp_INTSTAT & USBFS_Dp_MASK) >> USBFS_Dp_SHIFT;
152 .loc 1 129 0
153 0000 024B ldr r3, .L14
154 0002 1878 ldrb r0, [r3, #0] @ zero_extendqisi2
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccAFwykg.s page 6
130:.\Generated_Source\PSoC5/USBFS_Dp.c **** }
155 .loc 1 130 0
156 0004 C0F38010 ubfx r0, r0, #6, #1
157 0008 7047 bx lr
158 .L15:
159 000a 00BF .align 2
160 .L14:
161 000c 8F450040 .word 1073759631
162 .cfi_endproc
163 .LFE4:
164 .size USBFS_Dp_ClearInterrupt, .-USBFS_Dp_ClearInterrupt
165 .text
166 .Letext0:
167 .file 2 ".\\Generated_Source\\PSoC5\\cytypes.h"
168 .section .debug_info,"",%progbits
169 .Ldebug_info0:
170 0000 48010000 .4byte 0x148
171 0004 0200 .2byte 0x2
172 0006 00000000 .4byte .Ldebug_abbrev0
173 000a 04 .byte 0x4
174 000b 01 .uleb128 0x1
175 000c 10010000 .4byte .LASF21
176 0010 01 .byte 0x1
177 0011 7C000000 .4byte .LASF22
178 0015 59010000 .4byte .LASF23
179 0019 00000000 .4byte .Ldebug_ranges0+0
180 001d 00000000 .4byte 0
181 0021 00000000 .4byte 0
182 0025 00000000 .4byte .Ldebug_line0
183 0029 02 .uleb128 0x2
184 002a 01 .byte 0x1
185 002b 06 .byte 0x6
186 002c 98010000 .4byte .LASF0
187 0030 02 .uleb128 0x2
188 0031 01 .byte 0x1
189 0032 08 .byte 0x8
190 0033 3D000000 .4byte .LASF1
191 0037 02 .uleb128 0x2
192 0038 02 .byte 0x2
193 0039 05 .byte 0x5
194 003a 00010000 .4byte .LASF2
195 003e 02 .uleb128 0x2
196 003f 02 .byte 0x2
197 0040 07 .byte 0x7
198 0041 62000000 .4byte .LASF3
199 0045 02 .uleb128 0x2
200 0046 04 .byte 0x4
201 0047 05 .byte 0x5
202 0048 79010000 .4byte .LASF4
203 004c 02 .uleb128 0x2
204 004d 04 .byte 0x4
205 004e 07 .byte 0x7
206 004f 50000000 .4byte .LASF5
207 0053 02 .uleb128 0x2
208 0054 08 .byte 0x8
209 0055 05 .byte 0x5
210 0056 ED000000 .4byte .LASF6
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccAFwykg.s page 7
211 005a 02 .uleb128 0x2
212 005b 08 .byte 0x8
213 005c 07 .byte 0x7
214 005d BC000000 .4byte .LASF7
215 0061 03 .uleb128 0x3
216 0062 04 .byte 0x4
217 0063 05 .byte 0x5
218 0064 696E7400 .ascii "int\000"
219 0068 02 .uleb128 0x2
220 0069 04 .byte 0x4
221 006a 07 .byte 0x7
222 006b AF000000 .4byte .LASF8
223 006f 04 .uleb128 0x4
224 0070 0A010000 .4byte .LASF12
225 0074 02 .byte 0x2
226 0075 5B .byte 0x5b
227 0076 30000000 .4byte 0x30
228 007a 02 .uleb128 0x2
229 007b 04 .byte 0x4
230 007c 04 .byte 0x4
231 007d 1F000000 .4byte .LASF9
232 0081 02 .uleb128 0x2
233 0082 08 .byte 0x8
234 0083 04 .byte 0x4
235 0084 75000000 .4byte .LASF10
236 0088 02 .uleb128 0x2
237 0089 01 .byte 0x1
238 008a 08 .byte 0x8
239 008b FB000000 .4byte .LASF11
240 008f 04 .uleb128 0x4
241 0090 4B000000 .4byte .LASF13
242 0094 02 .byte 0x2
243 0095 F0 .byte 0xf0
244 0096 9A000000 .4byte 0x9a
245 009a 05 .uleb128 0x5
246 009b 6F000000 .4byte 0x6f
247 009f 06 .uleb128 0x6
248 00a0 01 .byte 0x1
249 00a1 A0000000 .4byte .LASF14
250 00a5 01 .byte 0x1
251 00a6 27 .byte 0x27
252 00a7 01 .byte 0x1
253 00a8 00000000 .4byte .LFB0
254 00ac 1C000000 .4byte .LFE0
255 00b0 02 .byte 0x2
256 00b1 7D .byte 0x7d
257 00b2 00 .sleb128 0
258 00b3 01 .byte 0x1
259 00b4 D7000000 .4byte 0xd7
260 00b8 07 .uleb128 0x7
261 00b9 00000000 .4byte .LASF16
262 00bd 01 .byte 0x1
263 00be 27 .byte 0x27
264 00bf 6F000000 .4byte 0x6f
265 00c3 00000000 .4byte .LLST0
266 00c7 08 .uleb128 0x8
267 00c8 14000000 .4byte .LASF24
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccAFwykg.s page 8
268 00cc 01 .byte 0x1
269 00cd 29 .byte 0x29
270 00ce 6F000000 .4byte 0x6f
271 00d2 21000000 .4byte .LLST1
272 00d6 00 .byte 0
273 00d7 06 .uleb128 0x6
274 00d8 01 .byte 0x1
275 00d9 82010000 .4byte .LASF15
276 00dd 01 .byte 0x1
277 00de 3C .byte 0x3c
278 00df 01 .byte 0x1
279 00e0 00000000 .4byte .LFB1
280 00e4 18000000 .4byte .LFE1
281 00e8 02 .byte 0x2
282 00e9 7D .byte 0x7d
283 00ea 00 .sleb128 0
284 00eb 01 .byte 0x1
285 00ec 00010000 .4byte 0x100
286 00f0 07 .uleb128 0x7
287 00f1 E8000000 .4byte .LASF17
288 00f5 01 .byte 0x1
289 00f6 3C .byte 0x3c
290 00f7 6F000000 .4byte 0x6f
291 00fb 39000000 .4byte .LLST2
292 00ff 00 .byte 0
293 0100 09 .uleb128 0x9
294 0101 01 .byte 0x1
295 0102 06000000 .4byte .LASF18
296 0106 01 .byte 0x1
297 0107 54 .byte 0x54
298 0108 01 .byte 0x1
299 0109 6F000000 .4byte 0x6f
300 010d 00000000 .4byte .LFB2
301 0111 10000000 .4byte .LFE2
302 0115 02 .byte 0x2
303 0116 7D .byte 0x7d
304 0117 00 .sleb128 0
305 0118 01 .byte 0x1
306 0119 09 .uleb128 0x9
307 011a 01 .byte 0x1
308 011b D3000000 .4byte .LASF19
309 011f 01 .byte 0x1
310 0120 68 .byte 0x68
311 0121 01 .byte 0x1
312 0122 6F000000 .4byte 0x6f
313 0126 00000000 .4byte .LFB3
314 012a 10000000 .4byte .LFE3
315 012e 02 .byte 0x2
316 012f 7D .byte 0x7d
317 0130 00 .sleb128 0
318 0131 01 .byte 0x1
319 0132 09 .uleb128 0x9
320 0133 01 .byte 0x1
321 0134 25000000 .4byte .LASF20
322 0138 01 .byte 0x1
323 0139 7F .byte 0x7f
324 013a 01 .byte 0x1
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccAFwykg.s page 9
325 013b 6F000000 .4byte 0x6f
326 013f 00000000 .4byte .LFB4
327 0143 10000000 .4byte .LFE4
328 0147 02 .byte 0x2
329 0148 7D .byte 0x7d
330 0149 00 .sleb128 0
331 014a 01 .byte 0x1
332 014b 00 .byte 0
333 .section .debug_abbrev,"",%progbits
334 .Ldebug_abbrev0:
335 0000 01 .uleb128 0x1
336 0001 11 .uleb128 0x11
337 0002 01 .byte 0x1
338 0003 25 .uleb128 0x25
339 0004 0E .uleb128 0xe
340 0005 13 .uleb128 0x13
341 0006 0B .uleb128 0xb
342 0007 03 .uleb128 0x3
343 0008 0E .uleb128 0xe
344 0009 1B .uleb128 0x1b
345 000a 0E .uleb128 0xe
346 000b 55 .uleb128 0x55
347 000c 06 .uleb128 0x6
348 000d 11 .uleb128 0x11
349 000e 01 .uleb128 0x1
350 000f 52 .uleb128 0x52
351 0010 01 .uleb128 0x1
352 0011 10 .uleb128 0x10
353 0012 06 .uleb128 0x6
354 0013 00 .byte 0
355 0014 00 .byte 0
356 0015 02 .uleb128 0x2
357 0016 24 .uleb128 0x24
358 0017 00 .byte 0
359 0018 0B .uleb128 0xb
360 0019 0B .uleb128 0xb
361 001a 3E .uleb128 0x3e
362 001b 0B .uleb128 0xb
363 001c 03 .uleb128 0x3
364 001d 0E .uleb128 0xe
365 001e 00 .byte 0
366 001f 00 .byte 0
367 0020 03 .uleb128 0x3
368 0021 24 .uleb128 0x24
369 0022 00 .byte 0
370 0023 0B .uleb128 0xb
371 0024 0B .uleb128 0xb
372 0025 3E .uleb128 0x3e
373 0026 0B .uleb128 0xb
374 0027 03 .uleb128 0x3
375 0028 08 .uleb128 0x8
376 0029 00 .byte 0
377 002a 00 .byte 0
378 002b 04 .uleb128 0x4
379 002c 16 .uleb128 0x16
380 002d 00 .byte 0
381 002e 03 .uleb128 0x3
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccAFwykg.s page 10
382 002f 0E .uleb128 0xe
383 0030 3A .uleb128 0x3a
384 0031 0B .uleb128 0xb
385 0032 3B .uleb128 0x3b
386 0033 0B .uleb128 0xb
387 0034 49 .uleb128 0x49
388 0035 13 .uleb128 0x13
389 0036 00 .byte 0
390 0037 00 .byte 0
391 0038 05 .uleb128 0x5
392 0039 35 .uleb128 0x35
393 003a 00 .byte 0
394 003b 49 .uleb128 0x49
395 003c 13 .uleb128 0x13
396 003d 00 .byte 0
397 003e 00 .byte 0
398 003f 06 .uleb128 0x6
399 0040 2E .uleb128 0x2e
400 0041 01 .byte 0x1
401 0042 3F .uleb128 0x3f
402 0043 0C .uleb128 0xc
403 0044 03 .uleb128 0x3
404 0045 0E .uleb128 0xe
405 0046 3A .uleb128 0x3a
406 0047 0B .uleb128 0xb
407 0048 3B .uleb128 0x3b
408 0049 0B .uleb128 0xb
409 004a 27 .uleb128 0x27
410 004b 0C .uleb128 0xc
411 004c 11 .uleb128 0x11
412 004d 01 .uleb128 0x1
413 004e 12 .uleb128 0x12
414 004f 01 .uleb128 0x1
415 0050 40 .uleb128 0x40
416 0051 0A .uleb128 0xa
417 0052 9742 .uleb128 0x2117
418 0054 0C .uleb128 0xc
419 0055 01 .uleb128 0x1
420 0056 13 .uleb128 0x13
421 0057 00 .byte 0
422 0058 00 .byte 0
423 0059 07 .uleb128 0x7
424 005a 05 .uleb128 0x5
425 005b 00 .byte 0
426 005c 03 .uleb128 0x3
427 005d 0E .uleb128 0xe
428 005e 3A .uleb128 0x3a
429 005f 0B .uleb128 0xb
430 0060 3B .uleb128 0x3b
431 0061 0B .uleb128 0xb
432 0062 49 .uleb128 0x49
433 0063 13 .uleb128 0x13
434 0064 02 .uleb128 0x2
435 0065 06 .uleb128 0x6
436 0066 00 .byte 0
437 0067 00 .byte 0
438 0068 08 .uleb128 0x8
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccAFwykg.s page 11
439 0069 34 .uleb128 0x34
440 006a 00 .byte 0
441 006b 03 .uleb128 0x3
442 006c 0E .uleb128 0xe
443 006d 3A .uleb128 0x3a
444 006e 0B .uleb128 0xb
445 006f 3B .uleb128 0x3b
446 0070 0B .uleb128 0xb
447 0071 49 .uleb128 0x49
448 0072 13 .uleb128 0x13
449 0073 02 .uleb128 0x2
450 0074 06 .uleb128 0x6
451 0075 00 .byte 0
452 0076 00 .byte 0
453 0077 09 .uleb128 0x9
454 0078 2E .uleb128 0x2e
455 0079 00 .byte 0
456 007a 3F .uleb128 0x3f
457 007b 0C .uleb128 0xc
458 007c 03 .uleb128 0x3
459 007d 0E .uleb128 0xe
460 007e 3A .uleb128 0x3a
461 007f 0B .uleb128 0xb
462 0080 3B .uleb128 0x3b
463 0081 0B .uleb128 0xb
464 0082 27 .uleb128 0x27
465 0083 0C .uleb128 0xc
466 0084 49 .uleb128 0x49
467 0085 13 .uleb128 0x13
468 0086 11 .uleb128 0x11
469 0087 01 .uleb128 0x1
470 0088 12 .uleb128 0x12
471 0089 01 .uleb128 0x1
472 008a 40 .uleb128 0x40
473 008b 0A .uleb128 0xa
474 008c 9742 .uleb128 0x2117
475 008e 0C .uleb128 0xc
476 008f 00 .byte 0
477 0090 00 .byte 0
478 0091 00 .byte 0
479 .section .debug_loc,"",%progbits
480 .Ldebug_loc0:
481 .LLST0:
482 0000 00000000 .4byte .LVL0
483 0004 04000000 .4byte .LVL1
484 0008 0100 .2byte 0x1
485 000a 50 .byte 0x50
486 000b 04000000 .4byte .LVL1
487 000f 1C000000 .4byte .LFE0
488 0013 0400 .2byte 0x4
489 0015 F3 .byte 0xf3
490 0016 01 .uleb128 0x1
491 0017 50 .byte 0x50
492 0018 9F .byte 0x9f
493 0019 00000000 .4byte 0
494 001d 00000000 .4byte 0
495 .LLST1:
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccAFwykg.s page 12
496 0021 06000000 .4byte .LVL2
497 0025 0E000000 .4byte .LVL3
498 0029 0600 .2byte 0x6
499 002b 72 .byte 0x72
500 002c 00 .sleb128 0
501 002d 09 .byte 0x9
502 002e BF .byte 0xbf
503 002f 1A .byte 0x1a
504 0030 9F .byte 0x9f
505 0031 00000000 .4byte 0
506 0035 00000000 .4byte 0
507 .LLST2:
508 0039 00000000 .4byte .LVL4
509 003d 06000000 .4byte .LVL5
510 0041 0100 .2byte 0x1
511 0043 50 .byte 0x50
512 0044 06000000 .4byte .LVL5
513 0048 18000000 .4byte .LFE1
514 004c 0400 .2byte 0x4
515 004e F3 .byte 0xf3
516 004f 01 .uleb128 0x1
517 0050 50 .byte 0x50
518 0051 9F .byte 0x9f
519 0052 00000000 .4byte 0
520 0056 00000000 .4byte 0
521 .section .debug_aranges,"",%progbits
522 0000 3C000000 .4byte 0x3c
523 0004 0200 .2byte 0x2
524 0006 00000000 .4byte .Ldebug_info0
525 000a 04 .byte 0x4
526 000b 00 .byte 0
527 000c 0000 .2byte 0
528 000e 0000 .2byte 0
529 0010 00000000 .4byte .LFB0
530 0014 1C000000 .4byte .LFE0-.LFB0
531 0018 00000000 .4byte .LFB1
532 001c 18000000 .4byte .LFE1-.LFB1
533 0020 00000000 .4byte .LFB2
534 0024 10000000 .4byte .LFE2-.LFB2
535 0028 00000000 .4byte .LFB3
536 002c 10000000 .4byte .LFE3-.LFB3
537 0030 00000000 .4byte .LFB4
538 0034 10000000 .4byte .LFE4-.LFB4
539 0038 00000000 .4byte 0
540 003c 00000000 .4byte 0
541 .section .debug_ranges,"",%progbits
542 .Ldebug_ranges0:
543 0000 00000000 .4byte .LFB0
544 0004 1C000000 .4byte .LFE0
545 0008 00000000 .4byte .LFB1
546 000c 18000000 .4byte .LFE1
547 0010 00000000 .4byte .LFB2
548 0014 10000000 .4byte .LFE2
549 0018 00000000 .4byte .LFB3
550 001c 10000000 .4byte .LFE3
551 0020 00000000 .4byte .LFB4
552 0024 10000000 .4byte .LFE4
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccAFwykg.s page 13
553 0028 00000000 .4byte 0
554 002c 00000000 .4byte 0
555 .section .debug_line,"",%progbits
556 .Ldebug_line0:
557 0000 A8000000 .section .debug_str,"MS",%progbits,1
557 02004700
557 00000201
557 FB0E0D00
557 01010101
558 .LASF16:
559 0000 76616C75 .ascii "value\000"
559 6500
560 .LASF18:
561 0006 55534246 .ascii "USBFS_Dp_Read\000"
561 535F4470
561 5F526561
561 6400
562 .LASF24:
563 0014 73746174 .ascii "staticBits\000"
563 69634269
563 747300
564 .LASF9:
565 001f 666C6F61 .ascii "float\000"
565 7400
566 .LASF20:
567 0025 55534246 .ascii "USBFS_Dp_ClearInterrupt\000"
567 535F4470
567 5F436C65
567 6172496E
567 74657272
568 .LASF1:
569 003d 756E7369 .ascii "unsigned char\000"
569 676E6564
569 20636861
569 7200
570 .LASF13:
571 004b 72656738 .ascii "reg8\000"
571 00
572 .LASF5:
573 0050 6C6F6E67 .ascii "long unsigned int\000"
573 20756E73
573 69676E65
573 6420696E
573 7400
574 .LASF3:
575 0062 73686F72 .ascii "short unsigned int\000"
575 7420756E
575 7369676E
575 65642069
575 6E7400
576 .LASF10:
577 0075 646F7562 .ascii "double\000"
577 6C6500
578 .LASF22:
579 007c 2E5C4765 .ascii ".\\Generated_Source\\PSoC5\\USBFS_Dp.c\000"
579 6E657261
579 7465645F
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccAFwykg.s page 14
579 536F7572
579 63655C50
580 .LASF14:
581 00a0 55534246 .ascii "USBFS_Dp_Write\000"
581 535F4470
581 5F577269
581 746500
582 .LASF8:
583 00af 756E7369 .ascii "unsigned int\000"
583 676E6564
583 20696E74
583 00
584 .LASF7:
585 00bc 6C6F6E67 .ascii "long long unsigned int\000"
585 206C6F6E
585 6720756E
585 7369676E
585 65642069
586 .LASF19:
587 00d3 55534246 .ascii "USBFS_Dp_ReadDataReg\000"
587 535F4470
587 5F526561
587 64446174
587 61526567
588 .LASF17:
589 00e8 6D6F6465 .ascii "mode\000"
589 00
590 .LASF6:
591 00ed 6C6F6E67 .ascii "long long int\000"
591 206C6F6E
591 6720696E
591 7400
592 .LASF11:
593 00fb 63686172 .ascii "char\000"
593 00
594 .LASF2:
595 0100 73686F72 .ascii "short int\000"
595 7420696E
595 7400
596 .LASF12:
597 010a 75696E74 .ascii "uint8\000"
597 3800
598 .LASF21:
599 0110 474E5520 .ascii "GNU C 4.7.3 20130312 (release) [ARM/embedded-4_7-br"
599 4320342E
599 372E3320
599 32303133
599 30333132
600 0143 616E6368 .ascii "anch revision 196615]\000"
600 20726576
600 6973696F
600 6E203139
600 36363135
601 .LASF23:
602 0159 573A5C53 .ascii "W:\\SCSI2SD\\USB_Bootloader.cydsn\000"
602 43534932
602 53445C55
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccAFwykg.s page 15
602 53425F42
602 6F6F746C
603 .LASF4:
604 0179 6C6F6E67 .ascii "long int\000"
604 20696E74
604 00
605 .LASF15:
606 0182 55534246 .ascii "USBFS_Dp_SetDriveMode\000"
606 535F4470
606 5F536574
606 44726976
606 654D6F64
607 .LASF0:
608 0198 7369676E .ascii "signed char\000"
608 65642063
608 68617200
609 .ident "GCC: (GNU Tools for ARM Embedded Processors) 4.7.3 20130312 (release) [ARM/embedded-4_7-br

View File

@ -0,0 +1,238 @@
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccRSBt5d.s page 1
1 .syntax unified
2 .cpu cortex-m3
3 .fpu softvfp
4 .eabi_attribute 20, 1
5 .eabi_attribute 21, 1
6 .eabi_attribute 23, 3
7 .eabi_attribute 24, 1
8 .eabi_attribute 25, 1
9 .eabi_attribute 26, 1
10 .eabi_attribute 30, 4
11 .eabi_attribute 34, 1
12 .eabi_attribute 18, 4
13 .thumb
14 .file "USBFS_audio.c"
15 .text
16 .Ltext0:
17 .cfi_sections .debug_frame
18 .Letext0:
19 .section .debug_info,"",%progbits
20 .Ldebug_info0:
21 0000 7C000000 .4byte 0x7c
22 0004 0200 .2byte 0x2
23 0006 00000000 .4byte .Ldebug_abbrev0
24 000a 04 .byte 0x4
25 000b 01 .uleb128 0x1
26 000c 1B000000 .4byte .LASF13
27 0010 01 .byte 0x1
28 0011 8D000000 .4byte .LASF14
29 0015 06010000 .4byte .LASF15
30 0019 00000000 .4byte .Ldebug_line0
31 001d 02 .uleb128 0x2
32 001e 01 .byte 0x1
33 001f 06 .byte 0x6
34 0020 EA000000 .4byte .LASF0
35 0024 02 .uleb128 0x2
36 0025 01 .byte 0x1
37 0026 08 .byte 0x8
38 0027 B4000000 .4byte .LASF1
39 002b 02 .uleb128 0x2
40 002c 02 .byte 0x2
41 002d 05 .byte 0x5
42 002e FC000000 .4byte .LASF2
43 0032 02 .uleb128 0x2
44 0033 02 .byte 0x2
45 0034 07 .byte 0x7
46 0035 D7000000 .4byte .LASF3
47 0039 02 .uleb128 0x2
48 003a 04 .byte 0x4
49 003b 05 .byte 0x5
50 003c C7000000 .4byte .LASF4
51 0040 02 .uleb128 0x2
52 0041 04 .byte 0x4
53 0042 07 .byte 0x7
54 0043 64000000 .4byte .LASF5
55 0047 02 .uleb128 0x2
56 0048 08 .byte 0x8
57 0049 05 .byte 0x5
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccRSBt5d.s page 2
58 004a 00000000 .4byte .LASF6
59 004e 02 .uleb128 0x2
60 004f 08 .byte 0x8
61 0050 07 .byte 0x7
62 0051 76000000 .4byte .LASF7
63 0055 03 .uleb128 0x3
64 0056 04 .byte 0x4
65 0057 05 .byte 0x5
66 0058 696E7400 .ascii "int\000"
67 005c 02 .uleb128 0x2
68 005d 04 .byte 0x4
69 005e 07 .byte 0x7
70 005f 0E000000 .4byte .LASF8
71 0063 02 .uleb128 0x2
72 0064 04 .byte 0x4
73 0065 04 .byte 0x4
74 0066 F6000000 .4byte .LASF9
75 006a 02 .uleb128 0x2
76 006b 08 .byte 0x8
77 006c 04 .byte 0x4
78 006d D0000000 .4byte .LASF10
79 0071 02 .uleb128 0x2
80 0072 01 .byte 0x1
81 0073 08 .byte 0x8
82 0074 C2000000 .4byte .LASF11
83 0078 02 .uleb128 0x2
84 0079 04 .byte 0x4
85 007a 07 .byte 0x7
86 007b 26010000 .4byte .LASF12
87 007f 00 .byte 0
88 .section .debug_abbrev,"",%progbits
89 .Ldebug_abbrev0:
90 0000 01 .uleb128 0x1
91 0001 11 .uleb128 0x11
92 0002 01 .byte 0x1
93 0003 25 .uleb128 0x25
94 0004 0E .uleb128 0xe
95 0005 13 .uleb128 0x13
96 0006 0B .uleb128 0xb
97 0007 03 .uleb128 0x3
98 0008 0E .uleb128 0xe
99 0009 1B .uleb128 0x1b
100 000a 0E .uleb128 0xe
101 000b 10 .uleb128 0x10
102 000c 06 .uleb128 0x6
103 000d 00 .byte 0
104 000e 00 .byte 0
105 000f 02 .uleb128 0x2
106 0010 24 .uleb128 0x24
107 0011 00 .byte 0
108 0012 0B .uleb128 0xb
109 0013 0B .uleb128 0xb
110 0014 3E .uleb128 0x3e
111 0015 0B .uleb128 0xb
112 0016 03 .uleb128 0x3
113 0017 0E .uleb128 0xe
114 0018 00 .byte 0
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccRSBt5d.s page 3
115 0019 00 .byte 0
116 001a 03 .uleb128 0x3
117 001b 24 .uleb128 0x24
118 001c 00 .byte 0
119 001d 0B .uleb128 0xb
120 001e 0B .uleb128 0xb
121 001f 3E .uleb128 0x3e
122 0020 0B .uleb128 0xb
123 0021 03 .uleb128 0x3
124 0022 08 .uleb128 0x8
125 0023 00 .byte 0
126 0024 00 .byte 0
127 0025 00 .byte 0
128 .section .debug_aranges,"",%progbits
129 0000 14000000 .4byte 0x14
130 0004 0200 .2byte 0x2
131 0006 00000000 .4byte .Ldebug_info0
132 000a 04 .byte 0x4
133 000b 00 .byte 0
134 000c 0000 .2byte 0
135 000e 0000 .2byte 0
136 0010 00000000 .4byte 0
137 0014 00000000 .4byte 0
138 .section .debug_line,"",%progbits
139 .Ldebug_line0:
140 0000 19000000 .section .debug_str,"MS",%progbits,1
140 02001300
140 00000201
140 FB0E0D00
140 01010101
141 .LASF6:
142 0000 6C6F6E67 .ascii "long long int\000"
142 206C6F6E
142 6720696E
142 7400
143 .LASF8:
144 000e 756E7369 .ascii "unsigned int\000"
144 676E6564
144 20696E74
144 00
145 .LASF13:
146 001b 474E5520 .ascii "GNU C 4.7.3 20130312 (release) [ARM/embedded-4_7-br"
146 4320342E
146 372E3320
146 32303133
146 30333132
147 004e 616E6368 .ascii "anch revision 196615]\000"
147 20726576
147 6973696F
147 6E203139
147 36363135
148 .LASF5:
149 0064 6C6F6E67 .ascii "long unsigned int\000"
149 20756E73
149 69676E65
149 6420696E
149 7400
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccRSBt5d.s page 4
150 .LASF7:
151 0076 6C6F6E67 .ascii "long long unsigned int\000"
151 206C6F6E
151 6720756E
151 7369676E
151 65642069
152 .LASF14:
153 008d 2E5C4765 .ascii ".\\Generated_Source\\PSoC5\\USBFS_audio.c\000"
153 6E657261
153 7465645F
153 536F7572
153 63655C50
154 .LASF1:
155 00b4 756E7369 .ascii "unsigned char\000"
155 676E6564
155 20636861
155 7200
156 .LASF11:
157 00c2 63686172 .ascii "char\000"
157 00
158 .LASF4:
159 00c7 6C6F6E67 .ascii "long int\000"
159 20696E74
159 00
160 .LASF10:
161 00d0 646F7562 .ascii "double\000"
161 6C6500
162 .LASF3:
163 00d7 73686F72 .ascii "short unsigned int\000"
163 7420756E
163 7369676E
163 65642069
163 6E7400
164 .LASF0:
165 00ea 7369676E .ascii "signed char\000"
165 65642063
165 68617200
166 .LASF9:
167 00f6 666C6F61 .ascii "float\000"
167 7400
168 .LASF2:
169 00fc 73686F72 .ascii "short int\000"
169 7420696E
169 7400
170 .LASF15:
171 0106 573A5C53 .ascii "W:\\SCSI2SD\\USB_Bootloader.cydsn\000"
171 43534932
171 53445C55
171 53425F42
171 6F6F746C
172 .LASF12:
173 0126 73697A65 .ascii "sizetype\000"
173 74797065
173 00
174 .ident "GCC: (GNU Tools for ARM Embedded Processors) 4.7.3 20130312 (release) [ARM/embedded-4_7-br

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,238 @@
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccSehHjb.s page 1
1 .syntax unified
2 .cpu cortex-m3
3 .fpu softvfp
4 .eabi_attribute 20, 1
5 .eabi_attribute 21, 1
6 .eabi_attribute 23, 3
7 .eabi_attribute 24, 1
8 .eabi_attribute 25, 1
9 .eabi_attribute 26, 1
10 .eabi_attribute 30, 4
11 .eabi_attribute 34, 1
12 .eabi_attribute 18, 4
13 .thumb
14 .file "USBFS_cdc.c"
15 .text
16 .Ltext0:
17 .cfi_sections .debug_frame
18 .Letext0:
19 .section .debug_info,"",%progbits
20 .Ldebug_info0:
21 0000 7C000000 .4byte 0x7c
22 0004 0200 .2byte 0x2
23 0006 00000000 .4byte .Ldebug_abbrev0
24 000a 04 .byte 0x4
25 000b 01 .uleb128 0x1
26 000c 1B000000 .4byte .LASF13
27 0010 01 .byte 0x1
28 0011 8D000000 .4byte .LASF14
29 0015 04010000 .4byte .LASF15
30 0019 00000000 .4byte .Ldebug_line0
31 001d 02 .uleb128 0x2
32 001e 01 .byte 0x1
33 001f 06 .byte 0x6
34 0020 E8000000 .4byte .LASF0
35 0024 02 .uleb128 0x2
36 0025 01 .byte 0x1
37 0026 08 .byte 0x8
38 0027 B2000000 .4byte .LASF1
39 002b 02 .uleb128 0x2
40 002c 02 .byte 0x2
41 002d 05 .byte 0x5
42 002e FA000000 .4byte .LASF2
43 0032 02 .uleb128 0x2
44 0033 02 .byte 0x2
45 0034 07 .byte 0x7
46 0035 D5000000 .4byte .LASF3
47 0039 02 .uleb128 0x2
48 003a 04 .byte 0x4
49 003b 05 .byte 0x5
50 003c C5000000 .4byte .LASF4
51 0040 02 .uleb128 0x2
52 0041 04 .byte 0x4
53 0042 07 .byte 0x7
54 0043 64000000 .4byte .LASF5
55 0047 02 .uleb128 0x2
56 0048 08 .byte 0x8
57 0049 05 .byte 0x5
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccSehHjb.s page 2
58 004a 00000000 .4byte .LASF6
59 004e 02 .uleb128 0x2
60 004f 08 .byte 0x8
61 0050 07 .byte 0x7
62 0051 76000000 .4byte .LASF7
63 0055 03 .uleb128 0x3
64 0056 04 .byte 0x4
65 0057 05 .byte 0x5
66 0058 696E7400 .ascii "int\000"
67 005c 02 .uleb128 0x2
68 005d 04 .byte 0x4
69 005e 07 .byte 0x7
70 005f 0E000000 .4byte .LASF8
71 0063 02 .uleb128 0x2
72 0064 04 .byte 0x4
73 0065 04 .byte 0x4
74 0066 F4000000 .4byte .LASF9
75 006a 02 .uleb128 0x2
76 006b 08 .byte 0x8
77 006c 04 .byte 0x4
78 006d CE000000 .4byte .LASF10
79 0071 02 .uleb128 0x2
80 0072 01 .byte 0x1
81 0073 08 .byte 0x8
82 0074 C0000000 .4byte .LASF11
83 0078 02 .uleb128 0x2
84 0079 04 .byte 0x4
85 007a 07 .byte 0x7
86 007b 24010000 .4byte .LASF12
87 007f 00 .byte 0
88 .section .debug_abbrev,"",%progbits
89 .Ldebug_abbrev0:
90 0000 01 .uleb128 0x1
91 0001 11 .uleb128 0x11
92 0002 01 .byte 0x1
93 0003 25 .uleb128 0x25
94 0004 0E .uleb128 0xe
95 0005 13 .uleb128 0x13
96 0006 0B .uleb128 0xb
97 0007 03 .uleb128 0x3
98 0008 0E .uleb128 0xe
99 0009 1B .uleb128 0x1b
100 000a 0E .uleb128 0xe
101 000b 10 .uleb128 0x10
102 000c 06 .uleb128 0x6
103 000d 00 .byte 0
104 000e 00 .byte 0
105 000f 02 .uleb128 0x2
106 0010 24 .uleb128 0x24
107 0011 00 .byte 0
108 0012 0B .uleb128 0xb
109 0013 0B .uleb128 0xb
110 0014 3E .uleb128 0x3e
111 0015 0B .uleb128 0xb
112 0016 03 .uleb128 0x3
113 0017 0E .uleb128 0xe
114 0018 00 .byte 0
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccSehHjb.s page 3
115 0019 00 .byte 0
116 001a 03 .uleb128 0x3
117 001b 24 .uleb128 0x24
118 001c 00 .byte 0
119 001d 0B .uleb128 0xb
120 001e 0B .uleb128 0xb
121 001f 3E .uleb128 0x3e
122 0020 0B .uleb128 0xb
123 0021 03 .uleb128 0x3
124 0022 08 .uleb128 0x8
125 0023 00 .byte 0
126 0024 00 .byte 0
127 0025 00 .byte 0
128 .section .debug_aranges,"",%progbits
129 0000 14000000 .4byte 0x14
130 0004 0200 .2byte 0x2
131 0006 00000000 .4byte .Ldebug_info0
132 000a 04 .byte 0x4
133 000b 00 .byte 0
134 000c 0000 .2byte 0
135 000e 0000 .2byte 0
136 0010 00000000 .4byte 0
137 0014 00000000 .4byte 0
138 .section .debug_line,"",%progbits
139 .Ldebug_line0:
140 0000 19000000 .section .debug_str,"MS",%progbits,1
140 02001300
140 00000201
140 FB0E0D00
140 01010101
141 .LASF6:
142 0000 6C6F6E67 .ascii "long long int\000"
142 206C6F6E
142 6720696E
142 7400
143 .LASF8:
144 000e 756E7369 .ascii "unsigned int\000"
144 676E6564
144 20696E74
144 00
145 .LASF13:
146 001b 474E5520 .ascii "GNU C 4.7.3 20130312 (release) [ARM/embedded-4_7-br"
146 4320342E
146 372E3320
146 32303133
146 30333132
147 004e 616E6368 .ascii "anch revision 196615]\000"
147 20726576
147 6973696F
147 6E203139
147 36363135
148 .LASF5:
149 0064 6C6F6E67 .ascii "long unsigned int\000"
149 20756E73
149 69676E65
149 6420696E
149 7400
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\ccSehHjb.s page 4
150 .LASF7:
151 0076 6C6F6E67 .ascii "long long unsigned int\000"
151 206C6F6E
151 6720756E
151 7369676E
151 65642069
152 .LASF14:
153 008d 2E5C4765 .ascii ".\\Generated_Source\\PSoC5\\USBFS_cdc.c\000"
153 6E657261
153 7465645F
153 536F7572
153 63655C50
154 .LASF1:
155 00b2 756E7369 .ascii "unsigned char\000"
155 676E6564
155 20636861
155 7200
156 .LASF11:
157 00c0 63686172 .ascii "char\000"
157 00
158 .LASF4:
159 00c5 6C6F6E67 .ascii "long int\000"
159 20696E74
159 00
160 .LASF10:
161 00ce 646F7562 .ascii "double\000"
161 6C6500
162 .LASF3:
163 00d5 73686F72 .ascii "short unsigned int\000"
163 7420756E
163 7369676E
163 65642069
163 6E7400
164 .LASF0:
165 00e8 7369676E .ascii "signed char\000"
165 65642063
165 68617200
166 .LASF9:
167 00f4 666C6F61 .ascii "float\000"
167 7400
168 .LASF2:
169 00fa 73686F72 .ascii "short int\000"
169 7420696E
169 7400
170 .LASF15:
171 0104 573A5C53 .ascii "W:\\SCSI2SD\\USB_Bootloader.cydsn\000"
171 43534932
171 53445C55
171 53425F42
171 6F6F746C
172 .LASF12:
173 0124 73697A65 .ascii "sizetype\000"
173 74797065
173 00
174 .ident "GCC: (GNU Tools for ARM Embedded Processors) 4.7.3 20130312 (release) [ARM/embedded-4_7-br

View File

@ -0,0 +1,942 @@
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\cc5apSsq.s page 1
1 .syntax unified
2 .cpu cortex-m3
3 .fpu softvfp
4 .eabi_attribute 20, 1
5 .eabi_attribute 21, 1
6 .eabi_attribute 23, 3
7 .eabi_attribute 24, 1
8 .eabi_attribute 25, 1
9 .eabi_attribute 26, 1
10 .eabi_attribute 30, 4
11 .eabi_attribute 34, 1
12 .eabi_attribute 18, 4
13 .thumb
14 .file "USBFS_cls.c"
15 .text
16 .Ltext0:
17 .cfi_sections .debug_frame
18 .section .text.USBFS_DispatchClassRqst,"ax",%progbits
19 .align 1
20 .global USBFS_DispatchClassRqst
21 .thumb
22 .thumb_func
23 .type USBFS_DispatchClassRqst, %function
24 USBFS_DispatchClassRqst:
25 .LFB0:
26 .file 1 ".\\Generated_Source\\PSoC5\\USBFS_cls.c"
1:.\Generated_Source\PSoC5/USBFS_cls.c **** /*******************************************************************************
2:.\Generated_Source\PSoC5/USBFS_cls.c **** * File Name: USBFS_cls.c
3:.\Generated_Source\PSoC5/USBFS_cls.c **** * Version 2.60
4:.\Generated_Source\PSoC5/USBFS_cls.c **** *
5:.\Generated_Source\PSoC5/USBFS_cls.c **** * Description:
6:.\Generated_Source\PSoC5/USBFS_cls.c **** * USB Class request handler.
7:.\Generated_Source\PSoC5/USBFS_cls.c **** *
8:.\Generated_Source\PSoC5/USBFS_cls.c **** * Note:
9:.\Generated_Source\PSoC5/USBFS_cls.c **** *
10:.\Generated_Source\PSoC5/USBFS_cls.c **** ********************************************************************************
11:.\Generated_Source\PSoC5/USBFS_cls.c **** * Copyright 2008-2013, Cypress Semiconductor Corporation. All rights reserved.
12:.\Generated_Source\PSoC5/USBFS_cls.c **** * You may use this file only in accordance with the license, terms, conditions,
13:.\Generated_Source\PSoC5/USBFS_cls.c **** * disclaimers, and limitations in the end user license agreement accompanying
14:.\Generated_Source\PSoC5/USBFS_cls.c **** * the software package with which this file was provided.
15:.\Generated_Source\PSoC5/USBFS_cls.c **** *******************************************************************************/
16:.\Generated_Source\PSoC5/USBFS_cls.c ****
17:.\Generated_Source\PSoC5/USBFS_cls.c **** #include "USBFS.h"
18:.\Generated_Source\PSoC5/USBFS_cls.c ****
19:.\Generated_Source\PSoC5/USBFS_cls.c **** #if(USBFS_EXTERN_CLS == USBFS_FALSE)
20:.\Generated_Source\PSoC5/USBFS_cls.c ****
21:.\Generated_Source\PSoC5/USBFS_cls.c **** #include "USBFS_pvt.h"
22:.\Generated_Source\PSoC5/USBFS_cls.c ****
23:.\Generated_Source\PSoC5/USBFS_cls.c ****
24:.\Generated_Source\PSoC5/USBFS_cls.c **** /***************************************
25:.\Generated_Source\PSoC5/USBFS_cls.c **** * User Implemented Class Driver Declarations.
26:.\Generated_Source\PSoC5/USBFS_cls.c **** ***************************************/
27:.\Generated_Source\PSoC5/USBFS_cls.c **** /* `#START USER_DEFINED_CLASS_DECLARATIONS` Place your declaration here */
28:.\Generated_Source\PSoC5/USBFS_cls.c ****
29:.\Generated_Source\PSoC5/USBFS_cls.c **** /* `#END` */
30:.\Generated_Source\PSoC5/USBFS_cls.c ****
31:.\Generated_Source\PSoC5/USBFS_cls.c ****
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\cc5apSsq.s page 2
32:.\Generated_Source\PSoC5/USBFS_cls.c **** /*******************************************************************************
33:.\Generated_Source\PSoC5/USBFS_cls.c **** * Function Name: USBFS_DispatchClassRqst
34:.\Generated_Source\PSoC5/USBFS_cls.c **** ********************************************************************************
35:.\Generated_Source\PSoC5/USBFS_cls.c **** * Summary:
36:.\Generated_Source\PSoC5/USBFS_cls.c **** * This routine dispatches class specific requests depend on interface class.
37:.\Generated_Source\PSoC5/USBFS_cls.c **** *
38:.\Generated_Source\PSoC5/USBFS_cls.c **** * Parameters:
39:.\Generated_Source\PSoC5/USBFS_cls.c **** * None.
40:.\Generated_Source\PSoC5/USBFS_cls.c **** *
41:.\Generated_Source\PSoC5/USBFS_cls.c **** * Return:
42:.\Generated_Source\PSoC5/USBFS_cls.c **** * requestHandled.
43:.\Generated_Source\PSoC5/USBFS_cls.c **** *
44:.\Generated_Source\PSoC5/USBFS_cls.c **** * Reentrant:
45:.\Generated_Source\PSoC5/USBFS_cls.c **** * No.
46:.\Generated_Source\PSoC5/USBFS_cls.c **** *
47:.\Generated_Source\PSoC5/USBFS_cls.c **** *******************************************************************************/
48:.\Generated_Source\PSoC5/USBFS_cls.c **** uint8 USBFS_DispatchClassRqst(void)
49:.\Generated_Source\PSoC5/USBFS_cls.c **** {
27 .loc 1 49 0
28 .cfi_startproc
29 @ args = 0, pretend = 0, frame = 0
30 @ frame_needed = 0, uses_anonymous_args = 0
31 @ link register save eliminated.
32 .LVL0:
50:.\Generated_Source\PSoC5/USBFS_cls.c **** uint8 requestHandled = USBFS_FALSE;
51:.\Generated_Source\PSoC5/USBFS_cls.c **** uint8 interfaceNumber = 0u;
52:.\Generated_Source\PSoC5/USBFS_cls.c ****
53:.\Generated_Source\PSoC5/USBFS_cls.c **** switch(CY_GET_REG8(USBFS_bmRequestType) & USBFS_RQST_RCPT_MASK)
33 .loc 1 53 0
34 0000 0F4B ldr r3, .L11
35 0002 1878 ldrb r0, [r3, #0] @ zero_extendqisi2
36 0004 00F00301 and r1, r0, #3
37 0008 0129 cmp r1, #1
38 000a 0CD0 beq .L3
39 000c 0229 cmp r1, #2
40 000e 0DD1 bne .L8
54:.\Generated_Source\PSoC5/USBFS_cls.c **** {
55:.\Generated_Source\PSoC5/USBFS_cls.c **** case USBFS_RQST_RCPT_IFC: /* Class-specific request directed to an interface */
56:.\Generated_Source\PSoC5/USBFS_cls.c **** interfaceNumber = CY_GET_REG8(USBFS_wIndexLo); /* wIndexLo contain Interface number */
57:.\Generated_Source\PSoC5/USBFS_cls.c **** break;
58:.\Generated_Source\PSoC5/USBFS_cls.c **** case USBFS_RQST_RCPT_EP: /* Class-specific request directed to the endpoint */
59:.\Generated_Source\PSoC5/USBFS_cls.c **** /* Find related interface to the endpoint, wIndexLo contain EP number */
60:.\Generated_Source\PSoC5/USBFS_cls.c **** interfaceNumber =
61:.\Generated_Source\PSoC5/USBFS_cls.c **** USBFS_EP[CY_GET_REG8(USBFS_wIndexLo) & USBFS_DIR_UNUSED].interface;
41 .loc 1 61 0
42 0010 0C4A ldr r2, .L11+4
60:.\Generated_Source\PSoC5/USBFS_cls.c **** interfaceNumber =
43 .loc 1 60 0
44 0012 0C21 movs r1, #12
45 .loc 1 61 0
46 0014 1078 ldrb r0, [r2, #0] @ zero_extendqisi2
60:.\Generated_Source\PSoC5/USBFS_cls.c **** interfaceNumber =
47 .loc 1 60 0
48 0016 0C4A ldr r2, .L11+8
49 .loc 1 61 0
50 0018 00F07F03 and r3, r0, #127
60:.\Generated_Source\PSoC5/USBFS_cls.c **** interfaceNumber =
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\cc5apSsq.s page 3
51 .loc 1 60 0
52 001c 01FB0320 mla r0, r1, r3, r2
53 0020 0830 adds r0, r0, #8
54 0022 8378 ldrb r3, [r0, #2] @ zero_extendqisi2
55 .LVL1:
62:.\Generated_Source\PSoC5/USBFS_cls.c **** break;
56 .loc 1 62 0
57 0024 03E0 b .L2
58 .LVL2:
59 .L3:
56:.\Generated_Source\PSoC5/USBFS_cls.c **** interfaceNumber = CY_GET_REG8(USBFS_wIndexLo); /* wIndexLo contain Interface number */
60 .loc 1 56 0
61 0026 074B ldr r3, .L11+4
62 0028 1B78 ldrb r3, [r3, #0] @ zero_extendqisi2
63 .LVL3:
57:.\Generated_Source\PSoC5/USBFS_cls.c **** break;
64 .loc 1 57 0
65 002a 00E0 b .L2
66 .LVL4:
67 .L8:
51:.\Generated_Source\PSoC5/USBFS_cls.c **** uint8 interfaceNumber = 0u;
68 .loc 1 51 0
69 002c 0023 movs r3, #0
70 .LVL5:
71 .L2:
63:.\Generated_Source\PSoC5/USBFS_cls.c **** default: /* RequestHandled is initialized as FALSE by default */
64:.\Generated_Source\PSoC5/USBFS_cls.c **** break;
65:.\Generated_Source\PSoC5/USBFS_cls.c **** }
66:.\Generated_Source\PSoC5/USBFS_cls.c **** /* Handle Class request depend on interface type */
67:.\Generated_Source\PSoC5/USBFS_cls.c **** switch(USBFS_interfaceClass[interfaceNumber])
72 .loc 1 67 0
73 002e 0749 ldr r1, .L11+12
74 0030 0A68 ldr r2, [r1, #0]
75 0032 D05C ldrb r0, [r2, r3] @ zero_extendqisi2
76 0034 0328 cmp r0, #3
77 0036 01D1 bne .L9
68:.\Generated_Source\PSoC5/USBFS_cls.c **** {
69:.\Generated_Source\PSoC5/USBFS_cls.c **** case USBFS_CLASS_HID:
70:.\Generated_Source\PSoC5/USBFS_cls.c **** #if defined(USBFS_ENABLE_HID_CLASS)
71:.\Generated_Source\PSoC5/USBFS_cls.c **** requestHandled = USBFS_DispatchHIDClassRqst();
72:.\Generated_Source\PSoC5/USBFS_cls.c **** #endif /* USBFS_ENABLE_HID_CLASS */
73:.\Generated_Source\PSoC5/USBFS_cls.c **** break;
74:.\Generated_Source\PSoC5/USBFS_cls.c **** case USBFS_CLASS_AUDIO:
75:.\Generated_Source\PSoC5/USBFS_cls.c **** #if defined(USBFS_ENABLE_AUDIO_CLASS)
76:.\Generated_Source\PSoC5/USBFS_cls.c **** requestHandled = USBFS_DispatchAUDIOClassRqst();
77:.\Generated_Source\PSoC5/USBFS_cls.c **** #endif /* USBFS_ENABLE_HID_CLASS */
78:.\Generated_Source\PSoC5/USBFS_cls.c **** break;
79:.\Generated_Source\PSoC5/USBFS_cls.c **** case USBFS_CLASS_CDC:
80:.\Generated_Source\PSoC5/USBFS_cls.c **** #if defined(USBFS_ENABLE_CDC_CLASS)
81:.\Generated_Source\PSoC5/USBFS_cls.c **** requestHandled = USBFS_DispatchCDCClassRqst();
82:.\Generated_Source\PSoC5/USBFS_cls.c **** #endif /* USBFS_ENABLE_CDC_CLASS */
83:.\Generated_Source\PSoC5/USBFS_cls.c **** break;
84:.\Generated_Source\PSoC5/USBFS_cls.c **** default: /* requestHandled is initialized as FALSE by default */
85:.\Generated_Source\PSoC5/USBFS_cls.c **** break;
86:.\Generated_Source\PSoC5/USBFS_cls.c **** }
87:.\Generated_Source\PSoC5/USBFS_cls.c ****
88:.\Generated_Source\PSoC5/USBFS_cls.c **** /* `#START USER_DEFINED_CLASS_CODE` Place your Class request here */
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\cc5apSsq.s page 4
89:.\Generated_Source\PSoC5/USBFS_cls.c ****
90:.\Generated_Source\PSoC5/USBFS_cls.c **** /* `#END` */
91:.\Generated_Source\PSoC5/USBFS_cls.c ****
92:.\Generated_Source\PSoC5/USBFS_cls.c **** return(requestHandled);
93:.\Generated_Source\PSoC5/USBFS_cls.c **** }
78 .loc 1 93 0
71:.\Generated_Source\PSoC5/USBFS_cls.c **** requestHandled = USBFS_DispatchHIDClassRqst();
79 .loc 1 71 0
80 0038 FFF7FEBF b USBFS_DispatchHIDClassRqst
81 .LVL6:
82 .L9:
83 .loc 1 93 0
84 003c 0020 movs r0, #0
85 003e 7047 bx lr
86 .L12:
87 .align 2
88 .L11:
89 0040 00600040 .word 1073766400
90 0044 04600040 .word 1073766404
91 0048 00000000 .word USBFS_EP
92 004c 00000000 .word USBFS_interfaceClass
93 .cfi_endproc
94 .LFE0:
95 .size USBFS_DispatchClassRqst, .-USBFS_DispatchClassRqst
96 .text
97 .Letext0:
98 .file 2 ".\\Generated_Source\\PSoC5\\cytypes.h"
99 .file 3 ".\\Generated_Source\\PSoC5\\USBFS.h"
100 .file 4 ".\\Generated_Source\\PSoC5\\USBFS_pvt.h"
101 .section .debug_info,"",%progbits
102 .Ldebug_info0:
103 0000 CB010000 .4byte 0x1cb
104 0004 0200 .2byte 0x2
105 0006 00000000 .4byte .Ldebug_abbrev0
106 000a 04 .byte 0x4
107 000b 01 .uleb128 0x1
108 000c 68010000 .4byte .LASF30
109 0010 01 .byte 0x1
110 0011 F0010000 .4byte .LASF31
111 0015 B1010000 .4byte .LASF32
112 0019 00000000 .4byte .Ldebug_ranges0+0
113 001d 00000000 .4byte 0
114 0021 00000000 .4byte 0
115 0025 00000000 .4byte .Ldebug_line0
116 0029 02 .uleb128 0x2
117 002a 01 .byte 0x1
118 002b 06 .byte 0x6
119 002c E4010000 .4byte .LASF0
120 0030 02 .uleb128 0x2
121 0031 01 .byte 0x1
122 0032 08 .byte 0x8
123 0033 C3000000 .4byte .LASF1
124 0037 02 .uleb128 0x2
125 0038 02 .byte 0x2
126 0039 05 .byte 0x5
127 003a 58010000 .4byte .LASF2
128 003e 02 .uleb128 0x2
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\cc5apSsq.s page 5
129 003f 02 .byte 0x2
130 0040 07 .byte 0x7
131 0041 00000000 .4byte .LASF3
132 0045 02 .uleb128 0x2
133 0046 04 .byte 0x4
134 0047 05 .byte 0x5
135 0048 DB010000 .4byte .LASF4
136 004c 02 .uleb128 0x2
137 004d 04 .byte 0x4
138 004e 07 .byte 0x7
139 004f 93000000 .4byte .LASF5
140 0053 02 .uleb128 0x2
141 0054 08 .byte 0x8
142 0055 05 .byte 0x5
143 0056 3A010000 .4byte .LASF6
144 005a 02 .uleb128 0x2
145 005b 08 .byte 0x8
146 005c 07 .byte 0x7
147 005d 09010000 .4byte .LASF7
148 0061 03 .uleb128 0x3
149 0062 04 .byte 0x4
150 0063 05 .byte 0x5
151 0064 696E7400 .ascii "int\000"
152 0068 02 .uleb128 0x2
153 0069 04 .byte 0x4
154 006a 07 .byte 0x7
155 006b FC000000 .4byte .LASF8
156 006f 04 .uleb128 0x4
157 0070 62010000 .4byte .LASF9
158 0074 02 .byte 0x2
159 0075 5B .byte 0x5b
160 0076 30000000 .4byte 0x30
161 007a 04 .uleb128 0x4
162 007b EA000000 .4byte .LASF10
163 007f 02 .byte 0x2
164 0080 5C .byte 0x5c
165 0081 3E000000 .4byte 0x3e
166 0085 02 .uleb128 0x2
167 0086 04 .byte 0x4
168 0087 04 .byte 0x4
169 0088 52000000 .4byte .LASF11
170 008c 02 .uleb128 0x2
171 008d 08 .byte 0x8
172 008e 04 .byte 0x4
173 008f D1000000 .4byte .LASF12
174 0093 02 .uleb128 0x2
175 0094 01 .byte 0x1
176 0095 08 .byte 0x8
177 0096 48010000 .4byte .LASF13
178 009a 04 .uleb128 0x4
179 009b 76000000 .4byte .LASF14
180 009f 02 .byte 0x2
181 00a0 F0 .byte 0xf0
182 00a1 A5000000 .4byte 0xa5
183 00a5 05 .uleb128 0x5
184 00a6 6F000000 .4byte 0x6f
185 00aa 02 .uleb128 0x2
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\cc5apSsq.s page 6
186 00ab 04 .byte 0x4
187 00ac 07 .byte 0x7
188 00ad 2A010000 .4byte .LASF15
189 00b1 06 .uleb128 0x6
190 00b2 0C .byte 0xc
191 00b3 03 .byte 0x3
192 00b4 79 .byte 0x79
193 00b5 38010000 .4byte 0x138
194 00b9 07 .uleb128 0x7
195 00ba D8000000 .4byte .LASF16
196 00be 03 .byte 0x3
197 00bf 7B .byte 0x7b
198 00c0 6F000000 .4byte 0x6f
199 00c4 02 .byte 0x2
200 00c5 23 .byte 0x23
201 00c6 00 .uleb128 0
202 00c7 07 .uleb128 0x7
203 00c8 F1000000 .4byte .LASF17
204 00cc 03 .byte 0x3
205 00cd 7C .byte 0x7c
206 00ce 6F000000 .4byte 0x6f
207 00d2 02 .byte 0x2
208 00d3 23 .byte 0x23
209 00d4 01 .uleb128 0x1
210 00d5 07 .uleb128 0x7
211 00d6 20010000 .4byte .LASF18
212 00da 03 .byte 0x3
213 00db 7D .byte 0x7d
214 00dc 6F000000 .4byte 0x6f
215 00e0 02 .byte 0x2
216 00e1 23 .byte 0x23
217 00e2 02 .uleb128 0x2
218 00e3 07 .uleb128 0x7
219 00e4 58000000 .4byte .LASF19
220 00e8 03 .byte 0x3
221 00e9 7E .byte 0x7e
222 00ea 6F000000 .4byte 0x6f
223 00ee 02 .byte 0x2
224 00ef 23 .byte 0x23
225 00f0 03 .uleb128 0x3
226 00f1 07 .uleb128 0x7
227 00f2 A5000000 .4byte .LASF20
228 00f6 03 .byte 0x3
229 00f7 7F .byte 0x7f
230 00f8 6F000000 .4byte 0x6f
231 00fc 02 .byte 0x2
232 00fd 23 .byte 0x23
233 00fe 04 .uleb128 0x4
234 00ff 07 .uleb128 0x7
235 0100 33010000 .4byte .LASF21
236 0104 03 .byte 0x3
237 0105 80 .byte 0x80
238 0106 6F000000 .4byte 0x6f
239 010a 02 .byte 0x2
240 010b 23 .byte 0x23
241 010c 05 .uleb128 0x5
242 010d 07 .uleb128 0x7
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\cc5apSsq.s page 7
243 010e DF000000 .4byte .LASF22
244 0112 03 .byte 0x3
245 0113 81 .byte 0x81
246 0114 7A000000 .4byte 0x7a
247 0118 02 .byte 0x2
248 0119 23 .byte 0x23
249 011a 06 .uleb128 0x6
250 011b 07 .uleb128 0x7
251 011c 4D010000 .4byte .LASF23
252 0120 03 .byte 0x3
253 0121 82 .byte 0x82
254 0122 7A000000 .4byte 0x7a
255 0126 02 .byte 0x2
256 0127 23 .byte 0x23
257 0128 08 .uleb128 0x8
258 0129 07 .uleb128 0x7
259 012a D1010000 .4byte .LASF24
260 012e 03 .byte 0x3
261 012f 83 .byte 0x83
262 0130 6F000000 .4byte 0x6f
263 0134 02 .byte 0x2
264 0135 23 .byte 0x23
265 0136 0A .uleb128 0xa
266 0137 00 .byte 0
267 0138 04 .uleb128 0x4
268 0139 13000000 .4byte .LASF25
269 013d 03 .byte 0x3
270 013e 84 .byte 0x84
271 013f B1000000 .4byte 0xb1
272 0143 08 .uleb128 0x8
273 0144 01 .byte 0x1
274 0145 7B000000 .4byte .LASF33
275 0149 01 .byte 0x1
276 014a 30 .byte 0x30
277 014b 01 .byte 0x1
278 014c 6F000000 .4byte 0x6f
279 0150 00000000 .4byte .LFB0
280 0154 50000000 .4byte .LFE0
281 0158 02 .byte 0x2
282 0159 7D .byte 0x7d
283 015a 00 .sleb128 0
284 015b 01 .byte 0x1
285 015c 86010000 .4byte 0x186
286 0160 09 .uleb128 0x9
287 0161 43000000 .4byte .LASF26
288 0165 01 .byte 0x1
289 0166 32 .byte 0x32
290 0167 6F000000 .4byte 0x6f
291 016b 00 .byte 0
292 016c 0A .uleb128 0xa
293 016d AA000000 .4byte .LASF27
294 0171 01 .byte 0x1
295 0172 33 .byte 0x33
296 0173 6F000000 .4byte 0x6f
297 0177 00000000 .4byte .LLST0
298 017b 0B .uleb128 0xb
299 017c 3C000000 .4byte .LVL6
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\cc5apSsq.s page 8
300 0180 01 .byte 0x1
301 0181 C0010000 .4byte 0x1c0
302 0185 00 .byte 0
303 0186 0C .uleb128 0xc
304 0187 61000000 .4byte .LASF28
305 018b 04 .byte 0x4
306 018c 3D .byte 0x3d
307 018d 93010000 .4byte 0x193
308 0191 01 .byte 0x1
309 0192 01 .byte 0x1
310 0193 0D .uleb128 0xd
311 0194 04 .byte 0x4
312 0195 99010000 .4byte 0x199
313 0199 0E .uleb128 0xe
314 019a 6F000000 .4byte 0x6f
315 019e 0F .uleb128 0xf
316 019f 38010000 .4byte 0x138
317 01a3 AE010000 .4byte 0x1ae
318 01a7 10 .uleb128 0x10
319 01a8 AA000000 .4byte 0xaa
320 01ac 08 .byte 0x8
321 01ad 00 .byte 0
322 01ae 0C .uleb128 0xc
323 01af BA000000 .4byte .LASF29
324 01b3 04 .byte 0x4
325 01b4 3F .byte 0x3f
326 01b5 BB010000 .4byte 0x1bb
327 01b9 01 .byte 0x1
328 01ba 01 .byte 0x1
329 01bb 05 .uleb128 0x5
330 01bc 9E010000 .4byte 0x19e
331 01c0 11 .uleb128 0x11
332 01c1 01 .byte 0x1
333 01c2 28000000 .4byte .LASF34
334 01c6 04 .byte 0x4
335 01c7 7F .byte 0x7f
336 01c8 01 .byte 0x1
337 01c9 6F000000 .4byte 0x6f
338 01cd 01 .byte 0x1
339 01ce 00 .byte 0
340 .section .debug_abbrev,"",%progbits
341 .Ldebug_abbrev0:
342 0000 01 .uleb128 0x1
343 0001 11 .uleb128 0x11
344 0002 01 .byte 0x1
345 0003 25 .uleb128 0x25
346 0004 0E .uleb128 0xe
347 0005 13 .uleb128 0x13
348 0006 0B .uleb128 0xb
349 0007 03 .uleb128 0x3
350 0008 0E .uleb128 0xe
351 0009 1B .uleb128 0x1b
352 000a 0E .uleb128 0xe
353 000b 55 .uleb128 0x55
354 000c 06 .uleb128 0x6
355 000d 11 .uleb128 0x11
356 000e 01 .uleb128 0x1
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\cc5apSsq.s page 9
357 000f 52 .uleb128 0x52
358 0010 01 .uleb128 0x1
359 0011 10 .uleb128 0x10
360 0012 06 .uleb128 0x6
361 0013 00 .byte 0
362 0014 00 .byte 0
363 0015 02 .uleb128 0x2
364 0016 24 .uleb128 0x24
365 0017 00 .byte 0
366 0018 0B .uleb128 0xb
367 0019 0B .uleb128 0xb
368 001a 3E .uleb128 0x3e
369 001b 0B .uleb128 0xb
370 001c 03 .uleb128 0x3
371 001d 0E .uleb128 0xe
372 001e 00 .byte 0
373 001f 00 .byte 0
374 0020 03 .uleb128 0x3
375 0021 24 .uleb128 0x24
376 0022 00 .byte 0
377 0023 0B .uleb128 0xb
378 0024 0B .uleb128 0xb
379 0025 3E .uleb128 0x3e
380 0026 0B .uleb128 0xb
381 0027 03 .uleb128 0x3
382 0028 08 .uleb128 0x8
383 0029 00 .byte 0
384 002a 00 .byte 0
385 002b 04 .uleb128 0x4
386 002c 16 .uleb128 0x16
387 002d 00 .byte 0
388 002e 03 .uleb128 0x3
389 002f 0E .uleb128 0xe
390 0030 3A .uleb128 0x3a
391 0031 0B .uleb128 0xb
392 0032 3B .uleb128 0x3b
393 0033 0B .uleb128 0xb
394 0034 49 .uleb128 0x49
395 0035 13 .uleb128 0x13
396 0036 00 .byte 0
397 0037 00 .byte 0
398 0038 05 .uleb128 0x5
399 0039 35 .uleb128 0x35
400 003a 00 .byte 0
401 003b 49 .uleb128 0x49
402 003c 13 .uleb128 0x13
403 003d 00 .byte 0
404 003e 00 .byte 0
405 003f 06 .uleb128 0x6
406 0040 13 .uleb128 0x13
407 0041 01 .byte 0x1
408 0042 0B .uleb128 0xb
409 0043 0B .uleb128 0xb
410 0044 3A .uleb128 0x3a
411 0045 0B .uleb128 0xb
412 0046 3B .uleb128 0x3b
413 0047 0B .uleb128 0xb
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\cc5apSsq.s page 10
414 0048 01 .uleb128 0x1
415 0049 13 .uleb128 0x13
416 004a 00 .byte 0
417 004b 00 .byte 0
418 004c 07 .uleb128 0x7
419 004d 0D .uleb128 0xd
420 004e 00 .byte 0
421 004f 03 .uleb128 0x3
422 0050 0E .uleb128 0xe
423 0051 3A .uleb128 0x3a
424 0052 0B .uleb128 0xb
425 0053 3B .uleb128 0x3b
426 0054 0B .uleb128 0xb
427 0055 49 .uleb128 0x49
428 0056 13 .uleb128 0x13
429 0057 38 .uleb128 0x38
430 0058 0A .uleb128 0xa
431 0059 00 .byte 0
432 005a 00 .byte 0
433 005b 08 .uleb128 0x8
434 005c 2E .uleb128 0x2e
435 005d 01 .byte 0x1
436 005e 3F .uleb128 0x3f
437 005f 0C .uleb128 0xc
438 0060 03 .uleb128 0x3
439 0061 0E .uleb128 0xe
440 0062 3A .uleb128 0x3a
441 0063 0B .uleb128 0xb
442 0064 3B .uleb128 0x3b
443 0065 0B .uleb128 0xb
444 0066 27 .uleb128 0x27
445 0067 0C .uleb128 0xc
446 0068 49 .uleb128 0x49
447 0069 13 .uleb128 0x13
448 006a 11 .uleb128 0x11
449 006b 01 .uleb128 0x1
450 006c 12 .uleb128 0x12
451 006d 01 .uleb128 0x1
452 006e 40 .uleb128 0x40
453 006f 0A .uleb128 0xa
454 0070 9742 .uleb128 0x2117
455 0072 0C .uleb128 0xc
456 0073 01 .uleb128 0x1
457 0074 13 .uleb128 0x13
458 0075 00 .byte 0
459 0076 00 .byte 0
460 0077 09 .uleb128 0x9
461 0078 34 .uleb128 0x34
462 0079 00 .byte 0
463 007a 03 .uleb128 0x3
464 007b 0E .uleb128 0xe
465 007c 3A .uleb128 0x3a
466 007d 0B .uleb128 0xb
467 007e 3B .uleb128 0x3b
468 007f 0B .uleb128 0xb
469 0080 49 .uleb128 0x49
470 0081 13 .uleb128 0x13
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\cc5apSsq.s page 11
471 0082 1C .uleb128 0x1c
472 0083 0B .uleb128 0xb
473 0084 00 .byte 0
474 0085 00 .byte 0
475 0086 0A .uleb128 0xa
476 0087 34 .uleb128 0x34
477 0088 00 .byte 0
478 0089 03 .uleb128 0x3
479 008a 0E .uleb128 0xe
480 008b 3A .uleb128 0x3a
481 008c 0B .uleb128 0xb
482 008d 3B .uleb128 0x3b
483 008e 0B .uleb128 0xb
484 008f 49 .uleb128 0x49
485 0090 13 .uleb128 0x13
486 0091 02 .uleb128 0x2
487 0092 06 .uleb128 0x6
488 0093 00 .byte 0
489 0094 00 .byte 0
490 0095 0B .uleb128 0xb
491 0096 898201 .uleb128 0x4109
492 0099 00 .byte 0
493 009a 11 .uleb128 0x11
494 009b 01 .uleb128 0x1
495 009c 9542 .uleb128 0x2115
496 009e 0C .uleb128 0xc
497 009f 31 .uleb128 0x31
498 00a0 13 .uleb128 0x13
499 00a1 00 .byte 0
500 00a2 00 .byte 0
501 00a3 0C .uleb128 0xc
502 00a4 34 .uleb128 0x34
503 00a5 00 .byte 0
504 00a6 03 .uleb128 0x3
505 00a7 0E .uleb128 0xe
506 00a8 3A .uleb128 0x3a
507 00a9 0B .uleb128 0xb
508 00aa 3B .uleb128 0x3b
509 00ab 0B .uleb128 0xb
510 00ac 49 .uleb128 0x49
511 00ad 13 .uleb128 0x13
512 00ae 3F .uleb128 0x3f
513 00af 0C .uleb128 0xc
514 00b0 3C .uleb128 0x3c
515 00b1 0C .uleb128 0xc
516 00b2 00 .byte 0
517 00b3 00 .byte 0
518 00b4 0D .uleb128 0xd
519 00b5 0F .uleb128 0xf
520 00b6 00 .byte 0
521 00b7 0B .uleb128 0xb
522 00b8 0B .uleb128 0xb
523 00b9 49 .uleb128 0x49
524 00ba 13 .uleb128 0x13
525 00bb 00 .byte 0
526 00bc 00 .byte 0
527 00bd 0E .uleb128 0xe
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\cc5apSsq.s page 12
528 00be 26 .uleb128 0x26
529 00bf 00 .byte 0
530 00c0 49 .uleb128 0x49
531 00c1 13 .uleb128 0x13
532 00c2 00 .byte 0
533 00c3 00 .byte 0
534 00c4 0F .uleb128 0xf
535 00c5 01 .uleb128 0x1
536 00c6 01 .byte 0x1
537 00c7 49 .uleb128 0x49
538 00c8 13 .uleb128 0x13
539 00c9 01 .uleb128 0x1
540 00ca 13 .uleb128 0x13
541 00cb 00 .byte 0
542 00cc 00 .byte 0
543 00cd 10 .uleb128 0x10
544 00ce 21 .uleb128 0x21
545 00cf 00 .byte 0
546 00d0 49 .uleb128 0x49
547 00d1 13 .uleb128 0x13
548 00d2 2F .uleb128 0x2f
549 00d3 0B .uleb128 0xb
550 00d4 00 .byte 0
551 00d5 00 .byte 0
552 00d6 11 .uleb128 0x11
553 00d7 2E .uleb128 0x2e
554 00d8 00 .byte 0
555 00d9 3F .uleb128 0x3f
556 00da 0C .uleb128 0xc
557 00db 03 .uleb128 0x3
558 00dc 0E .uleb128 0xe
559 00dd 3A .uleb128 0x3a
560 00de 0B .uleb128 0xb
561 00df 3B .uleb128 0x3b
562 00e0 0B .uleb128 0xb
563 00e1 27 .uleb128 0x27
564 00e2 0C .uleb128 0xc
565 00e3 49 .uleb128 0x49
566 00e4 13 .uleb128 0x13
567 00e5 3C .uleb128 0x3c
568 00e6 0C .uleb128 0xc
569 00e7 00 .byte 0
570 00e8 00 .byte 0
571 00e9 00 .byte 0
572 .section .debug_loc,"",%progbits
573 .Ldebug_loc0:
574 .LLST0:
575 0000 00000000 .4byte .LVL0
576 0004 24000000 .4byte .LVL1
577 0008 0200 .2byte 0x2
578 000a 30 .byte 0x30
579 000b 9F .byte 0x9f
580 000c 24000000 .4byte .LVL1
581 0010 26000000 .4byte .LVL2
582 0014 0100 .2byte 0x1
583 0016 53 .byte 0x53
584 0017 26000000 .4byte .LVL2
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\cc5apSsq.s page 13
585 001b 2A000000 .4byte .LVL3
586 001f 0200 .2byte 0x2
587 0021 30 .byte 0x30
588 0022 9F .byte 0x9f
589 0023 2A000000 .4byte .LVL3
590 0027 2C000000 .4byte .LVL4
591 002b 0100 .2byte 0x1
592 002d 53 .byte 0x53
593 002e 2C000000 .4byte .LVL4
594 0032 2E000000 .4byte .LVL5
595 0036 0200 .2byte 0x2
596 0038 30 .byte 0x30
597 0039 9F .byte 0x9f
598 003a 2E000000 .4byte .LVL5
599 003e 3B000000 .4byte .LVL6-1
600 0042 0100 .2byte 0x1
601 0044 53 .byte 0x53
602 0045 3C000000 .4byte .LVL6
603 0049 50000000 .4byte .LFE0
604 004d 0100 .2byte 0x1
605 004f 53 .byte 0x53
606 0050 00000000 .4byte 0
607 0054 00000000 .4byte 0
608 .section .debug_aranges,"",%progbits
609 0000 1C000000 .4byte 0x1c
610 0004 0200 .2byte 0x2
611 0006 00000000 .4byte .Ldebug_info0
612 000a 04 .byte 0x4
613 000b 00 .byte 0
614 000c 0000 .2byte 0
615 000e 0000 .2byte 0
616 0010 00000000 .4byte .LFB0
617 0014 50000000 .4byte .LFE0-.LFB0
618 0018 00000000 .4byte 0
619 001c 00000000 .4byte 0
620 .section .debug_ranges,"",%progbits
621 .Ldebug_ranges0:
622 0000 00000000 .4byte .LFB0
623 0004 50000000 .4byte .LFE0
624 0008 00000000 .4byte 0
625 000c 00000000 .4byte 0
626 .section .debug_line,"",%progbits
627 .Ldebug_line0:
628 0000 92000000 .section .debug_str,"MS",%progbits,1
628 02006200
628 00000201
628 FB0E0D00
628 01010101
629 .LASF3:
630 0000 73686F72 .ascii "short unsigned int\000"
630 7420756E
630 7369676E
630 65642069
630 6E7400
631 .LASF25:
632 0013 545F5553 .ascii "T_USBFS_EP_CTL_BLOCK\000"
632 4246535F
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\cc5apSsq.s page 14
632 45505F43
632 544C5F42
632 4C4F434B
633 .LASF34:
634 0028 55534246 .ascii "USBFS_DispatchHIDClassRqst\000"
634 535F4469
634 73706174
634 63684849
634 44436C61
635 .LASF26:
636 0043 72657175 .ascii "requestHandled\000"
636 65737448
636 616E646C
636 656400
637 .LASF11:
638 0052 666C6F61 .ascii "float\000"
638 7400
639 .LASF19:
640 0058 6570546F .ascii "epToggle\000"
640 67676C65
640 00
641 .LASF28:
642 0061 55534246 .ascii "USBFS_interfaceClass\000"
642 535F696E
642 74657266
642 61636543
642 6C617373
643 .LASF14:
644 0076 72656738 .ascii "reg8\000"
644 00
645 .LASF33:
646 007b 55534246 .ascii "USBFS_DispatchClassRqst\000"
646 535F4469
646 73706174
646 6368436C
646 61737352
647 .LASF5:
648 0093 6C6F6E67 .ascii "long unsigned int\000"
648 20756E73
648 69676E65
648 6420696E
648 7400
649 .LASF20:
650 00a5 61646472 .ascii "addr\000"
650 00
651 .LASF27:
652 00aa 696E7465 .ascii "interfaceNumber\000"
652 72666163
652 654E756D
652 62657200
653 .LASF29:
654 00ba 55534246 .ascii "USBFS_EP\000"
654 535F4550
654 00
655 .LASF1:
656 00c3 756E7369 .ascii "unsigned char\000"
656 676E6564
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\cc5apSsq.s page 15
656 20636861
656 7200
657 .LASF12:
658 00d1 646F7562 .ascii "double\000"
658 6C6500
659 .LASF16:
660 00d8 61747472 .ascii "attrib\000"
660 696200
661 .LASF22:
662 00df 62756666 .ascii "buffOffset\000"
662 4F666673
662 657400
663 .LASF10:
664 00ea 75696E74 .ascii "uint16\000"
664 313600
665 .LASF17:
666 00f1 61706945 .ascii "apiEpState\000"
666 70537461
666 746500
667 .LASF8:
668 00fc 756E7369 .ascii "unsigned int\000"
668 676E6564
668 20696E74
668 00
669 .LASF7:
670 0109 6C6F6E67 .ascii "long long unsigned int\000"
670 206C6F6E
670 6720756E
670 7369676E
670 65642069
671 .LASF18:
672 0120 68774570 .ascii "hwEpState\000"
672 53746174
672 6500
673 .LASF15:
674 012a 73697A65 .ascii "sizetype\000"
674 74797065
674 00
675 .LASF21:
676 0133 65704D6F .ascii "epMode\000"
676 646500
677 .LASF6:
678 013a 6C6F6E67 .ascii "long long int\000"
678 206C6F6E
678 6720696E
678 7400
679 .LASF13:
680 0148 63686172 .ascii "char\000"
680 00
681 .LASF23:
682 014d 62756666 .ascii "bufferSize\000"
682 65725369
682 7A6500
683 .LASF2:
684 0158 73686F72 .ascii "short int\000"
684 7420696E
684 7400
ARM GAS C:\Users\MICHA_~1\AppData\Local\Temp\cc5apSsq.s page 16
685 .LASF9:
686 0162 75696E74 .ascii "uint8\000"
686 3800
687 .LASF30:
688 0168 474E5520 .ascii "GNU C 4.7.3 20130312 (release) [ARM/embedded-4_7-br"
688 4320342E
688 372E3320
688 32303133
688 30333132
689 019b 616E6368 .ascii "anch revision 196615]\000"
689 20726576
689 6973696F
689 6E203139
689 36363135
690 .LASF32:
691 01b1 573A5C53 .ascii "W:\\SCSI2SD\\USB_Bootloader.cydsn\000"
691 43534932
691 53445C55
691 53425F42
691 6F6F746C
692 .LASF24:
693 01d1 696E7465 .ascii "interface\000"
693 72666163
693 6500
694 .LASF4:
695 01db 6C6F6E67 .ascii "long int\000"
695 20696E74
695 00
696 .LASF0:
697 01e4 7369676E .ascii "signed char\000"
697 65642063
697 68617200
698 .LASF31:
699 01f0 2E5C4765 .ascii ".\\Generated_Source\\PSoC5\\USBFS_cls.c\000"
699 6E657261
699 7465645F
699 536F7572
699 63655C50
700 .ident "GCC: (GNU Tools for ARM Embedded Processors) 4.7.3 20130312 (release) [ARM/embedded-4_7-br

Some files were not shown because too many files have changed in this diff Show More