Stable -> master conflicted merge

This commit is contained in:
Ross Owen
2015-12-03 11:32:47 +00:00
19 changed files with 410 additions and 1138 deletions

View File

@@ -3,21 +3,22 @@ sc_usb_audio Change Log
6.14.0 6.14.0
------ ------
- ADDED: Support for the use and integration of PDM microphones (including PDM to PCM
conversion) via lib_mic_array
- ADDED: Support for various "low" sample rates (i.e. < 44100) into UAC2 sample rate list
and UAC1 descriptors
- ADDED: Support for for master-clock/sample-rate divides that are not a power of 2 - ADDED: Support for for master-clock/sample-rate divides that are not a power of 2
(i.e. 32kHz from 24.567MHz) (i.e. 32kHz from 24.567MHz)
- ADDED: Extended available sample-rate/master-clock ratios. Previous restriction was <= - ADDED: Extended available sample-rate/master-clock ratios. Previous restriction was <=
512x (i.e. could not support 1024x and above e.g. 49.152MHz MCLK for Sample Rates 512x (i.e. could not support 1024x and above e.g. 49.152MHz MCLK for Sample Rates
below 96kHz) (#13893) below 96kHz) (#13893)
- ADDED: Support for various "low" sample rates (i.e. < 44100) into UAC 2.0 sample rate
list and UAC 1.0 descriptors
- ADDED: Support for the use and integration of PDM microphones (including PDM to PCM
conversion) via lib_mic_array
- RESOLVED: MIDI data not accepted after "sleep" in OSX 10.11 (El Capitan) - related to sc_xud - RESOLVED: MIDI data not accepted after "sleep" in OSX 10.11 (El Capitan) - related to sc_xud
bug #17092 issue #17092
- CHANGE: Asynchronous feedback system re-implemented to allow the previous two changelog - CHANGE: Asynchronous feedback system re-implemented to allow for the first two ADDED
items changelog items
- CHANGE: Hardware divider used to generate bit-clock from master clock (xCORE-200 only). - CHANGE: Hardware divider used to generate bit-clock from master clock (xCORE-200 only).
Allows easy support for greater number of master-clock to sample-rate ratios. Allows easy support for greater number of master-clock to sample-rate ratios.
- CHANGE: module_queue no longer uses any assert module/lib
6.13.0 6.13.0
------ ------

View File

@@ -1,7 +1,7 @@
USB Audio Shared USB Audio Shared
................ ................
:Latest release: 6.13.0beta2 :Latest release: 6.14.0beta2
: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.
@@ -9,5 +9,5 @@ USB Audio Shared
Required software (dependencies) Required software (dependencies)
================================ ================================
* lib_xassert (git@github.com:xmos/lib_xassert.git) * None

View File

@@ -156,10 +156,7 @@
<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:/lib_xassert/api}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/lib_xassert/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/lib_xassert}&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>
@@ -272,10 +269,7 @@
<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:/lib_xassert/api}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/lib_xassert/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/lib_xassert}&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>
@@ -394,10 +388,7 @@
<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:/lib_xassert/api}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/lib_xassert/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/lib_xassert}&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

@@ -11,4 +11,4 @@
MODULE_XCC_XC_FLAGS = $(XCC_XC_FLAGS) MODULE_XCC_XC_FLAGS = $(XCC_XC_FLAGS)
DEPENDENT_MODULES = lib_xassert DEPENDENT_MODULES =

View File

