Conflicted merge stable -> master

This commit is contained in:
Ross Owen
2016-04-05 14:45:41 +01:00
12 changed files with 64 additions and 105 deletions

View File

@@ -1,6 +1,10 @@
sc_usb_audio Change Log sc_usb_audio Change Log
======================= =======================
6.15.2
------
- RESOLVED: interrupt.h (used in audio buffering) now compatible with xCORE-200 ABI
6.15.1 6.15.1
------ ------
- RESOLVED: DAC data mis-alignment issue in TDM slave mode - RESOLVED: DAC data mis-alignment issue in TDM slave mode

View File

@@ -1,7 +1,7 @@
USB Audio Shared USB Audio Shared
................ ................
:Latest release: 6.15.1rc0 :Latest release: 6.15.2rc0
:Maintainer: xross :Maintainer: xross
:Description: USB Audio Shared Components. For use in the XMOS USB Audio Refererence Designs. :Description: USB Audio Shared Components. For use in the XMOS USB Audio Refererence Designs.

View File

@@ -156,7 +156,8 @@
<option id = "com.xmos.xc.compiler.option.include.paths.23684077" name="com.xmos.xc.compiler.option.include.paths" superClass="com.xmos.xc.compiler.option.include.paths" valueType="includePath"> <option id = "com.xmos.xc.compiler.option.include.paths.23684077" name="com.xmos.xc.compiler.option.include.paths" superClass="com.xmos.xc.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/>
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/host/xmos_dfu_osx}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/.settings}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/host/xmos_dfu_osx}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/host}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/host}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/src}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu}&quot;' />
@@ -271,7 +272,8 @@
<option id = "com.xmos.c.compiler.option.include.paths.18653743" name="com.xmos.c.compiler.option.include.paths" superClass="com.xmos.c.compiler.option.include.paths" valueType="includePath"> <option id = "com.xmos.c.compiler.option.include.paths.18653743" name="com.xmos.c.compiler.option.include.paths" superClass="com.xmos.c.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/>
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/host/xmos_dfu_osx}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/.settings}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/host/xmos_dfu_osx}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/host}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/host}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/src}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu}&quot;' />
@@ -392,7 +394,8 @@
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/>
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/c++/4.2.1&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/c++/4.2.1&quot;"/>
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/c++/4.2.1/xcore-xmos-elf&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/c++/4.2.1/xcore-xmos-elf&quot;"/>
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/host/xmos_dfu_osx}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/.settings}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/host/xmos_dfu_osx}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/host}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/host}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/src}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_dfu}&quot;' />

View File

@@ -156,7 +156,8 @@
<option id = "com.xmos.xc.compiler.option.include.paths.84748440" name="com.xmos.xc.compiler.option.include.paths" superClass="com.xmos.xc.compiler.option.include.paths" valueType="includePath"> <option id = "com.xmos.xc.compiler.option.include.paths.84748440" name="com.xmos.xc.compiler.option.include.paths" superClass="com.xmos.xc.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/>
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/src}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/.settings}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue}&quot;' />
</option> </option>
@@ -269,7 +270,8 @@
<option id = "com.xmos.c.compiler.option.include.paths.1482631" name="com.xmos.c.compiler.option.include.paths" superClass="com.xmos.c.compiler.option.include.paths" valueType="includePath"> <option id = "com.xmos.c.compiler.option.include.paths.1482631" name="com.xmos.c.compiler.option.include.paths" superClass="com.xmos.c.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/>
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/src}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/.settings}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue}&quot;' />
</option> </option>
@@ -388,7 +390,8 @@
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/>
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/c++/4.2.1&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/c++/4.2.1&quot;"/>
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/c++/4.2.1/xcore-xmos-elf&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/c++/4.2.1/xcore-xmos-elf&quot;"/>
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/src}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/.settings}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue}&quot;' />
</option> </option>

View File

