Merge: master -> DEV_X200_BRINGUP
This commit is contained in:
@@ -1,12 +1,28 @@
|
||||
sc_usb_audio Change Log
|
||||
=======================
|
||||
|
||||
6.11.2
|
||||
------
|
||||
- RESOLVED: (Major) Enumeration issue when MAX_MIX_COUNT > 0 only. Introduced in mixer
|
||||
optimisations in 6.11.0. Only affects designs using mixer functionality.
|
||||
- RESOLVED: (Normal) Audio buffering request system modified such that the mixer output is
|
||||
not silent when in underflow case (i.e. host output stream not active) This issue was
|
||||
introduced with the addition of DSD functionality and only affects designs using
|
||||
mixer functionality.
|
||||
- RESOLVED: (Minor) Potential build issue due to duplicate labels in inline asm in
|
||||
set_interrupt_handler macro
|
||||
- RESOLVED: (Minor) BCD_DEVICE define in devicedefines.h now guarded by ifndef (caused issues
|
||||
with DFU test build configs.
|
||||
- RESOLVED: (Minor) String descriptor for Clock Selector unit incorrectly reported
|
||||
- CHANGE: HID report descriptor defines added to shared user_hid.h
|
||||
- CHANGE: Now uses module_adat_rx from sc_adat (local module_usb_audio_adat removed)
|
||||
|
||||
6.11.1
|
||||
------
|
||||
- ADDED: ADAT transmit functionality, including SMUX. See ADAT_TX and ADAT_TX_INDEX.
|
||||
- RESOLVED: Build issue with CODEC_MASTER (xCore is I2S slave) enabled
|
||||
- RESOLVED: Channel ordering issue in when TDM and CODEC_MASTER mode enabled
|
||||
- RESOLVED: DFU fails when SPDIF_RX enabled due to clock block being shared between SPDIF
|
||||
- RESOLVED: (Normal) Build issue with CODEC_MASTER (xCore is I2S slave) enabled
|
||||
- RESOLVED: (Minor) Channel ordering issue in when TDM and CODEC_MASTER mode enabled
|
||||
- RESOLVED: (Normal) DFU fails when SPDIF_RX enabled due to clock block being shared between SPDIF
|
||||
core and FlashLib
|
||||
|
||||
6.11.0
|
||||
|
||||
@@ -219,109 +219,85 @@ static inline void TransferAdatTxSamples(chanend c_adat_out, const unsigned samp
|
||||
static inline unsigned DoSampleTransfer(chanend c_out, int readBuffNo, unsigned underflowWord)
|
||||
{
|
||||
unsigned command;
|
||||
unsigned underflow;
|
||||
|
||||
outuint(c_out, 0);
|
||||
outuint(c_out, underflowWord);
|
||||
|
||||
/* Check for sample freq change (or other command) or new samples from mixer*/
|
||||
if(testct(c_out))
|
||||
{
|
||||
unsigned command = inct(c_out);
|
||||
/* Check for sample freq change (or other command) or new samples from mixer*/
|
||||
if(testct(c_out))
|
||||
{
|
||||
unsigned command = inct(c_out);
|
||||
#ifndef CODEC_MASTER
|
||||
// Set clocks low
|
||||
p_lrclk <: 0;
|
||||
p_bclk <: 0;
|
||||
// Set clocks low
|
||||
p_lrclk <: 0;
|
||||
p_bclk <: 0;
|
||||
#if(DSD_CHANS_DAC != 0)
|
||||
/* DSD Clock might not be shared with lrclk or bclk... */
|
||||
p_dsd_clk <: 0;
|
||||
p_dsd_clk <: 0;
|
||||
#endif
|
||||
#endif
|
||||
#if (DSD_CHANS_DAC > 0)
|
||||
if(dsdMode == DSD_MODE_DOP)
|
||||
dsdMode = DSD_MODE_OFF;
|
||||
if(dsdMode == DSD_MODE_DOP)
|
||||
dsdMode = DSD_MODE_OFF;
|
||||
#endif
|
||||
#pragma xta endpoint "received_command"
|
||||
return command;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
underflow = inuint(c_out);
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifndef MIXER // Interfaces straight to decouple()
|
||||
#if NUM_USB_CHAN_IN > 0
|
||||
#pragma loop unroll
|
||||
for(int i = 0; i < I2S_CHANS_ADC; i++)
|
||||
{
|
||||
if(readBuffNo)
|
||||
outuint(c_out, samplesIn_1[i]);
|
||||
else
|
||||
outuint(c_out, samplesIn_0[i]);
|
||||
}
|
||||
/* Send over the digi channels - no odd buffering required */
|
||||
#pragma loop unroll
|
||||
for(int i = I2S_CHANS_ADC; i < NUM_USB_CHAN_IN; i++)
|
||||
{
|
||||
for(int i = 0; i < I2S_CHANS_ADC; i++)
|
||||
{
|
||||
if(readBuffNo)
|
||||
outuint(c_out, samplesIn_1[i]);
|
||||
else
|
||||
outuint(c_out, samplesIn_0[i]);
|
||||
}
|
||||
}
|
||||
/* Send over the digi channels - no odd buffering required */
|
||||
#pragma loop unroll
|
||||
for(int i = I2S_CHANS_ADC; i < NUM_USB_CHAN_IN; i++)
|
||||
{
|
||||
outuint(c_out, samplesIn_0[i]);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if NUM_USB_CHAN_OUT > 0
|
||||
if(underflow)
|
||||
{
|
||||
#pragma loop unroll
|
||||
for(int i = 0; i < NUM_USB_CHAN_OUT; i++)
|
||||
{
|
||||
samplesOut[i] = underflowWord;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
#pragma loop unroll
|
||||
for(int i = 0; i < NUM_USB_CHAN_OUT; i++)
|
||||
{
|
||||
samplesOut[i] = inuint(c_out);
|
||||
}
|
||||
}
|
||||
for(int i = 0; i < NUM_USB_CHAN_OUT; i++)
|
||||
{
|
||||
samplesOut[i] = inuint(c_out);
|
||||
}
|
||||
#endif
|
||||
#else /* ifndef MIXER */
|
||||
#if NUM_USB_CHAN_OUT > 0
|
||||
if(underflow)
|
||||
{
|
||||
for(int i = 0; i < NUM_USB_CHAN_OUT; i++)
|
||||
{
|
||||
samplesOut[i] = underflowWord;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
#pragma loop unroll
|
||||
for(int i = 0; i < NUM_USB_CHAN_OUT; i++)
|
||||
{
|
||||
int tmp = inuint(c_out);
|
||||
samplesOut[i] = tmp;
|
||||
}
|
||||
}
|
||||
for(int i = 0; i < NUM_USB_CHAN_OUT; i++)
|
||||
{
|
||||
int tmp = inuint(c_out);
|
||||
samplesOut[i] = tmp;
|
||||
}
|
||||
#endif
|
||||
#if NUM_USB_CHAN_IN > 0
|
||||
#pragma loop unroll
|
||||
for(int i = 0; i < I2S_CHANS_ADC; i++)
|
||||
{
|
||||
if(readBuffNo)
|
||||
outuint(c_out, samplesIn_1[i]);
|
||||
else
|
||||
outuint(c_out, samplesIn_0[i]);
|
||||
}
|
||||
/* Send over the digi channels - no odd buffering required */
|
||||
#pragma loop unroll
|
||||
for(int i = I2S_CHANS_ADC; i < NUM_USB_CHAN_IN; i++)
|
||||
{
|
||||
for(int i = 0; i < I2S_CHANS_ADC; i++)
|
||||
{
|
||||
if(readBuffNo)
|
||||
outuint(c_out, samplesIn_1[i]);
|
||||
else
|
||||
outuint(c_out, samplesIn_0[i]);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
/* Send over the digi channels - no odd buffering required */
|
||||
#pragma loop unroll
|
||||
for(int i = I2S_CHANS_ADC; i < NUM_USB_CHAN_IN; i++)
|
||||
{
|
||||
outuint(c_out, samplesIn_0[i]);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
@@ -453,9 +429,6 @@ unsigned static deliver(chanend c_out, chanend ?c_spd_out,
|
||||
|
||||
#if (I2S_CHANS_ADC != 0) || defined(SPDIF)
|
||||
unsigned sample;
|
||||
#endif
|
||||
unsigned underflow = 0;
|
||||
#if NUM_USB_CHAN_OUT > 0
|
||||
#endif
|
||||
//#if NUM_USB_CHAN_IN > 0
|
||||
/* Since DAC and ADC buffered ports off by one sample we buffer previous ADC frame */
|
||||
|
||||
@@ -479,8 +479,9 @@
|
||||
*
|
||||
* Default: XMOS USB Audio Release version (e.g. 0x0651 for 6.5.1).
|
||||
*/
|
||||
#ifndef BCD_DEVICE
|
||||
#define BCD_DEVICE ((BCD_DEVICE_J << 8) | ((BCD_DEVICE_M & 0xF) << 4) | (BCD_DEVICE_N & 0xF))
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Number of supported output stream formats.
|
||||
|
||||
@@ -945,7 +945,7 @@ USB_Config_Descriptor_Audio2_t cfgDesc_Audio2=
|
||||
ID_CLKSRC_ADAT, /* baCSourceID */
|
||||
#endif
|
||||
.bmControl = 0x03,
|
||||
.iClockSelector = 13, /* TODO Shoudn't be hard-coded */
|
||||
.iClockSelector = offsetof(StringDescTable_t, clockSelectorStr)/sizeof(char *),
|
||||
},
|
||||
|
||||
#if (NUM_USB_CHAN_OUT > 0)
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef ADAT_RX
|
||||
#include "adatreceiver.h"
|
||||
#include "adat_rx.h"
|
||||
#endif
|
||||
|
||||
#include "clocking.h"
|
||||
|
||||
@@ -201,9 +201,8 @@ static inline void GiveSamplesToHost(chanend c, xc_ptr ptr, xc_ptr multIn)
|
||||
}
|
||||
|
||||
#pragma unsafe arrays
|
||||
static inline void GetSamplesFromHost(chanend c, unsigned underflow)
|
||||
static inline void GetSamplesFromHost(chanend c)
|
||||
{
|
||||
if(!underflow)
|
||||
{
|
||||
#pragma loop unroll
|
||||
for (int i=0; i<NUM_USB_CHAN_OUT; i++)
|
||||
@@ -245,11 +244,8 @@ static inline void GetSamplesFromHost(chanend c, unsigned underflow)
|
||||
}
|
||||
|
||||
#pragma unsafe arrays
|
||||
static inline void GiveSamplesToDevice(chanend c, xc_ptr ptr, xc_ptr multOut, unsigned underflow)
|
||||
static inline void GiveSamplesToDevice(chanend c, xc_ptr ptr, xc_ptr multOut)
|
||||
{
|
||||
outuint(c, underflow);
|
||||
|
||||
if(!underflow)
|
||||
{
|
||||
#pragma loop unroll
|
||||
for (int i=0; i<NUM_USB_CHAN_OUT; i++)
|
||||
@@ -354,20 +350,16 @@ static void mixer1(chanend c_host, chanend c_mix_ctl, chanend c_mixer2)
|
||||
int mixed;
|
||||
#endif
|
||||
unsigned cmd;
|
||||
|
||||
unsigned underflow = 1;
|
||||
unsigned request = 0;
|
||||
|
||||
while (1)
|
||||
{
|
||||
#pragma xta endpoint "mixer1_req"
|
||||
/* Request from audio() */
|
||||
inuint(c_mixer2);
|
||||
/* Request from audio()/mixer2() */
|
||||
request = inuint(c_mixer2);
|
||||
|
||||
GiveSamplesToDevice(c_mixer2, samples_to_device_map, multOut, underflow);
|
||||
GetSamplesFromDevice(c_mixer2);
|
||||
|
||||
/* Request data from decouple thread */
|
||||
outuint(c_host, 0);
|
||||
/* Forward on Request for data to decouple thread */
|
||||
outuint(c_host, request);
|
||||
|
||||
/* Between request to decouple and respose ~ 400nS latency for interrupt to fire */
|
||||
select
|
||||
@@ -504,9 +496,6 @@ static void mixer1(chanend c_host, chanend c_mix_ctl, chanend c_mixer2)
|
||||
sampFreq = inuint(c_host);
|
||||
mixer1_mix2_flag = sampFreq > 96000;
|
||||
|
||||
/* Wait for request */
|
||||
inuint(c_mixer2);
|
||||
|
||||
/* Inform mixer2 (or audio()) about freq change */
|
||||
outct(c_mixer2, command);
|
||||
outuint(c_mixer2, sampFreq);
|
||||
@@ -515,9 +504,6 @@ static void mixer1(chanend c_host, chanend c_mix_ctl, chanend c_mixer2)
|
||||
case SET_STREAM_FORMAT_OUT:
|
||||
case SET_STREAM_FORMAT_IN:
|
||||
|
||||
/* Wait for request */
|
||||
inuint(c_mixer2);
|
||||
|
||||
/* Inform mixer2 (or audio()) about format change */
|
||||
outct(c_mixer2, command);
|
||||
outuint(c_mixer2, inuint(c_host));
|
||||
@@ -545,14 +531,14 @@ static void mixer1(chanend c_host, chanend c_mix_ctl, chanend c_mixer2)
|
||||
}
|
||||
else
|
||||
{
|
||||
underflow = inuint(c_host);
|
||||
inuint(c_host);
|
||||
#if MAX_MIX_COUNT > 0
|
||||
outuint(c_mixer2, underflow);
|
||||
outuint(c_mixer2, 0);
|
||||
GiveSamplesToHost(c_host, samples_to_host_map, multIn);
|
||||
|
||||
outuint(c_mixer2, 0);
|
||||
inuint(c_mixer2);
|
||||
GetSamplesFromHost(c_host, underflow);
|
||||
GetSamplesFromHost(c_host);
|
||||
outuint(c_mixer2, 0);
|
||||
inuint(c_mixer2);
|
||||
#ifdef FAST_MIXER
|
||||
@@ -612,9 +598,10 @@ static void mixer1(chanend c_host, chanend c_mix_ctl, chanend c_mixer2)
|
||||
}
|
||||
#else /* IF MAX_MIX_COUNT > 0 */
|
||||
/* No mixes, this thread runs on its own doing just volume */
|
||||
|
||||
GiveSamplesToDevice(c_mixer2, samples_to_device_map, multOut);
|
||||
GetSamplesFromDevice(c_mixer2);
|
||||
GiveSamplesToHost(c_host, samples_to_host_map, multIn);
|
||||
GetSamplesFromHost(c_host, underflow);
|
||||
GetSamplesFromHost(c_host);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -627,13 +614,16 @@ static int mixer2_mix2_flag = (DEFAULT_FREQ > 96000);
|
||||
static void mixer2(chanend c_mixer1, chanend c_audio)
|
||||
{
|
||||
int mixed;
|
||||
unsigned underflow = 0;
|
||||
unsigned request;
|
||||
|
||||
while (1)
|
||||
{
|
||||
outuint(c_mixer1, 0);
|
||||
#pragma xta endpoint "mixer2_req"
|
||||
inuint(c_audio);
|
||||
request = inuint(c_audio);
|
||||
|
||||
/* Forward the request on */
|
||||
outuint(c_mixer1, request);
|
||||
|
||||
if(testct(c_mixer1))
|
||||
{
|
||||
int sampFreq;
|
||||
@@ -678,8 +668,8 @@ static void mixer2(chanend c_mixer1, chanend c_audio)
|
||||
}
|
||||
else
|
||||
{
|
||||
underflow = inuint(c_mixer1);
|
||||
GiveSamplesToDevice(c_audio, samples_to_device_map, multOut, underflow);
|
||||
(void) inuint(c_mixer1);
|
||||
GiveSamplesToDevice(c_audio, samples_to_device_map, multOut);
|
||||
inuint(c_mixer1);
|
||||
outuint(c_mixer1, 0);
|
||||
GetSamplesFromDevice(c_audio);
|
||||
|
||||
@@ -27,8 +27,6 @@
|
||||
#define CLKBLK_USB_RST XS1_CLKBLK_4 /* Clock block passed into L/G series XUD */
|
||||
#define CLKBLK_FLASHLIB XS1_CLKBLK_5 /* Clock block for use by flash lib */
|
||||
|
||||
/* #define CLKBLK_SPDIF_TX XS1_CLKBLK_1 */
|
||||
/* #define CLKBLK_MCLK XS1_CLKBLK_2 */
|
||||
#define CLKBLK_I2S_BIT XS1_CLKBLK_3
|
||||
|
||||
#else
|
||||
@@ -44,11 +42,8 @@
|
||||
/* use REF for ADAT_RX on U-series */
|
||||
/* #define CLKBLK_ADAT_RX XS1_CLKBLK_3 */
|
||||
/* Note, U-series XUD uses clock blocks 4 and 5 - see XUD_Ports.xc */
|
||||
#define CLKBLK_FLASHLIB XS1_CLKBLK_5 /* Clock block for use by flash lib */
|
||||
|
||||
//#define CLKBLK_FLASHLIB XS1_CLKBLK_5 /* Clock block for use by flash lib */
|
||||
|
||||
/* #define CLKBLK_SPDIF_TX XS1_CLKBLK_1 */
|
||||
/* #define CLKBLK_MCLK XS1_CLKBLK_2 */
|
||||
#define CLKBLK_I2S_BIT XS1_CLKBLK_3
|
||||
#endif
|
||||
|
||||
|
||||
@@ -129,10 +129,9 @@ void handle_audio_request(chanend c_mix_out)
|
||||
int space_left;
|
||||
|
||||
/* Input word that triggered interrupt and handshake back */
|
||||
(void) inuint(c_mix_out);
|
||||
|
||||
/* Reply with underflow */
|
||||
outuint(c_mix_out, outUnderflow);
|
||||
unsigned underflowSample = inuint(c_mix_out);
|
||||
|
||||
outuint(c_mix_out, 0);
|
||||
|
||||
/* If in overflow condition then receive samples and throw away */
|
||||
if(inOverflow || sampsToWrite == 0)
|
||||
@@ -176,7 +175,7 @@ __builtin_unreachable();
|
||||
int mult;
|
||||
int h;
|
||||
unsigned l;
|
||||
asm("ldw %0, %1[%2]":"=r"(mult):"r"(p_multIn),"r"(i));
|
||||
asm volatile("ldw %0, %1[%2]":"=r"(mult):"r"(p_multIn),"r"(i));
|
||||
{h, l} = macs(mult, sample, 0, 0);
|
||||
sample = h << 3;
|
||||
|
||||
@@ -207,7 +206,7 @@ __builtin_unreachable();
|
||||
int mult;
|
||||
int h;
|
||||
unsigned l;
|
||||
asm("ldw %0, %1[%2]":"=r"(mult):"r"(p_multIn),"r"(i));
|
||||
asm volatile("ldw %0, %1[%2]":"=r"(mult):"r"(p_multIn),"r"(i));
|
||||
{h, l} = macs(mult, sample, 0, 0);
|
||||
sample = h << 3;
|
||||
#if (STREAM_FORMAT_INPUT_RESOLUTION_32BIT_USED == 1)
|
||||
@@ -240,7 +239,7 @@ __builtin_unreachable();
|
||||
int mult;
|
||||
int h;
|
||||
unsigned l;
|
||||
asm("ldw %0, %1[%2]":"=r"(mult):"r"(p_multIn),"r"(i));
|
||||
asm volatile("ldw %0, %1[%2]":"=r"(mult):"r"(p_multIn),"r"(i));
|
||||
{h, l} = macs(mult, sample, 0, 0);
|
||||
sample = h << 3;
|
||||
#endif
|
||||
@@ -290,21 +289,11 @@ __builtin_unreachable();
|
||||
if(outUnderflow)
|
||||
{
|
||||
#pragma xta endpoint "out_underflow"
|
||||
#if 0
|
||||
/* We're still pre-buffering, send out 0 samps */
|
||||
for(int i = 0; i < NUM_USB_CHAN_OUT; i++)
|
||||
{
|
||||
unsigned sample;
|
||||
unsigned mode;
|
||||
GET_SHARED_GLOBAL(sample, g_muteSample);
|
||||
GET_SHARED_GLOBAL(mode, dsdMode);
|
||||
|
||||
if(mode == DSD_MODE_DOP)
|
||||
outuint(c_mix_out, 0xFA969600);
|
||||
else
|
||||
outuint(c_mix_out, sample);
|
||||
outuint(c_mix_out, underflowSample);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Calc how many samples left in buffer */
|
||||
outSamps = g_aud_from_host_wrptr - g_aud_from_host_rdptr;
|
||||
@@ -343,7 +332,7 @@ __builtin_unreachable();
|
||||
sample <<= 16;
|
||||
|
||||
#if (OUTPUT_VOLUME_CONTROL == 1) && !defined(OUT_VOLUME_IN_MIXER)
|
||||
asm("ldw %0, %1[%2]":"=r"(mult):"r"(p_multOut),"r"(i));
|
||||
asm volatile("ldw %0, %1[%2]":"=r"(mult):"r"(p_multOut),"r"(i));
|
||||
{h, l} = macs(mult, sample, 0, 0);
|
||||
/* Note, in 2 byte subslot mode - ignore lower result of macs */
|
||||
h <<= 3;
|
||||
@@ -371,7 +360,7 @@ __builtin_unreachable();
|
||||
g_aud_from_host_rdptr+=4;
|
||||
|
||||
#if (OUTPUT_VOLUME_CONTROL == 1) && !defined(OUT_VOLUME_IN_MIXER)
|
||||
asm("ldw %0, %1[%2]":"=r"(mult):"r"(p_multOut),"r"(i));
|
||||
asm volatile("ldw %0, %1[%2]":"=r"(mult):"r"(p_multOut),"r"(i));
|
||||
{h, l} = macs(mult, sample, 0, 0);
|
||||
h <<= 3;
|
||||
#if (STREAM_FORMAT_OUTPUT_RESOLUTION_32BIT_USED == 1)
|
||||
@@ -426,7 +415,7 @@ __builtin_unreachable();
|
||||
unpackState++;
|
||||
|
||||
#if (OUTPUT_VOLUME_CONTROL == 1) && !defined(OUT_VOLUME_IN_MIXER)
|
||||
asm("ldw %0, %1[%2]":"=r"(mult):"r"(p_multOut),"r"(i));
|
||||
asm volatile("ldw %0, %1[%2]":"=r"(mult):"r"(p_multOut),"r"(i));
|
||||
{h, l} = macs(mult, sample, 0, 0);
|
||||
h <<= 3;
|
||||
outuint(c_mix_out, h);
|
||||
@@ -476,7 +465,7 @@ __builtin_unreachable();
|
||||
}
|
||||
|
||||
/* Get feedback val - ideally this would be syncronised */
|
||||
asm("ldw %0, dp[g_speed]" : "=r" (speed) :);
|
||||
asm volatile("ldw %0, dp[g_speed]" : "=r" (speed) :);
|
||||
|
||||
/* Calc packet size to send back based on our fb */
|
||||
speedRem += speed;
|
||||
@@ -587,7 +576,7 @@ static inline void SetupZerosSendBuffer(XUD_ep aud_to_host_usb_ep, unsigned samp
|
||||
|
||||
mid *= g_numUsbChan_In * slotSize;
|
||||
|
||||
asm("stw %0, %1[0]"::"r"(mid),"r"(g_aud_to_host_zeros));
|
||||
asm volatile("stw %0, %1[0]"::"r"(mid),"r"(g_aud_to_host_zeros));
|
||||
|
||||
/* Mark EP ready with the zero buffer. Note this will simply update the packet size
|
||||
* if it is already ready */
|
||||
@@ -648,14 +637,14 @@ void decouple(chanend c_mix_out
|
||||
#ifndef OUT_VOLUME_IN_MIXER
|
||||
for (int i = 0; i < NUM_USB_CHAN_OUT + 1; i++)
|
||||
{
|
||||
asm("stw %0, %1[%2]"::"r"(MAX_VOL),"r"(p_multOut),"r"(i));
|
||||
asm volatile("stw %0, %1[%2]"::"r"(MAX_VOL),"r"(p_multOut),"r"(i));
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef IN_VOLUME_IN_MIXER
|
||||
for (int i = 0; i < NUM_USB_CHAN_IN + 1; i++)
|
||||
{
|
||||
asm("stw %0, %1[%2]"::"r"(MAX_VOL),"r"(p_multIn),"r"(i));
|
||||
asm volatile("stw %0, %1[%2]"::"r"(MAX_VOL),"r"(p_multIn),"r"(i));
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -751,7 +740,7 @@ void decouple(chanend c_mix_out
|
||||
chkct(c_mix_out, XS1_CT_END);
|
||||
|
||||
SET_SHARED_GLOBAL(g_freqChange, 0);
|
||||
asm("outct res[%0],%1"::"r"(buffer_aud_ctl_chan),"r"(XS1_CT_END));
|
||||
asm volatile("outct res[%0],%1"::"r"(buffer_aud_ctl_chan),"r"(XS1_CT_END));
|
||||
|
||||
ENABLE_INTERRUPTS();
|
||||
|
||||
@@ -795,7 +784,7 @@ void decouple(chanend c_mix_out
|
||||
}
|
||||
|
||||
SET_SHARED_GLOBAL(g_freqChange, 0);
|
||||
asm("outct res[%0],%1"::"r"(buffer_aud_ctl_chan),"r"(XS1_CT_END));
|
||||
asm volatile("outct res[%0],%1"::"r"(buffer_aud_ctl_chan),"r"(XS1_CT_END));
|
||||
|
||||
ENABLE_INTERRUPTS();
|
||||
}
|
||||
@@ -840,7 +829,7 @@ void decouple(chanend c_mix_out
|
||||
|
||||
/* Wait for handshake back */
|
||||
chkct(c_mix_out, XS1_CT_END);
|
||||
asm("outct res[%0],%1"::"r"(buffer_aud_ctl_chan),"r"(XS1_CT_END));
|
||||
asm volatile("outct res[%0],%1"::"r"(buffer_aud_ctl_chan),"r"(XS1_CT_END));
|
||||
|
||||
SET_SHARED_GLOBAL(g_freqChange, 0);
|
||||
ENABLE_INTERRUPTS();
|
||||
@@ -1000,7 +989,7 @@ void decouple(chanend c_mix_out
|
||||
{
|
||||
int p, len;
|
||||
GET_SHARED_GLOBAL(p, g_aud_to_host_buffer);
|
||||
asm("ldw %0, %1[0]":"=r"(len):"r"(p));
|
||||
asm volatile("ldw %0, %1[0]":"=r"(len):"r"(p));
|
||||
XUD_SetReady_InPtr(aud_to_host_usb_ep, p+4, len);
|
||||
}
|
||||
continue;
|
||||
|
||||
@@ -160,11 +160,11 @@
|
||||
#define set_interrupt_handler(f, nstackwords, args, c, ...) \
|
||||
asm (" .section .dp.data, \"adw\", @progbits\n" \
|
||||
" .align 4\n" \
|
||||
"__" #f "_kernel_stack:\n" \
|
||||
"__" #f "_kernel_stack%=:\n" \
|
||||
" .space " #nstackwords ", 0\n" \
|
||||
" .text\n"); \
|
||||
asm("mov r10, %0; ldaw r11, dp[__" #f "_kernel_stack];add r11, r11, r10;ldaw r10, sp[0]; "\
|
||||
"set sp,r11;stw r10, sp[0]; krestsp 0"::"r"(nstackwords-8):"r10","r11"); \
|
||||
" .text\n" \
|
||||
"mov r10, %0; ldaw r11, dp[__" #f "_kernel_stack%=];add r11, r11, r10;ldaw r10, sp[0]; "\
|
||||
"set sp,r11;stw r10, sp[0]; krestsp 0"::"r"(nstackwords-8):"r10","r11"); \
|
||||
store_args ## args(c, __VA_ARGS__) \
|
||||
do_interrupt_handler(f, args) \
|
||||
asm("ldap r11, __" #f "_handler; setv res[%0],r11"::"r"(c):"r11"); \
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
|
||||
|
||||
/* These defines relate to the HID report desc - do not mod */
|
||||
#define HID_CONTROL_PLAYPAUSE_SHIFT 0x01
|
||||
#define HID_CONTROL_NEXT_SHIFT 0x02
|
||||
#define HID_CONTROL_PREV_SHIFT 0x03
|
||||
#define HID_CONTROL_VOLUP_SHIFT 0x04
|
||||
#define HID_CONTROL_VOLDN_SHIFT 0x05
|
||||
#define HID_CONTROL_MUTE_SHIFT 0x06
|
||||
|
||||
void UserReadHIDButtons(unsigned char hidData[]);
|
||||
|
||||
|
||||
@@ -1,497 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<?fileVersion 4.0.0?>
|
||||
<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
|
||||
<cconfiguration id="com.xmos.cdt.toolchain.88274778">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.xmos.cdt.toolchain.88274778" moduleId="org.eclipse.cdt.core.settings" name="Default">
|
||||
<externalSettings />
|
||||
<extensions>
|
||||
<extension id="com.xmos.cdt.core.XEBinaryParser" point="org.eclipse.cdt.core.BinaryParser" />
|
||||
<extension id="com.xmos.cdt.core.XdeErrorParser" point="org.eclipse.cdt.core.ErrorParser" />
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser" />
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
|
||||
<buildTargets>
|
||||
<target name="all" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>xmake</buildCommand>
|
||||
<buildArguments> -f .makefile</buildArguments>
|
||||
<buildTarget>all</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
<target name="clean" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>xmake</buildCommand>
|
||||
<buildArguments> -f .makefile</buildArguments>
|
||||
<buildTarget>clean</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
</buildTargets>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration buildProperties="" description="" id="com.xmos.cdt.toolchain.88274778" name="Default" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.xmos.cdt.toolchain.88274778.1127281840" name="/" resourcePath="">
|
||||
<toolChain id = "com.xmos.cdt.toolchain.47341607" name="com.xmos.cdt.toolchain" superClass="com.xmos.cdt.toolchain">
|
||||
<targetPlatform archList="all" binaryParser="com.xmos.cdt.core.XEBinaryParser" id = "com.xmos.cdt.core.platform.90164448" isAbstract="false" osList="linux,win32,macosx" superClass="com.xmos.cdt.core.platform" />
|
||||
<builder arguments=" -f .makefile" id = "com.xmos.cdt.builder.base.76809194" keepEnvironmentInBuildfile="false" managedBuildOn="false" superClass="com.xmos.cdt.builder.base">
|
||||
<outputEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="outputPath" name="bin" />
|
||||
</outputEntries>
|
||||
</builder>
|
||||
<tool id = "com.xmos.cdt.xc.compiler.49455840" name="com.xmos.cdt.xc.compiler" superClass="com.xmos.cdt.xc.compiler">
|
||||
<option id = "com.xmos.c.compiler.option.defined.symbols.81996622" name="com.xmos.c.compiler.option.defined.symbols" superClass="com.xmos.c.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=11"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1111"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=11"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__MCPP=2"/>
|
||||
<listOptionValue builtIn="false" value="__XC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255U"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__DEC_EVAL_METHOD__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MANT_DIG__=7"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN_EXP__=(-95)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX_EXP__=96"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN__=1E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX__=9.999999E96DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_EPSILON__=1E-6DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_DEN__=0.000001E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MANT_DIG__=16"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN_EXP__=(-383)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX_EXP__=384"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN__=1E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX__=9.999999999999999E384DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_EPSILON__=1E-15DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_DEN__=0.000000000000001E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MANT_DIG__=34"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN_EXP__=(-6143)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX_EXP__=6144"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN__=1E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX__=9.999999999999999999999999999999999E6144DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_EPSILON__=1E-33DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_DEN__=0.000000000000000000000000000000001E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__REGISTER_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_GNU_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__BLOCKS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__ELF__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
<listOptionValue builtIn="false" value="__cplusplus=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUG__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_WEAK__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEPRECATED=1"/>
|
||||
<listOptionValue builtIn="false" value="__EXCEPTIONS=1"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_UNSIGNED__=1"/>
|
||||
</option>
|
||||
<option id = "com.xmos.xc.compiler.option.include.paths.38879463" name="com.xmos.xc.compiler.option.include.paths" superClass="com.xmos.xc.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/gcc""/>
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_usb_audio_adat/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_usb_audio_adat}"' />
|
||||
|
||||
</option>
|
||||
<inputType id = "com.xmos.cdt.xc.compiler.input.71179776" name="XC" superClass="com.xmos.cdt.xc.compiler.input"/>
|
||||
</tool>
|
||||
<tool id = "com.xmos.cdt.c.compiler.57348975" name="com.xmos.cdt.c.compiler" superClass="com.xmos.cdt.c.compiler">
|
||||
<option id = "com.xmos.c.compiler.option.defined.symbols.99056737" name="com.xmos.c.compiler.option.defined.symbols" superClass="com.xmos.c.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_VERSION__=199901L"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255U"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__DEC_EVAL_METHOD__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MANT_DIG__=7"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN_EXP__=(-95)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX_EXP__=96"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN__=1E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX__=9.999999E96DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_EPSILON__=1E-6DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_DEN__=0.000001E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MANT_DIG__=16"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN_EXP__=(-383)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX_EXP__=384"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN__=1E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX__=9.999999999999999E384DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_EPSILON__=1E-15DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_DEN__=0.000000000000001E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MANT_DIG__=34"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN_EXP__=(-6143)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX_EXP__=6144"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN__=1E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX__=9.999999999999999999999999999999999E6144DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_EPSILON__=1E-33DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_DEN__=0.000000000000000000000000000000001E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__REGISTER_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_STDC_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__BLOCKS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="__ELF__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=12"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=2"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1202"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=0"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
</option>
|
||||
<option id = "com.xmos.c.compiler.option.include.paths.41424664" name="com.xmos.c.compiler.option.include.paths" superClass="com.xmos.c.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/gcc""/>
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_usb_audio_adat/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_usb_audio_adat}"' />
|
||||
|
||||
</option>
|
||||
<inputType id = "com.xmos.cdt.c.compiler.input.c.12161256" name="C" superClass="com.xmos.cdt.c.compiler.input.c"/>
|
||||
</tool>
|
||||
<tool id = "com.xmos.cdt.cxx.compiler.90016111" name="com.xmos.cdt.cxx.compiler" superClass="com.xmos.cdt.cxx.compiler">
|
||||
<option id = "com.xmos.cxx.compiler.option.defined.symbols.49996190" name="com.xmos.cxx.compiler.option.defined.symbols" superClass="com.xmos.cxx.compiler.option.defined.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="__STDC__=1"/>
|
||||
<listOptionValue builtIn="false" value="__cplusplus=1"/>
|
||||
<listOptionValue builtIn="false" value="__STDC_HOSTED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUG__=4"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_MINOR__=2"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_PATCHLEVEL__=1"/>
|
||||
<listOptionValue builtIn="false" value="__llvm__=1"/>
|
||||
<listOptionValue builtIn="false" value="__SIZE_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__PTRDIFF_TYPE__=int"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__WINT_TYPE__=unsigned"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__UINTMAX_TYPE__=long"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_WEAK__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEPRECATED=1"/>
|
||||
<listOptionValue builtIn="false" value="__GXX_ABI_VERSION=1002"/>
|
||||
<listOptionValue builtIn="false" value="__SCHAR_MAX__=127"/>
|
||||
<listOptionValue builtIn="false" value="__SHRT_MAX__=32767"/>
|
||||
<listOptionValue builtIn="false" value="__INT_MAX__=2147483647"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_MAX__=2147483647L"/>
|
||||
<listOptionValue builtIn="false" value="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_MAX__=255U"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>
|
||||
<listOptionValue builtIn="false" value="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EVAL_METHOD__=0"/>
|
||||
<listOptionValue builtIn="false" value="__DEC_EVAL_METHOD__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_RADIX__=2"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MANT_DIG__=24"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DIG__=6"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_EXP__=(-125)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_EXP__=128"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX_10_EXP__=38"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MANT_DIG__=53"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DIG__=15"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_EXP__=1024"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX_10_EXP__=308"/>
|
||||
<listOptionValue builtIn="false" value="__DECIMAL_DIG__=17"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_DENORM__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_INFINITY__=1"/>
|
||||
<listOptionValue builtIn="false" value="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MANT_DIG__=7"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN_EXP__=(-95)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX_EXP__=96"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MIN__=1E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_MAX__=9.999999E96DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_EPSILON__=1E-6DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC32_DEN__=0.000001E-95DF"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MANT_DIG__=16"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN_EXP__=(-383)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX_EXP__=384"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MIN__=1E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_MAX__=9.999999999999999E384DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_EPSILON__=1E-15DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC64_DEN__=0.000000000000001E-383DD"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MANT_DIG__=34"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN_EXP__=(-6143)"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX_EXP__=6144"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MIN__=1E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_MAX__=9.999999999999999999999999999999999E6144DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_EPSILON__=1E-33DL"/>
|
||||
<listOptionValue builtIn="false" value="__DEC128_DEN__=0.000000000000000000000000000000001E-6143DL"/>
|
||||
<listOptionValue builtIn="false" value="__REGISTER_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__USER_LABEL_PREFIX__"/>
|
||||
<listOptionValue builtIn="false" value="__VERSION__="4.2.1"/>
|
||||
<listOptionValue builtIn="false" value="__GNUC_GNU_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__BLOCKS__=1"/>
|
||||
<listOptionValue builtIn="false" value="__NO_INLINE__=1"/>
|
||||
<listOptionValue builtIn="false" value="__FINITE_MATH_ONLY__=0"/>
|
||||
<listOptionValue builtIn="false" value="__CHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__WCHAR_UNSIGNED__=1"/>
|
||||
<listOptionValue builtIn="false" value="__XS1B__=1"/>
|
||||
<listOptionValue builtIn="false" value="__ELF__=1"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_YEAR=12"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MONTH=2"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MAJOR=1202"/>
|
||||
<listOptionValue builtIn="false" value="XCC_VERSION_MINOR=0"/>
|
||||
<listOptionValue builtIn="false" value="__XCC_HAVE_FLOAT__=1"/>
|
||||
</option>
|
||||
<option id = "com.xmos.cxx.compiler.option.include.paths.71736894" name="com.xmos.cxx.compiler.option.include.paths" superClass="com.xmos.cxx.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/gcc""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/c++/4.2.1""/>
|
||||
<listOptionValue builtIn="false" value=""${XMOS_TOOL_PATH}/target/include/c++/4.2.1/xcore-xmos-elf""/>
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_usb_audio_adat/src}"' />
|
||||
<listOptionValue builtIn="false" value='"${workspace_loc:/module_usb_audio_adat}"' />
|
||||
|
||||
</option>
|
||||
<inputType id = "com.xmos.cdt.cxx.compiler.input.cpp.69751" name="C++" superClass="com.xmos.cdt.cxx.compiler.input.cpp"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry excluding=".build_*" flags="VALUE_WORKSPACE_PATH|RESOLVED"
|
||||
kind="sourcePath" name="" />
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="" />
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="makefileGenerator">
|
||||
<runAction arguments="-E -P -v -dD" command="" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments='-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'' command="sh" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments='-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'' command="sh" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath="" />
|
||||
<parser enabled="true" />
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments='-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'' command="sh" useDefault="true" />
|
||||
<parser enabled="true" />
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings" />
|
||||
<storageModule moduleId="org.eclipse.cdt.core.language.mapping" />
|
||||
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings" />
|
||||
</cconfiguration>
|
||||
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id = "module_usb_audio_adat.null.87074855" name="module_usb_audio_adat" />
|
||||
</storageModule>
|
||||
</cproject>
|
||||
@@ -1,8 +0,0 @@
|
||||
all:
|
||||
@echo "** Module only - only builds as part of application **"
|
||||
|
||||
|
||||
clean:
|
||||
@echo "** Module only - only builds as part of application **"
|
||||
|
||||
|
||||
@@ -1,76 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>module_usb_audio_adat</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
<dictionary>
|
||||
<key>?children?</key>
|
||||
<value>?name?=outputEntries\|?children?=?name?=entry\\\\|\\|\||</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>?name?</key>
|
||||
<value></value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.append_environment</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildArguments</key>
|
||||
<value>CONFIG=Debug</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildCommand</key>
|
||||
<value>xmake</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
|
||||
<value>clean</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.contents</key>
|
||||
<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
|
||||
<value>false</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.stopOnError</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
|
||||
<value>false</value>
|
||||
</dictionary>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
<nature>com.xmos.cdt.core.XdeProjectNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><xproject><repository>sc_usb_audio</repository><partnum>XM-004720-SM</partnum></xproject>
|
||||
@@ -1,9 +0,0 @@
|
||||
ADAT Module for UAC2 MC Reference Design
|
||||
========================================
|
||||
|
||||
:scope: General Use
|
||||
:description: ADAT
|
||||
:keywords: ADAT
|
||||
:boards: XR-USB-AUDIO-20-MC
|
||||
|
||||
ADAT code
|
||||
@@ -1,27 +0,0 @@
|
||||
|
||||
/** ADAT Receive Thread (48kHz sample rate).
|
||||
*
|
||||
* \param p ADAT port - should be 1-bit and clocked at 100MHz
|
||||
* \param oChan channel on which decoded samples are output
|
||||
*
|
||||
* The function will return if it cannot lock onto a 44,100/48,000 Hz
|
||||
* signal. Normally the 48000 function is called in a while(1) loop. If
|
||||
* both 44,100 and 48,000 need to be supported, they should be called in
|
||||
* sequence in a while(1) loop. Note that the functions are large, and
|
||||
* that 44,100 should not be called if it does not need to be supported.
|
||||
**/
|
||||
void adatReceiver48000(buffered in port:32 p, chanend oChan);
|
||||
|
||||
/** ADAT Receive Thread (44.1kHz sample rate).
|
||||
*
|
||||
* \param p ADAT port - should be 1-bit and clocked at 100MHz
|
||||
* \param oChan channel on which decoded samples are output
|
||||
*
|
||||
* The function will return if it cannot lock onto a 44,100/48,000 Hz
|
||||
* signal. Normally the 48000 function is called in a while(1) loop. If
|
||||
* both 44,100 and 48,000 need to be supported, they should be called in
|
||||
* sequence in a while(1) loop. Note that the functions are large, and
|
||||
* that 44,100 should not be called if it does not need to be supported.
|
||||
**/
|
||||
|
||||
void adatReceiver44100(buffered in port:32 p, chanend oChan);
|
||||
@@ -1,947 +0,0 @@
|
||||
// GENERATED CODE - DO NOT EDIT
|
||||
// Comments are in the generator
|
||||
#include <xs1.h>
|
||||
#include <stdio.h>
|
||||
#pragma unsafe arrays
|
||||
void adatReceiver48000(buffered in port:32 p, chanend oChan) {
|
||||
const unsigned int mask = 0x80808080;
|
||||
unsigned compressed;
|
||||
unsigned nibble, word = 1, fourBits, data;
|
||||
int old, violation;
|
||||
unsigned int lookupCrcF[16] = {8, 9, 12, 13, 7, 6, 3, 2, 10, 11, 14, 15, 5, 4, 1, 0};
|
||||
unsigned int lookupNRTZ[32] = {0, 8, 12, 4, 6, 14, 10, 2, 3, 11, 15, 7, 5, 13, 9, 1,
|
||||
1, 9, 13, 5, 7, 15, 11, 3, 2, 10, 14, 6, 4, 12, 8, 0};
|
||||
for(int i = 0; i < 32; i++) { lookupNRTZ[i] <<= 4; }
|
||||
do {
|
||||
old = word; p :> word;
|
||||
} while (word != old || (word != 0 && word+1 != 0));
|
||||
while(1) {
|
||||
violation = word;
|
||||
p when pinsneq(violation) :> int _;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
outuint(oChan, nibble << 4 | 1);
|
||||
p :> word;
|
||||
fourBits = (word << 3) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = nibble << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 3) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 2) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 1) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 1) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 0) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 0) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
outuint(oChan, data);
|
||||
p :> word;
|
||||
fourBits = (word << 7) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
old = old | compressed << 1;
|
||||
p :> word;
|
||||
fourBits = (word << 7) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = nibble << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 6) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 6) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 5) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 5) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = (data | nibble) << 4;
|
||||
outuint(oChan, data);
|
||||
p :> word;
|
||||
fourBits = (word << 3) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = nibble << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 2) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 2) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 1) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 1) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 0) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 0) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = (data | nibble) << 4;
|
||||
outuint(oChan, data);
|
||||
p :> word;
|
||||
fourBits = (word << 7) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 7) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = nibble << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 6) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 6) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 5) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 3) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
outuint(oChan, data);
|
||||
p :> word;
|
||||
fourBits = (word << 3) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = nibble << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 2) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 2) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 1) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 1) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 0) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 0) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 7) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
outuint(oChan, data);
|
||||
p :> word;
|
||||
fourBits = (word << 7) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = nibble << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 6) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 5) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 5) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 3) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = (data | nibble) << 4;
|
||||
outuint(oChan, data);
|
||||
p :> word;
|
||||
fourBits = (word << 3) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 2) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = nibble << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 2) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 1) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 0) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 0) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 7) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 7) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
outuint(oChan, data);
|
||||
p :> word;
|
||||
fourBits = (word << 6) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = nibble << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 6) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 5) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 5) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 3) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 3) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
outuint(oChan, data);
|
||||
p :> word;
|
||||
if (word != 0 && word+1 != 0) return;
|
||||
}
|
||||
}
|
||||
|
||||
// GENERATED CODE - DO NOT EDIT
|
||||
// Comments are in the generator
|
||||
#include <xs1.h>
|
||||
#include <stdio.h>
|
||||
#pragma unsafe arrays
|
||||
void adatReceiver44100(buffered in port:32 p, chanend oChan) {
|
||||
const unsigned int mask = 0x80402010;
|
||||
unsigned compressed;
|
||||
unsigned nibble, word = 1, fourBits, data;
|
||||
int old, violation;
|
||||
unsigned int lookupCrcF[16] = {8, 12, 10, 14, 9, 13, 11, 15, 7, 3, 5, 1, 6, 2, 4, 0};
|
||||
unsigned int lookupNRTZ[32] = {0, 8, 12, 4, 6, 14, 10, 2, 3, 11, 15, 7, 5, 13, 9, 1,
|
||||
1, 9, 13, 5, 7, 15, 11, 3, 2, 10, 14, 6, 4, 12, 8, 0};
|
||||
for(int i = 0; i < 32; i++) { lookupNRTZ[i] <<= 4; }
|
||||
do {
|
||||
old = word; p :> word;
|
||||
} while (word != old || (word != 0 && word+1 != 0));
|
||||
while(1) {
|
||||
violation = word;
|
||||
p when pinsneq(violation) :> int _;
|
||||
p :> word;
|
||||
fourBits = (word << 2) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 6) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
outuint(oChan, nibble << 4 | 1);
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = nibble << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 0) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 5) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 2) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 7) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 1) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 5) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = (data | nibble) << 4;
|
||||
outuint(oChan, data);
|
||||
p :> word;
|
||||
fourBits = (word << 3) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = nibble << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 7) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 1) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 6) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
old = old | compressed << 1;
|
||||
p :> word;
|
||||
fourBits = (word << 3) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 0) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 5) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
outuint(oChan, data);
|
||||
p :> word;
|
||||
fourBits = (word << 2) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 7) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = nibble << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 1) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 5) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 3) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 7) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 1) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
outuint(oChan, data);
|
||||
p :> word;
|
||||
fourBits = (word << 6) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = nibble << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 3) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 0) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 2) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 6) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
old = old | compressed << 1;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 0) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = (data | nibble) << 4;
|
||||
outuint(oChan, data);
|
||||
p :> word;
|
||||
fourBits = (word << 5) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = nibble << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 2) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 7) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 1) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 5) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 3) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 7) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
outuint(oChan, data);
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 1) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = nibble << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 6) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 3) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 0) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 2) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 6) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
old = old | compressed << 1;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
outuint(oChan, data);
|
||||
p :> word;
|
||||
fourBits = (word << 1) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = nibble << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 5) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 3) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 7) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 1) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 6) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 3) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = (data | nibble) << 4;
|
||||
outuint(oChan, data);
|
||||
p :> word;
|
||||
fourBits = (word << 0) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = nibble << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
old = old | compressed << 1;
|
||||
p :> word;
|
||||
fourBits = (word << 2) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 6) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
nibble = lookupNRTZ[(old | (compressed << 3)) & 31];
|
||||
old = compressed >> 2;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 4) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 1)) & 31];
|
||||
old = compressed >> 4;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 0) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
old = compressed;
|
||||
p :> word;
|
||||
fourBits = (word << 5) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
compressed = compressed >> 1;
|
||||
nibble = lookupNRTZ[(old | (compressed << 4)) & 31];
|
||||
old = compressed >> 1;
|
||||
data = (data | nibble) << 4;
|
||||
p :> word;
|
||||
fourBits = (word << 2) & mask;
|
||||
crc32(fourBits, 0xf, 0xf);
|
||||
compressed = lookupCrcF[fourBits];
|
||||
nibble = lookupNRTZ[(old | (compressed << 2)) & 31];
|
||||
old = compressed >> 3;
|
||||
data = (data | nibble) << 4;
|
||||
outuint(oChan, data);
|
||||
p :> word;
|
||||
if (word != 0 && word+1 != 0) return;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user