亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ac97_example.c

?? Sharp LH7A400 BSP平臺無關部分的代碼,有很高的參考價值,尤其是系統架構設計上,設計成移植度很高的BSP.
?? C
字號:
/***********************************************************************
 * $Workfile:   ac97_example.c  $
 * $Revision:   1.1  $
 * $Author:   WellsK  $
 * $Date:   Dec 03 2003 09:16:48  $
 *
 * Project: AC97 DMA mode driver example
 *
 * Description:
 *     A AC97 driver (DMA mode) example using a set buffer. This example
 *     is ideal for playing sound data that has been preformatted and is
 *     not streamed.
 *
 * Revision History:
 * $Log:   //smaicnt2/pvcs/VM/sharpmcu/archives/sharpmcu/software/csps/lh7a400/bsps/sdk7a400/examples/ac97_dma_play/ac97_example.c-arc  $
 * 
 *    Rev 1.1   Dec 03 2003 09:16:48   WellsK
 * Corrected DMA status response check and added logic to
 * disable DMA after sample has been processed.
 * 
 *    Rev 1.0   Oct 22 2003 11:34:06   WellsK
 * Initial revision.
 * 
 *
 ***********************************************************************
 * SHARP MICROELECTRONICS OF THE AMERICAS MAKES NO REPRESENTATION
 * OR WARRANTIES WITH RESPECT TO THE PERFORMANCE OF THIS SOFTWARE,
 * AND SPECIFICALLY DISCLAIMS ANY RESPONSIBILITY FOR ANY DAMAGES, 
 * SPECIAL OR CONSEQUENTIAL, CONNECTED WITH THE USE OF THIS SOFTWARE.
 *
 * SHARP MICROELECTRONICS OF THE AMERICAS PROVIDES THIS SOFTWARE SOLELY 
 * FOR THE PURPOSE OF SOFTWARE DEVELOPMENT INCORPORATING THE USE OF A 
 * SHARP MICROCONTROLLER OR SYSTEM-ON-CHIP PRODUCT. USE OF THIS SOURCE
 * FILE IMPLIES ACCEPTANCE OF THESE CONDITIONS.
 *
 * COPYRIGHT (C) 2001 SHARP MICROELECTRONICS OF THE AMERICAS, INC.
 *     CAMAS, WA
 **********************************************************************/

#include "abl_types.h"
#include "abl_arm922t_cp15_driver.h"
#include "abl_irq_fiq.h"
#include "lh7a400_ac97_driver.h"
#include "lh7a400_timer_driver.h"
#include "lh7a400_int_driver.h"
#include "lh7a400_csc_driver.h"
#include "lh7a400_dma_driver.h"
#include "sdk7a400_cpld_driver.h"
#include "sma_landed16.h"

/***********************************************************************
 *
 * Function: c_entry
 *
 * Purpose: DMA mode AC97 driver example
 *
 * Processing:
 *     See function. This example sets up the CODEC to play a stereo
 *     sample on the PCM output.
 *
 * Parameters: None
 *
 * Outputs: None
 *
 * Returns: Always returns 1
 *
 * Notes: None
 *
 **********************************************************************/