@@ -156,7 +156,8 @@
<option id = "com.xmos.xc.compiler.option.include.paths.75459587" name="com.xmos.xc.compiler.option.include.paths" superClass="com.xmos.xc.compiler.option.include.paths" valueType="includePath"> <option id = "com.xmos.xc.compiler.option.include.paths.75459587" name="com.xmos.xc.compiler.option.include.paths" superClass="com.xmos.xc.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/>
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/audiostream}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/.settings}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/audiostream}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/clocking}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/clocking}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/endpoint0}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/endpoint0}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/hostactive}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/hostactive}&quot;' />
@@ -280,7 +281,8 @@
<option id = "com.xmos.c.compiler.option.include.paths.26873840" name="com.xmos.c.compiler.option.include.paths" superClass="com.xmos.c.compiler.option.include.paths" valueType="includePath"> <option id = "com.xmos.c.compiler.option.include.paths.26873840" name="com.xmos.c.compiler.option.include.paths" superClass="com.xmos.c.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/>
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/audiostream}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/.settings}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/audiostream}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/clocking}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/clocking}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/endpoint0}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/endpoint0}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/hostactive}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/hostactive}&quot;' />
@@ -410,7 +412,8 @@
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/>
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/c++/4.2.1&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/c++/4.2.1&quot;"/>
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/c++/4.2.1/xcore-xmos-elf&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/c++/4.2.1/xcore-xmos-elf&quot;"/>
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/audiostream}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/.settings}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/audiostream}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/clocking}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/clocking}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/endpoint0}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/endpoint0}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/hostactive}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_audio/hostactive}&quot;' />

View File

@@ -1098,7 +1098,7 @@ chanend ?c_config, chanend ?c
null, null,
p_dsd_clk, p_dsd_clk,
#endif #endif
divide, dsdMode); divide, curSamFreq, dsdMode);
} }
else else
#endif #endif
@@ -1122,7 +1122,7 @@ chanend ?c_config, chanend ?c
p_bclk, p_bclk,
#endif #endif
#endif #endif
divide, dsdMode); divide, curSamFreq, dsdMode);
} }

View File

@@ -43,7 +43,7 @@ void ConfigAudioPortsWrapper(
port p_lrclk, port p_lrclk,
port p_bclk, port p_bclk,
#endif #endif
unsigned int divide, unsigned int dsdMode) unsigned int divide, unsigned curSamFreq, unsigned int dsdMode)
{ {
ConfigAudioPorts( ConfigAudioPorts(
#if (I2S_CHANS_DAC != 0) || (DSD_CHANS_DAC != 0) #if (I2S_CHANS_DAC != 0) || (DSD_CHANS_DAC != 0)
@@ -56,5 +56,5 @@ unsigned int divide, unsigned int dsdMode)
#endif #endif
p_lrclk, p_lrclk,
p_bclk, p_bclk,
divide); divide, curSamFreq);
} }

View File