@@ -1,7 +1,7 @@
#ifndef QUEUE_H_ #ifndef QUEUE_H_
#define QUEUE_H_ #define QUEUE_H_
#include <xassert.h> #define assert(x) asm("ecallf %0"::"r"(x));
typedef struct queue_t { typedef struct queue_t {
/// Read index. /// Read index.

File diff suppressed because it is too large Load Diff

View File

@@ -1,90 +1,76 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<projectDescription> <projectDescription>
<name>module_usb_audio</name> <name>module_usb_audio</name>
<comment></comment> <comment></comment>
<projects> <projects>
</projects> </projects>
<buildSpec> <buildSpec>
<buildCommand> <buildCommand>
<name>com.xmos.cdt.core.LegacyProjectCheckerBuilder</name> <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<arguments> <triggers>clean,full,incremental,</triggers>
</arguments> <arguments>
</buildCommand> <dictionary>
<buildCommand> <key>?children?</key>
<name>com.xmos.cdt.core.ProjectInfoSyncBuilder</name> <value>?name?=outputEntries\|?children?=?name?=entry\\\\|\\|\||</value>
<arguments> </dictionary>
</arguments> <dictionary>
</buildCommand> <key>?name?</key>
<buildCommand> <value></value>
<name>com.xmos.cdt.core.ModulePathBuilder</name> </dictionary>
<arguments> <dictionary>
</arguments> <key>org.eclipse.cdt.make.core.append_environment</key>
</buildCommand> <value>true</value>
<buildCommand> </dictionary>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> <dictionary>
<triggers>clean,full,incremental,</triggers> <key>org.eclipse.cdt.make.core.buildArguments</key>
<arguments> <value>CONFIG=Debug</value>
<dictionary> </dictionary>
<key>?children?</key> <dictionary>
<value>?name?=outputEntries\|?children?=?name?=entry\\\\|\\|\||</value> <key>org.eclipse.cdt.make.core.buildCommand</key>
</dictionary> <value>xmake</value>
<dictionary> </dictionary>
<key>?name?</key> <dictionary>
<value></value> <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
</dictionary> <value>clean</value>
<dictionary> </dictionary>
<key>org.eclipse.cdt.make.core.append_environment</key> <dictionary>
<value>true</value> <key>org.eclipse.cdt.make.core.contents</key>
</dictionary> <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
<dictionary> </dictionary>
<key>org.eclipse.cdt.make.core.buildArguments</key> <dictionary>
<value>CONFIG=Debug</value> <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
</dictionary> <value>false</value>
<dictionary> </dictionary>
<key>org.eclipse.cdt.make.core.buildCommand</key> <dictionary>
<value>xmake</value> <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
</dictionary> <value>true</value>
<dictionary> </dictionary>
<key>org.eclipse.cdt.make.core.cleanBuildTarget</key> <dictionary>
<value>clean</value> <key>org.eclipse.cdt.make.core.enableFullBuild</key>
</dictionary> <value>true</value>
<dictionary> </dictionary>
<key>org.eclipse.cdt.make.core.contents</key> <dictionary>
<value>org.eclipse.cdt.make.core.activeConfigSettings</value> <key>org.eclipse.cdt.make.core.stopOnError</key>
</dictionary> <value>true</value>
<dictionary> </dictionary>
<key>org.eclipse.cdt.make.core.enableAutoBuild</key> <dictionary>
<value>false</value> <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
</dictionary> <value>false</value>
<dictionary> </dictionary>
<key>org.eclipse.cdt.make.core.enableCleanBuild</key> </arguments>
<value>true</value> </buildCommand>
</dictionary> <buildCommand>
<dictionary> <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
<key>org.eclipse.cdt.make.core.enableFullBuild</key> <triggers>full,incremental,</triggers>
<value>true</value> <arguments>
</dictionary> </arguments>
<dictionary> </buildCommand>
<key>org.eclipse.cdt.make.core.stopOnError</key> </buildSpec>
<value>true</value> <natures>
</dictionary> <nature>org.eclipse.cdt.core.cnature</nature>
<dictionary> <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key> <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
<value>false</value> <nature>com.xmos.cdt.core.XdeProjectNature</nature>
</dictionary> </natures>
</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> </projectDescription>

View File

@@ -156,10 +156,7 @@
<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:/lib_xassert/api}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/lib_xassert/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/lib_xassert}&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/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;' />
@@ -274,10 +271,7 @@
<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:/lib_xassert/api}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/lib_xassert/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/lib_xassert}&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/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;' />
@@ -398,10 +392,7 @@
<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:/lib_xassert/api}&quot;' /> <listOptionValue builtIn="false" value='&quot;${workspace_loc:/module_queue/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/lib_xassert/src}&quot;' />
<listOptionValue builtIn="false" value='&quot;${workspace_loc:/lib_xassert}&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/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