int c_entry(void)
{
    INT_32 ac97dev1, iter, xa;
    AC97_VOLUME_T vol;
    AC97_MIX_GAIN_T mix;
    AC97_TONE_T tone;
    AC97_CHANNEL_CONFIG_T chcfg;
    DMAC_CHANNEL_T dmach;
    UNS_32 *phyaddr;

    /* Disable interrupts */
    disable_irq_fiq();

    /* Set virtual address of MMU table (needed for VIC driver
       functions) */
    cp15_set_vmmu_addr((UNS_32 *) cp15_get_ttb());

    /* Initialize CPLD */
    cpld_init();

    /* Initialize interrupt system */
    int_initialize(0xC0000000);

    /* Install standard IRQ dispatcher at ARM IRQ vector */
    int_install_handler(IRQ_VEC, (PFV) irq_dispatcher);

    /* Open the AC97 controller channel #1 */
    if ((ac97dev1 = ac97_open(AAC, 0)) == (INT_32) NULL)
    {
        return 0;
    }

    /* Reset AC97 CODEC power and allow a small delay (300mS) for
       device to re-initialize correctly */
    ac97_ioctl(ac97dev1, AC97_DO_RESET, 1);
    timer_wait_us(TIMER1, (300 * 1000));

    /* Make sure all DMA channels are disabled */
    for (dmach = DMAC_USB_TX; dmach <= DMAC_AAC_TX2; dmach++)
    {
        dmac_stop(dmach);
    }    

    /* Enable DMA clock */
    csc_enable_dma(TRUE);

    /* Install DMA handler in the IRQ dispatcher */
    int_install_irq_handler(INT_DMAINTR, (PFV) dmac_isr);

    /* Enable DMA interrupts */
    int_enable(INT_DMAINTR);
    
    /* Enable IRQ interrupts in the ARM core */
    enable_irq();

    /* Set CODEC volumes to MAX (all CODEC outputs) */
    vol.mute   = FALSE;
    vol.left   = AC97_MAX_VOL;
    vol.right  = AC97_MAX_VOL;
    vol.select = MASTER_OUT;
    ac97_ioctl(ac97dev1, AC97_SET_VOL, (INT_32) &vol);
    vol.select = AUX_OUT;
    ac97_ioctl(ac97dev1, AC97_SET_VOL, (INT_32) &vol);
    vol.select = MONO_OUT;
    ac97_ioctl(ac97dev1, AC97_SET_VOL, (INT_32) &vol);

    /* Mute all CODEC mixer channels */
    mix.mute   = FALSE;
    mix.left   = AC97_MIX_GN_MIN;
    mix.right  = AC97_MIX_GN_MIN;
    for (xa = BEEP_OUT; xa < PCM_OUT; xa++)
    {
        mix.select = (AC97_MIX_GAIN_SEL_T) xa;
        ac97_ioctl(ac97dev1, AC97_SET_MIXGAIN, (INT_32) &mix);
    }

    /* Set PCM output channel to max gain in mixer (volume) */
    mix.mute   = FALSE;
    mix.left   = AC97_REC_GN_MAX;
    mix.right  = AC97_REC_GN_MAX;
    mix.select = PCM_OUT;
    ac97_ioctl(ac97dev1, AC97_SET_MIXGAIN, (INT_32) &mix);

    /* Set bass and treble tone control to bypass */
    tone.bass_gain = AC97_TONE_BYPASS;
    tone.treble_gain = AC97_TONE_BYPASS;
    ac97_ioctl(ac97dev1, AC97_SET_TONE, (INT_32) &tone);

    /* Play sample using DMA (must use compact mode) */
    chcfg.srate = BPSEC_8000;
    chcfg.ssize = BPSAM_16;
    chcfg.channels = 2;
    chcfg.compact = TRUE;
    chcfg.dir = PLAYBACK;
    chcfg.tmode = AC97_DMA;

    /* Play sample 3 times at different rates */
    for (iter = 0; iter < 3; iter++)
    {
        /* Configure the AC97 for DMA audio playback. The DMA channel
           will be returned by this call when tmode is set to AC97_DMA
           as the transfer mode */
        dmach = (DMAC_CHANNEL_T)
            ac97_ioctl(ac97dev1, AC97_SET_CHANNEL, (INT_32) &chcfg);

        /* The DMA controller requires physical address, so translate
           the audio data to a physical address first */
        phyaddr = (UNS_32 *)
            cp15_map_virtual_to_physical((UNS_32 *) sma_landed16);
        
        /* For the selected DMA channel, start the transfer */
        dmac_start(dmach, phyaddr, (SMA_LANDED16_NUM_SAMPLES *
            2 * sizeof (UNS_16)), TRUE);
        
        /* Check for DMA sample to complete by monitoring the DMA
           status */
        while (dmac_get_status(dmach) != DMA_DISABLED);

        /* Stop DMA */
        dmac_stop(dmach);

        /* Next sample rate */
        chcfg.srate++;
    }

    /* Disable DMA clock */
    csc_enable_dma(FALSE);

    /* Disable DMA interrupt in the interrupt controller */
    int_disable(INT_DMAINTR);

    /* Disable ARM core IRQ interrupts */
    disable_irq();

    return 1;
}

#ifndef __GNUC__
/* With ARM and GHS toolsets, the entry point is main() - this will
   allow the linker to generate wrapper code to setup stacks, allocate
   heap area, and initialize and copy code and data segments. For GNU
   toolsets, the entry point is through __start() in the crt0_gnu.asm
   file, and that startup code will setup stacks and data */