@@ -26,7 +26,7 @@ void ConfigAudioPorts(
in port p_bclk, in port p_bclk,
#endif #endif
#endif #endif
unsigned int divide); unsigned int divide, unsigned int curSamFreq);
#else #else
void ConfigAudioPorts( void ConfigAudioPorts(
@@ -49,7 +49,7 @@ void ConfigAudioPorts(
port p_bclk, port p_bclk,
#endif #endif
#endif #endif
unsigned int divide); unsigned int divide, unsigned int curSamFreq);
#endif /* __XC__*/ #endif /* __XC__*/
@@ -74,7 +74,7 @@ void ConfigAudioPortsWrapper(
in port p_bclk, in port p_bclk,
#endif #endif
#endif #endif
unsigned int divide, unsigned int dsdMode); unsigned int divide, unsigned curSamFreq, unsigned int dsdMode);
#else #else
void ConfigAudioPortsWrapper( void ConfigAudioPortsWrapper(
@@ -90,7 +90,7 @@ void ConfigAudioPortsWrapper(
port p_lrclk, port p_lrclk,
port p_bclk, port p_bclk,
#endif #endif
unsigned int divide, unsigned int dsdMode); unsigned int divide, unsigned curSamFreq, unsigned int dsdMode);
#endif /* __XC__*/ #endif /* __XC__*/

View File

@@ -28,7 +28,7 @@ void ConfigAudioPorts(
in port p_bclk, in port p_bclk,
#endif #endif
#endif #endif
unsigned int divide) unsigned int divide, unsigned curSamFreq)
{ {
#if !defined(CODEC_MASTER) #if !defined(CODEC_MASTER)
/* Note this call to stop_clock() will pause forever if the port clocking the clock-block is not low. /* Note this call to stop_clock() will pause forever if the port clocking the clock-block is not low.
@@ -116,6 +116,18 @@ unsigned int divide)
/* Clock bclk clock-block from bclk pin */ /* Clock bclk clock-block from bclk pin */
configure_clock_src(clk_audio_bclk, p_bclk); configure_clock_src(clk_audio_bclk, p_bclk);
/* Do some clocking shifting to get data in the valid window */
/* E.g. Only shift when running at 88.2+ kHz TDM slave */
int bClkDelay_fall = 0;
if(curSamFreq * I2S_CHANS_PER_FRAME * 32 >= 20000000)
{
/* 18 * 2ns = 36ns. This results in a -4ns (36 - 40) shift at 96KHz and -8ns (36 - 44) at 88.4KHz */
bClkDelay_fall = 18;
}
set_clock_fall_delay(clk_audio_bclk, bClkDelay_fall);
#if (I2S_CHANS_DAC != 0) #if (I2S_CHANS_DAC != 0)
/* Clock I2S output data ports from b-clock clock block */ /* Clock I2S output data ports from b-clock clock block */
for(int i = 0; i < I2S_WIRES_DAC; i++) for(int i = 0; i < I2S_WIRES_DAC; i++)

View File

@@ -2,16 +2,16 @@
#define __interrupt_h__ #define __interrupt_h__
#define store_args0(c) \ #define store_args0(c) \
asm("kentsp 19; stw %0, sp[1]; krestsp 19"::"r"(c)); asm("kentsp 20; stw %0, sp[1]; krestsp 20"::"r"(c));
#define store_args1(c,x) \ #define store_args1(c,x) \
asm("kentsp 20; stw %0, sp[1]; stw %1, sp[2]; krestsp 20"::"r"(c),"r"(x)); asm("kentsp 20; stw %0, sp[1]; stw %1, sp[2]; krestsp 20"::"r"(c),"r"(x));
#define store_args2(c,x0,x1) \ #define store_args2(c,x0,x1) \
asm("kentsp 21; stw %0, sp[1];" \ asm("kentsp 22; stw %0, sp[1];" \
"stw %1, sp[2];" \ "stw %1, sp[2];" \
"stw %2, sp[3];" \ "stw %2, sp[3];" \
" krestsp 21"::"r"(c),"r"(x0),"r"(x1)); " krestsp 22"::"r"(c),"r"(x0),"r"(x1));
#define store_args3(c,x0,x1,x2) \ #define store_args3(c,x0,x1,x2) \
asm("kentsp 22; stw %0, sp[1];" \ asm("kentsp 22; stw %0, sp[1];" \
@@ -20,63 +20,6 @@
"stw %3, sp[4];" \ "stw %3, sp[4];" \
" krestsp 22"::"r"(c),"r"(x0),"r"(x1),"r"(x2)); " krestsp 22"::"r"(c),"r"(x0),"r"(x1),"r"(x2));
#define store_args4(c,x0,x1,x2,x3) \
asm("kentsp 23; stw %4, sp[1];" \
"stw %0, sp[2];" \
"stw %1, sp[3];" \
"stw %2, sp[4];" \
"stw %3, sp[5];" \
" krestsp 23"::"r"(c),"r"(x0),"r"(x1),"r"(x2),"r"(x3));
#define store_args5(c,x0,x1,x2,x3,x4) \
asm("kentsp 24;" \
"stw %4, sp[1];" \
"stw %5, sp[2];" \
"stw %0, sp[3];" \
"stw %1, sp[4];" \
"stw %2, sp[5];" \
"stw %3, sp[6];" \
" krestsp 24"::"r"(c),"r"(x0),"r"(x1),"r"(x2),"r"(x3),"r"(x4));
#define store_args6(c,x0,x1,x2,x3,x4,x5) \
asm("kentsp 25;" \
"stw %4, sp[1];" \
"stw %5, sp[2];" \
"stw %6, sp[3];" \
"stw %0, sp[4];" \
"stw %1, sp[5];" \
"stw %2, sp[6];" \
"stw %3, sp[7];" \
" krestsp 25"::"r"(c),"r"(x0),"r"(x1),"r"(x2),"r"(x3),"r"(x4),"r"(x5));
#define store_args7(c,x0,x1,x2,x3,x4,x5,x6) \
asm("kentsp 26;" \
"stw %4, sp[1];" \
"stw %5, sp[2];" \
"stw %6, sp[3];" \
"stw %7, sp[4];" \
"stw %0, sp[5];" \
"stw %1, sp[6];" \
"stw %2, sp[7];" \
"stw %3, sp[8];" \
" krestsp 26"::"r"(c),"r"(x0),"r"(x1),"r"(x2),"r"(x3),"r"(x4),"r"(x5),"r"(x6));
#define store_args8(c,x0,x1,x2,x3,x4,x5,x6,x7) \
asm("kentsp 27;" \
"stw %4, sp[1];" \
"stw %5, sp[2];" \
"stw %6, sp[3];" \
"stw %7, sp[4];" \
"stw %8, sp[5];" \
"stw %0, sp[6];" \
"stw %1, sp[7];" \
"stw %2, sp[8];" \
"stw %3, sp[9];" \
" krestsp 27"::"r"(c),"r"(x0),"r"(x1),"r"(x2),"r"(x3),"r"(x4),"r"(x5),"r"(x6),"r"(x7));
#define load_args0(f) \ #define load_args0(f) \
"ldw r0, sp[1]\n" "ldw r0, sp[1]\n"
@@ -95,22 +38,6 @@
"ldw r2, sp[3]\n" \ "ldw r2, sp[3]\n" \
"ldw r3, sp[4]\n" "ldw r3, sp[4]\n"
#define load_argsn(f, args) \
".linkset __"#f"_handler_arg0, "#args"-2\n"\
"ldw r0, sp[" "__"#f"_handler_arg0" "]\n" \
".linkset __"#f"_handler_arg1, "#args"-1\n"\
"ldw r1, sp[" "__"#f"_handler_arg1" "]\n" \
".linkset __"#f"_handler_arg2, "#args"-0\n"\
"ldw r2, sp[" "__"#f"_handler_arg2" "]\n" \
".linkset __"#f"_handler_arg3, "#args"+1\n"\
"ldw r3, sp[" "__"#f"_handler_arg3" "]\n"
#define load_args4(f) load_argsn(f,4)
#define load_args5(f) load_argsn(f,5)
#define load_args6(f) load_argsn(f,6)
#define load_args7(f) load_argsn(f,7)
#define load_args8(f) load_argsn(f,8)
#define save_state(f,args) \ #define save_state(f,args) \
".linkset __"#f"_handler_r0_save, "#args"+12\n" \ ".linkset __"#f"_handler_r0_save, "#args"+12\n" \
"stw r0, sp[" "__"#f"_handler_r0_save" "]\n" \ "stw r0, sp[" "__"#f"_handler_r0_save" "]\n" \
@@ -156,13 +83,13 @@
".align 4\n" \ ".align 4\n" \
"__" #f "_handler:\n" \ "__" #f "_handler:\n" \
"ENTSP_lu6 0\n" \ "ENTSP_lu6 0\n" \
"kentsp " #args " + 19\n" \ "kentsp " #args "/2*2 + 20\n" \
"__kent:" \ "__kent:" \
save_state(f,args) \ save_state(f,args) \
load_args ## args (f) \ load_args ## args (f) \
"bl " #f "\n" \ "bl " #f "\n" \
restore_state(f,args) \ restore_state(f,args) \
"krestsp " #args " + 19 \n" \ "krestsp " #args "/2*2 + 20 \n" \
"__kret:\n" \ "__kret:\n" \
"kret\n"); "kret\n");
@@ -174,7 +101,7 @@
"__" #f "_kernel_stack:\n" \ "__" #f "_kernel_stack:\n" \
" .space " #nstackwords ", 0\n" \ " .space " #nstackwords ", 0\n" \
"__" #f "_kernel_stack_end:\n" \ "__" #f "_kernel_stack_end:\n" \
" .space 2\n"\ " .space 4\n"\
" .text\n"); \ " .text\n"); \
do_interrupt_handler(f, args) do_interrupt_handler(f, args)
@@ -186,7 +113,5 @@
asm("setc res[%0], 0xa; eeu res[%0]"::"r"(c)); \ asm("setc res[%0], 0xa; eeu res[%0]"::"r"(c)); \
asm("setsr (((0) & ~(((1 << 0x1) - 1) << 0x1)) | (((1) << 0x1) & (((1 << 0x1) - 1) << 0x1)))"); asm("setsr (((0) & ~(((1 << 0x1) - 1) << 0x1)) | (((1) << 0x1) & (((1 << 0x1) - 1) << 0x1)))");
#endif #endif

