Bug fixes galore! Added lots more settings, and moved them into another config tab

- wxWidgets upgrade to 3.02
	- PSoC Creator upgrade to 3.3
This commit is contained in:
Michael McMaster 2015-10-30 13:43:44 +10:00
parent 0c1e0071de
commit 56f1d31703
754 changed files with 124795 additions and 8174 deletions

View File

@ -1,6 +1,17 @@
20150x0x 4.5
- Fix bug in SCSI MODE SENSE that returned the wrong mode type
- Fixes CDROM emulation
- Added selection delay parameter. This should be set to 1ms for older
SCSI1 hardware, or 0ms for SCSI2 and Mac Plus.
- Upgraded to wxWidgets 3.0.2
- Fixed stability/performance issue for sector sizes above 512
- Fixed bug that prevented the dvice working after "ejecting" a drive
- Upgraded to Cypress PSoC Creator 3.3
- Added experimental caching option. This provides a 2x speed up for
sequential single-sector writes. It is disabled by default.
- Disabled SCSI Disconnect support by default. There's now an option
in scsi2sd-util to enable it. It should be left off unless you have
a very good reason to enable it.
20150813 4.4
- Added configuration option to allow SCSI2 mode. This option is OFF by

View File

@ -26,13 +26,14 @@
#include "scsi.h"
#include "scsiPhy.h"
#include "disk.h"
#include "trace.h"
#include "../../include/scsi2sd.h"
#include "../../include/hidpacket.h"
#include <string.h>
static const uint16_t FIRMWARE_VERSION = 0x0442;
static const uint16_t FIRMWARE_VERSION = 0x0450;
// 1 flash row
static const uint8_t DEFAULT_CONFIG[256] =
@ -64,7 +65,26 @@ static int usbInEpState;
static int usbDebugEpState;
static int usbReady;
void configInit()
static void initBoardConfig(BoardConfig* config) {
memcpy(
config,
(
CY_FLASH_BASE +
(CY_FLASH_SIZEOF_ARRAY * (size_t) SCSI_CONFIG_ARRAY) +
(CY_FLASH_SIZEOF_ROW * SCSI_CONFIG_BOARD_ROW)
),
sizeof(BoardConfig));
if (memcmp(config->magic, "BCFG", 4)) {
// Set a default from the deprecated flags, or 0 if
// there is no initial config.
config->flags = getConfigByIndex(0)->flagsDEPRECATED;
config->selectionDelay = 255; // auto
}
}
void configInit(BoardConfig* config)
{
// The USB block will be powered by an internal 3.3V regulator.
// The PSoC must be operating between 4.6V and 5V for the regulator
@ -90,6 +110,8 @@ void configInit()
CySetTemp();
CyWriteRowData(SCSI_CONFIG_ARRAY, SCSI_CONFIG_0_ROW, DEFAULT_CONFIG);
}
initBoardConfig(config);
}
static void
@ -123,7 +145,7 @@ writeFlashCommand(const uint8_t* cmd, size_t cmdSize)
// Be very careful not to overwrite the bootloader or other
// code
if ((flashArray != SCSI_CONFIG_ARRAY) ||
(flashRow < SCSI_CONFIG_0_ROW) ||
(flashRow < SCSI_CONFIG_BOARD_ROW) ||
(flashRow >= SCSI_CONFIG_3_ROW + SCSI_CONFIG_ROWS))
{
uint8_t response[] = { CONFIG_STATUS_ERR};
@ -324,6 +346,7 @@ void debugPoll()
hidBuffer[27] = scsiDev.lastSenseASC >> 8;
hidBuffer[28] = scsiDev.lastSenseASC;
hidBuffer[29] = scsiReadDBxPins();
hidBuffer[30] = LastTrace;
hidBuffer[58] = sdDev.capacity >> 24;
hidBuffer[59] = sdDev.capacity >> 16;

View File

@ -20,7 +20,7 @@
#include "device.h"
#include "scsi2sd.h"
void configInit(void);
void configInit(BoardConfig* config);
void debugInit(void);
void configPoll(void);
void configSave(int scsiId, uint16_t byesPerSector);

View File

@ -175,6 +175,8 @@ static void doWrite(uint32 lba, uint32 blocks)
CyDelay(10);
}
uint32_t bytesPerSector = scsiDev.target->liveCfg.bytesPerSector;
if (unlikely(blockDev.state & DISK_WP) ||
unlikely(scsiDev.target->cfg->deviceType == CONFIG_OPTICAL))
@ -187,7 +189,7 @@ static void doWrite(uint32 lba, uint32 blocks)
else if (unlikely(((uint64) lba) + blocks >
getScsiCapacity(
scsiDev.target->cfg->sdSectorStart,
scsiDev.target->liveCfg.bytesPerSector,
bytesPerSector,
scsiDev.target->cfg->scsiSectors
)
))
@ -199,19 +201,25 @@ static void doWrite(uint32 lba, uint32 blocks)
}
else
{
transfer.dir = TRANSFER_WRITE;
transfer.lba = lba;
transfer.blocks = blocks;
transfer.currentBlock = 0;
scsiDev.phase = DATA_OUT;
scsiDev.dataLen = scsiDev.target->liveCfg.bytesPerSector;
scsiDev.dataPtr = scsiDev.target->liveCfg.bytesPerSector;
scsiDev.dataLen = bytesPerSector;
scsiDev.dataPtr = bytesPerSector;
// No need for single-block writes atm. Overhead of the
// multi-block write is minimal.
transfer.multiBlock = 1;
sdWriteMultiSectorPrep();
uint32_t sdLBA =
SCSISector2SD(
scsiDev.target->cfg->sdSectorStart,
bytesPerSector,
lba);
uint32_t sdBlocks = blocks * SDSectorsPerSCSISector(bytesPerSector);
sdWriteMultiSectorPrep(sdLBA, sdBlocks);
}
}
@ -237,14 +245,21 @@ static void doRead(uint32 lba, uint32 blocks)
}
else
{
transfer.dir = TRANSFER_READ;
transfer.lba = lba;
transfer.blocks = blocks;
transfer.currentBlock = 0;
scsiDev.phase = DATA_IN;
scsiDev.dataLen = 0; // No data yet
if ((blocks * SDSectorsPerSCSISector(scsiDev.target->liveCfg.bytesPerSector) == 1) ||
uint32_t bytesPerSector = scsiDev.target->liveCfg.bytesPerSector;
uint32_t sdSectorPerSCSISector = SDSectorsPerSCSISector(bytesPerSector);
uint32_t sdSectors =
blocks * sdSectorPerSCSISector;
if ((
(sdSectors == 1) &&
!(scsiDev.boardCfg.flags & CONFIG_ENABLE_CACHE)
) ||
unlikely(((uint64) lba) + blocks == capacity)
)
{
@ -255,7 +270,14 @@ static void doRead(uint32 lba, uint32 blocks)
else
{
transfer.multiBlock = 1;
sdReadMultiSectorPrep();
uint32_t sdLBA =
SCSISector2SD(
scsiDev.target->cfg->sdSectorStart,
bytesPerSector,
lba);
sdReadMultiSectorPrep(sdLBA, sdSectors);
}
}
}
@ -515,22 +537,22 @@ int scsiDiskCommand()
void scsiDiskPoll()
{
uint32_t bytesPerSector = scsiDev.target->liveCfg.bytesPerSector;
if (scsiDev.phase == DATA_IN &&
transfer.currentBlock != transfer.blocks)
{
scsiEnterPhase(DATA_IN);
int totalSDSectors =
transfer.blocks *
SDSectorsPerSCSISector(scsiDev.target->liveCfg.bytesPerSector);
transfer.blocks * SDSectorsPerSCSISector(bytesPerSector);
uint32_t sdLBA =
SCSISector2SD(
scsiDev.target->cfg->sdSectorStart,
scsiDev.target->liveCfg.bytesPerSector,
bytesPerSector,
transfer.lba);
const int sdPerScsi =
SDSectorsPerSCSISector(scsiDev.target->liveCfg.bytesPerSector);
const int sdPerScsi = SDSectorsPerSCSISector(bytesPerSector);
int buffers = sizeof(scsiDev.data) / SD_SECTOR_SIZE;
int prep = 0;
int i = 0;
@ -543,16 +565,18 @@ void scsiDiskPoll()
// Wait for the next DMA interrupt. It's beneficial to halt the
// processor to give the DMA controller more memory bandwidth to
// work with.
// We're optimistically assuming a race condition won't occur
// between these checks and the interrupt handers. The 1ms
// systick timer interrupt saves us on the event of a race.
int scsiBusy = scsiDMABusy();
int sdBusy = sdDMABusy();
int scsiBusy = 1;
int sdBusy = 1;
while (scsiBusy && sdBusy)
{
__WFI();
uint8_t intr = CyEnterCriticalSection();
scsiBusy = scsiDMABusy();
sdBusy = sdDMABusy();
if (scsiBusy && sdBusy)
{
__WFI();
}
CyExitCriticalSection(intr);
}
if (sdActive && !sdBusy && sdReadSectorDMAPoll())
@ -591,7 +615,7 @@ void scsiDiskPoll()
int dmaBytes = SD_SECTOR_SIZE;
if ((i % sdPerScsi) == (sdPerScsi - 1))
{
dmaBytes = scsiDev.target->liveCfg.bytesPerSector % SD_SECTOR_SIZE;
dmaBytes = bytesPerSector % SD_SECTOR_SIZE;
if (dmaBytes == 0) dmaBytes = SD_SECTOR_SIZE;
}
scsiWriteDMA(&scsiDev.data[SD_SECTOR_SIZE * (i % buffers)], dmaBytes);
@ -609,8 +633,7 @@ void scsiDiskPoll()
{
scsiEnterPhase(DATA_OUT);
const int sdPerScsi =
SDSectorsPerSCSISector(scsiDev.target->liveCfg.bytesPerSector);
const int sdPerScsi = SDSectorsPerSCSISector(bytesPerSector);
int totalSDSectors = transfer.blocks * sdPerScsi;
int buffers = sizeof(scsiDev.data) / SD_SECTOR_SIZE;
int prep = 0;
@ -629,19 +652,21 @@ void scsiDiskPoll()
// Wait for the next DMA interrupt. It's beneficial to halt the
// processor to give the DMA controller more memory bandwidth to
// work with.
// We're optimistically assuming a race condition won't occur
// between these checks and the interrupt handers. The 1ms
// systick timer interrupt saves us on the event of a race.
int scsiBusy = scsiDMABusy();
int sdBusy = sdDMABusy();
int scsiBusy = 1;
int sdBusy = 1;
while (scsiBusy && sdBusy)
{
__WFI();
uint8_t intr = CyEnterCriticalSection();
scsiBusy = scsiDMABusy();
sdBusy = sdDMABusy();
if (scsiBusy && sdBusy)
{
__WFI();
}
CyExitCriticalSection(intr);
}
if (sdActive && !sdBusy && sdWriteSectorDMAPoll(i == (totalSDSectors - 1)))
if (sdActive && !sdBusy && sdWriteSectorDMAPoll())
{
sdActive = 0;
i++;
@ -669,13 +694,14 @@ void scsiDiskPoll()
int dmaBytes = SD_SECTOR_SIZE;
if ((prep % sdPerScsi) == (sdPerScsi - 1))
{
dmaBytes = scsiDev.target->liveCfg.bytesPerSector % SD_SECTOR_SIZE;
dmaBytes = bytesPerSector % SD_SECTOR_SIZE;
if (dmaBytes == 0) dmaBytes = SD_SECTOR_SIZE;
}
scsiReadDMA(&scsiDev.data[SD_SECTOR_SIZE * (prep % buffers)], dmaBytes);
scsiActive = 1;
}
else if (
(scsiDev.boardCfg.flags & CONFIG_ENABLE_DISCONNECT) &&
(scsiActive == 0) &&
likely(!scsiDisconnected) &&
unlikely(scsiDev.discPriv) &&
@ -761,7 +787,7 @@ void scsiDiskPoll()
if (scsiDev.phase == DATA_OUT)
{
if (scsiDev.parityError &&
(scsiDev.target->cfg->flags & CONFIG_ENABLE_PARITY) &&
(scsiDev.boardCfg.flags & CONFIG_ENABLE_PARITY) &&
(scsiDev.compatMode >= COMPAT_SCSI2))
{
scsiDev.target->sense.code = ABORTED_COMMAND;
@ -784,24 +810,19 @@ void scsiDiskReset()
transfer.currentBlock = 0;
// Cancel long running commands!
if (unlikely(transfer.inProgress == 1))
if (
((scsiDev.boardCfg.flags & CONFIG_ENABLE_CACHE) == 0) ||
(transfer.multiBlock == 0)
)
{
if (transfer.dir == TRANSFER_WRITE)
{
sdCompleteWrite();
}
else
{
sdCompleteRead();
}
sdCompleteTransfer();
}
transfer.inProgress = 0;
transfer.multiBlock = 0;
}
void scsiDiskInit()
{
transfer.inProgress = 0;
scsiDiskReset();
// Don't require the host to send us a START STOP UNIT command

View File

@ -38,9 +38,7 @@ typedef struct
typedef struct
{
int dir;
int multiBlock; // True if we're using a multi-block SPI transfer.
int inProgress; // True if we need to call sdComplete{Read|Write}
uint32 lba;
uint32 blocks;

View File

@ -26,9 +26,7 @@
#include "time.h"
#include "trace.h"
const char* Notice = "Copyright (C) 2014 Michael McMaster <michael@codesrc.com>";
uint8_t testData[512];
const char* Notice = "Copyright (C) 2015 Michael McMaster <michael@codesrc.com>";
int main()
{
@ -43,16 +41,21 @@ int main()
// Set interrupt handlers.
scsiPhyInit();
configInit();
configInit(&scsiDev.boardCfg);
debugInit();
scsiInit();
scsiDiskInit();
// Optional bootup delay
int delaySeconds = 0;
while (delaySeconds < scsiDev.boardCfg.startupDelay) {
CyDelay(1000);
++delaySeconds;
}
uint32_t lastSDPoll = getTime_ms();
sdPoll();
sdCheckPresent();
while (1)
@ -62,22 +65,35 @@ int main()
scsiPoll();
scsiDiskPoll();
configPoll();
sdPoll();
if (unlikely(scsiDev.phase == BUS_FREE))
{
if (unlikely(elapsedTime_ms(lastSDPoll) > 200))
{
lastSDPoll = getTime_ms();
sdPoll();
sdCheckPresent();
}
else
{
// Wait for our 1ms timer to save some power.
// There's an interrupt on the SEL signal to ensure we respond
// quickly to any SCSI commands.
__WFI();
// quickly to any SCSI commands. The selection abort time is
// only 250us, and new SCSI-3 controllers time-out very
// not long after that, so we need to ensure we wake up quickly.
uint8_t interruptState = CyEnterCriticalSection();
if (!SCSI_ReadFilt(SCSI_Filt_SEL))
{
__WFI(); // Will wake on interrupt, regardless of mask
}
CyExitCriticalSection(interruptState);
}
}
else if (scsiDev.phase >= 0)
{
// don't waste time scanning SD cards while we're doing disk IO
lastSDPoll = getTime_ms();
}
}
return 0;
}

View File

@ -213,7 +213,7 @@ static void process_DataOut()
scsiDev.dataPtr += len;
if (scsiDev.parityError &&
(scsiDev.target->cfg->flags & CONFIG_ENABLE_PARITY) &&
(scsiDev.boardCfg.flags & CONFIG_ENABLE_PARITY) &&
(scsiDev.compatMode >= COMPAT_SCSI2))
{
scsiDev.target->sense.code = ABORTED_COMMAND;
@ -274,7 +274,7 @@ static void process_Command()
return;
}
else if (scsiDev.parityError &&
(cfg->flags & CONFIG_ENABLE_PARITY) &&
(scsiDev.boardCfg.flags & CONFIG_ENABLE_PARITY) &&
(scsiDev.compatMode >= COMPAT_SCSI2))
{
scsiDev.target->sense.code = ABORTED_COMMAND;
@ -327,7 +327,7 @@ static void process_Command()
// on receiving the unit attention response on boot, thus
// triggering another unit attention condition.
else if (scsiDev.target->unitAttention &&
(cfg->flags & CONFIG_ENABLE_UNIT_ATTENTION))
(scsiDev.boardCfg.flags & CONFIG_ENABLE_UNIT_ATTENTION))
{
scsiDev.target->sense.code = UNIT_ATTENTION;
scsiDev.target->sense.asc = scsiDev.target->unitAttention;
@ -520,14 +520,26 @@ static void enter_SelectionPhase()
static void process_SelectionPhase()
{
if (scsiDev.compatMode < COMPAT_SCSI2)
// Selection delays.
// Many SCSI1 samplers that use a 5380 chip need a delay of at least 1ms.
// The Mac Plus boot-time (ie. rom code) selection abort time
// is < 1ms and must have no delay (standard suggests 250ms abort time)
// Most newer SCSI2 hosts don't care either way.
if (scsiDev.boardCfg.selectionDelay == 255) // auto
{
// Required for some older SCSI1 devices using a 5380 chip.
CyDelay(1);
if (scsiDev.compatMode < COMPAT_SCSI2)
{
CyDelay(1);
}
}
else if (scsiDev.boardCfg.selectionDelay != 0)
{
CyDelay(scsiDev.boardCfg.selectionDelay);
}
int sel = SCSI_ReadFilt(SCSI_Filt_SEL);
int bsy = SCSI_ReadFilt(SCSI_Filt_BSY);
int io = SCSI_ReadPin(SCSI_In_IO);
// Only read these pins AFTER SEL and BSY - we don't want to catch them
// during a transition period.
@ -546,11 +558,23 @@ static void process_SelectionPhase()
break;
}
}
if (!bsy && sel &&
sel &= SCSI_ReadFilt(SCSI_Filt_SEL);
bsy |= SCSI_ReadFilt(SCSI_Filt_BSY);
io |= SCSI_ReadPin(SCSI_In_IO);
if (!bsy && !io && sel &&
target &&
(goodParity || !(target->cfg->flags & CONFIG_ENABLE_PARITY) || !atnFlag) &&
(goodParity || !(scsiDev.boardCfg.flags & CONFIG_ENABLE_PARITY) || !atnFlag) &&
likely(maskBitCount <= 2))
{
// We've been selected!
// Assert BSY - Selection success!
// must happen within 200us (Selection abort time) of seeing our
// ID + SEL.
// (Note: the initiator will be waiting the "Selection time-out delay"
// for our BSY response, which is actually a very generous 250ms)
SCSI_SetPin(SCSI_Out_BSY);
ledOn();
scsiDev.target = target;
// Do we enter MESSAGE OUT immediately ? SCSI 1 and 2 standards says
@ -558,6 +582,7 @@ static void process_SelectionPhase()
// The initiator should assert ATN with SEL.
scsiDev.atnFlag = atnFlag;
// Unit attention breaks many older SCSI hosts. Disable it completely
// for SCSI-1 (and older) hosts, regardless of our configured setting.
// Enable the compatability mode also as many SASI and SCSI1
@ -567,7 +592,7 @@ static void process_SelectionPhase()
target->unitAttention = 0;
scsiDev.compatMode = COMPAT_SCSI1;
}
else if (!(target->cfg->flags & CONFIG_ENABLE_SCSI2))
else if (!(scsiDev.boardCfg.flags & CONFIG_ENABLE_SCSI2))
{
scsiDev.compatMode = COMPAT_SCSI1;
}
@ -576,25 +601,8 @@ static void process_SelectionPhase()
scsiDev.compatMode = COMPAT_SCSI2;
}
// We've been selected!
// Assert BSY - Selection success!
// must happen within 200us (Selection abort time) of seeing our
// ID + SEL.
// (Note: the initiator will be waiting the "Selection time-out delay"
// for our BSY response, which is actually a very generous 250ms)
SCSI_SetPin(SCSI_Out_BSY);
ledOn();
scsiDev.selCount++;
// Wait until the end of the selection phase.
while (likely(!scsiDev.resetFlag))
{
if (!SCSI_ReadFilt(SCSI_Filt_SEL))
{
break;
}
}
// Save our initiator now that we're no longer in a time-critical
// section.
@ -613,6 +621,15 @@ static void process_SelectionPhase()
}
}
// Wait until the end of the selection phase.
while (likely(!scsiDev.resetFlag))
{
if (!SCSI_ReadFilt(SCSI_Filt_SEL))
{
break;
}
}
scsiDev.phase = COMMAND;
}
else if (!sel)
@ -631,7 +648,7 @@ static void process_MessageOut()
scsiDev.msgCount++;
if (scsiDev.parityError &&
(scsiDev.target->cfg->flags & CONFIG_ENABLE_PARITY) &&
(scsiDev.boardCfg.flags & CONFIG_ENABLE_PARITY) &&
(scsiDev.compatMode >= COMPAT_SCSI2))
{
// Skip the remaining message bytes, and then start the MESSAGE_OUT
@ -720,6 +737,12 @@ static void process_MessageOut()
{
// Two byte message. We don't support these. read and discard.
scsiReadByte();
if (scsiDev.msgOut == 0x23) {
// Ignore Wide Residue. We're only 8 bit anyway.
} else {
messageReject();
}
}
else if (scsiDev.msgOut == 0x01)
{

View File

@ -97,10 +97,12 @@ typedef struct
{
TargetState targets[MAX_SCSI_TARGETS];
TargetState* target;
BoardConfig boardCfg;
// Set to true (1) if the ATN flag was set, and we need to
// enter the MESSAGE_OUT phase.
volatile int atnFlag;
int atnFlag;
// Set to true (1) if the RST flag was set.
volatile int resetFlag;

View File

@ -75,7 +75,7 @@ CY_ISR(scsiSelectionISR)
{
// The SEL signal ISR ensures we wake up from a _WFI() (wait-for-interrupt)
// call in the main loop without waiting for our 1ms timer to
// expire. This is done for performance reasons only.
// expire. This is done to meet the 250us selection abort time.
}
uint8_t
@ -104,9 +104,6 @@ scsiReadByte(void)
uint8_t val = scsiPhyRx();
scsiDev.parityError = scsiDev.parityError || SCSI_Parity_Error_Read();
trace(trace_spinTxComplete);
while (!(scsiPhyStatus() & SCSI_PHY_TX_COMPLETE) && likely(!scsiDev.resetFlag)) {}
return val;
}
@ -132,7 +129,6 @@ scsiReadPIO(uint8* data, uint32 count)
}
}
scsiDev.parityError = scsiDev.parityError || SCSI_Parity_Error_Read();
while (!(scsiPhyStatus() & SCSI_PHY_TX_COMPLETE) && likely(!scsiDev.resetFlag)) {}
}
static void
@ -199,11 +195,6 @@ scsiReadDMAPoll()
{
if (scsiTxDMAComplete && scsiRxDMAComplete)
{
// Wait until our scsi signals are consistent. This should only be
// a few cycles.
trace(trace_spinTxComplete);
while (!(scsiPhyStatus() & SCSI_PHY_TX_COMPLETE)) {}
if (likely(dmaSentCount == dmaTotalCount))
{
dmaInProgress = 0;
@ -266,7 +257,7 @@ scsiWriteByte(uint8 value)
trace(trace_spinTxComplete);
while (!(scsiPhyStatus() & SCSI_PHY_TX_COMPLETE) && likely(!scsiDev.resetFlag)) {}
scsiPhyRxFifoClear();
scsiPhyRx();
}
static void
@ -386,7 +377,7 @@ scsiWrite(const uint8_t* data, uint32_t count)
{
__WFI();
};
if (count > alignedCount)
{
scsiWritePIO(data + alignedCount, count - alignedCount);
@ -403,6 +394,12 @@ static inline void busSettleDelay(void)
void scsiEnterPhase(int phase)
{
// ANSI INCITS 362-2002 SPI-3 10.7.1:
// Phase changes are not allowed while REQ or ACK is asserted.
while (likely(!scsiDev.resetFlag) &&
(SCSI_ReadPin(SCSI_In_REQ) || SCSI_ReadFilt(SCSI_Filt_ACK))
) {}
int newPhase = phase > 0 ? phase : 0;
if (newPhase != SCSI_CTL_PHASE_Read())
{
@ -427,7 +424,7 @@ void scsiPhyReset()
dmaTotalCount = 0;
CyDmaChSetRequest(scsiDmaTxChan, CY_DMA_CPU_TERM_CHAIN);
CyDmaChSetRequest(scsiDmaRxChan, CY_DMA_CPU_TERM_CHAIN);
// CyDmaChGetRequest returns 0 for the relevant bit once the
// request is completed.
trace(trace_spinDMAReset);
@ -484,7 +481,7 @@ static void scsiPhyInitDMA()
HI16(CYDEV_SRAM_BASE),
HI16(CYDEV_PERIPH_BASE)
);
CyDmaChDisable(scsiDmaRxChan);
CyDmaChDisable(scsiDmaTxChan);
@ -506,7 +503,7 @@ void scsiPhyInit()
SCSI_SEL_ISR_StartEx(scsiSelectionISR);
// Disable the glitch filter for ACK to improve performance.
if (getConfigByIndex(0)->flags & CONFIG_DISABLE_GLITCH)
if (scsiDev.boardCfg.flags & CONFIG_DISABLE_GLITCH)
{
SCSI_Glitch_Ctl_Write(1);
CY_SET_REG8(scsiTarget_datapath__D0_REG, 0);

View File

@ -33,7 +33,13 @@
// Global
SdDevice sdDev;
enum SD_IO_STATE { SD_DMA, SD_ACCEPTED, SD_BUSY, SD_IDLE };
enum SD_CMD_STATE { CMD_STATE_IDLE, CMD_STATE_READ, CMD_STATE_WRITE };
static int sdCmdState = CMD_STATE_IDLE;
static uint32_t sdCmdNextLBA; // Only valid in CMD_STATE_READ or CMD_STATE_WRITE
static uint32_t sdCmdTime;
static uint32_t sdLastCmdState = CMD_STATE_IDLE;
enum SD_IO_STATE { SD_DMA, SD_ACCEPTED, SD_IDLE };
static int sdIOState = SD_IDLE;
// Private DMA variables.
@ -85,6 +91,7 @@ static uint8 sdCrc7(uint8* chr, uint8 cnt, uint8 crc)
return crc & 0x7F;
}
// Read and write 1 byte.
static uint8_t sdSpiByte(uint8_t value)
{
@ -95,6 +102,34 @@ static uint8_t sdSpiByte(uint8_t value)
return SDCard_ReadRxData();
}
static void sdWaitWriteBusy()
{
uint8 val;
do
{
val = sdSpiByte(0xFF);
} while (val != 0xFF);
}
static void sdPreCmdState(uint32_t newState)
{
if (sdCmdState == CMD_STATE_READ)
{
sdCompleteRead();
}
else if (sdCmdState == CMD_STATE_WRITE)
{
sdCompleteWrite();
}
sdCmdState = CMD_STATE_IDLE;
if (sdLastCmdState != newState && newState != CMD_STATE_IDLE)
{
sdWaitWriteBusy();
sdLastCmdState = newState;
}
}
static uint16_t sdDoCommand(
uint8_t cmd,
uint32_t param,
@ -172,7 +207,17 @@ static uint16_t sdDoCommand(
CyDmaChEnable(sdDMATxChan, 1);
trace(trace_spinSDDMA);
while (!(sdTxDMAComplete && sdRxDMAComplete)) { __WFI(); }
int allComplete = 0;
while (!allComplete)
{
uint8_t intr = CyEnterCriticalSection();
allComplete = sdTxDMAComplete && sdRxDMAComplete;
if (!allComplete)
{
__WFI();
}
CyExitCriticalSection(intr);
}
uint16_t response = sdSpiByte(0xFF); // Result code or stuff byte
if (unlikely(cmd == SD_STOP_TRANSMISSION))
@ -218,34 +263,43 @@ static void sdClearStatus()
}
void
sdReadMultiSectorPrep()
sdReadMultiSectorPrep(uint32_t sdLBA, uint32_t sdSectors)
{
uint8 v;
uint32 scsiLBA = (transfer.lba + transfer.currentBlock);
uint32 sdLBA =
SCSISector2SD(
scsiDev.target->cfg->sdSectorStart,
scsiDev.target->liveCfg.bytesPerSector,
scsiLBA);
uint32_t tmpNextLBA = sdLBA + sdSectors;
if (!sdDev.ccs)
{
sdLBA = sdLBA * SD_SECTOR_SIZE;
tmpNextLBA = tmpNextLBA * SD_SECTOR_SIZE;
}
v = sdCommandAndResponse(SD_READ_MULTIPLE_BLOCK, sdLBA);
if (unlikely(v))
{
scsiDiskReset();
sdClearStatus();
scsiDev.status = CHECK_CONDITION;
scsiDev.target->sense.code = HARDWARE_ERROR;
scsiDev.target->sense.asc = LOGICAL_UNIT_COMMUNICATION_FAILURE;
scsiDev.phase = STATUS;
if (sdCmdState == CMD_STATE_READ && sdCmdNextLBA == sdLBA)
{
// Well, that was lucky. We're already reading this data
sdCmdNextLBA = tmpNextLBA;
sdCmdTime = getTime_ms();
}
else
{
transfer.inProgress = 1;
sdPreCmdState(CMD_STATE_READ);
uint8_t v = sdCommandAndResponse(SD_READ_MULTIPLE_BLOCK, sdLBA);
if (unlikely(v))
{
scsiDiskReset();
sdClearStatus();
scsiDev.status = CHECK_CONDITION;
scsiDev.target->sense.code = HARDWARE_ERROR;
scsiDev.target->sense.asc = LOGICAL_UNIT_COMMUNICATION_FAILURE;
scsiDev.phase = STATUS;
}
else
{
sdCmdNextLBA = tmpNextLBA;
sdCmdState = CMD_STATE_READ;
sdCmdTime = getTime_ms();
}
}
}
@ -290,12 +344,12 @@ dmaReadSector(uint8_t* outputBuffer)
dmaRxTd[0] = CyDmaTdAllocate();
dmaRxTd[1] = CyDmaTdAllocate();
dmaTxTd = CyDmaTdAllocate();
// Receive 512 bytes of data and then 2 bytes CRC.
CyDmaTdSetConfiguration(dmaRxTd[0], SD_SECTOR_SIZE, dmaRxTd[1], TD_INC_DST_ADR);
CyDmaTdSetConfiguration(dmaRxTd[1], 2, CY_DMA_DISABLE_TD, SD_RX_DMA__TD_TERMOUT_EN);
CyDmaTdSetAddress(dmaRxTd[1], LO16((uint32)SDCard_RXDATA_PTR), LO16((uint32)&discardBuffer));
CyDmaTdSetConfiguration(dmaTxTd, SD_SECTOR_SIZE + 2, CY_DMA_DISABLE_TD, SD_TX_DMA__TD_TERMOUT_EN);
CyDmaTdSetAddress(dmaTxTd, LO16((uint32)&dummyBuffer), LO16((uint32)SDCard_TXDATA_PTR));
@ -341,6 +395,8 @@ sdReadSectorDMAPoll()
void sdReadSingleSectorDMA(uint32_t lba, uint8_t* outputBuffer)
{
sdPreCmdState(CMD_STATE_READ);
uint8 v;
if (!sdDev.ccs)
{
@ -370,7 +426,6 @@ sdReadMultiSectorDMA(uint8_t* outputBuffer)
dmaReadSector(outputBuffer);
}
void sdCompleteRead()
{
if (unlikely(sdIOState != SD_IDLE))
@ -381,13 +436,13 @@ void sdCompleteRead()
trace(trace_spinSDCompleteRead);
while (!sdReadSectorDMAPoll()) { /* spin */ }
}
if (transfer.inProgress)
if (sdCmdState == CMD_STATE_READ)
{
transfer.inProgress = 0;
uint8 r1b = sdCommandAndResponse(SD_STOP_TRANSMISSION, 0);
if (unlikely(r1b))
if (unlikely(r1b) && (scsiDev.PHASE == DATA_IN))
{
scsiDev.status = CHECK_CONDITION;
scsiDev.target->sense.code = HARDWARE_ERROR;
@ -399,15 +454,8 @@ void sdCompleteRead()
// R1b has an optional trailing "busy" signal, but we defer waiting on this.
// The next call so sdCommandAndResponse will wait for the busy state to
// clear.
}
static void sdWaitWriteBusy()
{
uint8 val;
do
{
val = sdSpiByte(0xFF);
} while (val != 0xFF);
sdCmdState = CMD_STATE_IDLE;
}
void
@ -422,7 +470,7 @@ sdWriteMultiSectorDMA(uint8_t* outputBuffer)
dmaTxTd[0] = CyDmaTdAllocate();
dmaTxTd[1] = CyDmaTdAllocate();
dmaTxTd[2] = CyDmaTdAllocate();
// Transmit 512 bytes of data and then 2 bytes CRC, and then get the response byte
// We need to do this without stopping the clock
CyDmaTdSetConfiguration(dmaTxTd[0], 2, dmaTxTd[1], TD_INC_SRC_ADR);
@ -464,7 +512,7 @@ sdWriteMultiSectorDMA(uint8_t* outputBuffer)
}
int
sdWriteSectorDMAPoll(int sendStopToken)
sdWriteSectorDMAPoll()
{
if (sdRxDMAComplete && sdTxDMAComplete)
{
@ -490,7 +538,7 @@ sdWriteSectorDMAPoll(int sendStopToken)
sdSpiByte(0xFD); // STOP TOKEN
sdWaitWriteBusy();
transfer.inProgress = 0;
sdCmdState = CMD_STATE_IDLE;
scsiDiskReset();
sdClearStatus();
@ -506,25 +554,6 @@ sdWriteSectorDMAPoll(int sendStopToken)
}
if (sdIOState == SD_ACCEPTED)
{
// Wait while the SD card is busy
if (sdSpiByte(0xFF) == 0xFF)
{
if (sendStopToken)
{
sdIOState = SD_BUSY;
transfer.inProgress = 0;
sdSpiByte(0xFD); // STOP TOKEN
}
else
{
sdIOState = SD_IDLE;
}
}
}
if (sdIOState == SD_BUSY)
{
// Wait while the SD card is busy
if (sdSpiByte(0xFF) == 0xFF)
@ -549,10 +578,20 @@ void sdCompleteWrite()
// Cancelling the transfer can't be done as we have no way to reset
// the SD card.
trace(trace_spinSDCompleteWrite);
while (!sdWriteSectorDMAPoll(1)) { /* spin */ }
while (!sdWriteSectorDMAPoll()) { /* spin */ }
}
if (transfer.inProgress && likely(scsiDev.phase == DATA_OUT))
if (sdCmdState == CMD_STATE_WRITE)
{
sdWaitWriteBusy();
sdSpiByte(0xFD); // STOP TOKEN
sdWaitWriteBusy();
}
if (likely(scsiDev.phase == DATA_OUT))
{
uint16_t r2 = sdDoCommand(SD_SEND_STATUS, 0, 0, 1);
if (unlikely(r2))
@ -564,7 +603,12 @@ void sdCompleteWrite()
scsiDev.phase = STATUS;
}
}
transfer.inProgress = 0;
sdCmdState = CMD_STATE_IDLE;
}
void sdCompleteTransfer()
{
sdPreCmdState(CMD_STATE_IDLE);
}
@ -763,6 +807,7 @@ int sdInit()
int i;
uint8 v;
sdCmdState = CMD_STATE_IDLE;
sdDev.version = 0;
sdDev.ccs = 0;
sdDev.capacity = 0;
@ -845,52 +890,68 @@ out:
}
void sdWriteMultiSectorPrep()
void sdWriteMultiSectorPrep(uint32_t sdLBA, uint32_t sdSectors)
{
uint8 v;
uint32_t tmpNextLBA = sdLBA + sdSectors;
// Set the number of blocks to pre-erase by the multiple block write command
// We don't care about the response - if the command is not accepted, writes
// will just be a bit slower.
// Max 22bit parameter.
uint32_t sdBlocks =
transfer.blocks *
SDSectorsPerSCSISector(scsiDev.target->liveCfg.bytesPerSector);
uint32 blocks = sdBlocks > 0x7FFFFF ? 0x7FFFFF : sdBlocks;
sdCommandAndResponse(SD_APP_CMD, 0);
sdCommandAndResponse(SD_APP_SET_WR_BLK_ERASE_COUNT, blocks);
uint32 scsiLBA = (transfer.lba + transfer.currentBlock);
uint32 sdLBA =
SCSISector2SD(
scsiDev.target->cfg->sdSectorStart,
scsiDev.target->liveCfg.bytesPerSector,
scsiLBA);
if (!sdDev.ccs)
{
sdLBA = sdLBA * SD_SECTOR_SIZE;
tmpNextLBA = tmpNextLBA * SD_SECTOR_SIZE;
}
v = sdCommandAndResponse(SD_WRITE_MULTIPLE_BLOCK, sdLBA);
if (unlikely(v))
if (sdCmdState == CMD_STATE_WRITE && sdCmdNextLBA == sdLBA)
{
scsiDiskReset();
sdClearStatus();
scsiDev.status = CHECK_CONDITION;
scsiDev.target->sense.code = HARDWARE_ERROR;
scsiDev.target->sense.asc = LOGICAL_UNIT_COMMUNICATION_FAILURE;
scsiDev.phase = STATUS;
// Well, that was lucky. We're already writing this data
sdCmdNextLBA = tmpNextLBA;
sdCmdTime = getTime_ms();
}
else
{
transfer.inProgress = 1;
sdPreCmdState(CMD_STATE_WRITE);
// Set the number of blocks to pre-erase by the multiple block write
// command. We don't care about the response - if the command is not
// accepted, writes will just be a bit slower. Max 22bit parameter.
uint32 blocks = sdSectors > 0x7FFFFF ? 0x7FFFFF : sdSectors;
sdCommandAndResponse(SD_APP_CMD, 0);
sdCommandAndResponse(SD_APP_SET_WR_BLK_ERASE_COUNT, blocks);
uint8_t v = sdCommandAndResponse(SD_WRITE_MULTIPLE_BLOCK, sdLBA);
if (unlikely(v))
{
scsiDiskReset();
sdClearStatus();
scsiDev.status = CHECK_CONDITION;
scsiDev.target->sense.code = HARDWARE_ERROR;
scsiDev.target->sense.asc = LOGICAL_UNIT_COMMUNICATION_FAILURE;
scsiDev.phase = STATUS;
}
else
{
sdCmdTime = getTime_ms();
sdCmdNextLBA = tmpNextLBA;
sdCmdState = CMD_STATE_WRITE;
}
}
}
void sdPoll()
{
if ((scsiDev.phase == BUS_FREE) &&
(sdCmdState != CMD_STATE_IDLE) &&
(elapsedTime_ms(sdCmdTime) >= 50))
{
sdPreCmdState(CMD_STATE_IDLE);
}
}
void sdCheckPresent()
{
// Check if there's an SD card present.
if ((scsiDev.phase == BUS_FREE) &&
(sdIOState == SD_IDLE))
(sdIOState == SD_IDLE) &&
(sdCmdState == CMD_STATE_IDLE))
{
// The CS line is pulled high by the SD card.
// De-assert the line, and check if it's high.
@ -916,6 +977,13 @@ void sdPoll()
{
blockDev.state |= DISK_PRESENT | DISK_INITIALISED;
// Always "start" the device. Many systems (eg. Apple System 7)
// won't respond properly to
// LOGICAL_UNIT_NOT_READY_INITIALIZING_COMMAND_REQUIRED sense
// code, even if they stopped it first with
// START STOP UNIT command.
blockDev.state |= DISK_STARTED;
if (!firstInit)
{
int i;

View File

@ -68,17 +68,17 @@ int sdInit(void);
#define sdDMABusy() (!(sdRxDMAComplete && sdTxDMAComplete))
void sdWriteMultiSectorPrep(void);
void sdWriteMultiSectorPrep(uint32_t sdLBA, uint32_t sdSectors);
void sdWriteMultiSectorDMA(uint8_t* outputBuffer);
int sdWriteSectorDMAPoll(int sendStopToken);
void sdCompleteWrite(void);
int sdWriteSectorDMAPoll();
void sdReadMultiSectorPrep(void);
void sdReadMultiSectorPrep(uint32_t sdLBA, uint32_t sdSectors);
void sdReadMultiSectorDMA(uint8_t* outputBuffer);
void sdReadSingleSectorDMA(uint32_t lba, uint8_t* outputBuffer);
int sdReadSectorDMAPoll();
void sdCompleteRead(void);
void sdCompleteTransfer(void);
void sdCheckPresent();
void sdPoll();
#endif

2
software/SCSI2SD/src/trace.c Normal file → Executable file
View File

@ -46,6 +46,8 @@
#define TPIU_FFCR_ENFCONT (1 << 1)
uint8_t LastTrace;
void traceInit(void) {
// enable the trace module clocks
CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;

View File

@ -15,6 +15,8 @@
// You should have received a copy of the GNU General Public License
// along with SCSI2SD. If not, see <http://www.gnu.org/licenses/>.
extern uint8_t LastTrace;
// Trace event IDs to be output. 1 and 9 are generated as headers on ports 0
// and 1 respectively, and should not be used.
enum trace_event {
@ -71,6 +73,6 @@ void traceInit(void);
ITM->PORT[1].u8 = ch;
}
#else
#define trace(ev)
#define traceIrq(ev)
#define trace(ev) LastTrace = ev
#define traceIrq(ev) LastTrace = ev
#endif

View File

@ -20,6 +20,7 @@
#include <CyLib.h>
#include <Debug_Timer_Interrupt.h>
#if !defined(Debug_Timer_Interrupt__REMOVED) /* Check for removal by optimization */
/*******************************************************************************
@ -158,6 +159,10 @@ void Debug_Timer_Interrupt_Stop(void)
*******************************************************************************/
CY_ISR(Debug_Timer_Interrupt_Interrupt)
{
#ifdef Debug_Timer_Interrupt_INTERRUPT_INTERRUPT_CALLBACK
Debug_Timer_Interrupt_Interrupt_InterruptCallback();
#endif /* Debug_Timer_Interrupt_INTERRUPT_INTERRUPT_CALLBACK */
/* Place your Interrupt code here. */
/* `#START Debug_Timer_Interrupt_Interrupt` */

View File

@ -20,6 +20,7 @@
#include <CyLib.h>
#include <SCSI_RST_ISR.h>
#if !defined(SCSI_RST_ISR__REMOVED) /* Check for removal by optimization */
/*******************************************************************************
@ -158,6 +159,10 @@ void SCSI_RST_ISR_Stop(void)
*******************************************************************************/
CY_ISR(SCSI_RST_ISR_Interrupt)
{
#ifdef SCSI_RST_ISR_INTERRUPT_INTERRUPT_CALLBACK
SCSI_RST_ISR_Interrupt_InterruptCallback();
#endif /* SCSI_RST_ISR_INTERRUPT_INTERRUPT_CALLBACK */
/* Place your Interrupt code here. */
/* `#START SCSI_RST_ISR_Interrupt` */

View File

@ -20,6 +20,7 @@
#include <CyLib.h>
#include <SCSI_RX_DMA_COMPLETE.h>
#if !defined(SCSI_RX_DMA_COMPLETE__REMOVED) /* Check for removal by optimization */
/*******************************************************************************
@ -158,6 +159,10 @@ void SCSI_RX_DMA_COMPLETE_Stop(void)
*******************************************************************************/
CY_ISR(SCSI_RX_DMA_COMPLETE_Interrupt)
{
#ifdef SCSI_RX_DMA_COMPLETE_INTERRUPT_INTERRUPT_CALLBACK
SCSI_RX_DMA_COMPLETE_Interrupt_InterruptCallback();
#endif /* SCSI_RX_DMA_COMPLETE_INTERRUPT_INTERRUPT_CALLBACK */
/* Place your Interrupt code here. */
/* `#START SCSI_RX_DMA_COMPLETE_Interrupt` */

View File

@ -20,6 +20,7 @@
#include <CyLib.h>
#include <SCSI_SEL_ISR.h>
#if !defined(SCSI_SEL_ISR__REMOVED) /* Check for removal by optimization */
/*******************************************************************************
@ -158,6 +159,10 @@ void SCSI_SEL_ISR_Stop(void)
*******************************************************************************/
CY_ISR(SCSI_SEL_ISR_Interrupt)
{
#ifdef SCSI_SEL_ISR_INTERRUPT_INTERRUPT_CALLBACK
SCSI_SEL_ISR_Interrupt_InterruptCallback();
#endif /* SCSI_SEL_ISR_INTERRUPT_INTERRUPT_CALLBACK */
/* Place your Interrupt code here. */
/* `#START SCSI_SEL_ISR_Interrupt` */

View File

@ -20,6 +20,7 @@
#include <CyLib.h>
#include <SCSI_TX_DMA_COMPLETE.h>
#if !defined(SCSI_TX_DMA_COMPLETE__REMOVED) /* Check for removal by optimization */
/*******************************************************************************
@ -158,6 +159,10 @@ void SCSI_TX_DMA_COMPLETE_Stop(void)
*******************************************************************************/
CY_ISR(SCSI_TX_DMA_COMPLETE_Interrupt)
{
#ifdef SCSI_TX_DMA_COMPLETE_INTERRUPT_INTERRUPT_CALLBACK
SCSI_TX_DMA_COMPLETE_Interrupt_InterruptCallback();
#endif /* SCSI_TX_DMA_COMPLETE_INTERRUPT_INTERRUPT_CALLBACK */
/* Place your Interrupt code here. */
/* `#START SCSI_TX_DMA_COMPLETE_Interrupt` */

View File

@ -20,6 +20,7 @@
#include <CyLib.h>
#include <SD_RX_DMA_COMPLETE.h>
#if !defined(SD_RX_DMA_COMPLETE__REMOVED) /* Check for removal by optimization */
/*******************************************************************************
@ -158,6 +159,10 @@ void SD_RX_DMA_COMPLETE_Stop(void)
*******************************************************************************/
CY_ISR(SD_RX_DMA_COMPLETE_Interrupt)
{
#ifdef SD_RX_DMA_COMPLETE_INTERRUPT_INTERRUPT_CALLBACK
SD_RX_DMA_COMPLETE_Interrupt_InterruptCallback();
#endif /* SD_RX_DMA_COMPLETE_INTERRUPT_INTERRUPT_CALLBACK */
/* Place your Interrupt code here. */
/* `#START SD_RX_DMA_COMPLETE_Interrupt` */

View File

@ -20,6 +20,7 @@
#include <CyLib.h>
#include <SD_TX_DMA_COMPLETE.h>
#if !defined(SD_TX_DMA_COMPLETE__REMOVED) /* Check for removal by optimization */
/*******************************************************************************
@ -158,6 +159,10 @@ void SD_TX_DMA_COMPLETE_Stop(void)
*******************************************************************************/
CY_ISR(SD_TX_DMA_COMPLETE_Interrupt)
{
#ifdef SD_TX_DMA_COMPLETE_INTERRUPT_INTERRUPT_CALLBACK
SD_TX_DMA_COMPLETE_Interrupt_InterruptCallback();
#endif /* SD_TX_DMA_COMPLETE_INTERRUPT_INTERRUPT_CALLBACK */
/* Place your Interrupt code here. */
/* `#START SD_TX_DMA_COMPLETE_Interrupt` */

View File

@ -17,6 +17,7 @@
#include "USBFS.h"
#if defined(USBFS_ENABLE_AUDIO_CLASS)
#include "USBFS_audio.h"
@ -124,6 +125,11 @@ uint8 USBFS_DispatchAUDIOClassRqst(void)
/* `#START AUDIO_READ_REQUESTS` Place other request handler here */
/* `#END` */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_AUDIO_READ_REQUESTS_CALLBACK
USBFS_DispatchAUDIOClass_AUDIO_READ_REQUESTS_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_AUDIO_READ_REQUESTS_CALLBACK */
break;
default:
break;
@ -142,7 +148,11 @@ uint8 USBFS_DispatchAUDIOClassRqst(void)
/* `#END` */
/* Entity ID Control Selector is MUTE */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_MUTE_CONTROL_GET_REQUEST_CALLBACK
USBFS_DispatchAUDIOClass_MUTE_CONTROL_GET_REQUEST_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_MUTE_CONTROL_GET_REQUEST_CALLBACK */
/* Entity ID Control Selector is MUTE */
USBFS_currentTD.wCount = 1u;
USBFS_currentTD.pData = &USBFS_currentMute;
requestHandled = USBFS_InitControlRead();
@ -153,6 +163,10 @@ uint8 USBFS_DispatchAUDIOClassRqst(void)
/* `#END` */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_VOLUME_CONTROL_GET_REQUEST_CALLBACK
USBFS_DispatchAUDIOClass_VOLUME_CONTROL_GET_REQUEST_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_VOLUME_CONTROL_GET_REQUEST_CALLBACK */
/* Entity ID Control Selector is VOLUME, */
USBFS_currentTD.wCount = USBFS_VOLUME_LEN;
USBFS_currentTD.pData = USBFS_currentVolume;
@ -163,6 +177,10 @@ uint8 USBFS_DispatchAUDIOClassRqst(void)
/* `#START OTHER_GET_CUR_REQUESTS` Place other request handler here */
/* `#END` */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_OTHER_GET_CUR_REQUESTS_CALLBACK
USBFS_DispatchAUDIOClass_OTHER_GET_CUR_REQUESTS_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_OTHER_GET_CUR_REQUESTS_CALLBACK */
}
break;
case USBFS_GET_MIN: /* GET_MIN */
@ -205,6 +223,11 @@ uint8 USBFS_DispatchAUDIOClassRqst(void)
/* `#START AUDIO_WRITE_REQUESTS` Place other request handler here */
/* `#END` */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_AUDIO_WRITE_REQUESTS_CALLBACK
USBFS_DispatchAUDIOClass_AUDIO_WRITE_REQUESTS_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_AUDIO_WRITE_REQUESTS_CALLBACK */
break;
default:
break;
@ -237,6 +260,11 @@ uint8 USBFS_DispatchAUDIOClassRqst(void)
/* `#START AUDIO_SAMPLING_FREQ_REQUESTS` Place other request handler here */
/* `#END` */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_AUDIO_SAMPLING_FREQ_REQUESTS_CALLBACK
USBFS_DispatchAUDIOClass_AUDIO_SAMPLING_FREQ_REQUESTS_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_AUDIO_SAMPLING_FREQ_REQUESTS_CALLBACK */
break;
default:
break;
@ -255,6 +283,10 @@ uint8 USBFS_DispatchAUDIOClassRqst(void)
/* `#END` */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_MUTE_SET_REQUEST_CALLBACK
USBFS_DispatchAUDIOClass_MUTE_SET_REQUEST_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_MUTE_SET_REQUEST_CALLBACK */
/* Entity ID Control Selector is MUTE */
USBFS_currentTD.wCount = 1u;
USBFS_currentTD.pData = &USBFS_currentMute;
@ -266,6 +298,10 @@ uint8 USBFS_DispatchAUDIOClassRqst(void)
/* `#END` */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_VOLUME_CONTROL_SET_REQUEST_CALLBACK
USBFS_DispatchAUDIOClass_VOLUME_CONTROL_SET_REQUEST_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_VOLUME_CONTROL_SET_REQUEST_CALLBACK */
/* Entity ID Control Selector is VOLUME */
USBFS_currentTD.wCount = USBFS_VOLUME_LEN;
USBFS_currentTD.pData = USBFS_currentVolume;
@ -276,12 +312,21 @@ uint8 USBFS_DispatchAUDIOClassRqst(void)
/* `#START OTHER_SET_CUR_REQUESTS` Place other request handler here */
/* `#END` */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_OTHER_SET_CUR_REQUESTS_CALLBACK
USBFS_DispatchAUDIOClass_OTHER_SET_CUR_REQUESTS_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_OTHER_SET_CUR_REQUESTS_CALLBACK */
}
#endif /* USBFS_ENABLE_AUDIO_STREAMING */
/* `#START AUDIO_CONTROL_SEL_REQUESTS` Place other request handler here */
/* `#END` */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_AUDIO_CONTROL_SEL_REQUESTS_CALLBACK
USBFS_DispatchAUDIOClass_AUDIO_CONTROL_SEL_REQUESTS_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_AUDIO_CONTROL_SEL_REQUESTS_CALLBACK */
break;
default:
break;

View File

@ -23,6 +23,7 @@
#include "USBFS_pvt.h"
/***************************************
* CDC Variables
***************************************/
@ -104,6 +105,10 @@ uint8 USBFS_DispatchCDCClassRqst(void)
/* `#END` */
#ifdef USBFS_DISPATCH_CDC_CLASS_CDC_READ_REQUESTS_CALLBACK
USBFS_DispatchCDCClass_CDC_READ_REQUESTS_Callback();
#endif /* USBFS_DISPATCH_CDC_CLASS_CDC_READ_REQUESTS_CALLBACK */
default: /* requestHandled is initialized as FALSE by default */
break;
}
@ -130,6 +135,10 @@ uint8 USBFS_DispatchCDCClassRqst(void)
/* `#END` */
#ifdef USBFS_DISPATCH_CDC_CLASS_CDC_WRITE_REQUESTS_CALLBACK
USBFS_DispatchCDCClass_CDC_WRITE_REQUESTS_Callback();
#endif /* USBFS_DISPATCH_CDC_CLASS_CDC_WRITE_REQUESTS_CALLBACK */
default: /* requestHandled is initialized as FALSE by default */
break;
}

View File

@ -21,6 +21,7 @@
#include "USBFS_pvt.h"
/***************************************
* User Implemented Class Driver Declarations.
***************************************/
@ -89,6 +90,10 @@ uint8 USBFS_DispatchClassRqst(void)
/* `#END` */
#ifdef USBFS_DISPATCH_CLASS_RQST_CALLBACK
USBFS_DispatchClassRqst_Callback();
#endif /* USBFS_DISPATCH_CLASS_RQST_CALLBACK */
return(requestHandled);
}

View File

@ -18,6 +18,7 @@
#include "USBFS_pvt.h"
/***************************************
* Global data allocation
***************************************/
@ -68,7 +69,10 @@ CY_ISR(USBFS_EP_0_ISR)
uint8 bRegTemp;
uint8 modifyReg;
#ifdef USBFS_EP_0_ISR_ENTRY_CALLBACK
USBFS_EP_0_ISR_EntryCallback();
#endif /* USBFS_EP_0_ISR_ENTRY_CALLBACK */
bRegTemp = CY_GET_REG8(USBFS_EP0_CR_PTR);
if ((bRegTemp & USBFS_MODE_ACKD) != 0u)
{
@ -128,6 +132,9 @@ CY_ISR(USBFS_EP_0_ISR)
}
}
}
#ifdef USBFS_EP_0_ISR_EXIT_CALLBACK
USBFS_EP_0_ISR_ExitCallback();
#endif /* USBFS_EP_0_ISR_EXIT_CALLBACK */
}

View File

@ -16,6 +16,7 @@
#include "USBFS.h"
#include "USBFS_pvt.h"
#if (defined(USBFS_ENABLE_MIDI_STREAMING) && (USBFS_ENABLE_MIDI_API != 0u))
#include "USBFS_midi.h"
#endif /* (defined(USBFS_ENABLE_MIDI_STREAMING) && (USBFS_ENABLE_MIDI_API != 0u)) */
@ -57,6 +58,10 @@
uint8 int_en;
#endif /* USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3 */
#ifdef USBFS_EP_1_ISR_ENTRY_CALLBACK
USBFS_EP_1_ISR_EntryCallback();
#endif /* USBFS_EP_1_ISR_ENTRY_CALLBACK */
/* `#START EP1_USER_CODE` Place your code here */
/* `#END` */
@ -90,6 +95,10 @@
/* `#END` */
#ifdef USBFS_EP_1_ISR_EXIT_CALLBACK
USBFS_EP_1_ISR_ExitCallback();
#endif /* USBFS_EP_1_ISR_EXIT_CALLBACK */
#if (defined(USBFS_ENABLE_MIDI_STREAMING) && !defined(USBFS_MAIN_SERVICE_MIDI_OUT) && \
USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
@ -122,6 +131,10 @@
uint8 int_en;
#endif /* USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3 */
#ifdef USBFS_EP_2_ISR_ENTRY_CALLBACK
USBFS_EP_2_ISR_EntryCallback();
#endif /* USBFS_EP_2_ISR_ENTRY_CALLBACK */
/* `#START EP2_USER_CODE` Place your code here */
/* `#END` */
@ -155,6 +168,10 @@
/* `#END` */
#ifdef USBFS_EP_2_ISR_EXIT_CALLBACK
USBFS_EP_2_ISR_ExitCallback();
#endif /* USBFS_EP_2_ISR_EXIT_CALLBACK */
#if (defined(USBFS_ENABLE_MIDI_STREAMING) && !defined(USBFS_MAIN_SERVICE_MIDI_OUT) && \
USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
@ -187,6 +204,10 @@
uint8 int_en;
#endif /* USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3 */
#ifdef USBFS_EP_3_ISR_ENTRY_CALLBACK
USBFS_EP_3_ISR_EntryCallback();
#endif /* USBFS_EP_3_ISR_ENTRY_CALLBACK */
/* `#START EP3_USER_CODE` Place your code here */
/* `#END` */
@ -220,6 +241,10 @@
/* `#END` */
#ifdef USBFS_EP_3_ISR_EXIT_CALLBACK
USBFS_EP_3_ISR_ExitCallback();
#endif /* USBFS_EP_3_ISR_EXIT_CALLBACK */
#if (defined(USBFS_ENABLE_MIDI_STREAMING) && !defined(USBFS_MAIN_SERVICE_MIDI_OUT) && \
USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
@ -252,6 +277,10 @@
uint8 int_en;
#endif /* CY_PSOC3 & USBFS_ISR_SERVICE_MIDI_OUT */
#ifdef USBFS_EP_4_ISR_ENTRY_CALLBACK
USBFS_EP_4_ISR_EntryCallback();
#endif /* USBFS_EP_4_ISR_ENTRY_CALLBACK */
/* `#START EP4_USER_CODE` Place your code here */
/* `#END` */
@ -285,6 +314,10 @@
/* `#END` */
#ifdef USBFS_EP_4_ISR_EXIT_CALLBACK
USBFS_EP_4_ISR_ExitCallback();
#endif /* USBFS_EP_4_ISR_EXIT_CALLBACK */
#if (defined(USBFS_ENABLE_MIDI_STREAMING) && !defined(USBFS_MAIN_SERVICE_MIDI_OUT) && \
USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
@ -317,6 +350,10 @@
uint8 int_en;
#endif /* CY_PSOC3 & USBFS_ISR_SERVICE_MIDI_OUT */
#ifdef USBFS_EP_5_ISR_ENTRY_CALLBACK
USBFS_EP_5_ISR_EntryCallback();
#endif /* USBFS_EP_5_ISR_ENTRY_CALLBACK */
/* `#START EP5_USER_CODE` Place your code here */
/* `#END` */
@ -350,6 +387,10 @@
/* `#END` */
#ifdef USBFS_EP_5_ISR_EXIT_CALLBACK
USBFS_EP_5_ISR_ExitCallback();
#endif /* USBFS_EP_5_ISR_EXIT_CALLBACK */
#if (defined(USBFS_ENABLE_MIDI_STREAMING) && !defined(USBFS_MAIN_SERVICE_MIDI_OUT) && \
USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
@ -381,6 +422,10 @@
uint8 int_en;
#endif /* CY_PSOC3 & USBFS_ISR_SERVICE_MIDI_OUT */
#ifdef USBFS_EP_6_ISR_ENTRY_CALLBACK
USBFS_EP_6_ISR_EntryCallback();
#endif /* USBFS_EP_6_ISR_ENTRY_CALLBACK */
/* `#START EP6_USER_CODE` Place your code here */
/* `#END` */
@ -414,6 +459,10 @@
/* `#END` */
#ifdef USBFS_EP_6_ISR_EXIT_CALLBACK
USBFS_EP_6_ISR_ExitCallback();
#endif /* USBFS_EP_6_ISR_EXIT_CALLBACK */
#if (defined(USBFS_ENABLE_MIDI_STREAMING) && !defined(USBFS_MAIN_SERVICE_MIDI_OUT) && \
USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
@ -446,6 +495,10 @@
uint8 int_en;
#endif /* CY_PSOC3 & USBFS_ISR_SERVICE_MIDI_OUT */
#ifdef USBFS_EP_7_ISR_ENTRY_CALLBACK
USBFS_EP_7_ISR_EntryCallback();
#endif /* USBFS_EP_7_ISR_ENTRY_CALLBACK */
/* `#START EP7_USER_CODE` Place your code here */
/* `#END` */
@ -479,6 +532,10 @@
/* `#END` */
#ifdef USBFS_EP_7_ISR_EXIT_CALLBACK
USBFS_EP_7_ISR_ExitCallback();
#endif /* USBFS_EP_7_ISR_EXIT_CALLBACK */
#if (defined(USBFS_ENABLE_MIDI_STREAMING) && !defined(USBFS_MAIN_SERVICE_MIDI_OUT) && \
USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
@ -511,6 +568,10 @@
uint8 int_en;
#endif /* CY_PSOC3 & USBFS_ISR_SERVICE_MIDI_OUT */
#ifdef USBFS_EP_8_ISR_ENTRY_CALLBACK
USBFS_EP_8_ISR_EntryCallback();
#endif /* USBFS_EP_8_ISR_ENTRY_CALLBACK */
/* `#START EP8_USER_CODE` Place your code here */
/* `#END` */
@ -544,6 +605,10 @@
/* `#END` */
#ifdef USBFS_EP_8_ISR_EXIT_CALLBACK
USBFS_EP_8_ISR_ExitCallback();
#endif /* USBFS_EP_8_ISR_EXIT_CALLBACK */
#if (defined(USBFS_ENABLE_MIDI_STREAMING) && !defined(USBFS_MAIN_SERVICE_MIDI_OUT) && \
USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
@ -569,6 +634,10 @@
*******************************************************************************/
CY_ISR(USBFS_SOF_ISR)
{
#ifdef USBFS_SOF_ISR_INTERRUPT_CALLBACK
USBFS_SOF_ISR_InterruptCallback();
#endif /* USBFS_SOF_ISR_INTERRUPT_CALLBACK */
/* `#START SOF_USER_CODE` Place your code here */
/* `#END` */
@ -592,11 +661,19 @@ CY_ISR(USBFS_SOF_ISR)
*******************************************************************************/
CY_ISR(USBFS_BUS_RESET_ISR)
{
#ifdef USBFS_BUS_RESET_ISR_ENTRY_CALLBACK
USBFS_BUS_RESET_ISR_EntryCallback();
#endif /* USBFS_BUS_RESET_ISR_ENTRY_CALLBACK */
/* `#START BUS_RESET_USER_CODE` Place your code here */
/* `#END` */
USBFS_ReInitComponent();
#ifdef USBFS_BUS_RESET_ISR_EXIT_CALLBACK
USBFS_BUS_RESET_ISR_ExitCallback();
#endif /* USBFS_BUS_RESET_ISR_EXIT_CALLBACK */
}
@ -627,6 +704,10 @@ CY_ISR(USBFS_BUS_RESET_ISR)
uint8 ep = USBFS_EP1;
uint8 ptr = 0u;
#ifdef USBFS_ARB_ISR_ENTRY_CALLBACK
USBFS_ARB_ISR_EntryCallback();
#endif /* USBFS_ARB_ISR_ENTRY_CALLBACK */
/* `#START ARB_BEGIN_USER_CODE` Place your code here */
/* `#END` */
@ -687,6 +768,10 @@ CY_ISR(USBFS_BUS_RESET_ISR)
/* `#END` */
#ifdef USBFS_ARB_ISR_CALLBACK
USBFS_ARB_ISR_Callback();
#endif /* USBFS_ARB_ISR_CALLBACK */
CY_SET_REG8((reg8 *)(USBFS_ARB_EP1_SR_IND + ptr), ep_status); /* Clear Serviced events */
}
ptr += USBFS_EPX_CNTX_ADDR_OFFSET; /* prepare pointer for next EP */
@ -697,6 +782,10 @@ CY_ISR(USBFS_BUS_RESET_ISR)
/* `#START ARB_END_USER_CODE` Place your code here */
/* `#END` */
#ifdef USBFS_ARB_ISR_EXIT_CALLBACK
USBFS_ARB_ISR_ExitCallback();
#endif /* USBFS_ARB_ISR_EXIT_CALLBACK */
}
#endif /* USBFS_EP_MM */
@ -724,6 +813,10 @@ CY_ISR(USBFS_BUS_RESET_ISR)
uint8 ep = USBFS_EP1;
uint8 ptr = 0u;
#ifdef USBFS_EP_DMA_DONE_ISR_ENTRY_CALLBACK
USBFS_EP_DMA_DONE_ISR_EntryCallback();
#endif /* USBFS_EP_DMA_DONE_ISR_ENTRY_CALLBACK */
/* `#START EP_DMA_DONE_BEGIN_USER_CODE` Place your code here */
/* `#END` */
@ -747,6 +840,10 @@ CY_ISR(USBFS_BUS_RESET_ISR)
/* `#END` */
#ifdef USBFS_EP_DMA_DONE_ISR_CALLBACK
USBFS_EP_DMA_DONE_ISR_Callback();
#endif /* USBFS_EP_DMA_DONE_ISR_CALLBACK */
CY_SET_REG8((reg8 *)(USBFS_ARB_RW1_WA_MSB_IND + ptr), 0x00u);
/* repeat 2 last bytes to prefetch endpoint area */
CY_SET_REG8((reg8 *)(USBFS_ARB_RW1_WA_IND + ptr),
@ -773,6 +870,10 @@ CY_ISR(USBFS_BUS_RESET_ISR)
/* `#START EP_DMA_DONE_END_USER_CODE` Place your code here */
/* `#END` */
#ifdef USBFS_EP_DMA_DONE_ISR_EXIT_CALLBACK
USBFS_EP_DMA_DONE_ISR_ExitCallback();
#endif /* USBFS_EP_DMA_DONE_ISR_EXIT_CALLBACK */
}
#endif /* ((USBFS_EP_MM == USBFS__EP_DMAAUTO) && (USBFS_EP_DMA_AUTO_OPT == 0u)) */

View File

@ -25,6 +25,7 @@
#include "USBFS_hid.h"
/***************************************
* HID Variables
***************************************/
@ -375,6 +376,11 @@ void USBFS_FindReport(void)
/* `#START HID_FINDREPORT` Place custom handling here */
/* `#END` */
#ifdef USBFS_FIND_REPORT_CALLBACK
USBFS_FindReport_Callback();
#endif /* USBFS_FIND_REPORT_CALLBACK */
USBFS_currentTD.count = 0u; /* Init not supported condition */
pTmp = USBFS_GetConfigTablePtr(USBFS_configuration - 1u);
reportType = CY_GET_REG8(USBFS_wValueHi);

View File

@ -26,6 +26,7 @@
#include "USBFS_pvt.h"
/***************************************
* MIDI Constants
***************************************/
@ -269,6 +270,10 @@ void USBFS_MIDI_EP_Init(void)
/* `#START CUSTOM_MIDI_OUT_EP_SERV` Place your code here */
/* `#END` */
#ifdef USBFS_MIDI_OUT_EP_SERVICE_CALLBACK
USBFS_MIDI_OUT_EP_Service_Callback();
#endif /* USBFS_MIDI_OUT_EP_SERVICE_CALLBACK */
}
#endif /* (USBFS_MIDI_EXT_MODE >= USBFS_ONE_EXT_INTRF) */
@ -732,6 +737,9 @@ void USBFS_MIDI_EP_Init(void)
/* `#END` */
#ifdef USBFS_MIDI_INIT_CALLBACK
USBFS_MIDI_Init_Callback();
#endif /* USBFS_MIDI_INIT_CALLBACK */
}
@ -1046,6 +1054,10 @@ void USBFS_MIDI_EP_Init(void)
/* `#END` */
#ifdef USBFS_MIDI1_PROCESS_USB_OUT_ENTRY_CALLBACK
USBFS_MIDI1_ProcessUsbOut_EntryCallback();
#endif /* USBFS_MIDI1_PROCESS_USB_OUT_ENTRY_CALLBACK */
cmd = epBuf[USBFS_EVENT_BYTE0] & USBFS_CIN_MASK;
if((cmd != USBFS_RESERVED0) && (cmd != USBFS_RESERVED1))
{
@ -1118,6 +1130,10 @@ void USBFS_MIDI_EP_Init(void)
/* `#START MIDI1_PROCESS_OUT_END` */
/* `#END` */
#ifdef USBFS_MIDI1_PROCESS_USB_OUT_EXIT_CALLBACK
USBFS_MIDI1_ProcessUsbOut_ExitCallback();
#endif /* USBFS_MIDI1_PROCESS_USB_OUT_EXIT_CALLBACK */
}
@ -1269,6 +1285,10 @@ void USBFS_MIDI_EP_Init(void)
/* `#END` */
#ifdef USBFS_MIDI2_PROCESS_USB_OUT_ENTRY_CALLBACK
USBFS_MIDI2_ProcessUsbOut_EntryCallback();
#endif /* USBFS_MIDI2_PROCESS_USB_OUT_ENTRY_CALLBACK */
cmd = epBuf[USBFS_EVENT_BYTE0] & USBFS_CIN_MASK;
if((cmd != USBFS_RESERVED0) && (cmd != USBFS_RESERVED1))
{
@ -1341,6 +1361,10 @@ void USBFS_MIDI_EP_Init(void)
/* `#START MIDI2_PROCESS_OUT_END` */
/* `#END` */
#ifdef USBFS_MIDI2_PROCESS_USB_OUT_EXIT_CALLBACK
USBFS_MIDI2_ProcessUsbOut_ExitCallback();
#endif /* USBFS_MIDI2_PROCESS_USB_OUT_EXIT_CALLBACK */
}
#endif /* (USBFS_MIDI_EXT_MODE >= USBFS_TWO_EXT_INTRF) */
#endif /* (USBFS_MIDI_EXT_MODE >= USBFS_ONE_EXT_INTRF) */

View File

@ -19,6 +19,7 @@
#include "USBFS_pvt.h"
/***************************************
* Custom Declarations
***************************************/
@ -53,12 +54,20 @@ static USBFS_BACKUP_STRUCT USBFS_backup;
*******************************************************************************/
CY_ISR(USBFS_DP_ISR)
{
#ifdef USBFS_DP_ISR_ENTRY_CALLBACK
USBFS_DP_ISR_EntryCallback();
#endif /* USBFS_DP_ISR_ENTRY_CALLBACK */
/* `#START DP_USER_CODE` Place your code here */
/* `#END` */
/* Clears active interrupt */
CY_GET_REG8(USBFS_DP_INTSTAT_PTR);
#ifdef USBFS_DP_ISR_EXIT_CALLBACK
USBFS_DP_ISR_ExitCallback();
#endif /* USBFS_DP_ISR_EXIT_CALLBACK */
}
#endif /* (USBFS_DP_ISR_REMOVE == 0u) */

View File

@ -17,6 +17,7 @@
#include "USBFS.h"
#include "USBFS_pvt.h"
#if(USBFS_EXTERN_VND == USBFS_FALSE)
@ -77,6 +78,10 @@ uint8 USBFS_HandleVendorRqst(void)
/* `#END` */
#ifdef USBFS_HANDLE_VENDOR_RQST_CALLBACK
USBFS_HandleVendorRqst_Callback();
#endif /* USBFS_HANDLE_VENDOR_RQST_CALLBACK */
return(requestHandled);
}
@ -89,7 +94,6 @@ uint8 USBFS_HandleVendorRqst(void)
/* `#END` */
#endif /* USBFS_EXTERN_VND */

View File

@ -2,6 +2,7 @@
#include "cytypes.h"
#if (!CYDEV_BOOTLOADER_ENABLE)
#if defined(__GNUC__) || defined(__ARMCC_VERSION)
__attribute__ ((__section__(".cyloadermeta"), used))
@ -19,6 +20,8 @@ const uint8 cy_meta_loader[] = {
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u};
#endif /* (!CYDEV_BOOTLOADER_ENABLE) */
#if defined(__GNUC__) || defined(__ARMCC_VERSION)
__attribute__ ((__section__(".cybootloader"), used))

View File

@ -1,9 +1,9 @@
/*******************************************************************************
* FILENAME: cydevice.h
* File Name: cydevice.h
* OBSOLETE: Do not use this file. Use the _trm version instead.
* PSoC Creator 3.2
* PSoC Creator 3.3
*
* DESCRIPTION:
* Description:
* This file provides all of the address values for the entire PSoC device.
* This file is automatically generated by PSoC Creator.
*

View File

@ -1,9 +1,9 @@
/*******************************************************************************
* FILENAME: cydevice_trm.h
* File Name: cydevice_trm.h
*
* PSoC Creator 3.2
* PSoC Creator 3.3
*
* DESCRIPTION:
* Description:
* This file provides all of the address values for the entire PSoC device.
* This file is automatically generated by PSoC Creator.
*

View File

@ -1,9 +1,9 @@
/*******************************************************************************
* FILENAME: cydevicegnu.inc
* File Name: cydevicegnu.inc
* OBSOLETE: Do not use this file. Use the _trm version instead.
* PSoC Creator 3.2
* PSoC Creator 3.3
*
* DESCRIPTION:
* Description:
* This file provides all of the address values for the entire PSoC device.
* This file is automatically generated by PSoC Creator.
*

View File

@ -1,9 +1,9 @@
/*******************************************************************************
* FILENAME: cydevicegnu_trm.inc
* File Name: cydevicegnu_trm.inc
*
* PSoC Creator 3.2
* PSoC Creator 3.3
*
* DESCRIPTION:
* Description:
* This file provides all of the address values for the entire PSoC device.
* This file is automatically generated by PSoC Creator.
*

View File

@ -1,9 +1,9 @@
;
; FILENAME: cydeviceiar.inc
; File Name: cydeviceiar.inc
; OBSOLETE: Do not use this file. Use the _trm version instead.
; PSoC Creator 3.2
; PSoC Creator 3.3
;
; DESCRIPTION:
; Description:
; This file provides all of the address values for the entire PSoC device.
;
;-------------------------------------------------------------------------------

View File

@ -1,9 +1,9 @@
;
; FILENAME: cydeviceiar_trm.inc
; File Name: cydeviceiar_trm.inc
;
; PSoC Creator 3.2
; PSoC Creator 3.3
;
; DESCRIPTION:
; Description:
; This file provides all of the address values for the entire PSoC device.
;
;-------------------------------------------------------------------------------

View File

@ -1,9 +1,9 @@
;
; FILENAME: cydevicerv.inc
; File Name: cydevicerv.inc
; OBSOLETE: Do not use this file. Use the _trm version instead.
; PSoC Creator 3.2
; PSoC Creator 3.3
;
; DESCRIPTION:
; Description:
; This file provides all of the address values for the entire PSoC device.
;
;-------------------------------------------------------------------------------

View File

@ -1,9 +1,9 @@
;
; FILENAME: cydevicerv_trm.inc
; File Name: cydevicerv_trm.inc
;
; PSoC Creator 3.2
; PSoC Creator 3.3
;
; DESCRIPTION:
; Description:
; This file provides all of the address values for the entire PSoC device.
;
;-------------------------------------------------------------------------------

View File

@ -1,9 +1,9 @@
/*******************************************************************************
* FILENAME: cyfitter_cfg.h
* File Name: cyfitter_cfg.h
*
* PSoC Creator 3.2
* PSoC Creator 3.3
*
* DESCRIPTION:
* Description:
* This file provides basic startup and mux configration settings
* This file is automatically generated by PSoC Creator.
*

View File

@ -1,9 +1,9 @@
/*******************************************************************************
* FILENAME: cymetadata.c
* File Name: cymetadata.c
*
* PSoC Creator 3.2
* PSoC Creator 3.3
*
* DESCRIPTION:
* Description:
* This file defines all extra memory spaces that need to be included.
* This file is automatically generated by PSoC Creator.
*
@ -28,7 +28,7 @@ __attribute__ ((__section__(".cyloadablemeta"), used))
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, 0x40u, 0x04u,
0x00u, 0x00u, 0x00u, 0x00u, 0x5Cu, 0xD1u, 0x50u, 0x04u,
0x01u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,

View File

@ -1,9 +1,9 @@
/*******************************************************************************
* FILENAME: project.h
* File Name: project.h
*
* PSoC Creator 3.2
* PSoC Creator 3.3
*
* DESCRIPTION:
* Description:
* It contains references to all generated header files and should not be modified.
* This file is automatically generated by PSoC Creator.
*

View File

@ -1,12 +1,12 @@
<?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_TX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_RX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_TX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_Parity_Error" BASE="0x0" SIZE="0x0" desc="" visible="true">
<register name="SCSI_Parity_Error_STATUS_REG" address="0x4000646B" bitWidth="8" desc="" />
<register name="SCSI_Parity_Error_MASK_REG" address="0x4000648B" bitWidth="8" desc="" />
<register name="SCSI_Parity_Error_STATUS_AUX_CTL_REG" address="0x4000649B" bitWidth="8" desc="">
<block name="SD_TX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SD_RX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SD_TX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_Parity_Error" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false">
<register name="SCSI_Parity_Error_STATUS_REG" address="0x40006464" bitWidth="8" desc="" hidden="false" />
<register name="SCSI_Parity_Error_MASK_REG" address="0x40006484" bitWidth="8" desc="" hidden="false" />
<register name="SCSI_Parity_Error_STATUS_AUX_CTL_REG" address="0x40006494" bitWidth="8" desc="" hidden="false">
<field name="FIFO0" from="5" to="5" access="RW" resetVal="" desc="FIFO0 clear">
<value name="ENABLED" value="1" desc="Enable counter" />
<value name="DISABLED" value="0" desc="Disable counter" />
@ -33,22 +33,22 @@
</field>
</register>
</block>
<block name="SCSI_RX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_RX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_RX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ZeroTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="timer_clock" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Debug_Timer" BASE="0x0" SIZE="0x0" desc="" visible="true">
<block name="VirtualMux_2" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ZeroTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="TimerHW" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="OneTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_3" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<register name="Debug_Timer_GLOBAL_ENABLE" address="0x400043A3" bitWidth="8" desc="PM.ACT.CFG">
<block name="SCSI_RX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_RX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SD_RX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="timer_clock" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="Debug_Timer" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false">
<block name="VirtualMux_2" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="TimerHW" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="OneTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_3" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<register name="Debug_Timer_GLOBAL_ENABLE" address="0x400043A3" bitWidth="8" desc="PM.ACT.CFG" hidden="false">
<field name="en_timer" from="3" to="0" access="RW" resetVal="" desc="Enable timer/counters." />
</register>
<register name="Debug_Timer_CONTROL" address="0x40004F00" bitWidth="8" desc="TMRx.CFG0">
<register name="Debug_Timer_CONTROL" address="0x40004F00" bitWidth="8" desc="TMRx.CFG0" hidden="false">
<field name="EN" from="0" to="0" access="RW" resetVal="" desc="Enables timer/comparator." />
<field name="MODE" from="1" to="1" access="RW" resetVal="" desc="Mode. (0 = Timer; 1 = Comparator)">
<value name="Timer" value="0" desc="Timer mode. CNT/CMP register holds timer count value." />
@ -63,7 +63,7 @@
</field>
<field name="DEADBAND_PERIOD" from="7" to="6" access="RW" resetVal="" desc="Deadband Period" />
</register>
<register name="Debug_Timer_CONTROL2" address="0x40004F01" bitWidth="8" desc="TMRx.CFG1">
<register name="Debug_Timer_CONTROL2" address="0x40004F01" bitWidth="8" desc="TMRx.CFG1" hidden="false">
<field name="IRQ_SEL" from="0" to="0" access="RW" resetVal="" desc="Irq selection. (0 = raw interrupts; 1 = status register interrupts)" />
<field name="FTC" from="1" to="1" access="RW" resetVal="" desc="First Terminal Count (FTC). Setting this bit forces a single pulse on the TC pin when first enabled.">
<value name="Disable FTC" value="0" desc="Disable the single cycle pulse, which signifies the timer is starting." />
@ -74,7 +74,7 @@
<field name="CLK_BUS_EN_SEL" from="6" to="4" access="RW" resetVal="" desc="Digital Global Clock selection." />
<field name="BUS_CLK_SEL" from="7" to="7" access="RW" resetVal="" desc="Bus Clock selection." />
</register>
<register name="Debug_Timer_CONTROL3_" address="0x40004F02" bitWidth="8" desc="TMRx.CFG2">
<register name="Debug_Timer_CONTROL3_" address="0x40004F02" bitWidth="8" desc="TMRx.CFG2" hidden="false">
<field name="TMR_CFG" from="1" to="0" access="RW" resetVal="" desc="Timer configuration (MODE = 0): 000 = Continuous; 001 = Pulsewidth; 010 = Period; 011 = Stop on IRQ">
<value name="Continuous" value="0" desc="Timer runs while EN bit of CFG0 register is set to '1'." />
<value name="Pulsewidth" value="1" desc="Timer runs from positive to negative edge of TIMEREN." />
@ -92,16 +92,16 @@
</field>
<field name="HW_EN" from="7" to="7" access="RW" resetVal="" desc="When set Timer Enable controls counting." />
</register>
<register name="Debug_Timer_PERIOD" address="0x40004F04" bitWidth="16" desc="TMRx.PER0 - Assigned Period" />
<register name="Debug_Timer_COUNTER" address="0x40004F06" bitWidth="16" desc="TMRx.CNT_CMP0 - Current Down Counter Value" />
<register name="Debug_Timer_PERIOD" address="0x40004F04" bitWidth="16" desc="TMRx.PER0 - Assigned Period" hidden="false" />
<register name="Debug_Timer_COUNTER" address="0x40004F06" bitWidth="16" desc="TMRx.CNT_CMP0 - Current Down Counter Value" hidden="false" />
</block>
<block name="SCSI_TX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_TX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Debug_Timer_Interrupt" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_Filtered" BASE="0x0" SIZE="0x0" desc="" visible="true">
<register name="SCSI_Filtered_STATUS_REG" address="0x4000646A" bitWidth="8" desc="" />
<register name="SCSI_Filtered_MASK_REG" address="0x4000648A" bitWidth="8" desc="" />
<register name="SCSI_Filtered_STATUS_AUX_CTL_REG" address="0x4000649A" bitWidth="8" desc="">
<block name="SCSI_TX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_TX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="Debug_Timer_Interrupt" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_Filtered" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false">
<register name="SCSI_Filtered_STATUS_REG" address="0x40006461" bitWidth="8" desc="" hidden="false" />
<register name="SCSI_Filtered_MASK_REG" address="0x40006481" bitWidth="8" desc="" hidden="false" />
<register name="SCSI_Filtered_STATUS_AUX_CTL_REG" address="0x40006491" bitWidth="8" desc="" hidden="false">
<field name="FIFO0" from="5" to="5" access="RW" resetVal="" desc="FIFO0 clear">
<value name="ENABLED" value="1" desc="Enable counter" />
<value name="DISABLED" value="0" desc="Disable counter" />
@ -128,153 +128,153 @@
</field>
</register>
</block>
<block name="not_2" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Clock_4" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="cydff_2" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="cy_boot" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_Glitch_Ctl" BASE="0x0" SIZE="0x0" desc="" visible="true">
<register name="SCSI_Glitch_Ctl_CONTROL_REG" address="0x40006474" bitWidth="8" desc="" />
<block name="not_2" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="Clock_4" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="cydff_2" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="cy_boot" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_Glitch_Ctl" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false">
<register name="SCSI_Glitch_Ctl_CONTROL_REG" address="0x4000647A" bitWidth="8" desc="" hidden="false" />
</block>
<block name="mux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_SEL_ISR" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Clock_2" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Clock_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="GlitchFilter_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Clock_3" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="cydff_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="cy_constant_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_Out" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_In" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="OddParityGen_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_SCK" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_CS" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="CFG_EEPROM" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_CTL_PHASE" BASE="0x0" SIZE="0x0" desc="" visible="true">
<register name="SCSI_CTL_PHASE_CONTROL_REG" address="0x40006472" bitWidth="8" desc="" />
<block name="mux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_SEL_ISR" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="Clock_2" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="Clock_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="GlitchFilter_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="Clock_3" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="cydff_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="cy_constant_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_Out" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_In" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="OddParityGen_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SD_SCK" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SD_CS" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="CFG_EEPROM" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_CTL_PHASE" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false">
<register name="SCSI_CTL_PHASE_CONTROL_REG" address="0x4000647B" bitWidth="8" desc="" hidden="false" />
</block>
<block name="SD_Data_Clk" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_Out_DBx" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_In_DBx" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_DAT1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_DAT2" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_CD" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_MOSI" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Bootloadable_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="USBFS" BASE="0x0" SIZE="0x0" desc="USBFS" visible="true">
<block name="ZeroTerminal_5" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_6" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_5" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ZeroTerminal_6" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ZeroTerminal_7" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_8" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_7" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ep_0" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_4" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ZeroTerminal_2" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ZeroTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ZeroTerminal_4" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_2" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="bus_reset" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Dm" 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="Dp" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ep_3" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ep_4" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="USB" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="arb_int" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ZeroTerminal_8" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ep_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ep_2" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ZeroTerminal_3" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_3" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Clock_vbus" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<register name="USBFS_PM_USB_CR0" address="0x40004394" bitWidth="8" desc="USB Power Mode Control Register 0">
<block name="SD_Data_Clk" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_Out_DBx" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_In_DBx" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SD_DAT1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SD_DAT2" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SD_CD" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SD_MOSI" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="Bootloadable_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="USBFS" BASE="0x0" SIZE="0x0" desc="USBFS" visible="true" hidden="false">
<block name="ZeroTerminal_5" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_6" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_5" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_6" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_7" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_8" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_7" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ep_0" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_4" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_2" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_4" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_2" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="bus_reset" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="Dm" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="sof_int" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="dp_int" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="Dp" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ep_3" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ep_4" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="USB" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="arb_int" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_8" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ep_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ep_2" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_3" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_3" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="Clock_vbus" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<register name="USBFS_PM_USB_CR0" address="0x40004394" bitWidth="8" desc="USB Power Mode Control Register 0" hidden="false">
<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_PM_ACT_CFG" address="0x400043A5" bitWidth="8" desc="Active Power Mode Configuration Register" />
<register name="USBFS_PM_STBY_CFG" address="0x400043B5" bitWidth="8" desc="Standby Power Mode Configuration Register" />
<register name="USBFS_PRT.PS" address="0x400051F1" bitWidth="8" desc="Port Pin State Register">
<register name="USBFS_PM_ACT_CFG" address="0x400043A5" bitWidth="8" desc="Active Power Mode Configuration Register" hidden="false" />
<register name="USBFS_PM_STBY_CFG" address="0x400043B5" bitWidth="8" desc="Standby Power Mode Configuration Register" hidden="false" />
<register name="USBFS_PRT.PS" address="0x400051F1" bitWidth="8" desc="Port Pin State Register" hidden="false">
<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_PRT_DM0" address="0x400051F2" bitWidth="8" desc="Port Drive Mode Register">
<register name="USBFS_PRT_DM0" address="0x400051F2" bitWidth="8" desc="Port Drive Mode Register" hidden="false">
<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_PRT_DM1" address="0x400051F3" bitWidth="8" desc="Port Drive Mode Register">
<register name="USBFS_PRT_DM1" address="0x400051F3" bitWidth="8" desc="Port Drive Mode Register" hidden="false">
<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_PRT.INP_DIS" address="0x400051F8" bitWidth="8" desc="Input buffer disable override">
<register name="USBFS_PRT.INP_DIS" address="0x400051F8" bitWidth="8" desc="Input buffer disable override" hidden="false">
<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_EP0_DR0" address="0x40006000" bitWidth="8" desc="bmRequestType" />
<register name="USBFS_EP0_DR1" address="0x40006001" bitWidth="8" desc="bRequest" />
<register name="USBFS_EP0_DR2" address="0x40006002" bitWidth="8" desc="wValueLo" />
<register name="USBFS_EP0_DR3" address="0x40006003" bitWidth="8" desc="wValueHi" />
<register name="USBFS_EP0_DR4" address="0x40006004" bitWidth="8" desc="wIndexLo" />
<register name="USBFS_EP0_DR5" address="0x40006005" bitWidth="8" desc="wIndexHi" />
<register name="USBFS_EP0_DR6" address="0x40006006" bitWidth="8" desc="lengthLo" />
<register name="USBFS_EP0_DR7" address="0x40006007" bitWidth="8" desc="lengthHi" />
<register name="USBFS_CR0" address="0x40006008" bitWidth="8" desc="USB Control Register 0">
<register name="USBFS_EP0_DR0" address="0x40006000" bitWidth="8" desc="bmRequestType" hidden="false" />
<register name="USBFS_EP0_DR1" address="0x40006001" bitWidth="8" desc="bRequest" hidden="false" />
<register name="USBFS_EP0_DR2" address="0x40006002" bitWidth="8" desc="wValueLo" hidden="false" />
<register name="USBFS_EP0_DR3" address="0x40006003" bitWidth="8" desc="wValueHi" hidden="false" />
<register name="USBFS_EP0_DR4" address="0x40006004" bitWidth="8" desc="wIndexLo" hidden="false" />
<register name="USBFS_EP0_DR5" address="0x40006005" bitWidth="8" desc="wIndexHi" hidden="false" />
<register name="USBFS_EP0_DR6" address="0x40006006" bitWidth="8" desc="lengthLo" hidden="false" />
<register name="USBFS_EP0_DR7" address="0x40006007" bitWidth="8" desc="lengthHi" hidden="false" />
<register name="USBFS_CR0" address="0x40006008" bitWidth="8" desc="USB Control Register 0" hidden="false">
<field name="device_address" from="6" to="0" access="R" resetVal="" desc="" />
<field name="usb_enable" from="7" to="7" access="RW" resetVal="" desc="" />
</register>
<register name="USBFS_CR1" address="0x40006009" bitWidth="8" desc="USB Control Register 1">
<register name="USBFS_CR1" address="0x40006009" bitWidth="8" desc="USB Control Register 1" hidden="false">
<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_SIE_EP1_CR0" address="0x4000600E" bitWidth="8" desc="The Endpoint1 Control Register" />
<register name="USBFS_USBIO_CR0" address="0x40006010" bitWidth="8" desc="USBIO Control Register 0">
<register name="USBFS_SIE_EP1_CR0" address="0x4000600E" bitWidth="8" desc="The Endpoint1 Control Register" hidden="false" />
<register name="USBFS_USBIO_CR0" address="0x40006010" bitWidth="8" desc="USBIO Control Register 0" hidden="false">
<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_USBIO_CR1" address="0x40006012" bitWidth="8" desc="USBIO Control Register 1">
<register name="USBFS_USBIO_CR1" address="0x40006012" bitWidth="8" desc="USBIO Control Register 1" hidden="false">
<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_SIE_EP2_CR0" address="0x4000601E" bitWidth="8" desc="The Endpoint2 Control Register" />
<register name="USBFS_SIE_EP3_CR0" address="0x4000602E" bitWidth="8" desc="The Endpoint3 Control Register" />
<register name="USBFS_SIE_EP4_CR0" address="0x4000603E" bitWidth="8" desc="The Endpoint4 Control Register" />
<register name="USBFS_SIE_EP5_CR0" address="0x4000604E" bitWidth="8" desc="The Endpoint5 Control Register" />
<register name="USBFS_SIE_EP6_CR0" address="0x4000605E" bitWidth="8" desc="The Endpoint6 Control Register" />
<register name="USBFS_SIE_EP7_CR0" address="0x4000606E" bitWidth="8" desc="The Endpoint7 Control Register" />
<register name="USBFS_SIE_EP8_CR0" address="0x4000607E" bitWidth="8" desc="The Endpoint8 Control Register" />
<register name="USBFS_BUF_SIZE" address="0x4000608C" bitWidth="8" desc="Dedicated Endpoint Buffer Size Register" />
<register name="USBFS_EP_ACTIVE" address="0x4000608E" bitWidth="8" desc="Endpoint Active Indication Register" />
<register name="USBFS_EP_TYPE" address="0x4000608F" bitWidth="8" desc="Endpoint Type (IN/OUT) Indication" />
<register name="USBFS_USB_CLK_EN" address="0x4000609D" bitWidth="8" desc="USB Block Clock Enable Register" />
<register name="USBFS_SIE_EP2_CR0" address="0x4000601E" bitWidth="8" desc="The Endpoint2 Control Register" hidden="false" />
<register name="USBFS_SIE_EP3_CR0" address="0x4000602E" bitWidth="8" desc="The Endpoint3 Control Register" hidden="false" />
<register name="USBFS_SIE_EP4_CR0" address="0x4000603E" bitWidth="8" desc="The Endpoint4 Control Register" hidden="false" />
<register name="USBFS_SIE_EP5_CR0" address="0x4000604E" bitWidth="8" desc="The Endpoint5 Control Register" hidden="false" />
<register name="USBFS_SIE_EP6_CR0" address="0x4000605E" bitWidth="8" desc="The Endpoint6 Control Register" hidden="false" />
<register name="USBFS_SIE_EP7_CR0" address="0x4000606E" bitWidth="8" desc="The Endpoint7 Control Register" hidden="false" />
<register name="USBFS_SIE_EP8_CR0" address="0x4000607E" bitWidth="8" desc="The Endpoint8 Control Register" hidden="false" />
<register name="USBFS_BUF_SIZE" address="0x4000608C" bitWidth="8" desc="Dedicated Endpoint Buffer Size Register" hidden="false" />
<register name="USBFS_EP_ACTIVE" address="0x4000608E" bitWidth="8" desc="Endpoint Active Indication Register" hidden="false" />
<register name="USBFS_EP_TYPE" address="0x4000608F" bitWidth="8" desc="Endpoint Type (IN/OUT) Indication" hidden="false" />
<register name="USBFS_USB_CLK_EN" address="0x4000609D" bitWidth="8" desc="USB Block Clock Enable Register" hidden="false" />
</block>
<block name="SD_MISO" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_Out_Ctl" BASE="0x0" SIZE="0x0" desc="" visible="true">
<register name="SCSI_Out_Ctl_CONTROL_REG" address="0x4000647F" bitWidth="8" desc="" />
<block name="SD_MISO" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_Out_Ctl" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false">
<register name="SCSI_Out_Ctl_CONTROL_REG" address="0x40006475" bitWidth="8" desc="" hidden="false" />
</block>
<block name="SCSI_Out_Bits" BASE="0x0" SIZE="0x0" desc="" visible="true">
<register name="SCSI_Out_Bits_CONTROL_REG" address="0x4000647B" bitWidth="8" desc="" />
<block name="SCSI_Out_Bits" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false">
<register name="SCSI_Out_Bits_CONTROL_REG" address="0x40006575" bitWidth="8" desc="" hidden="false" />
</block>
<block name="SCSI_Out_Mux" 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" />
<block name="VirtualMux_2" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="BSPIM" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_Out_Mux" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SDCard" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false">
<block name="VirtualMux_3" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_2" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="BSPIM" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
</block>
<block name="SCSI_Noise" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="not_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_CLK" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="LED1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="scsiTarget" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_RST_ISR" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_Noise" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="not_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_CLK" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="LED1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="scsiTarget" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_RST_ISR" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
</blockRegMap>

View File

@ -130,6 +130,20 @@
<build_action v="C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
<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="mo.c" persistent="..\..\src\mo.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
<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="tape.c" persistent="..\..\src\tape.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="C_FILE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</dependencies>
</CyGuid_0820c2e7-528d-4137-9a08-97257b946089>
</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>
@ -280,6 +294,20 @@
<build_action v="NONE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
<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="mo.h" persistent="..\..\src\mo.h">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="NONE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
<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="tape.h" persistent="..\..\src\tape.h">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="NONE" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</dependencies>
</CyGuid_0820c2e7-528d-4137-9a08-97257b946089>
</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>
@ -3184,6 +3212,24 @@
</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="cycodeshareimport.ld" persistent=".\Generated_Source\PSoC5\cycodeshareimport.ld">
<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="cycodeshareimport.scat" persistent=".\Generated_Source\PSoC5\cycodeshareimport.scat">
<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>
@ -3265,7 +3311,6 @@
<GlobalPages />
<GlobalTools name="Code Generation">
<GlobalPages>
<name_val_pair name="General@Application Type" v="Bootloadable" />
<name_val_pair name="General@Custom Code Gen Options" v="" />
<name_val_pair name="General@Skip Code Generation" v="False" />
<name_val_pair name="General@Custom Synthesis Options" v="" />
@ -3313,6 +3358,7 @@
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@C/C++@Optimization@Inline Functions" v="False" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@C/C++@Optimization@Optimization Level" v="None" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@C/C++@Optimization@Link Time Optimization" v="False" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@C/C++@Optimization@Fat LTO objects" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@Linker@General@Additional Libraries" v="" />
@ -3320,11 +3366,9 @@
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@Linker@General@Additional Link Files" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@Linker@General@Generate Map File" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@Linker@General@Custom Linker Script" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@Linker@General@Use Debugging Information" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@Linker@General@Use Default Libs" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@Linker@General@Use Nano Lib" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@Linker@General@Enable printf Float" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@Linker@Optimization@Optimization Level" v="None" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@Linker@General@Enable Float printf" v="False" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@Linker@Optimization@Remove Unused Functions" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@Linker@Command Line@Command Line" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@General@Output Directory" v="${ProjectDir}\${ProcessorType}\${Platform}\${Config}" />
@ -3348,6 +3392,7 @@
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@C/C++@Optimization@Inline Functions" v="False" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@C/C++@Optimization@Optimization Level" v="Size" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@C/C++@Optimization@Link Time Optimization" v="False" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@C/C++@Optimization@Fat LTO objects" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@Linker@General@Additional Libraries" v="" />
@ -3355,11 +3400,9 @@
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@Linker@General@Additional Link Files" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@Linker@General@Generate Map File" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@Linker@General@Custom Linker Script" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@Linker@General@Use Debugging Information" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@Linker@General@Use Default Libs" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@Linker@General@Use Nano Lib" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@Linker@General@Enable printf Float" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@Linker@Optimization@Optimization Level" v="None" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@Linker@General@Enable Float printf" v="False" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@Linker@Optimization@Remove Unused Functions" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@Linker@Command Line@Command Line" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@General@Output Directory" v="${ProjectDir}\${ProcessorType}\${Platform}\${Config}" />
@ -3383,6 +3426,7 @@
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@C/C++@Optimization@Inline Functions" v="False" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@C/C++@Optimization@Optimization Level" v="None" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@C/C++@Optimization@Link Time Optimization" v="False" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@C/C++@Optimization@Fat LTO objects" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@Linker@General@Additional Libraries" v="" />
@ -3390,11 +3434,9 @@
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@Linker@General@Additional Link Files" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@Linker@General@Generate Map File" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@Linker@General@Custom Linker Script" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@Linker@General@Use Debugging Information" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@Linker@General@Use Default Libs" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@Linker@General@Use Nano Lib" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@Linker@General@Enable printf Float" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@Linker@Optimization@Optimization Level" v="None" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@Linker@General@Enable Float printf" v="False" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@Linker@Optimization@Remove Unused Functions" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@Linker@Command Line@Command Line" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@General@Output Directory" v="${ProjectDir}\${ProcessorType}\${Platform}\${Config}" />
@ -3418,6 +3460,7 @@
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@C/C++@Optimization@Inline Functions" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@C/C++@Optimization@Optimization Level" v="Size" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@C/C++@Optimization@Link Time Optimization" v="False" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@C/C++@Optimization@Fat LTO objects" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@Linker@General@Additional Libraries" v="" />
@ -3425,11 +3468,9 @@
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@Linker@General@Additional Link Files" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@Linker@General@Generate Map File" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@Linker@General@Custom Linker Script" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@Linker@General@Use Debugging Information" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@Linker@General@Use Default Libs" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@Linker@General@Use Nano Lib" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@Linker@General@Enable printf Float" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@Linker@Optimization@Optimization Level" v="Size" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@Linker@General@Enable Float printf" v="False" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@Linker@Optimization@Remove Unused Functions" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@Linker@Command Line@Command Line" v="" />
</name>
@ -3457,6 +3498,7 @@
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@C/C++@Optimization@Inline Functions" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@C/C++@Optimization@Optimization Level" v="None" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@C/C++@Optimization@Link Time Optimization" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@C/C++@Optimization@Fat LTO objects" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@Linker@General@Additional Libraries" v="" />
@ -3464,11 +3506,9 @@
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@Linker@General@Additional Link Files" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@Linker@General@Generate Map File" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@Linker@General@Custom Linker Script" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@Linker@General@Use Debugging Information" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@Linker@General@Use Default Libs" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@Linker@General@Use Nano Lib" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@Linker@General@Enable printf Float" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@Linker@Optimization@Optimization Level" v="None" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@Linker@General@Enable Float printf" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@Linker@Optimization@Remove Unused Functions" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@Linker@Command Line@Command Line" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@General@Output Directory" v="${ProjectDir}\${ProcessorType}\${Platform}\${Config}" />
@ -3492,6 +3532,7 @@
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@C/C++@Optimization@Inline Functions" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@C/C++@Optimization@Optimization Level" v="Size" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@C/C++@Optimization@Link Time Optimization" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@C/C++@Optimization@Fat LTO objects" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@Linker@General@Additional Libraries" v="" />
@ -3499,11 +3540,9 @@
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@Linker@General@Additional Link Files" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@Linker@General@Generate Map File" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@Linker@General@Custom Linker Script" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@Linker@General@Use Debugging Information" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@Linker@General@Use Default Libs" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@Linker@General@Use Nano Lib" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@Linker@General@Enable printf Float" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@Linker@Optimization@Optimization Level" v="None" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@Linker@General@Enable Float printf" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@Linker@Optimization@Remove Unused Functions" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@Linker@Command Line@Command Line" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@General@Output Directory" v="${ProjectDir}\${ProcessorType}\${Platform}\${Config}" />
@ -3527,6 +3566,7 @@
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@C/C++@Optimization@Inline Functions" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@C/C++@Optimization@Optimization Level" v="None" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@C/C++@Optimization@Link Time Optimization" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@C/C++@Optimization@Fat LTO objects" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@Linker@General@Additional Libraries" v="" />
@ -3534,11 +3574,9 @@
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@Linker@General@Additional Link Files" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@Linker@General@Generate Map File" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@Linker@General@Custom Linker Script" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@Linker@General@Use Debugging Information" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@Linker@General@Use Default Libs" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@Linker@General@Use Nano Lib" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@Linker@General@Enable printf Float" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@Linker@Optimization@Optimization Level" v="None" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@Linker@General@Enable Float printf" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@Linker@Optimization@Remove Unused Functions" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@Linker@Command Line@Command Line" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@General@Output Directory" v="${ProjectDir}\${ProcessorType}\${Platform}\${Config}" />
@ -3562,6 +3600,7 @@
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@C/C++@Optimization@Inline Functions" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@C/C++@Optimization@Optimization Level" v="Size" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@C/C++@Optimization@Link Time Optimization" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@C/C++@Optimization@Fat LTO objects" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@Linker@General@Additional Libraries" v="" />
@ -3569,11 +3608,9 @@
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@Linker@General@Additional Link Files" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@Linker@General@Generate Map File" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@Linker@General@Custom Linker Script" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@Linker@General@Use Debugging Information" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@Linker@General@Use Default Libs" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@Linker@General@Use Nano Lib" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@Linker@General@Enable printf Float" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@Linker@Optimization@Optimization Level" v="None" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@Linker@General@Enable Float printf" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@Linker@Optimization@Remove Unused Functions" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@Linker@Command Line@Command Line" v="" />
</name>
@ -3581,101 +3618,9 @@
<platform>
<name v="5bca58cd-5542-421c-b08d-9513dbb687fd">
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@General@Output Directory" v="${ProjectDir}\${ProcessorType}\${Platform}\${Config}" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@Assembly@General@Additional Include Directories" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@Assembly@General@Generate Debugging Information" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@Assembly@General@Suppress Warnings" v="False" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@Assembly@General@Generate List Files" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@Assembly@Command Line@Command Line" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@C/C++@General@Additional Include Directories" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@C/C++@General@Generate List Files" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@C/C++@General@Default Char Unsigned" v="False" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@C/C++@General@Generate Debugging Information" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@C/C++@General@Preprocessor Definitions" v="DEBUG" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@C/C++@General@Strict Compilation" v="False" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@C/C++@Optimization@Inline Functions" v="False" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@C/C++@Optimization@Optimization Level" v="None" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@C/C++@Optimization@Split Sections" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@Linker@General@Additional Libraries" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@Linker@General@Additional Library Directories" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@Linker@General@Generate Map File" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@Linker@General@Custom Linker Script" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@Linker@General@Generate Debugging Information" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@Linker@General@Use Default Libs" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM0@Linker@Command Line@Command Line" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@General@Output Directory" v="${ProjectDir}\${ProcessorType}\${Platform}\${Config}" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@Assembly@General@Additional Include Directories" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@Assembly@General@Generate Debugging Information" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@Assembly@General@Suppress Warnings" v="False" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@Assembly@General@Generate List Files" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@Assembly@Command Line@Command Line" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@C/C++@General@Additional Include Directories" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@C/C++@General@Generate List Files" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@C/C++@General@Default Char Unsigned" v="False" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@C/C++@General@Generate Debugging Information" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@C/C++@General@Preprocessor Definitions" v="NDEBUG" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@C/C++@General@Strict Compilation" v="False" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@C/C++@Optimization@Inline Functions" v="False" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@C/C++@Optimization@Optimization Level" v="Size" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@C/C++@Optimization@Split Sections" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@Linker@General@Additional Libraries" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@Linker@General@Additional Library Directories" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@Linker@General@Generate Map File" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@Linker@General@Custom Linker Script" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@Linker@General@Generate Debugging Information" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@Linker@General@Use Default Libs" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM0@Linker@Command Line@Command Line" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@General@Output Directory" v="${ProjectDir}\${ProcessorType}\${Platform}\${Config}" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@Assembly@General@Additional Include Directories" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@Assembly@General@Generate Debugging Information" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@Assembly@General@Suppress Warnings" v="False" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@Assembly@General@Generate List Files" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@Assembly@Command Line@Command Line" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@C/C++@General@Additional Include Directories" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@C/C++@General@Generate List Files" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@C/C++@General@Default Char Unsigned" v="False" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@C/C++@General@Generate Debugging Information" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@C/C++@General@Preprocessor Definitions" v="DEBUG" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@C/C++@General@Strict Compilation" v="False" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@C/C++@Optimization@Inline Functions" v="False" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@C/C++@Optimization@Optimization Level" v="None" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@C/C++@Optimization@Split Sections" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@Linker@General@Additional Libraries" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@Linker@General@Additional Library Directories" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@Linker@General@Generate Map File" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@Linker@General@Custom Linker Script" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@Linker@General@Generate Debugging Information" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@Linker@General@Use Default Libs" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Debug@CortexM3@Linker@Command Line@Command Line" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@General@Output Directory" v="${ProjectDir}\${ProcessorType}\${Platform}\${Config}" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@Assembly@General@Additional Include Directories" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@Assembly@General@Generate Debugging Information" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@Assembly@General@Suppress Warnings" v="False" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@Assembly@General@Generate List Files" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@Assembly@Command Line@Command Line" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@C/C++@General@Additional Include Directories" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@C/C++@General@Generate List Files" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@C/C++@General@Default Char Unsigned" v="False" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@C/C++@General@Generate Debugging Information" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@C/C++@General@Preprocessor Definitions" v="NDEBUG" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@C/C++@General@Strict Compilation" v="False" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@C/C++@Optimization@Inline Functions" v="False" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@C/C++@Optimization@Optimization Level" v="Size" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@C/C++@Optimization@Split Sections" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@Linker@General@Additional Libraries" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@Linker@General@Additional Library Directories" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@Linker@General@Generate Map File" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@Linker@General@Custom Linker Script" v="" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@Linker@General@Generate Debugging Information" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@Linker@General@Use Default Libs" v="True" />
<name_val_pair name="5bca58cd-5542-421c-b08d-9513dbb687fd@Release@CortexM3@Linker@Command Line@Command Line" v="" />
</name>
</platform>
<platform>
@ -3699,6 +3644,7 @@
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Debug@CortexM0@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Debug@CortexM0@Linker@General@Additional Libraries" v="" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Debug@CortexM0@Linker@General@Additional Library Directories" v="" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Debug@CortexM0@Linker@General@Use MicroLib" v="True" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Debug@CortexM0@Linker@General@Generate Map File" v="True" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Debug@CortexM0@Linker@General@Custom Linker Script" v="" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Debug@CortexM0@Linker@General@Generate Debugging Information" v="True" />
@ -3723,6 +3669,7 @@
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Release@CortexM0@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Release@CortexM0@Linker@General@Additional Libraries" v="" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Release@CortexM0@Linker@General@Additional Library Directories" v="" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Release@CortexM0@Linker@General@Use MicroLib" v="True" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Release@CortexM0@Linker@General@Generate Map File" v="True" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Release@CortexM0@Linker@General@Custom Linker Script" v="" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Release@CortexM0@Linker@General@Generate Debugging Information" v="True" />
@ -3747,6 +3694,7 @@
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Debug@CortexM3@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Debug@CortexM3@Linker@General@Additional Libraries" v="" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Debug@CortexM3@Linker@General@Additional Library Directories" v="" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Debug@CortexM3@Linker@General@Use MicroLib" v="True" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Debug@CortexM3@Linker@General@Generate Map File" v="True" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Debug@CortexM3@Linker@General@Custom Linker Script" v="" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Debug@CortexM3@Linker@General@Generate Debugging Information" v="True" />
@ -3771,6 +3719,7 @@
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Release@CortexM3@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Release@CortexM3@Linker@General@Additional Libraries" v="" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Release@CortexM3@Linker@General@Additional Library Directories" v="" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Release@CortexM3@Linker@General@Use MicroLib" v="True" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Release@CortexM3@Linker@General@Generate Map File" v="True" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Release@CortexM3@Linker@General@Custom Linker Script" v="" />
<name_val_pair name="fdb8e1ae-f83a-46cf-9446-1d703716f38a@Release@CortexM3@Linker@General@Generate Debugging Information" v="True" />
@ -3790,11 +3739,9 @@
</platforms>
<project_current_platform v="c9323d49-d323-40b8-9b59-cc008d68a989" />
<project_current_processor v="CortexM3" />
<component_generation v="PSoC Creator 2.2 Component Pack 6" />
<last_selected_tab v="Cypress" />
<component_dependent_projects_generation v="(69eeda1b-ded5-4da3-a74d-3a98f2d5d4ab , 2.1PR) | (b1a3f413-e018-46a5-a51c-20818b2f118e , 3.0) | (cd381074-8dad-4f43-bb88-7719b3e16126 , 2.1) | (29420278-6fcc-46a7-a651-999ec5c253d2 , 2.1) | (e95576e7-780d-474a-b944-018db0492cc9 , 2.1)" />
<WriteAppVersionLastSavedWith v="3.1.0.1570" />
<WriteAppMarketingVersionLastSavedWith v=" 3.1" />
<WriteAppVersionLastSavedWith v="3.3.0.410" />
<WriteAppMarketingVersionLastSavedWith v=" 3.3" />
<project_id v="6e1f5cbb-a0ca-4f55-a1fa-7b20c5be3a3e" /><custom_data><CyGuid_7a7929f8-5e3b-4f86-a093-2d4ee6513111 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtProjectCustomData" version="1"><CyGuid_fdba8dfd-b15b-4469-9bbb-9e40c3e70997 type_name="CyDesigner.Common.Base.CyCustomData" version="2"><userData /></CyGuid_fdba8dfd-b15b-4469-9bbb-9e40c3e70997><properties /></CyGuid_7a7929f8-5e3b-4f86-a093-2d4ee6513111></custom_data></CyGuid_49cfd574-032a-4a64-b7be-d4eeeaf25e43>
</CyGuid_60697ce6-dce2-4816-8680-4de0635742eb>
<top_block v="TopDesign" />
@ -3808,7 +3755,5 @@
<ignored_deps />
</CyGuid_495451fe-d201-4d01-b22d-5d3f5609ac37>
<boot_component v="cy_boot_v4_20" />
<BootloaderTag hexFile="" elfFile="" />
<current_generation v="7" />
</CyGuid_fec8f9e8-2365-4bdb-96d3-a4380222e01b>
<current_generation v="7" /><BootloaderTag hexFile="" elfFile="" /></CyGuid_fec8f9e8-2365-4bdb-96d3-a4380222e01b>
</CyXmlSerializer>

View File

@ -9,7 +9,7 @@
<peripheral>
<name>SCSI_Parity_Error</name>
<description>No description available</description>
<baseAddress>0x4000646B</baseAddress>
<baseAddress>0x40006464</baseAddress>
<addressBlock>
<offset>0</offset>
<size>0x0</size>
@ -456,7 +456,7 @@
<peripheral>
<name>SCSI_Filtered</name>
<description>No description available</description>
<baseAddress>0x4000646A</baseAddress>
<baseAddress>0x40006461</baseAddress>
<addressBlock>
<offset>0</offset>
<size>0x0</size>
@ -611,7 +611,7 @@
<peripheral>
<name>SCSI_Glitch_Ctl</name>
<description>No description available</description>
<baseAddress>0x40006474</baseAddress>
<baseAddress>0x4000647A</baseAddress>
<addressBlock>
<offset>0</offset>
<size>0x0</size>
@ -632,7 +632,7 @@
<peripheral>
<name>SCSI_CTL_PHASE</name>
<description>No description available</description>
<baseAddress>0x40006472</baseAddress>
<baseAddress>0x4000647B</baseAddress>
<addressBlock>
<offset>0</offset>
<size>0x0</size>
@ -1137,7 +1137,7 @@
<peripheral>
<name>SCSI_Out_Ctl</name>
<description>No description available</description>
<baseAddress>0x4000647F</baseAddress>
<baseAddress>0x40006475</baseAddress>
<addressBlock>
<offset>0</offset>
<size>0x0</size>
@ -1158,7 +1158,7 @@
<peripheral>
<name>SCSI_Out_Bits</name>
<description>No description available</description>
<baseAddress>0x4000647B</baseAddress>
<baseAddress>0x40006575</baseAddress>
<addressBlock>
<offset>0</offset>
<size>0x0</size>

View File

@ -63,7 +63,7 @@ localparam IO_READ = 1'b0;
/////////////////////////////////////////////////////////////////////////////
// TX States:
// IDLE
// Wait for the SCSI Initiator to be ready
// Wait for an entry in the input FIFO
// FIFOLOAD
// Load F0 into A0. Feed (old) A0 into the ALU SRCA.
// TX
@ -79,27 +79,28 @@ localparam IO_READ = 1'b0;
// READY
// REQ and DBx output signals will be output in this state
// Wait for acknowledgement from the SCSI initiator
// Wait for space in output fifo
// RX
// Dummy state for flow control.
// REQ signal will be output in this state
// PI enabled for input into ALU "PASS" operation, storing into F1.
// Wait for the initiator to release he ACK signal. Once released,
// PI enabled for input into ALU "PASS" operation, storing into F1 in the
// next state, either IDLE or FIFOLOAD.
//
// RX States:
// IDLE
// Wait for a dummy "enabling" entry in the input FIFO,
// and for the SCSI Initiator to be ready
// Wait for a dummy "enabling" entry in the input FIFO
// FIFOLOAD
// Load F0 into A0.
// The input FIFO is used to control the number of bytes we attempt to
// read from the SCSI bus.
// WAIT_TIL_READY
// Wait for space in output fifo
//
// READY
// REQ signal will be output in this state
// Wait for the initiator to send a byte on the SCSI bus.
// Wait for space in output fifo
// RX
// REQ signal will be output in this state
// PI enabled for input into ALU "PASS" operation, storing into F1.
// Wait for the initiator to release he ACK signal. Once released,
// PI enabled for input into ALU "PASS" operation, storing into F1 in the
// next state, either IDLE or FIFOLOAD.
localparam STATE_IDLE = 3'b000;
@ -138,11 +139,12 @@ reg parityErrReg;
reg[2:0] genParity;
reg REQReg;
reg[7:0] dbxInReg;
// Set Output Pins
assign REQ = REQReg; // STATE_READY & STATE_RX
assign DBx_out[7:0] = data;
assign pi[7:0] = ~nDBx_in[7:0]; // Invert active low scsi bus
assign pi[7:0] = dbxInReg[7:0];
assign parityErr = parityErrReg;
@ -163,7 +165,7 @@ wire f0_bus_stat; // Tx FIFO not full
wire f0_blk_stat; // Tx FIFO empty
wire f1_bus_stat; // Rx FIFO not empty
wire f1_blk_stat; // Rx FIFO full
wire txComplete = f0_blk_stat && (state == STATE_IDLE) && nACK;
wire txComplete = f0_blk_stat && (state == STATE_IDLE);
cy_psoc3_status #(.cy_force_order(1), .cy_md_select(8'h00)) StatusReg
(
.clock(op_clk),
@ -198,17 +200,21 @@ always @(posedge op_clk) begin
end
STATE_FIFOLOAD:
begin
fifoStore <= 1'b0;
if (!nRST) state <= STATE_IDLE;
else if (IO == IO_WRITE)
state <= STATE_TX;
// Check that SCSI initiator is ready, and output FIFO is not full.
else if (nACK && !f1_blk_stat) begin
// Check the output FIFO is not full.
else if (!f1_blk_stat) begin
state <= STATE_READY;
REQReg <= 1'b1;
end else begin
state <= STATE_WAIT_TIL_READY;
end
end
STATE_TX:
begin
@ -223,19 +229,16 @@ always @(posedge op_clk) begin
STATE_DESKEW:
if (!nRST) state <= STATE_IDLE;
else if(deskewComplete && nACK) begin
else if(deskewComplete) begin
state <= STATE_READY;
REQReg <= 1'b1;
end else if (deskewComplete) begin
state <= STATE_WAIT_TIL_READY;
end else state <= STATE_DESKEW;
STATE_WAIT_TIL_READY:
STATE_WAIT_TIL_READY: // IO == IO_READ only
if (!nRST) state <= STATE_IDLE;
// Check that SCSI initiator is ready, and output FIFO is not full.
// Note that output FIFO is unused in TX mode.
else if (nACK && ((IO == IO_WRITE) || !f1_blk_stat)) begin
// Wait until the output FIFO is not full.
else if (!f1_blk_stat) begin
state <= STATE_READY;
REQReg <= 1'b1;
end else begin
@ -246,7 +249,7 @@ always @(posedge op_clk) begin
if (!nRST) state <= STATE_IDLE;
else if (~nACK) begin
state <= STATE_RX;
fifoStore <= 1'b1;
dbxInReg[7:0] = ~nDBx_in[7:0]; // Invert active low scsi bus
genParity[0] <= (~nDBP) ^ 1'b1 ^ ~nDBx_in[7] ^ ~nDBx_in[6];
genParity[1] <= ~nDBx_in[5] ^ ~nDBx_in[4] ^ ~nDBx_in[3];
@ -255,9 +258,24 @@ always @(posedge op_clk) begin
STATE_RX:
begin
state <= STATE_IDLE;
// Wait for this transfer to complete.
// We need to wait at the end, because some hosts will set ACK
// before REQ for the first byte of a phase.
if (!nRST) state <= STATE_IDLE;
else if (nACK && !f0_blk_stat)
begin // Next byte is ready, skip IDLE.
fifoStore <= 1'b1;
state <= STATE_FIFOLOAD;
end
else if (nACK)
begin
fifoStore <= 1'b1;
state <= STATE_IDLE;
end
else
state <= STATE_RX;
REQReg <= 1'b0;
fifoStore <= 1'b0;
parityErrReg <= 1'b0;
data <= 8'b0;
if (IO == IO_READ) begin
@ -273,58 +291,58 @@ end
// The data output is valid during the DESKEW_INIT phase as well,
// so we subtract 1.
// SCSI-1 deskew + cable skew = 55ns
// D0 = [0.000000055 / (1 / clk)] - 1 = 2
// D0 = [0.000000055 / (1 / clk)] - 1 = 1 (clk = 25MHz)
// SCSI-2 FAST deskew + cable skew = 25ns
// D0 = [0.000000025 / (1 / clk)] - 1 = 0
cy_psoc3_dp #(.d0_init(2),
// D0 = [0.000000025 / (1 / clk)] - 1 = 0 (clk = 25MHz)
cy_psoc3_dp #(.d0_init(1),
.cy_dpconfig(
{
`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_FEEDBACK_ENBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,
`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_FEEDBACK_ENBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,
`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: WAIT TIL READY*/
`CS_CMP_SEL_CFGA, /*CFGRAM5: WAIT TIL 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_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),
@ -382,3 +400,4 @@ endmodule
//`#end` -- edit above this line, do not edit this line

View File

@ -20,6 +20,7 @@
#include <CyLib.h>
#include <Debug_Timer_Interrupt.h>
#if !defined(Debug_Timer_Interrupt__REMOVED) /* Check for removal by optimization */
/*******************************************************************************
@ -158,6 +159,10 @@ void Debug_Timer_Interrupt_Stop(void)
*******************************************************************************/
CY_ISR(Debug_Timer_Interrupt_Interrupt)
{
#ifdef Debug_Timer_Interrupt_INTERRUPT_INTERRUPT_CALLBACK
Debug_Timer_Interrupt_Interrupt_InterruptCallback();
#endif /* Debug_Timer_Interrupt_INTERRUPT_INTERRUPT_CALLBACK */
/* Place your Interrupt code here. */
/* `#START Debug_Timer_Interrupt_Interrupt` */

View File

@ -20,6 +20,7 @@
#include <CyLib.h>
#include <SCSI_RST_ISR.h>
#if !defined(SCSI_RST_ISR__REMOVED) /* Check for removal by optimization */
/*******************************************************************************
@ -158,6 +159,10 @@ void SCSI_RST_ISR_Stop(void)
*******************************************************************************/
CY_ISR(SCSI_RST_ISR_Interrupt)
{
#ifdef SCSI_RST_ISR_INTERRUPT_INTERRUPT_CALLBACK
SCSI_RST_ISR_Interrupt_InterruptCallback();
#endif /* SCSI_RST_ISR_INTERRUPT_INTERRUPT_CALLBACK */
/* Place your Interrupt code here. */
/* `#START SCSI_RST_ISR_Interrupt` */

View File

@ -20,6 +20,7 @@
#include <CyLib.h>
#include <SCSI_RX_DMA_COMPLETE.h>
#if !defined(SCSI_RX_DMA_COMPLETE__REMOVED) /* Check for removal by optimization */
/*******************************************************************************
@ -158,6 +159,10 @@ void SCSI_RX_DMA_COMPLETE_Stop(void)
*******************************************************************************/
CY_ISR(SCSI_RX_DMA_COMPLETE_Interrupt)
{
#ifdef SCSI_RX_DMA_COMPLETE_INTERRUPT_INTERRUPT_CALLBACK
SCSI_RX_DMA_COMPLETE_Interrupt_InterruptCallback();
#endif /* SCSI_RX_DMA_COMPLETE_INTERRUPT_INTERRUPT_CALLBACK */
/* Place your Interrupt code here. */
/* `#START SCSI_RX_DMA_COMPLETE_Interrupt` */

View File

@ -20,6 +20,7 @@
#include <CyLib.h>
#include <SCSI_SEL_ISR.h>
#if !defined(SCSI_SEL_ISR__REMOVED) /* Check for removal by optimization */
/*******************************************************************************
@ -158,6 +159,10 @@ void SCSI_SEL_ISR_Stop(void)
*******************************************************************************/
CY_ISR(SCSI_SEL_ISR_Interrupt)
{
#ifdef SCSI_SEL_ISR_INTERRUPT_INTERRUPT_CALLBACK
SCSI_SEL_ISR_Interrupt_InterruptCallback();
#endif /* SCSI_SEL_ISR_INTERRUPT_INTERRUPT_CALLBACK */
/* Place your Interrupt code here. */
/* `#START SCSI_SEL_ISR_Interrupt` */

View File

@ -20,6 +20,7 @@
#include <CyLib.h>
#include <SCSI_TX_DMA_COMPLETE.h>
#if !defined(SCSI_TX_DMA_COMPLETE__REMOVED) /* Check for removal by optimization */
/*******************************************************************************
@ -158,6 +159,10 @@ void SCSI_TX_DMA_COMPLETE_Stop(void)
*******************************************************************************/
CY_ISR(SCSI_TX_DMA_COMPLETE_Interrupt)
{
#ifdef SCSI_TX_DMA_COMPLETE_INTERRUPT_INTERRUPT_CALLBACK
SCSI_TX_DMA_COMPLETE_Interrupt_InterruptCallback();
#endif /* SCSI_TX_DMA_COMPLETE_INTERRUPT_INTERRUPT_CALLBACK */
/* Place your Interrupt code here. */
/* `#START SCSI_TX_DMA_COMPLETE_Interrupt` */

View File

@ -18,6 +18,7 @@
#include "SDCard_PVT.h"
/* User code required at start of ISR */
/* `#START SDCard_ISR_START_DEF` */
@ -54,11 +55,15 @@ CY_ISR(SDCard_TX_ISR)
uint8 tmpStatus;
#endif /* (SDCard_TX_SOFTWARE_BUF_ENABLED) */
#ifdef SDCard_TX_ISR_ENTRY_CALLBACK
SDCard_TX_ISR_EntryCallback();
#endif /* SDCard_TX_ISR_ENTRY_CALLBACK */
/* User code required at start of ISR */
/* `#START SDCard_TX_ISR_START` */
/* `#END` */
#if(SDCard_TX_SOFTWARE_BUF_ENABLED)
/* Check if TX data buffer is not empty and there is space in TX FIFO */
while(SDCard_txBufferRead != SDCard_txBufferWrite)
@ -104,6 +109,10 @@ CY_ISR(SDCard_TX_ISR)
/* `#START SDCard_TX_ISR_END` */
/* `#END` */
#ifdef SDCard_TX_ISR_EXIT_CALLBACK
SDCard_TX_ISR_ExitCallback();
#endif /* SDCard_TX_ISR_EXIT_CALLBACK */
}
@ -138,11 +147,15 @@ CY_ISR(SDCard_RX_ISR)
uint8 rxData;
#endif /* (SDCard_RX_SOFTWARE_BUF_ENABLED) */
#ifdef SDCard_RX_ISR_ENTRY_CALLBACK
SDCard_RX_ISR_EntryCallback();
#endif /* SDCard_RX_ISR_ENTRY_CALLBACK */
/* User code required at start of ISR */
/* `#START SDCard_RX_ISR_START` */
/* `#END` */
#if(SDCard_RX_SOFTWARE_BUF_ENABLED)
tmpStatus = SDCard_GET_STATUS_RX(SDCard_swStatusRx);
@ -184,6 +197,10 @@ CY_ISR(SDCard_RX_ISR)
/* `#START SDCard_RX_ISR_END` */
/* `#END` */
#ifdef SDCard_RX_ISR_EXIT_CALLBACK
SDCard_RX_ISR_ExitCallback();
#endif /* SDCard_RX_ISR_EXIT_CALLBACK */
}
/* [] END OF FILE */

View File

@ -20,6 +20,7 @@
#include <CyLib.h>
#include <SD_RX_DMA_COMPLETE.h>
#if !defined(SD_RX_DMA_COMPLETE__REMOVED) /* Check for removal by optimization */
/*******************************************************************************
@ -158,6 +159,10 @@ void SD_RX_DMA_COMPLETE_Stop(void)
*******************************************************************************/
CY_ISR(SD_RX_DMA_COMPLETE_Interrupt)
{
#ifdef SD_RX_DMA_COMPLETE_INTERRUPT_INTERRUPT_CALLBACK
SD_RX_DMA_COMPLETE_Interrupt_InterruptCallback();
#endif /* SD_RX_DMA_COMPLETE_INTERRUPT_INTERRUPT_CALLBACK */
/* Place your Interrupt code here. */
/* `#START SD_RX_DMA_COMPLETE_Interrupt` */

View File

@ -20,6 +20,7 @@
#include <CyLib.h>
#include <SD_TX_DMA_COMPLETE.h>
#if !defined(SD_TX_DMA_COMPLETE__REMOVED) /* Check for removal by optimization */
/*******************************************************************************
@ -158,6 +159,10 @@ void SD_TX_DMA_COMPLETE_Stop(void)
*******************************************************************************/
CY_ISR(SD_TX_DMA_COMPLETE_Interrupt)
{
#ifdef SD_TX_DMA_COMPLETE_INTERRUPT_INTERRUPT_CALLBACK
SD_TX_DMA_COMPLETE_Interrupt_InterruptCallback();
#endif /* SD_TX_DMA_COMPLETE_INTERRUPT_INTERRUPT_CALLBACK */
/* Place your Interrupt code here. */
/* `#START SD_TX_DMA_COMPLETE_Interrupt` */

View File

@ -17,6 +17,7 @@
#include "USBFS.h"
#if defined(USBFS_ENABLE_AUDIO_CLASS)
#include "USBFS_audio.h"
@ -124,6 +125,11 @@ uint8 USBFS_DispatchAUDIOClassRqst(void)
/* `#START AUDIO_READ_REQUESTS` Place other request handler here */
/* `#END` */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_AUDIO_READ_REQUESTS_CALLBACK
USBFS_DispatchAUDIOClass_AUDIO_READ_REQUESTS_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_AUDIO_READ_REQUESTS_CALLBACK */
break;
default:
break;
@ -142,7 +148,11 @@ uint8 USBFS_DispatchAUDIOClassRqst(void)
/* `#END` */
/* Entity ID Control Selector is MUTE */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_MUTE_CONTROL_GET_REQUEST_CALLBACK
USBFS_DispatchAUDIOClass_MUTE_CONTROL_GET_REQUEST_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_MUTE_CONTROL_GET_REQUEST_CALLBACK */
/* Entity ID Control Selector is MUTE */
USBFS_currentTD.wCount = 1u;
USBFS_currentTD.pData = &USBFS_currentMute;
requestHandled = USBFS_InitControlRead();
@ -153,6 +163,10 @@ uint8 USBFS_DispatchAUDIOClassRqst(void)
/* `#END` */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_VOLUME_CONTROL_GET_REQUEST_CALLBACK
USBFS_DispatchAUDIOClass_VOLUME_CONTROL_GET_REQUEST_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_VOLUME_CONTROL_GET_REQUEST_CALLBACK */
/* Entity ID Control Selector is VOLUME, */
USBFS_currentTD.wCount = USBFS_VOLUME_LEN;
USBFS_currentTD.pData = USBFS_currentVolume;
@ -163,6 +177,10 @@ uint8 USBFS_DispatchAUDIOClassRqst(void)
/* `#START OTHER_GET_CUR_REQUESTS` Place other request handler here */
/* `#END` */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_OTHER_GET_CUR_REQUESTS_CALLBACK
USBFS_DispatchAUDIOClass_OTHER_GET_CUR_REQUESTS_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_OTHER_GET_CUR_REQUESTS_CALLBACK */
}
break;
case USBFS_GET_MIN: /* GET_MIN */
@ -205,6 +223,11 @@ uint8 USBFS_DispatchAUDIOClassRqst(void)
/* `#START AUDIO_WRITE_REQUESTS` Place other request handler here */
/* `#END` */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_AUDIO_WRITE_REQUESTS_CALLBACK
USBFS_DispatchAUDIOClass_AUDIO_WRITE_REQUESTS_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_AUDIO_WRITE_REQUESTS_CALLBACK */
break;
default:
break;
@ -237,6 +260,11 @@ uint8 USBFS_DispatchAUDIOClassRqst(void)
/* `#START AUDIO_SAMPLING_FREQ_REQUESTS` Place other request handler here */
/* `#END` */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_AUDIO_SAMPLING_FREQ_REQUESTS_CALLBACK
USBFS_DispatchAUDIOClass_AUDIO_SAMPLING_FREQ_REQUESTS_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_AUDIO_SAMPLING_FREQ_REQUESTS_CALLBACK */
break;
default:
break;
@ -255,6 +283,10 @@ uint8 USBFS_DispatchAUDIOClassRqst(void)
/* `#END` */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_MUTE_SET_REQUEST_CALLBACK
USBFS_DispatchAUDIOClass_MUTE_SET_REQUEST_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_MUTE_SET_REQUEST_CALLBACK */
/* Entity ID Control Selector is MUTE */
USBFS_currentTD.wCount = 1u;
USBFS_currentTD.pData = &USBFS_currentMute;
@ -266,6 +298,10 @@ uint8 USBFS_DispatchAUDIOClassRqst(void)
/* `#END` */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_VOLUME_CONTROL_SET_REQUEST_CALLBACK
USBFS_DispatchAUDIOClass_VOLUME_CONTROL_SET_REQUEST_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_VOLUME_CONTROL_SET_REQUEST_CALLBACK */
/* Entity ID Control Selector is VOLUME */
USBFS_currentTD.wCount = USBFS_VOLUME_LEN;
USBFS_currentTD.pData = USBFS_currentVolume;
@ -276,12 +312,21 @@ uint8 USBFS_DispatchAUDIOClassRqst(void)
/* `#START OTHER_SET_CUR_REQUESTS` Place other request handler here */
/* `#END` */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_OTHER_SET_CUR_REQUESTS_CALLBACK
USBFS_DispatchAUDIOClass_OTHER_SET_CUR_REQUESTS_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_OTHER_SET_CUR_REQUESTS_CALLBACK */
}
#endif /* USBFS_ENABLE_AUDIO_STREAMING */
/* `#START AUDIO_CONTROL_SEL_REQUESTS` Place other request handler here */
/* `#END` */
#ifdef USBFS_DISPATCH_AUDIO_CLASS_AUDIO_CONTROL_SEL_REQUESTS_CALLBACK
USBFS_DispatchAUDIOClass_AUDIO_CONTROL_SEL_REQUESTS_Callback();
#endif /* USBFS_DISPATCH_AUDIO_CLASS_AUDIO_CONTROL_SEL_REQUESTS_CALLBACK */
break;
default:
break;

View File

@ -23,6 +23,7 @@
#include "USBFS_pvt.h"
/***************************************
* CDC Variables
***************************************/
@ -104,6 +105,10 @@ uint8 USBFS_DispatchCDCClassRqst(void)
/* `#END` */
#ifdef USBFS_DISPATCH_CDC_CLASS_CDC_READ_REQUESTS_CALLBACK
USBFS_DispatchCDCClass_CDC_READ_REQUESTS_Callback();
#endif /* USBFS_DISPATCH_CDC_CLASS_CDC_READ_REQUESTS_CALLBACK */
default: /* requestHandled is initialized as FALSE by default */
break;
}
@ -130,6 +135,10 @@ uint8 USBFS_DispatchCDCClassRqst(void)
/* `#END` */
#ifdef USBFS_DISPATCH_CDC_CLASS_CDC_WRITE_REQUESTS_CALLBACK
USBFS_DispatchCDCClass_CDC_WRITE_REQUESTS_Callback();
#endif /* USBFS_DISPATCH_CDC_CLASS_CDC_WRITE_REQUESTS_CALLBACK */
default: /* requestHandled is initialized as FALSE by default */
break;
}

View File

@ -21,6 +21,7 @@
#include "USBFS_pvt.h"
/***************************************
* User Implemented Class Driver Declarations.
***************************************/
@ -89,6 +90,10 @@ uint8 USBFS_DispatchClassRqst(void)
/* `#END` */
#ifdef USBFS_DISPATCH_CLASS_RQST_CALLBACK
USBFS_DispatchClassRqst_Callback();
#endif /* USBFS_DISPATCH_CLASS_RQST_CALLBACK */
return(requestHandled);
}

View File

@ -18,6 +18,7 @@
#include "USBFS_pvt.h"
/***************************************
* Global data allocation
***************************************/
@ -68,7 +69,10 @@ CY_ISR(USBFS_EP_0_ISR)
uint8 bRegTemp;
uint8 modifyReg;
#ifdef USBFS_EP_0_ISR_ENTRY_CALLBACK
USBFS_EP_0_ISR_EntryCallback();
#endif /* USBFS_EP_0_ISR_ENTRY_CALLBACK */
bRegTemp = CY_GET_REG8(USBFS_EP0_CR_PTR);
if ((bRegTemp & USBFS_MODE_ACKD) != 0u)
{
@ -128,6 +132,9 @@ CY_ISR(USBFS_EP_0_ISR)
}
}
}
#ifdef USBFS_EP_0_ISR_EXIT_CALLBACK
USBFS_EP_0_ISR_ExitCallback();
#endif /* USBFS_EP_0_ISR_EXIT_CALLBACK */
}

View File

@ -16,6 +16,7 @@
#include "USBFS.h"
#include "USBFS_pvt.h"
#if (defined(USBFS_ENABLE_MIDI_STREAMING) && (USBFS_ENABLE_MIDI_API != 0u))
#include "USBFS_midi.h"
#endif /* (defined(USBFS_ENABLE_MIDI_STREAMING) && (USBFS_ENABLE_MIDI_API != 0u)) */
@ -57,6 +58,10 @@
uint8 int_en;
#endif /* USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3 */
#ifdef USBFS_EP_1_ISR_ENTRY_CALLBACK
USBFS_EP_1_ISR_EntryCallback();
#endif /* USBFS_EP_1_ISR_ENTRY_CALLBACK */
/* `#START EP1_USER_CODE` Place your code here */
/* `#END` */
@ -90,6 +95,10 @@
/* `#END` */
#ifdef USBFS_EP_1_ISR_EXIT_CALLBACK
USBFS_EP_1_ISR_ExitCallback();
#endif /* USBFS_EP_1_ISR_EXIT_CALLBACK */
#if (defined(USBFS_ENABLE_MIDI_STREAMING) && !defined(USBFS_MAIN_SERVICE_MIDI_OUT) && \
USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
@ -122,6 +131,10 @@
uint8 int_en;
#endif /* USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3 */
#ifdef USBFS_EP_2_ISR_ENTRY_CALLBACK
USBFS_EP_2_ISR_EntryCallback();
#endif /* USBFS_EP_2_ISR_ENTRY_CALLBACK */
/* `#START EP2_USER_CODE` Place your code here */
/* `#END` */
@ -155,6 +168,10 @@
/* `#END` */
#ifdef USBFS_EP_2_ISR_EXIT_CALLBACK
USBFS_EP_2_ISR_ExitCallback();
#endif /* USBFS_EP_2_ISR_EXIT_CALLBACK */
#if (defined(USBFS_ENABLE_MIDI_STREAMING) && !defined(USBFS_MAIN_SERVICE_MIDI_OUT) && \
USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
@ -187,6 +204,10 @@
uint8 int_en;
#endif /* USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3 */
#ifdef USBFS_EP_3_ISR_ENTRY_CALLBACK
USBFS_EP_3_ISR_EntryCallback();
#endif /* USBFS_EP_3_ISR_ENTRY_CALLBACK */
/* `#START EP3_USER_CODE` Place your code here */
/* `#END` */
@ -220,6 +241,10 @@
/* `#END` */
#ifdef USBFS_EP_3_ISR_EXIT_CALLBACK
USBFS_EP_3_ISR_ExitCallback();
#endif /* USBFS_EP_3_ISR_EXIT_CALLBACK */
#if (defined(USBFS_ENABLE_MIDI_STREAMING) && !defined(USBFS_MAIN_SERVICE_MIDI_OUT) && \
USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
@ -252,6 +277,10 @@
uint8 int_en;
#endif /* CY_PSOC3 & USBFS_ISR_SERVICE_MIDI_OUT */
#ifdef USBFS_EP_4_ISR_ENTRY_CALLBACK
USBFS_EP_4_ISR_EntryCallback();
#endif /* USBFS_EP_4_ISR_ENTRY_CALLBACK */
/* `#START EP4_USER_CODE` Place your code here */
/* `#END` */
@ -285,6 +314,10 @@
/* `#END` */
#ifdef USBFS_EP_4_ISR_EXIT_CALLBACK
USBFS_EP_4_ISR_ExitCallback();
#endif /* USBFS_EP_4_ISR_EXIT_CALLBACK */
#if (defined(USBFS_ENABLE_MIDI_STREAMING) && !defined(USBFS_MAIN_SERVICE_MIDI_OUT) && \
USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
@ -317,6 +350,10 @@
uint8 int_en;
#endif /* CY_PSOC3 & USBFS_ISR_SERVICE_MIDI_OUT */
#ifdef USBFS_EP_5_ISR_ENTRY_CALLBACK
USBFS_EP_5_ISR_EntryCallback();
#endif /* USBFS_EP_5_ISR_ENTRY_CALLBACK */
/* `#START EP5_USER_CODE` Place your code here */
/* `#END` */
@ -350,6 +387,10 @@
/* `#END` */
#ifdef USBFS_EP_5_ISR_EXIT_CALLBACK
USBFS_EP_5_ISR_ExitCallback();
#endif /* USBFS_EP_5_ISR_EXIT_CALLBACK */
#if (defined(USBFS_ENABLE_MIDI_STREAMING) && !defined(USBFS_MAIN_SERVICE_MIDI_OUT) && \
USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
@ -381,6 +422,10 @@
uint8 int_en;
#endif /* CY_PSOC3 & USBFS_ISR_SERVICE_MIDI_OUT */
#ifdef USBFS_EP_6_ISR_ENTRY_CALLBACK
USBFS_EP_6_ISR_EntryCallback();
#endif /* USBFS_EP_6_ISR_ENTRY_CALLBACK */
/* `#START EP6_USER_CODE` Place your code here */
/* `#END` */
@ -414,6 +459,10 @@
/* `#END` */
#ifdef USBFS_EP_6_ISR_EXIT_CALLBACK
USBFS_EP_6_ISR_ExitCallback();
#endif /* USBFS_EP_6_ISR_EXIT_CALLBACK */
#if (defined(USBFS_ENABLE_MIDI_STREAMING) && !defined(USBFS_MAIN_SERVICE_MIDI_OUT) && \
USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
@ -446,6 +495,10 @@
uint8 int_en;
#endif /* CY_PSOC3 & USBFS_ISR_SERVICE_MIDI_OUT */
#ifdef USBFS_EP_7_ISR_ENTRY_CALLBACK
USBFS_EP_7_ISR_EntryCallback();
#endif /* USBFS_EP_7_ISR_ENTRY_CALLBACK */
/* `#START EP7_USER_CODE` Place your code here */
/* `#END` */
@ -479,6 +532,10 @@
/* `#END` */
#ifdef USBFS_EP_7_ISR_EXIT_CALLBACK
USBFS_EP_7_ISR_ExitCallback();
#endif /* USBFS_EP_7_ISR_EXIT_CALLBACK */
#if (defined(USBFS_ENABLE_MIDI_STREAMING) && !defined(USBFS_MAIN_SERVICE_MIDI_OUT) && \
USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
@ -511,6 +568,10 @@
uint8 int_en;
#endif /* CY_PSOC3 & USBFS_ISR_SERVICE_MIDI_OUT */
#ifdef USBFS_EP_8_ISR_ENTRY_CALLBACK
USBFS_EP_8_ISR_EntryCallback();
#endif /* USBFS_EP_8_ISR_ENTRY_CALLBACK */
/* `#START EP8_USER_CODE` Place your code here */
/* `#END` */
@ -544,6 +605,10 @@
/* `#END` */
#ifdef USBFS_EP_8_ISR_EXIT_CALLBACK
USBFS_EP_8_ISR_ExitCallback();
#endif /* USBFS_EP_8_ISR_EXIT_CALLBACK */
#if (defined(USBFS_ENABLE_MIDI_STREAMING) && !defined(USBFS_MAIN_SERVICE_MIDI_OUT) && \
USBFS_ISR_SERVICE_MIDI_OUT && CY_PSOC3)
EA = int_en;
@ -569,6 +634,10 @@
*******************************************************************************/
CY_ISR(USBFS_SOF_ISR)
{
#ifdef USBFS_SOF_ISR_INTERRUPT_CALLBACK
USBFS_SOF_ISR_InterruptCallback();
#endif /* USBFS_SOF_ISR_INTERRUPT_CALLBACK */
/* `#START SOF_USER_CODE` Place your code here */
/* `#END` */
@ -592,11 +661,19 @@ CY_ISR(USBFS_SOF_ISR)
*******************************************************************************/
CY_ISR(USBFS_BUS_RESET_ISR)
{
#ifdef USBFS_BUS_RESET_ISR_ENTRY_CALLBACK
USBFS_BUS_RESET_ISR_EntryCallback();
#endif /* USBFS_BUS_RESET_ISR_ENTRY_CALLBACK */
/* `#START BUS_RESET_USER_CODE` Place your code here */
/* `#END` */
USBFS_ReInitComponent();
#ifdef USBFS_BUS_RESET_ISR_EXIT_CALLBACK
USBFS_BUS_RESET_ISR_ExitCallback();
#endif /* USBFS_BUS_RESET_ISR_EXIT_CALLBACK */
}
@ -627,6 +704,10 @@ CY_ISR(USBFS_BUS_RESET_ISR)
uint8 ep = USBFS_EP1;
uint8 ptr = 0u;
#ifdef USBFS_ARB_ISR_ENTRY_CALLBACK
USBFS_ARB_ISR_EntryCallback();
#endif /* USBFS_ARB_ISR_ENTRY_CALLBACK */
/* `#START ARB_BEGIN_USER_CODE` Place your code here */
/* `#END` */
@ -687,6 +768,10 @@ CY_ISR(USBFS_BUS_RESET_ISR)
/* `#END` */
#ifdef USBFS_ARB_ISR_CALLBACK
USBFS_ARB_ISR_Callback();
#endif /* USBFS_ARB_ISR_CALLBACK */
CY_SET_REG8((reg8 *)(USBFS_ARB_EP1_SR_IND + ptr), ep_status); /* Clear Serviced events */
}
ptr += USBFS_EPX_CNTX_ADDR_OFFSET; /* prepare pointer for next EP */
@ -697,6 +782,10 @@ CY_ISR(USBFS_BUS_RESET_ISR)
/* `#START ARB_END_USER_CODE` Place your code here */
/* `#END` */
#ifdef USBFS_ARB_ISR_EXIT_CALLBACK
USBFS_ARB_ISR_ExitCallback();
#endif /* USBFS_ARB_ISR_EXIT_CALLBACK */
}
#endif /* USBFS_EP_MM */
@ -724,6 +813,10 @@ CY_ISR(USBFS_BUS_RESET_ISR)
uint8 ep = USBFS_EP1;
uint8 ptr = 0u;
#ifdef USBFS_EP_DMA_DONE_ISR_ENTRY_CALLBACK
USBFS_EP_DMA_DONE_ISR_EntryCallback();
#endif /* USBFS_EP_DMA_DONE_ISR_ENTRY_CALLBACK */
/* `#START EP_DMA_DONE_BEGIN_USER_CODE` Place your code here */
/* `#END` */
@ -747,6 +840,10 @@ CY_ISR(USBFS_BUS_RESET_ISR)
/* `#END` */
#ifdef USBFS_EP_DMA_DONE_ISR_CALLBACK
USBFS_EP_DMA_DONE_ISR_Callback();
#endif /* USBFS_EP_DMA_DONE_ISR_CALLBACK */
CY_SET_REG8((reg8 *)(USBFS_ARB_RW1_WA_MSB_IND + ptr), 0x00u);
/* repeat 2 last bytes to prefetch endpoint area */
CY_SET_REG8((reg8 *)(USBFS_ARB_RW1_WA_IND + ptr),
@ -773,6 +870,10 @@ CY_ISR(USBFS_BUS_RESET_ISR)
/* `#START EP_DMA_DONE_END_USER_CODE` Place your code here */
/* `#END` */
#ifdef USBFS_EP_DMA_DONE_ISR_EXIT_CALLBACK
USBFS_EP_DMA_DONE_ISR_ExitCallback();
#endif /* USBFS_EP_DMA_DONE_ISR_EXIT_CALLBACK */
}
#endif /* ((USBFS_EP_MM == USBFS__EP_DMAAUTO) && (USBFS_EP_DMA_AUTO_OPT == 0u)) */

View File

@ -25,6 +25,7 @@
#include "USBFS_hid.h"
/***************************************
* HID Variables
***************************************/
@ -375,6 +376,11 @@ void USBFS_FindReport(void)
/* `#START HID_FINDREPORT` Place custom handling here */
/* `#END` */
#ifdef USBFS_FIND_REPORT_CALLBACK
USBFS_FindReport_Callback();
#endif /* USBFS_FIND_REPORT_CALLBACK */
USBFS_currentTD.count = 0u; /* Init not supported condition */
pTmp = USBFS_GetConfigTablePtr(USBFS_configuration - 1u);
reportType = CY_GET_REG8(USBFS_wValueHi);

View File

@ -26,6 +26,7 @@
#include "USBFS_pvt.h"
/***************************************
* MIDI Constants
***************************************/
@ -269,6 +270,10 @@ void USBFS_MIDI_EP_Init(void)
/* `#START CUSTOM_MIDI_OUT_EP_SERV` Place your code here */
/* `#END` */
#ifdef USBFS_MIDI_OUT_EP_SERVICE_CALLBACK
USBFS_MIDI_OUT_EP_Service_Callback();
#endif /* USBFS_MIDI_OUT_EP_SERVICE_CALLBACK */
}
#endif /* (USBFS_MIDI_EXT_MODE >= USBFS_ONE_EXT_INTRF) */
@ -732,6 +737,9 @@ void USBFS_MIDI_EP_Init(void)
/* `#END` */
#ifdef USBFS_MIDI_INIT_CALLBACK
USBFS_MIDI_Init_Callback();
#endif /* USBFS_MIDI_INIT_CALLBACK */
}
@ -1046,6 +1054,10 @@ void USBFS_MIDI_EP_Init(void)
/* `#END` */
#ifdef USBFS_MIDI1_PROCESS_USB_OUT_ENTRY_CALLBACK
USBFS_MIDI1_ProcessUsbOut_EntryCallback();
#endif /* USBFS_MIDI1_PROCESS_USB_OUT_ENTRY_CALLBACK */
cmd = epBuf[USBFS_EVENT_BYTE0] & USBFS_CIN_MASK;
if((cmd != USBFS_RESERVED0) && (cmd != USBFS_RESERVED1))
{
@ -1118,6 +1130,10 @@ void USBFS_MIDI_EP_Init(void)
/* `#START MIDI1_PROCESS_OUT_END` */
/* `#END` */
#ifdef USBFS_MIDI1_PROCESS_USB_OUT_EXIT_CALLBACK
USBFS_MIDI1_ProcessUsbOut_ExitCallback();
#endif /* USBFS_MIDI1_PROCESS_USB_OUT_EXIT_CALLBACK */
}
@ -1269,6 +1285,10 @@ void USBFS_MIDI_EP_Init(void)
/* `#END` */
#ifdef USBFS_MIDI2_PROCESS_USB_OUT_ENTRY_CALLBACK
USBFS_MIDI2_ProcessUsbOut_EntryCallback();
#endif /* USBFS_MIDI2_PROCESS_USB_OUT_ENTRY_CALLBACK */
cmd = epBuf[USBFS_EVENT_BYTE0] & USBFS_CIN_MASK;
if((cmd != USBFS_RESERVED0) && (cmd != USBFS_RESERVED1))
{
@ -1341,6 +1361,10 @@ void USBFS_MIDI_EP_Init(void)
/* `#START MIDI2_PROCESS_OUT_END` */
/* `#END` */
#ifdef USBFS_MIDI2_PROCESS_USB_OUT_EXIT_CALLBACK
USBFS_MIDI2_ProcessUsbOut_ExitCallback();
#endif /* USBFS_MIDI2_PROCESS_USB_OUT_EXIT_CALLBACK */
}
#endif /* (USBFS_MIDI_EXT_MODE >= USBFS_TWO_EXT_INTRF) */
#endif /* (USBFS_MIDI_EXT_MODE >= USBFS_ONE_EXT_INTRF) */

