关于ucosii操作系统的音频播放任务优先级划分

        分享一下在ucosii实际项目中关于任务划分的经验,希望能够得到高手的指点。

        1)ucosii中任务有休眠状态、就绪状态、运行状态、等待状态、中断状态。

               (1)休眠状态由创建任务进入就绪状态;

               (2)就绪状态在操作系统调度下进入运行状态;

               (3)运行状态在延时或者等待某种事件发生时进入等待状态;

               (4)等待状态等待的目的到达时退出就绪状态,进入就绪状态;

          2)等待状态任务根据实际的需求划分了不同的优先级。在ucos进行任务调度时,想要获得CPU控制权进入运行状态,

       该任务必须是就绪状态,所有高于该任务优先级的任务都进入等待状态或休眠,一旦该任务进入就绪状态就可以获得

       CPU控制权。

         3)音频接口IIS采用固定的频率对FIFO(32x16bit)中的数据进行输出处理,那么在FIFO满到空的状态之间的间隔时间

       是固定的,可以进行必要的数据处理。为不影响声音 的正常输出,必须在FIFO空的状态下及时写入数据,并且分配写入

      任务为最高优先级。采用DMA模式在buffer 和FIFO之间进行数据传输,并设置可中断触发,在终端服务程序中发送信号

      量,音频任务中等待信号量由于等待时间到达由等待状态进入就绪状态,由2)中分析该任务会立马获得CPU控制权。

        4)在实际的项目中许要在FIFO传递的间隔时间内进行数据计算,为不影响数据的同步,必须在DMA开启前准备好将要

      传输的数据,准备了两个同样大小的buffer 轮寻进行数据的读取和写入。DMA传递完哪个buffer,往哪个buffer里写入数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MP3编解码原理   MP3是MPEG-1 Atdio Layer-3的缩写,它是一套完整的基于感知的音频编码算法。这一算法应用了心理声学模型可达到1:12的压缩比率。心理声模型应用于人耳特性,最大限度保持原始声音质量。MPEG-1 Audio编码对象是20 Hz~20 000 Hz的宽带声音,采用感知子带编码,也叫做子带编码(sub-band coding,SBC),从而达到既压缩声音数据又尽可能保持声音原有质量的目的。SBC编码对象不局限于话音数据和某一种声源。具体思想是:首先把时域中的声音数据变换到频域,对频域内的子带分量分别量化和编码,根据心理声学模型确定样本精度,从而达到压缩数据量的目的。子带编码的理论根据是听觉系统的掩蔽特性,主要是利用频域掩蔽特性,编码过程中保留信号带宽,但是却扔掉被掩蔽的信号,因此编码后还原(解码、重构)的声音信号与编码前的声音信号不相同,但人的听觉系统很难分辨出它们的差别。因此,对于听觉系统,这种压缩是"无损压缩"。   当打开MP3文件后,播放器首先试图对帧进行同步,然后分别读取通道息及增益因子等数据,再进行霍夫曼解码,至此已获得解压数据。但这些数据不能播放,它们仍处于频域,若要播放,还需将其通过特定手段由频域变换到时域。然后再分别进行立体化处珲、抗锯齿处理、IMDCT变换、IDCT变换及窗口化滑动处理。这样得到的数据就可进行D/A转换并播放。   MP3歌曲的解码是一个非常复杂的过程,可通过Start_mp3_decode()解码函数完成。另外,还需给解码函数进行供给数据、针对音频接口的初始化、针对播放过程的初始化等操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值