View File

@@ -156,8 +156,10 @@
<option id = "com.xmos.xc.compiler.option.include.paths.70620891" name="com.xmos.xc.compiler.option.include.paths" superClass="com.xmos.xc.compiler.option.include.paths" valueType="includePath"> <option id = "com.xmos.xc.compiler.option.include.paths.70620891" name="com.xmos.xc.compiler.option.include.paths" superClass="com.xmos.xc.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/>
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/src}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/.settings}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_midi/.settings}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_midi/src}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_midi/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_midi}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_midi}&quot;' />
@@ -271,8 +273,10 @@
<option id = "com.xmos.c.compiler.option.include.paths.57949831" name="com.xmos.c.compiler.option.include.paths" superClass="com.xmos.c.compiler.option.include.paths" valueType="includePath"> <option id = "com.xmos.c.compiler.option.include.paths.57949831" name="com.xmos.c.compiler.option.include.paths" superClass="com.xmos.c.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/>
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/src}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/.settings}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_midi/.settings}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_midi/src}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_midi/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_midi}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_midi}&quot;' />
@@ -392,8 +396,10 @@
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/gcc&quot;"/>
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/c++/4.2.1&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/c++/4.2.1&quot;"/>
<listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/c++/4.2.1/xcore-xmos-elf&quot;"/> <listOptionValue builtIn="false" value="&quot;${XMOS_TOOL_PATH}/target/include/c++/4.2.1/xcore-xmos-elf&quot;"/>
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/src}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/.settings}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_midi/.settings}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_midi/src}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_midi/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_midi}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_usb_midi}&quot;' />

