I2S注意事项
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了I2S注意事项相关的知识,希望对你有一定的参考价值。
参考技术A 关于I2S, wikipedia 上介绍的比较全面。这里记录一些容易出错的点。以Linux/android主板而言,I2S是ASoC中的CPU Platform驱动。一般情况下需要同时搭上Codec和Machine驱动才能够启用。启用后会在/proc/asound/cards中查看到多出一个声卡。(如果硬件上I2S确实没有连接Codec,那么一般CPU厂家内核中会有 Plublic Machine 的Machine驱动来保证单独的I2S也可以被使用起来)
以Allwinner H3的I2S0为例,由于板子I2S0没有连接Codec,需要按照以下配置启用该I2S:
其中 SoC daudio0 tdm interface for SUNXI chips 为ASoC中的CPU Platform驱动, Daudio0 Public Machine for SUNXI chips 为ASoC中的 Machine + 虚拟Codec驱动。
对于Allwinner的平台而言还要确定sys_config.fex中的相应配置有没有选中,相应的GPIO有无占用。
这样编译烧写系统后, cat /proc/asound/cards 可以查看到多了一个声卡。
使用I2S就是按照普通声卡的方式进行使用,比如Android下的tinyalsa都可以做简单的播放录制等等。
更多使用方法见: Android音频底层调试-基于tinyalsa 。
I2S中的一般常用的bit有16 24 32,这些I2S输出的CLK都是32个。播放16bit时,放到了前32bit的前16bit;播放32bit一般是刚好是32bit;而播放24bit时,需要把数据按照32bit传递给设备节点,也是前24bit。如果使用tinyalsa播放一个真24bit数据时,没有转换成32bit下传时播放会出现噪声。
I2S硬件输出的波形如下:
当然还有一点,一些宣称支持到32bit的,实际输出的是时候可能会按照24bit输出(当低8bit丢弃了),比如Allwinner H3。或许只是kernel驱动的问题。
<完>
从字符串中删除软连字符
【中文标题】从字符串中删除软连字符【英文标题】:Removing soft hyphens from a string 【发布时间】:2012-04-30 08:06:39 【问题描述】:假设我有一个带有软连字符的字符串(假设下面文本中的连字符是软连字符):
T-h-i-s- -i-s- -a- -t-e-s-t-.-
我想删除软连字符,只返回字符串:
This is a test.
我正在尝试在 JavaScript 中执行此操作。以下是我到目前为止所获得的最远距离:
RemoveSoftHyphen: function (text)
var result = text.match(/[^\uA00AD].*/);
alert (result);
return result;
当警报显示时,我得到的只是一个“-”,我不确定那是软连字符还是硬连字符……但更重要的是,它不起作用。
我正在尝试找出我的正则表达式出了什么问题,或者是否有更好的方法来删除我不知道使用 JavaScript 或 jQuery 的软连字符。
【问题讨论】:
字符串在代码中的什么位置被插入回 DOM? @Hamish:这是一个可以被其他东西调用的函数。软连字符的匹配是最令人担忧的部分,因为我对如何摆脱那些忍者连字符并返回给我清理过的字符串一无所知。 但是“返回的字符串不再包含任何软连字符”。不清楚你在问什么。也许在 jsfiddle.com 上创建一个示例 你想要做的是 - 从字符串中删除连字符,是吗? 感谢您迄今为止的所有帮助。我已经更新了这个问题。希望它会更清楚一点。 【参考方案1】:假设字符确实是 Unicode 00AD:
var result = text.replace(/\u00AD/g,'');
如果你要杀死many hyphens,请使用角色类:
var result = text.replace(/[\u00AD\u002D\u2011]+/g,'');
【讨论】:
以上是关于I2S注意事项的主要内容,如果未能解决你的问题,请参考以下文章