int main(void)
{
    return c_entry();
}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜短视频| 精品美女一区二区| 777午夜精品视频在线播放| 一区二区三区在线免费播放| 日韩av一区二区在线影视| 成人av影视在线观看| 91精品在线一区二区| 亚洲色欲色欲www| 国产精品一色哟哟哟| 91精品国产乱| 一区二区三区四区亚洲| 不卡一区二区在线| 精品sm捆绑视频| 美女视频黄 久久| 欧美日韩精品一区二区三区| 中文字幕在线不卡一区| 国产精品综合二区| 欧美成人一区二区三区在线观看| 亚洲综合清纯丝袜自拍| 懂色一区二区三区免费观看| 欧美mv日韩mv国产网站| 蜜芽一区二区三区| 欧美三级电影一区| 亚洲一区二区在线免费看| 91麻豆高清视频| 国产精品国产三级国产普通话99| 国内精品在线播放| 精品国产91亚洲一区二区三区婷婷| 亚洲va在线va天堂| 欧美日韩在线播| 午夜亚洲国产au精品一区二区| 99这里都是精品| 亚洲色欲色欲www在线观看| 成人网男人的天堂| 亚洲国产精品成人综合色在线婷婷 | 不卡区在线中文字幕| 久久男人中文字幕资源站| 激情综合色播激情啊| 精品久久久久久久久久久久久久久久久 | 国产剧情一区在线| 久久免费偷拍视频| 欧美绝品在线观看成人午夜影视| 中文字幕一区二区三区乱码在线 | 奇米四色…亚洲| 91精品国产综合久久香蕉麻豆| 天天影视网天天综合色在线播放 | 亚洲精品在线一区二区| 国产又黄又大久久| 国产精品人成在线观看免费| 99久久精品免费精品国产| 亚洲欧洲制服丝袜| 欧美人与z0zoxxxx视频| 日韩激情一二三区| 久久免费偷拍视频| 91色porny在线视频| 亚洲最新在线观看| 7777精品伊人久久久大香线蕉的| 久久99精品久久久| 国产精品久久久久精k8| 欧美色图在线观看| 久久精品噜噜噜成人av农村| 欧美激情一区二区| 色老汉av一区二区三区| 青青草国产精品亚洲专区无| 久久久精品日韩欧美| 在线观看精品一区| 极品少妇xxxx偷拍精品少妇| 亚洲视频电影在线| 日韩视频永久免费| 99久久精品久久久久久清纯| 亚洲第一精品在线| 国产日产欧美一区二区视频| 在线区一区二视频| 韩国精品免费视频| 亚洲国产sm捆绑调教视频| 久久影院电视剧免费观看| 日韩免费在线观看| 99久久99久久久精品齐齐| 日韩制服丝袜av| 国产精品激情偷乱一区二区∴| 5566中文字幕一区二区电影| 丁香亚洲综合激情啪啪综合| 日韩专区中文字幕一区二区| 中文字幕一区在线观看| 日韩一级完整毛片| 欧美亚洲免费在线一区| 成人爽a毛片一区二区免费| 婷婷国产v国产偷v亚洲高清| 国产精品久久久久久一区二区三区| 欧美一区二区女人| 在线一区二区三区四区五区| 成人午夜伦理影院| 久久精品久久精品| 丝袜亚洲另类丝袜在线| 一区二区三区精密机械公司| 国产女人aaa级久久久级| 欧美tk丨vk视频| 91精品在线免费观看| 欧美在线观看一二区| 91亚洲精品久久久蜜桃网站 | 亚洲国产精品影院| 中文字幕一区二| 国产亚洲制服色| 欧美精品一区二区在线观看| 欧美一区二区三区视频| 欧美日韩黄色影视| 91极品视觉盛宴| 色婷婷激情一区二区三区| 成人ar影院免费观看视频| 国产成人免费网站| 国产精品一二一区| 国产精品亚洲综合一区在线观看| 麻豆国产精品视频| 激情综合色丁香一区二区| 麻豆91精品视频| 久久精品国产秦先生| 成人av资源下载| 从欧美一区二区三区| 国产精品羞羞答答xxdd| 福利一区在线观看| 成人黄页在线观看| 97se狠狠狠综合亚洲狠狠| www.亚洲激情.com| 91欧美一区二区| 欧美性大战久久久| 欧美区一区二区三区| 欧美精品丝袜久久久中文字幕| 欧美肥大bbwbbw高潮| 欧美一区二视频| 26uuu国产一区二区三区| 久久久久久9999| 日韩美女啊v在线免费观看| 亚洲愉拍自拍另类高清精品| 午夜精品久久久久久久久久| 日本不卡一二三| 国产一区二区免费看| 不卡av免费在线观看| 色国产综合视频| 日韩欧美久久久| 国产欧美精品一区二区三区四区 | 亚洲中国最大av网站| 丝袜国产日韩另类美女| 国精产品一区一区三区mba视频| 国产精品自拍毛片| 色综合久久综合中文综合网| 欧美区一区二区三区| 国产亚洲综合在线| 亚洲国产视频网站| 国内成人自拍视频| 在线亚洲免费视频| 日韩精品一区二区三区四区视频| 中文欧美字幕免费| 天天做天天摸天天爽国产一区| 韩国女主播一区| 欧美综合一区二区| 久久综合中文字幕| 亚洲午夜精品网| 国产一区二区三区四区在线观看| 91色九色蝌蚪| 国产亚洲欧美一区在线观看| 一区二区免费在线播放| 欧美色视频一区| 久久精品一区四区| 天天操天天色综合| 91老师片黄在线观看| 精品久久一区二区| 亚洲综合激情另类小说区| 国产精品一区二区男女羞羞无遮挡| 色综合天天综合在线视频| 26uuu国产一区二区三区| 亚洲成人动漫在线观看| 成人午夜免费电影| 2021中文字幕一区亚洲| 亚洲国产精品嫩草影院| av高清不卡在线| 久久综合色8888| 日韩在线观看一区二区| 色网站国产精品| 国产调教视频一区| 毛片基地黄久久久久久天堂| 欧美主播一区二区三区| 日韩一区欧美小说| 国产成人av电影在线播放| 欧美电视剧免费观看| 亚洲国产乱码最新视频| 色婷婷综合久久久| 国产精品动漫网站| av午夜一区麻豆| 亚洲欧美在线aaa| 成人高清在线视频| 国产亚洲精品aa| 国产一区久久久| 久久日一线二线三线suv| 老鸭窝一区二区久久精品| 欧美猛男超大videosgay| 夜夜揉揉日日人人青青一国产精品 | 91网址在线看| 亚洲同性同志一二三专区| av资源网一区| 18欧美亚洲精品|