View File

@@ -15,7 +15,7 @@
</component> </component>
<component description = "MIDI" type = "demoCode" scope = "General Use" path = "module_usb_midi" local = "false" id = "module_usb_midi" name = "MIDI Module for USB Audio Framework"> <component description = "MIDI" type = "demoCode" scope = "General Use" path = "module_usb_midi" local = "false" id = "module_usb_midi" name = "MIDI Module for USB Audio Framework">
<board></board> <board></board>
<componentDependency version = "6.14.1">module_queue</componentDependency> <componentDependency version = "6.15.1">module_queue</componentDependency>
<keyword>MIDI</keyword> <keyword>MIDI</keyword>
</component> </component>
</components> </components>
@@ -84,6 +84,7 @@
<release parenthash = "53f819e748d25fdfd698303a48a7bfc51da77842" version = "6.12.2rc1" githash = "27e68d821d55560ac9d7b8878f2d77636864be1c"></release> <release parenthash = "53f819e748d25fdfd698303a48a7bfc51da77842" version = "6.12.2rc1" githash = "27e68d821d55560ac9d7b8878f2d77636864be1c"></release>
<release parenthash = "a09ba027a29767686091dfda3c390431cac8cdca" version = "6.12.2rc2" githash = "346f5a704f1130274b88cf742de73239e54b3c7d"></release> <release parenthash = "a09ba027a29767686091dfda3c390431cac8cdca" version = "6.12.2rc2" githash = "346f5a704f1130274b88cf742de73239e54b3c7d"></release>
<release parenthash = "cb6b3d3df25f5ee04577b9163f5ff2b7521919b3" version = "6.12.2rc3" githash = "d43c17a5c81724f880a001701669c5a00808a4e0"></release> <release parenthash = "cb6b3d3df25f5ee04577b9163f5ff2b7521919b3" version = "6.12.2rc3" githash = "d43c17a5c81724f880a001701669c5a00808a4e0"></release>
<release parenthash = "3b7f63844d1ef9363d4ab23fc9b028eb7bd94f31" version = "6.12.2rc4" githash = "7bf28f0367a76070bffa1b45fd7420e3e10a0b0d"></release>
<release parenthash = "c385fc2e1506b63b2a2440855a3b9d2503c76fa7" version = "6.12.3rc0" githash = "0b2696742e992a8031eeedb5226c1570705eedb1"></release> <release parenthash = "c385fc2e1506b63b2a2440855a3b9d2503c76fa7" version = "6.12.3rc0" githash = "0b2696742e992a8031eeedb5226c1570705eedb1"></release>
<release parenthash = "ee6fa86c6c20d12c1fac1db24c3c8136e69dd892" version = "6.12.3rc1" githash = "47db9e113163d14946cf7c6165687f1888f20806"></release> <release parenthash = "ee6fa86c6c20d12c1fac1db24c3c8136e69dd892" version = "6.12.3rc1" githash = "47db9e113163d14946cf7c6165687f1888f20806"></release>
<release parenthash = "4d61773cf3919dd973d149c1ad2fa78d8f0502fe" version = "6.12.3rc2" githash = "c42d93f6a7975e7065a4edb5b86ac07baedf33c1"></release> <release parenthash = "4d61773cf3919dd973d149c1ad2fa78d8f0502fe" version = "6.12.3rc2" githash = "c42d93f6a7975e7065a4edb5b86ac07baedf33c1"></release>
@@ -98,7 +99,9 @@
<release parenthash = "348fead68f7eec1c26df13241c0f96397cff2c08" version = "6.14.0beta1" githash = "caed924d76ce9cd4e9c4febe9bd1ef7b598a04ee"></release> <release parenthash = "348fead68f7eec1c26df13241c0f96397cff2c08" version = "6.14.0beta1" githash = "caed924d76ce9cd4e9c4febe9bd1ef7b598a04ee"></release>
<release parenthash = "cfeb352d625de3d9e4208f8a32ed7b6c8974b024" version = "6.14.0beta2" githash = "216e8e3eee733c93d288826745850efbb3ebc4aa"></release> <release parenthash = "cfeb352d625de3d9e4208f8a32ed7b6c8974b024" version = "6.14.0beta2" githash = "216e8e3eee733c93d288826745850efbb3ebc4aa"></release>
<release parenthash = "929437e7df13732b917c4bedc8f74166840c08b7" version = "6.14.1beta0" githash = "977044168b6ad1c24c666c4cdc535967e2a74c71"></release> <release parenthash = "929437e7df13732b917c4bedc8f74166840c08b7" version = "6.14.1beta0" githash = "977044168b6ad1c24c666c4cdc535967e2a74c71"></release>
<release parenthash = "95f44bf396ad9db3a98ed44811ebb3eda567b66e" version = "6.15.1rc0"></release> <release parenthash = "95f44bf396ad9db3a98ed44811ebb3eda567b66e" version = "6.15.1rc0" githash = "577d68a08b45d6ef32d07fedfdb0d030daa2278c"></release>
<release parenthash = "0ed22a04170f3b17dc5d471b6f5a2fb68ed71f4f" version = "6.15.1rc1" githash = "b24377ad993cec6ddfbccc867618fbb8812e466f"></release>
<release parenthash = "136edf6bf7393d30e1f85197b72585c22611d94f" version = "6.15.2rc0"></release>
<subpartnumber>XM-004720-SM</subpartnumber> <subpartnumber>XM-004720-SM</subpartnumber>
<vendor>XMOS</vendor> <vendor>XMOS</vendor>
<version_defines> <version_defines>