View File

@ -19,6 +19,7 @@
#include "USBFS_pvt.h"
/***************************************
* Custom Declarations
***************************************/
@ -53,12 +54,20 @@ static USBFS_BACKUP_STRUCT USBFS_backup;
*******************************************************************************/
CY_ISR(USBFS_DP_ISR)
{
#ifdef USBFS_DP_ISR_ENTRY_CALLBACK
USBFS_DP_ISR_EntryCallback();
#endif /* USBFS_DP_ISR_ENTRY_CALLBACK */
/* `#START DP_USER_CODE` Place your code here */
/* `#END` */
/* Clears active interrupt */
CY_GET_REG8(USBFS_DP_INTSTAT_PTR);
#ifdef USBFS_DP_ISR_EXIT_CALLBACK
USBFS_DP_ISR_ExitCallback();
#endif /* USBFS_DP_ISR_EXIT_CALLBACK */
}
#endif /* (USBFS_DP_ISR_REMOVE == 0u) */

View File

@ -17,6 +17,7 @@
#include "USBFS.h"
#include "USBFS_pvt.h"
#if(USBFS_EXTERN_VND == USBFS_FALSE)
@ -77,6 +78,10 @@ uint8 USBFS_HandleVendorRqst(void)
/* `#END` */
#ifdef USBFS_HANDLE_VENDOR_RQST_CALLBACK
USBFS_HandleVendorRqst_Callback();
#endif /* USBFS_HANDLE_VENDOR_RQST_CALLBACK */
return(requestHandled);
}
@ -89,7 +94,6 @@ uint8 USBFS_HandleVendorRqst(void)
/* `#END` */
#endif /* USBFS_EXTERN_VND */