@@ -2,11 +2,9 @@
* @file midiinparse.xc * @file midiinparse.xc
* @brief Generates USB MIDI events from MIDI events * @brief Generates USB MIDI events from MIDI events
* @author Russell Gallop, XMOS Semiconductor * @author Russell Gallop, XMOS Semiconductor
* @version 0.1
*/ */
#include <print.h> #include <print.h>
//#include <assert.h>
#include "midiinparse.h" #include "midiinparse.h"
/** /**
@@ -14,13 +12,13 @@
* *
*/ */
void dump_midi_in_parse_state(struct midi_in_parse_state &s) { void dump_midi_in_parse_state(struct midi_in_parse_state &s) {
printstr("expect_msg_len: 0x"); printhexln(s.expect_msg_len); printstr("expect_msg_len: 0x"); printhexln(s.expect_msg_len);
printstr("msg_type: 0x"); printhexln(s.msg_type); printstr("msg_type: 0x"); printhexln(s.msg_type);
printstr("receivebuffer: 0x"); printhex(s.receivebuffer[0]); printstr("receivebuffer: 0x"); printhex(s.receivebuffer[0]);
printstr(", 0x"); printhex(s.receivebuffer[1]); printstr(", 0x"); printhex(s.receivebuffer[1]);
printstr(", 0x"); printhexln(s.receivebuffer[2]); printstr(", 0x"); printhexln(s.receivebuffer[2]);
printstr("received: 0x"); printhexln(s.received); printstr("received: 0x"); printhexln(s.received);
printstr("codeIndexNumber: 0x"); printhexln(s.codeIndexNumber); printstr("codeIndexNumber: 0x"); printhexln(s.codeIndexNumber);
} }
/** /**

View File

@@ -7,7 +7,6 @@
</component> </component>
<component description = "queue" type = "demoCode" scope = "General Use" path = "module_queue" local = "false" id = "module_queue" name = "Queuing Module For USB Audio Framework"> <component description = "queue" type = "demoCode" scope = "General Use" path = "module_queue" local = "false" id = "module_queue" name = "Queuing Module For USB Audio Framework">
<board></board> <board></board>
<componentDependency repo = "git://github.com/xmos/lib_xassert.git">lib_xassert</componentDependency>
<keyword>UAC2</keyword> <keyword>UAC2</keyword>
</component> </component>
<component description = "Core USB Audio Module" type = "demoCode" scope = "General Use" path = "module_usb_audio" local = "false" id = "module_usb_audio" name = "USB AUDIO MODULE"> <component description = "Core USB Audio Module" type = "demoCode" scope = "General Use" path = "module_usb_audio" local = "false" id = "module_usb_audio" name = "USB AUDIO MODULE">
@@ -16,16 +15,10 @@
</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.13.0">module_queue</componentDependency> <componentDependency version = "6.14.0">module_queue</componentDependency>
<componentDependency repo = "git://github.com/xmos/lib_xassert.git">lib_xassert</componentDependency>
<keyword>MIDI</keyword> <keyword>MIDI</keyword>
</component> </component>
</components> </components>
<dependency repo = "lib_xassert">
<gitbranch>master</gitbranch>
<githash>9c4955e3ab0604e6ba4b66ad46e01b5d96d5d6fb</githash>
<uri>git@github.com:xmos/lib_xassert.git</uri>
</dependency>
<description>USB Audio Shared Components. For use in the XMOS USB Audio Refererence Designs.</description> <description>USB Audio Shared Components. For use in the XMOS USB Audio Refererence Designs.</description>
<docdir>module_dfu/doc</docdir> <docdir>module_dfu/doc</docdir>
<git_export>False</git_export> <git_export>False</git_export>