View File

@ -2,6 +2,7 @@
#include "cytypes.h"
#if (!CYDEV_BOOTLOADER_ENABLE)
#if defined(__GNUC__) || defined(__ARMCC_VERSION)
__attribute__ ((__section__(".cyloadermeta"), used))
@ -19,6 +20,8 @@ const uint8 cy_meta_loader[] = {
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u};
#endif /* (!CYDEV_BOOTLOADER_ENABLE) */
#if defined(__GNUC__) || defined(__ARMCC_VERSION)
__attribute__ ((__section__(".cybootloader"), used))

View File

@ -1,9 +1,9 @@
/*******************************************************************************
* FILENAME: cydevice.h
* File Name: cydevice.h
* OBSOLETE: Do not use this file. Use the _trm version instead.
* PSoC Creator 3.2
* PSoC Creator 3.3
*
* DESCRIPTION:
* Description:
* This file provides all of the address values for the entire PSoC device.
* This file is automatically generated by PSoC Creator.
*

View File

@ -1,9 +1,9 @@
/*******************************************************************************
* FILENAME: cydevice_trm.h
* File Name: cydevice_trm.h
*
* PSoC Creator 3.2
* PSoC Creator 3.3
*
* DESCRIPTION:
* Description:
* This file provides all of the address values for the entire PSoC device.
* This file is automatically generated by PSoC Creator.
*

View File

@ -1,9 +1,9 @@
/*******************************************************************************
* FILENAME: cydevicegnu.inc
* File Name: cydevicegnu.inc
* OBSOLETE: Do not use this file. Use the _trm version instead.
* PSoC Creator 3.2
* PSoC Creator 3.3
*
* DESCRIPTION:
* Description:
* This file provides all of the address values for the entire PSoC device.
* This file is automatically generated by PSoC Creator.
*

View File

@ -1,9 +1,9 @@
/*******************************************************************************
* FILENAME: cydevicegnu_trm.inc
* File Name: cydevicegnu_trm.inc
*
* PSoC Creator 3.2
* PSoC Creator 3.3
*
* DESCRIPTION:
* Description:
* This file provides all of the address values for the entire PSoC device.
* This file is automatically generated by PSoC Creator.
*

View File

@ -1,9 +1,9 @@
;
; FILENAME: cydeviceiar.inc
; File Name: cydeviceiar.inc
; OBSOLETE: Do not use this file. Use the _trm version instead.
; PSoC Creator 3.2
; PSoC Creator 3.3
;
; DESCRIPTION:
; Description:
; This file provides all of the address values for the entire PSoC device.
;
;-------------------------------------------------------------------------------

View File

@ -1,9 +1,9 @@
;
; FILENAME: cydeviceiar_trm.inc
; File Name: cydeviceiar_trm.inc
;
; PSoC Creator 3.2
; PSoC Creator 3.3
;
; DESCRIPTION:
; Description:
; This file provides all of the address values for the entire PSoC device.
;
;-------------------------------------------------------------------------------

View File

@ -1,9 +1,9 @@
;
; FILENAME: cydevicerv.inc
; File Name: cydevicerv.inc
; OBSOLETE: Do not use this file. Use the _trm version instead.
; PSoC Creator 3.2
; PSoC Creator 3.3
;
; DESCRIPTION:
; Description:
; This file provides all of the address values for the entire PSoC device.
;
;-------------------------------------------------------------------------------

View File

@ -1,9 +1,9 @@
;
; FILENAME: cydevicerv_trm.inc
; File Name: cydevicerv_trm.inc
;
; PSoC Creator 3.2
; PSoC Creator 3.3
;
; DESCRIPTION:
; Description:
; This file provides all of the address values for the entire PSoC device.
;
;-------------------------------------------------------------------------------

View File

@ -1,9 +1,9 @@
/*******************************************************************************
* FILENAME: cyfitter_cfg.h
* File Name: cyfitter_cfg.h
*
* PSoC Creator 3.2
* PSoC Creator 3.3
*
* DESCRIPTION:
* Description:
* This file provides basic startup and mux configration settings
* This file is automatically generated by PSoC Creator.
*

View File

@ -1,9 +1,9 @@
/*******************************************************************************
* FILENAME: cymetadata.c
* File Name: cymetadata.c
*
* PSoC Creator 3.2
* PSoC Creator 3.3
*
* DESCRIPTION:
* Description:
* This file defines all extra memory spaces that need to be included.
* This file is automatically generated by PSoC Creator.
*
@ -28,7 +28,7 @@ __attribute__ ((__section__(".cyloadablemeta"), used))
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, 0x41u, 0x04u,
0x00u, 0x00u, 0x00u, 0x00u, 0x5Cu, 0xD1u, 0x50u, 0x04u,
0x01u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,

View File

@ -1,9 +1,9 @@
/*******************************************************************************
* FILENAME: project.h
* File Name: project.h
*
* PSoC Creator 3.2
* PSoC Creator 3.3
*
* DESCRIPTION:
* Description:
* It contains references to all generated header files and should not be modified.
* This file is automatically generated by PSoC Creator.
*

View File

@ -1,13 +1,13 @@
<?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="SCSI_RX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_RX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_TX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="GlitchFilter_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_Filtered" BASE="0x0" SIZE="0x0" desc="" visible="true">
<register name="SCSI_Filtered_STATUS_REG" address="0x4000646B" bitWidth="8" desc="" />
<register name="SCSI_Filtered_MASK_REG" address="0x4000648B" bitWidth="8" desc="" />
<register name="SCSI_Filtered_STATUS_AUX_CTL_REG" address="0x4000649B" bitWidth="8" desc="">
<block name="SCSI_RX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_RX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SD_TX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="GlitchFilter_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_Filtered" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false">
<register name="SCSI_Filtered_STATUS_REG" address="0x40006462" bitWidth="8" desc="" hidden="false" />
<register name="SCSI_Filtered_MASK_REG" address="0x40006482" bitWidth="8" desc="" hidden="false" />
<register name="SCSI_Filtered_STATUS_AUX_CTL_REG" address="0x40006492" bitWidth="8" desc="" hidden="false">
<field name="FIFO0" from="5" to="5" access="RW" resetVal="" desc="FIFO0 clear">
<value name="ENABLED" value="1" desc="Enable counter" />
<value name="DISABLED" value="0" desc="Disable counter" />
@ -34,10 +34,10 @@
</field>
</register>
</block>
<block name="SCSI_Parity_Error" BASE="0x0" SIZE="0x0" desc="" visible="true">
<register name="SCSI_Parity_Error_STATUS_REG" address="0x4000646A" bitWidth="8" desc="" />
<register name="SCSI_Parity_Error_MASK_REG" address="0x4000648A" bitWidth="8" desc="" />
<register name="SCSI_Parity_Error_STATUS_AUX_CTL_REG" address="0x4000649A" bitWidth="8" desc="">
<block name="SCSI_Parity_Error" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false">
<register name="SCSI_Parity_Error_STATUS_REG" address="0x4000646B" bitWidth="8" desc="" hidden="false" />
<register name="SCSI_Parity_Error_MASK_REG" address="0x4000648B" bitWidth="8" desc="" hidden="false" />
<register name="SCSI_Parity_Error_STATUS_AUX_CTL_REG" address="0x4000649B" bitWidth="8" desc="" hidden="false">
<field name="FIFO0" from="5" to="5" access="RW" resetVal="" desc="FIFO0 clear">
<value name="ENABLED" value="1" desc="Enable counter" />
<value name="DISABLED" value="0" desc="Disable counter" />
@ -64,153 +64,153 @@
</field>
</register>
</block>
<block name="SD_RX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_TX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Debug_Timer_Interrupt" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ZeroTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_TX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_RX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_TX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_SEL_ISR" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="cydff_2" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Clock_4" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="cy_boot" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_Glitch_Ctl" BASE="0x0" SIZE="0x0" desc="" visible="true">
<register name="SCSI_Glitch_Ctl_CONTROL_REG" address="0x40006476" bitWidth="8" desc="" />
<block name="SD_RX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_TX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="Debug_Timer_Interrupt" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SD_TX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SD_RX_DMA" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_TX_DMA_COMPLETE" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_SEL_ISR" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="cydff_2" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="Clock_4" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="cy_boot" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_Glitch_Ctl" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false">
<register name="SCSI_Glitch_Ctl_CONTROL_REG" address="0x4000647D" bitWidth="8" desc="" hidden="false" />
</block>
<block name="mux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="not_2" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="cy_constant_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Clock_2" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Clock_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="EXTLED" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Clock_3" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="cydff_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="timer_clock" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_CS" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="CFG_EEPROM" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_Out" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_CLK" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_MOSI" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_SCK" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_In" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_Data_Clk" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_Out_DBx" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_In_DBx" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="OddParityGen_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_CTL_PHASE" BASE="0x0" SIZE="0x0" desc="" visible="true">
<register name="SCSI_CTL_PHASE_CONTROL_REG" address="0x40006475" bitWidth="8" desc="" />
<block name="mux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="not_2" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="cy_constant_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="Clock_2" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="Clock_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="EXTLED" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="Clock_3" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="cydff_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="timer_clock" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SD_CS" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="CFG_EEPROM" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_Out" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_CLK" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SD_MOSI" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SD_SCK" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_In" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SD_Data_Clk" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_Out_DBx" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_In_DBx" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="OddParityGen_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_CTL_PHASE" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false">
<register name="SCSI_CTL_PHASE_CONTROL_REG" address="0x4000647C" bitWidth="8" desc="" hidden="false" />
</block>
<block name="SD_CD" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_Out_Mux" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Bootloadable_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="USBFS" BASE="0x0" SIZE="0x0" desc="USBFS" visible="true">
<block name="ZeroTerminal_5" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_6" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_5" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ZeroTerminal_6" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ZeroTerminal_7" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_8" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_7" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ep_0" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_4" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ZeroTerminal_2" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ZeroTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ZeroTerminal_4" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_2" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="bus_reset" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Dm" 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="Dp" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ep_3" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ep_4" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="USB" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="arb_int" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ZeroTerminal_8" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ep_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ep_2" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ZeroTerminal_3" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_3" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="Clock_vbus" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<register name="USBFS_PM_USB_CR0" address="0x40004394" bitWidth="8" desc="USB Power Mode Control Register 0">
<block name="SD_CD" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_Out_Mux" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="Bootloadable_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="USBFS" BASE="0x0" SIZE="0x0" desc="USBFS" visible="true" hidden="false">
<block name="ZeroTerminal_5" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_6" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_5" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_6" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_7" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_8" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_7" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ep_0" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_4" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_2" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_4" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_2" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="bus_reset" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="Dm" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="sof_int" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="dp_int" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="Dp" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ep_3" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ep_4" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="USB" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="arb_int" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_8" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ep_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ep_2" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_3" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_3" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="Clock_vbus" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<register name="USBFS_PM_USB_CR0" address="0x40004394" bitWidth="8" desc="USB Power Mode Control Register 0" hidden="false">
<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_PM_ACT_CFG" address="0x400043A5" bitWidth="8" desc="Active Power Mode Configuration Register" />
<register name="USBFS_PM_STBY_CFG" address="0x400043B5" bitWidth="8" desc="Standby Power Mode Configuration Register" />
<register name="USBFS_PRT.PS" address="0x400051F1" bitWidth="8" desc="Port Pin State Register">
<register name="USBFS_PM_ACT_CFG" address="0x400043A5" bitWidth="8" desc="Active Power Mode Configuration Register" hidden="false" />
<register name="USBFS_PM_STBY_CFG" address="0x400043B5" bitWidth="8" desc="Standby Power Mode Configuration Register" hidden="false" />
<register name="USBFS_PRT.PS" address="0x400051F1" bitWidth="8" desc="Port Pin State Register" hidden="false">
<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_PRT_DM0" address="0x400051F2" bitWidth="8" desc="Port Drive Mode Register">
<register name="USBFS_PRT_DM0" address="0x400051F2" bitWidth="8" desc="Port Drive Mode Register" hidden="false">
<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_PRT_DM1" address="0x400051F3" bitWidth="8" desc="Port Drive Mode Register">
<register name="USBFS_PRT_DM1" address="0x400051F3" bitWidth="8" desc="Port Drive Mode Register" hidden="false">
<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_PRT.INP_DIS" address="0x400051F8" bitWidth="8" desc="Input buffer disable override">
<register name="USBFS_PRT.INP_DIS" address="0x400051F8" bitWidth="8" desc="Input buffer disable override" hidden="false">
<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_EP0_DR0" address="0x40006000" bitWidth="8" desc="bmRequestType" />
<register name="USBFS_EP0_DR1" address="0x40006001" bitWidth="8" desc="bRequest" />
<register name="USBFS_EP0_DR2" address="0x40006002" bitWidth="8" desc="wValueLo" />
<register name="USBFS_EP0_DR3" address="0x40006003" bitWidth="8" desc="wValueHi" />
<register name="USBFS_EP0_DR4" address="0x40006004" bitWidth="8" desc="wIndexLo" />
<register name="USBFS_EP0_DR5" address="0x40006005" bitWidth="8" desc="wIndexHi" />
<register name="USBFS_EP0_DR6" address="0x40006006" bitWidth="8" desc="lengthLo" />
<register name="USBFS_EP0_DR7" address="0x40006007" bitWidth="8" desc="lengthHi" />
<register name="USBFS_CR0" address="0x40006008" bitWidth="8" desc="USB Control Register 0">
<register name="USBFS_EP0_DR0" address="0x40006000" bitWidth="8" desc="bmRequestType" hidden="false" />
<register name="USBFS_EP0_DR1" address="0x40006001" bitWidth="8" desc="bRequest" hidden="false" />
<register name="USBFS_EP0_DR2" address="0x40006002" bitWidth="8" desc="wValueLo" hidden="false" />
<register name="USBFS_EP0_DR3" address="0x40006003" bitWidth="8" desc="wValueHi" hidden="false" />
<register name="USBFS_EP0_DR4" address="0x40006004" bitWidth="8" desc="wIndexLo" hidden="false" />
<register name="USBFS_EP0_DR5" address="0x40006005" bitWidth="8" desc="wIndexHi" hidden="false" />
<register name="USBFS_EP0_DR6" address="0x40006006" bitWidth="8" desc="lengthLo" hidden="false" />
<register name="USBFS_EP0_DR7" address="0x40006007" bitWidth="8" desc="lengthHi" hidden="false" />
<register name="USBFS_CR0" address="0x40006008" bitWidth="8" desc="USB Control Register 0" hidden="false">
<field name="device_address" from="6" to="0" access="R" resetVal="" desc="" />
<field name="usb_enable" from="7" to="7" access="RW" resetVal="" desc="" />
</register>
<register name="USBFS_CR1" address="0x40006009" bitWidth="8" desc="USB Control Register 1">
<register name="USBFS_CR1" address="0x40006009" bitWidth="8" desc="USB Control Register 1" hidden="false">
<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_SIE_EP1_CR0" address="0x4000600E" bitWidth="8" desc="The Endpoint1 Control Register" />
<register name="USBFS_USBIO_CR0" address="0x40006010" bitWidth="8" desc="USBIO Control Register 0">
<register name="USBFS_SIE_EP1_CR0" address="0x4000600E" bitWidth="8" desc="The Endpoint1 Control Register" hidden="false" />
<register name="USBFS_USBIO_CR0" address="0x40006010" bitWidth="8" desc="USBIO Control Register 0" hidden="false">
<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_USBIO_CR1" address="0x40006012" bitWidth="8" desc="USBIO Control Register 1">
<register name="USBFS_USBIO_CR1" address="0x40006012" bitWidth="8" desc="USBIO Control Register 1" hidden="false">
<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_SIE_EP2_CR0" address="0x4000601E" bitWidth="8" desc="The Endpoint2 Control Register" />
<register name="USBFS_SIE_EP3_CR0" address="0x4000602E" bitWidth="8" desc="The Endpoint3 Control Register" />
<register name="USBFS_SIE_EP4_CR0" address="0x4000603E" bitWidth="8" desc="The Endpoint4 Control Register" />
<register name="USBFS_SIE_EP5_CR0" address="0x4000604E" bitWidth="8" desc="The Endpoint5 Control Register" />
<register name="USBFS_SIE_EP6_CR0" address="0x4000605E" bitWidth="8" desc="The Endpoint6 Control Register" />
<register name="USBFS_SIE_EP7_CR0" address="0x4000606E" bitWidth="8" desc="The Endpoint7 Control Register" />
<register name="USBFS_SIE_EP8_CR0" address="0x4000607E" bitWidth="8" desc="The Endpoint8 Control Register" />
<register name="USBFS_BUF_SIZE" address="0x4000608C" bitWidth="8" desc="Dedicated Endpoint Buffer Size Register" />
<register name="USBFS_EP_ACTIVE" address="0x4000608E" bitWidth="8" desc="Endpoint Active Indication Register" />
<register name="USBFS_EP_TYPE" address="0x4000608F" bitWidth="8" desc="Endpoint Type (IN/OUT) Indication" />
<register name="USBFS_USB_CLK_EN" address="0x4000609D" bitWidth="8" desc="USB Block Clock Enable Register" />
<register name="USBFS_SIE_EP2_CR0" address="0x4000601E" bitWidth="8" desc="The Endpoint2 Control Register" hidden="false" />
<register name="USBFS_SIE_EP3_CR0" address="0x4000602E" bitWidth="8" desc="The Endpoint3 Control Register" hidden="false" />
<register name="USBFS_SIE_EP4_CR0" address="0x4000603E" bitWidth="8" desc="The Endpoint4 Control Register" hidden="false" />
<register name="USBFS_SIE_EP5_CR0" address="0x4000604E" bitWidth="8" desc="The Endpoint5 Control Register" hidden="false" />
<register name="USBFS_SIE_EP6_CR0" address="0x4000605E" bitWidth="8" desc="The Endpoint6 Control Register" hidden="false" />
<register name="USBFS_SIE_EP7_CR0" address="0x4000606E" bitWidth="8" desc="The Endpoint7 Control Register" hidden="false" />
<register name="USBFS_SIE_EP8_CR0" address="0x4000607E" bitWidth="8" desc="The Endpoint8 Control Register" hidden="false" />
<register name="USBFS_BUF_SIZE" address="0x4000608C" bitWidth="8" desc="Dedicated Endpoint Buffer Size Register" hidden="false" />
<register name="USBFS_EP_ACTIVE" address="0x4000608E" bitWidth="8" desc="Endpoint Active Indication Register" hidden="false" />
<register name="USBFS_EP_TYPE" address="0x4000608F" bitWidth="8" desc="Endpoint Type (IN/OUT) Indication" hidden="false" />
<register name="USBFS_USB_CLK_EN" address="0x4000609D" bitWidth="8" desc="USB Block Clock Enable Register" hidden="false" />
</block>
<block name="Debug_Timer" BASE="0x0" SIZE="0x0" desc="" visible="true">
<block name="VirtualMux_2" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="ZeroTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="TimerHW" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="OneTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_3" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<register name="Debug_Timer_GLOBAL_ENABLE" address="0x400043A3" bitWidth="8" desc="PM.ACT.CFG">
<block name="Debug_Timer" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false">
<block name="VirtualMux_2" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="TimerHW" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="OneTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_3" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<register name="Debug_Timer_GLOBAL_ENABLE" address="0x400043A3" bitWidth="8" desc="PM.ACT.CFG" hidden="false">
<field name="en_timer" from="3" to="0" access="RW" resetVal="" desc="Enable timer/counters." />
</register>
<register name="Debug_Timer_CONTROL" address="0x40004F00" bitWidth="8" desc="TMRx.CFG0">
<register name="Debug_Timer_CONTROL" address="0x40004F00" bitWidth="8" desc="TMRx.CFG0" hidden="false">
<field name="EN" from="0" to="0" access="RW" resetVal="" desc="Enables timer/comparator." />
<field name="MODE" from="1" to="1" access="RW" resetVal="" desc="Mode. (0 = Timer; 1 = Comparator)">
<value name="Timer" value="0" desc="Timer mode. CNT/CMP register holds timer count value." />
@ -225,7 +225,7 @@
</field>
<field name="DEADBAND_PERIOD" from="7" to="6" access="RW" resetVal="" desc="Deadband Period" />
</register>
<register name="Debug_Timer_CONTROL2" address="0x40004F01" bitWidth="8" desc="TMRx.CFG1">
<register name="Debug_Timer_CONTROL2" address="0x40004F01" bitWidth="8" desc="TMRx.CFG1" hidden="false">
<field name="IRQ_SEL" from="0" to="0" access="RW" resetVal="" desc="Irq selection. (0 = raw interrupts; 1 = status register interrupts)" />
<field name="FTC" from="1" to="1" access="RW" resetVal="" desc="First Terminal Count (FTC). Setting this bit forces a single pulse on the TC pin when first enabled.">
<value name="Disable FTC" value="0" desc="Disable the single cycle pulse, which signifies the timer is starting." />
@ -236,7 +236,7 @@
<field name="CLK_BUS_EN_SEL" from="6" to="4" access="RW" resetVal="" desc="Digital Global Clock selection." />
<field name="BUS_CLK_SEL" from="7" to="7" access="RW" resetVal="" desc="Bus Clock selection." />
</register>
<register name="Debug_Timer_CONTROL3_" address="0x40004F02" bitWidth="8" desc="TMRx.CFG2">
<register name="Debug_Timer_CONTROL3_" address="0x40004F02" bitWidth="8" desc="TMRx.CFG2" hidden="false">
<field name="TMR_CFG" from="1" to="0" access="RW" resetVal="" desc="Timer configuration (MODE = 0): 000 = Continuous; 001 = Pulsewidth; 010 = Period; 011 = Stop on IRQ">
<value name="Continuous" value="0" desc="Timer runs while EN bit of CFG0 register is set to '1'." />
<value name="Pulsewidth" value="1" desc="Timer runs from positive to negative edge of TIMEREN." />
@ -254,26 +254,26 @@
</field>
<field name="HW_EN" from="7" to="7" access="RW" resetVal="" desc="When set Timer Enable controls counting." />
</register>
<register name="Debug_Timer_PERIOD" address="0x40004F04" bitWidth="16" desc="TMRx.PER0 - Assigned Period" />
<register name="Debug_Timer_COUNTER" address="0x40004F06" bitWidth="16" desc="TMRx.CNT_CMP0 - Current Down Counter Value" />
<register name="Debug_Timer_PERIOD" address="0x40004F04" bitWidth="16" desc="TMRx.PER0 - Assigned Period" hidden="false" />
<register name="Debug_Timer_COUNTER" address="0x40004F06" bitWidth="16" desc="TMRx.CNT_CMP0 - Current Down Counter Value" hidden="false" />
</block>
<block name="SCSI_Out_Ctl" BASE="0x0" SIZE="0x0" desc="" visible="true">
<register name="SCSI_Out_Ctl_CONTROL_REG" address="0x40006574" bitWidth="8" desc="" />
<block name="SCSI_Out_Ctl" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false">
<register name="SCSI_Out_Ctl_CONTROL_REG" address="0x40006471" bitWidth="8" desc="" hidden="false" />
</block>
<block name="SCSI_Out_Bits" BASE="0x0" SIZE="0x0" desc="" visible="true">
<register name="SCSI_Out_Bits_CONTROL_REG" address="0x40006577" bitWidth="8" desc="" />
<block name="SCSI_Out_Bits" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false">
<register name="SCSI_Out_Bits_CONTROL_REG" address="0x40006472" bitWidth="8" desc="" hidden="false" />
</block>
<block name="SD_MISO" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_RST_ISR" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SCSI_Noise" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="not_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" />
<block name="VirtualMux_2" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="VirtualMux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="BSPIM" BASE="0x0" SIZE="0x0" desc="" visible="true" />
<block name="SD_MISO" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_RST_ISR" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SCSI_Noise" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="not_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="SDCard" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false">
<block name="VirtualMux_3" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="ZeroTerminal_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_2" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="VirtualMux_1" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
<block name="BSPIM" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
</block>
<block name="LED1" 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" hidden="false" />
<block name="scsiTarget" BASE="0x0" SIZE="0x0" desc="" visible="true" hidden="false" />
</blockRegMap>

View File

@ -2420,6 +2420,24 @@
</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="cycodeshareimport.ld" persistent=".\Generated_Source\PSoC5\cycodeshareimport.ld">
<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="cycodeshareimport.scat" persistent=".\Generated_Source\PSoC5\cycodeshareimport.scat">
<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>
@ -2547,6 +2565,8 @@
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@C/C++@Optimization@Remove Unused Functions" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@C/C++@Optimization@Inline Functions" v="False" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@C/C++@Optimization@Optimization Level" v="None" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@C/C++@Optimization@Link Time Optimization" v="False" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@C/C++@Optimization@Fat LTO objects" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM0@Linker@General@Additional Libraries" v="" />
@ -2579,6 +2599,8 @@
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@C/C++@Optimization@Remove Unused Functions" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@C/C++@Optimization@Inline Functions" v="False" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@C/C++@Optimization@Optimization Level" v="Size" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@C/C++@Optimization@Link Time Optimization" v="False" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@C/C++@Optimization@Fat LTO objects" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM0@Linker@General@Additional Libraries" v="" />
@ -2611,6 +2633,8 @@
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@C/C++@Optimization@Remove Unused Functions" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@C/C++@Optimization@Inline Functions" v="False" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@C/C++@Optimization@Optimization Level" v="None" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@C/C++@Optimization@Link Time Optimization" v="False" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@C/C++@Optimization@Fat LTO objects" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Debug@CortexM3@Linker@General@Additional Libraries" v="" />
@ -2643,6 +2667,8 @@
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@C/C++@Optimization@Remove Unused Functions" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@C/C++@Optimization@Inline Functions" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@C/C++@Optimization@Optimization Level" v="Size" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@C/C++@Optimization@Link Time Optimization" v="False" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@C/C++@Optimization@Fat LTO objects" v="True" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="c9323d49-d323-40b8-9b59-cc008d68a989@Release@CortexM3@Linker@General@Additional Libraries" v="" />
@ -2679,6 +2705,8 @@
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@C/C++@Optimization@Remove Unused Functions" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@C/C++@Optimization@Inline Functions" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@C/C++@Optimization@Optimization Level" v="None" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@C/C++@Optimization@Link Time Optimization" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@C/C++@Optimization@Fat LTO objects" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM0@Linker@General@Additional Libraries" v="" />
@ -2711,6 +2739,8 @@
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@C/C++@Optimization@Remove Unused Functions" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@C/C++@Optimization@Inline Functions" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@C/C++@Optimization@Optimization Level" v="Size" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@C/C++@Optimization@Link Time Optimization" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@C/C++@Optimization@Fat LTO objects" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM0@Linker@General@Additional Libraries" v="" />
@ -2743,6 +2773,8 @@
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@C/C++@Optimization@Remove Unused Functions" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@C/C++@Optimization@Inline Functions" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@C/C++@Optimization@Optimization Level" v="None" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@C/C++@Optimization@Link Time Optimization" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@C/C++@Optimization@Fat LTO objects" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Debug@CortexM3@Linker@General@Additional Libraries" v="" />
@ -2775,6 +2807,8 @@
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@C/C++@Optimization@Remove Unused Functions" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@C/C++@Optimization@Inline Functions" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@C/C++@Optimization@Optimization Level" v="Size" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@C/C++@Optimization@Link Time Optimization" v="False" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@C/C++@Optimization@Fat LTO objects" v="True" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@C/C++@Command Line@Command Line" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@Library Generation@Command Line@Command Line" v="" />
<name_val_pair name="b98f980c-3bd1-4fc7-a887-c56a20a46fdd@Release@CortexM3@Linker@General@Additional Libraries" v="" />
@ -2914,8 +2948,8 @@
<project_current_platform v="c9323d49-d323-40b8-9b59-cc008d68a989" />
<project_current_processor v="CortexM3" />
<last_selected_tab v="Cypress" />
<WriteAppVersionLastSavedWith v="3.2.0.6175" />
<WriteAppMarketingVersionLastSavedWith v=" 3.2 SP1" />
<WriteAppVersionLastSavedWith v="3.3.0.410" />
<WriteAppMarketingVersionLastSavedWith v=" 3.3" />
<project_id v="6e1f5cbb-a0ca-4f55-a1fa-7b20c5be3a3e" /><custom_data><CyGuid_7a7929f8-5e3b-4f86-a093-2d4ee6513111 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtProjectCustomData" version="1"><CyGuid_fdba8dfd-b15b-4469-9bbb-9e40c3e70997 type_name="CyDesigner.Common.Base.CyCustomData" version="2"><userData /></CyGuid_fdba8dfd-b15b-4469-9bbb-9e40c3e70997><properties /></CyGuid_7a7929f8-5e3b-4f86-a093-2d4ee6513111></custom_data></CyGuid_49cfd574-032a-4a64-b7be-d4eeeaf25e43>
</CyGuid_60697ce6-dce2-4816-8680-4de0635742eb>
<top_block v="TopDesign" />

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