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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? dsk6416_edma_aic23.c

?? 用DSP5410實(shí)現(xiàn)對(duì)音樂(lè)文件音量的限制性調(diào)節(jié)
?? C
字號(hào):
/*
 *  Copyright 2003 by Texas Instruments Incorporated.
 *  All rights reserved. Property of Texas Instruments Incorporated.
 *  Restricted rights to use, duplicate or disclose this code are
 *  granted through contract.
 *  
 */
/* "@(#) DDK 1.11.00.00 11-04-03 (ddk-b13)" */
/* 
 *  ======== dsk6416_edma_aic23.c ========
 * 
 *  Driver for the aic23 codec on the TMS320C6416 DSK. Requires the
 *  generic TMS320C6x1x McBSP driver.
 */

#include <std.h>

#include <iom.h>

#include <csl.h>
#include <csl_edma.h>
#include <csl_mcbsp.h>

#include <dsk6416_edma_aic23.h>

#include <c6x1x_edma_mcbsp.h>

#define GENERICDEVPARAMS {                                                  \
    C6X1X_EDMA_MCBSP_VERSION_1, /* Version number of mcbsp driver  */       \
    FALSE, /* True if buffers are in cacheable memory (set in mdBindDev) */ \
    FALSE, /* Driver should not enable the McBSP sample rate generator */   \
    FALSE, /* Driver should not enable the McBSP frame sync generator */    \
    0,     /* IRQ id to use for the EDMA (set in mdBindDev) */              \
    NULL,  /* McBSP configuration for the codec (set in mdBindDev) */       \
    DSK6416_EDMA_AIC23_INTR_MASK_DEFAULT /* Interrupt mask */               \
}

/* Structure containing port specific variables */
typedef struct {
        Ptr c6x1xPortObj;
        Int edmaPriority;
} PortObj, *PortHandle;

/* Declare the port structures */
/* Only Mcbsp 2 is used */
static PortObj port;

DSK6416_EDMA_AIC23_DevParams DSK6416_EDMA_AIC23_DEVPARAMS =
                                   DSK6416_EDMA_AIC23_DEVPARAMS_DEFAULT;

/*
 * Forward declaration of the IOM interface functions. They are only
 * exposed via the IOM function table to avoid namespace pollution.
 */
static Int mdBindDev(Ptr *devp, Int devid, Ptr devParams);
static Int mdCreateChan(Ptr *chanp, Ptr devp, String name, Int mode,
                        Ptr chanParams, IOM_TiomCallback cbFxn, Ptr cbArg);

/*
 * The codec driver function table. Notice how we copy most functions
 * from the generic c6x1x edma mcbsp driver.
 */
IOM_Fxns DSK6416_EDMA_AIC23_FXNS = {
    &mdBindDev,
    NULL,
    NULL,
    &mdCreateChan,
    NULL,
    NULL
};

static MCBSP_Config mcbspCfg2 = {
    MCBSP_FMKS(SPCR, FREE, NO)              |
    MCBSP_FMKS(SPCR, SOFT, NO)              |
    MCBSP_FMKS(SPCR, FRST, YES)             |
    MCBSP_FMKS(SPCR, GRST, YES)             |
    MCBSP_FMKS(SPCR, XINTM, XRDY)           |
    MCBSP_FMKS(SPCR, XSYNCERR, NO)          |
    MCBSP_FMKS(SPCR, XRST, YES)             |
    MCBSP_FMKS(SPCR, DLB, OFF)              |
    MCBSP_FMKS(SPCR, RJUST, RZF)            |
    MCBSP_FMKS(SPCR, CLKSTP, DISABLE)       |
    MCBSP_FMKS(SPCR, DXENA, OFF)            |
    MCBSP_FMKS(SPCR, RINTM, RRDY)           |
    MCBSP_FMKS(SPCR, RSYNCERR, NO)          |
    MCBSP_FMKS(SPCR, RRST, YES),

    MCBSP_FMKS(RCR, RPHASE, SINGLE)         |
    MCBSP_FMKS(RCR, RFRLEN2, DEFAULT)       |
    MCBSP_FMKS(RCR, RWDLEN2, DEFAULT)       |
    MCBSP_FMKS(RCR, RCOMPAND, MSB)          |
    MCBSP_FMKS(RCR, RFIG, NO)               |
    MCBSP_FMKS(RCR, RDATDLY, 0BIT)          |
    MCBSP_FMKS(RCR, RFRLEN1, OF(1))         |
    MCBSP_FMKS(RCR, RWDLEN1, 16BIT)         |
    MCBSP_FMKS(RCR, RWDREVRS, DISABLE),

    MCBSP_FMKS(XCR, XPHASE, SINGLE)         |
    MCBSP_FMKS(XCR, XFRLEN2, DEFAULT)       |
    MCBSP_FMKS(XCR, XWDLEN2, DEFAULT)       |
    MCBSP_FMKS(XCR, XCOMPAND, MSB)          |
    MCBSP_FMKS(XCR, XFIG, NO)               |
    MCBSP_FMKS(XCR, XDATDLY, 0BIT)          |
    MCBSP_FMKS(XCR, XFRLEN1, OF(1))         |
    MCBSP_FMKS(XCR, XWDLEN1, 16BIT)         |
    MCBSP_FMKS(XCR, XWDREVRS, DISABLE),
        
    MCBSP_FMKS(SRGR, GSYNC, DEFAULT)        |
    MCBSP_FMKS(SRGR, CLKSP, DEFAULT)        |
    MCBSP_FMKS(SRGR, CLKSM, DEFAULT)        |
    MCBSP_FMKS(SRGR, FSGM, DEFAULT)         |
    MCBSP_FMKS(SRGR, FPER, DEFAULT)         |
    MCBSP_FMKS(SRGR, FWID, DEFAULT)         |
    MCBSP_FMKS(SRGR, CLKGDV, DEFAULT),

    MCBSP_MCR_DEFAULT,
    MCBSP_RCERE0_DEFAULT,
    MCBSP_RCERE1_DEFAULT,
    MCBSP_RCERE2_DEFAULT,
    MCBSP_RCERE3_DEFAULT,
    MCBSP_XCERE0_DEFAULT,
    MCBSP_XCERE1_DEFAULT,
    MCBSP_XCERE2_DEFAULT,
    MCBSP_XCERE3_DEFAULT,

    MCBSP_FMKS(PCR, XIOEN, SP)              |
    MCBSP_FMKS(PCR, RIOEN, SP)              |
    MCBSP_FMKS(PCR, FSXM, EXTERNAL)         |
    MCBSP_FMKS(PCR, FSRM, EXTERNAL)         |
    MCBSP_FMKS(PCR, CLKXM, INPUT)           |
    MCBSP_FMKS(PCR, CLKRM, INPUT)           |
    MCBSP_FMKS(PCR, CLKSSTAT, DEFAULT)      |
    MCBSP_FMKS(PCR, DXSTAT, DEFAULT)        |
    MCBSP_FMKS(PCR, FSXP, ACTIVEHIGH)       |
    MCBSP_FMKS(PCR, FSRP, ACTIVEHIGH)       |
    MCBSP_FMKS(PCR, CLKXP, FALLING)         |
    MCBSP_FMKS(PCR, CLKRP, RISING)
};

/*
 * ======== mdBindDev ========
 * This function allocates and configures the aic23 codec.
 */
static Int mdBindDev(Ptr *devp, Int devid, Ptr devParams)
{
    Int result;
    DSK6416_EDMA_AIC23_DevParams *params =
        (DSK6416_EDMA_AIC23_DevParams *) devParams;
    C6X1X_EDMA_MCBSP_DevParams genericParams = GENERICDEVPARAMS;

    /* If no device parameters are passed, use the defaults. */
    if (params == NULL) {
        params = &DSK6416_EDMA_AIC23_DEVPARAMS;
    }

    /* Check if the version is supported by the driver */
    if (params->versionId != DSK6416_EDMA_AIC23_VERSION_1) {
        /* Unsupported version */
        return(IOM_EBADIO);
    }

    /* Set codec parameters (this will also initialize the codec) */
    if (!AIC23_setParams(&(params->aic23)))
        return IOM_EALLOC;

    /* Set the IRQ id to use for EDMA (default is 8) */
    genericParams.irqId = params->irqId;
    genericParams.cacheCalls = params->cacheCalls;
    genericParams.mcbspCfgPtr = &mcbspCfg2;
    genericParams.intrMask = params->intrMask;

    /* Call the generic mdBindDev to claim mcbsp port 2 */
    result = (C6X1X_EDMA_MCBSP_FXNS.mdBindDev)(&port.c6x1xPortObj, 
                    MCBSP_PORT2, &genericParams);
    /* Store the edma priority in PortObj */
    port.edmaPriority = params->edmaPriority;
    *devp = &port;

    return (result);
}

/*
 * ======== mdCreateChan ========
 * This function creates and configures a device channel.
 */
static Int mdCreateChan(Ptr *chanp, Ptr devp, String name, Int mode,
                        Ptr chanParams, IOM_TiomCallback cbFxn, Ptr cbArg)
{
    Int result;
    C6X1X_EDMA_MCBSP_ChanParams genericParams;
    PortHandle localPort = (PortHandle) devp;

    EDMA_Config edmaCfg = {
        EDMA_FMKS(OPT, ESIZE, 16BIT)          |
        
        EDMA_FMKS(OPT, 2DS, NO)               |
        EDMA_FMKS(OPT, SUM, NONE)             |
        EDMA_FMKS(OPT, 2DD, NO)               |
        EDMA_FMKS(OPT, DUM, NONE)             |
        EDMA_FMKS(OPT, TCINT, YES)            |
        EDMA_FMK (OPT, TCC, NULL)             |
        EDMA_FMKS(OPT, TCCM, DEFAULT)         |
        EDMA_FMKS(OPT, ATCINT, NO)            |
        EDMA_FMKS(OPT, ATCC, DEFAULT)         |
        EDMA_FMKS(OPT, PDTS, DEFAULT)         |
        EDMA_FMKS(OPT, PDTD, DEFAULT)         |
        EDMA_FMKS(OPT, LINK, YES)             |
        EDMA_FMKS(OPT, FS, NO),

        EDMA_FMK (SRC, SRC, NULL),

        EDMA_FMK (CNT, FRMCNT, NULL)          |
        EDMA_FMK (CNT, ELECNT, NULL),

        EDMA_FMK (DST, DST, NULL),

        EDMA_FMKS(IDX, FRMIDX, DEFAULT)       |
        EDMA_FMKS(IDX, ELEIDX, DEFAULT),

        EDMA_FMK (RLD, ELERLD, NULL)          |
        EDMA_FMK (RLD, LINK, NULL)
    };
    
    if (mode == IOM_INPUT) {
        edmaCfg.opt |= EDMA_FMK(OPT, DUM, EDMA_OPT_DUM_INC);
    }
    else {
        edmaCfg.opt |= EDMA_FMK(OPT, SUM, EDMA_OPT_SUM_INC);
    }

    /* set the edma transfer priority */
    edmaCfg.opt |= EDMA_FMK(OPT, PRI, localPort->edmaPriority);

    /* Configure parameters */
    genericParams.tdmChans = DSK6416_EDMA_AIC23_TDMCHANNELS;
    genericParams.edmaCfgPtr = &edmaCfg;

    result = (C6X1X_EDMA_MCBSP_FXNS.mdCreateChan)(chanp, 
                    localPort->c6x1xPortObj, name, mode,
                    &genericParams, cbFxn, cbArg);
    return (result);
}

/*
 * ======== DSK6416_EDMA_AIC23_init ========
 * This function initializes the driver's structures.
 */
Void DSK6416_EDMA_AIC23_init()
{
    /* Pass some IOM fxns straight to the generic driver */
    DSK6416_EDMA_AIC23_FXNS.mdControlChan =
        C6X1X_EDMA_MCBSP_FXNS.mdControlChan;
    DSK6416_EDMA_AIC23_FXNS.mdDeleteChan =
        C6X1X_EDMA_MCBSP_FXNS.mdDeleteChan;
    DSK6416_EDMA_AIC23_FXNS.mdSubmitChan =
        C6X1X_EDMA_MCBSP_FXNS.mdSubmitChan;
    DSK6416_EDMA_AIC23_FXNS.mdUnBindDev =
        C6X1X_EDMA_MCBSP_FXNS.mdUnBindDev;

    C6X1X_EDMA_MCBSP_init();
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线视频一区二区三区| 国产高清在线观看免费不卡| 午夜精品福利一区二区蜜股av| 亚洲一区中文日韩| 久久福利视频一区二区| 国产69精品一区二区亚洲孕妇| 国产69精品久久久久毛片| 一本色道a无线码一区v| 91麻豆精品国产91久久久久久| 久久久久国产精品人| 一区二区三区精品视频| 韩国女主播一区| 91电影在线观看| 久久久久国产精品麻豆ai换脸| 一区二区三区在线看| 狠狠色综合色综合网络| 在线观看欧美精品| 中文字幕不卡三区| 麻豆精品蜜桃视频网站| 91久久精品网| 亚洲天堂免费在线观看视频| 九九九久久久精品| 欧美乱熟臀69xxxxxx| 亚洲欧美日韩久久| 成人av电影免费观看| 精品sm在线观看| 丝袜亚洲另类丝袜在线| 欧美综合欧美视频| 亚洲欧美一区二区三区国产精品 | 精品国产青草久久久久福利| 亚洲va欧美va天堂v国产综合| 91色porny蝌蚪| 亚洲人成网站影音先锋播放| 不卡欧美aaaaa| 亚洲免费大片在线观看| jlzzjlzz亚洲女人18| 中文字幕一区二区不卡| 99re成人精品视频| 中文字幕久久午夜不卡| 国产99久久精品| 亚洲色图制服诱惑| 在线视频你懂得一区| 亚洲电影中文字幕在线观看| 欧美三级视频在线观看| 久久国产视频网| 国产欧美久久久精品影院| 成人看片黄a免费看在线| 中文字幕字幕中文在线中不卡视频| 一本大道综合伊人精品热热 | k8久久久一区二区三区| 亚洲精品美国一| 日韩精品一区二区三区四区| 国产成人鲁色资源国产91色综| 亚洲欧美激情一区二区| 日韩免费观看高清完整版| 国产高清精品久久久久| 夜夜精品浪潮av一区二区三区| 91精品一区二区三区久久久久久| 国产一区二区在线免费观看| 一区二区三区加勒比av| 国产精品理论片在线观看| 在线观看免费一区| 国产精品丝袜一区| 欧美三级一区二区| 春色校园综合激情亚洲| 老司机一区二区| 首页综合国产亚洲丝袜| 亚洲精品国产第一综合99久久| 亚洲精品一区二区三区99| 91精品国产品国语在线不卡| 91在线视频播放地址| 不卡影院免费观看| 福利一区二区在线| 粉嫩蜜臀av国产精品网站| 黄一区二区三区| 国产乱码字幕精品高清av | 国产91综合网| 国产精品一品二品| 国产一区二区久久| 国产精品夜夜嗨| 丰满少妇在线播放bd日韩电影| 精品一区二区三区久久| 久久国产麻豆精品| 国产精品66部| 97se亚洲国产综合在线| 欧美艳星brazzers| 91精品国产色综合久久ai换脸 | 亚洲成人综合视频| 成人黄色大片在线观看| 成人免费av网站| 在线精品亚洲一区二区不卡| 欧美日韩成人在线| 欧美mv日韩mv国产网站| 国产欧美日韩卡一| 亚洲视频一区二区免费在线观看 | 成人午夜av电影| 色噜噜狠狠色综合欧洲selulu| 欧美精品久久天天躁| 久久久久久亚洲综合影院红桃 | 精品美女一区二区| 中文字幕av资源一区| 亚洲一区二区在线观看视频| 久久国产生活片100| 色综合色综合色综合色综合色综合| 欧洲日韩一区二区三区| 久久午夜国产精品| 亚洲成av人影院| 99视频一区二区| 久久久国产一区二区三区四区小说| 国产精品二三区| 日韩精品成人一区二区三区| 蜜臀av在线播放一区二区三区| av电影天堂一区二区在线观看| 日韩欧美一区二区视频| 国产精品免费视频一区| 狠狠色丁香九九婷婷综合五月| 欧美亚洲综合另类| 国产精品成人一区二区艾草| 久久精品国内一区二区三区| 欧美主播一区二区三区| 日韩美女视频一区二区| 国模套图日韩精品一区二区| 91精品免费在线观看| 午夜精彩视频在线观看不卡| 在线观看三级视频欧美| √…a在线天堂一区| 91视视频在线观看入口直接观看www | 91啪在线观看| 最新日韩在线视频| 91免费视频网址| 亚洲成av人片在线| 欧美丰满少妇xxxbbb| 日本vs亚洲vs韩国一区三区| 精品电影一区二区三区| 国产剧情在线观看一区二区| 国产亚洲一区二区三区四区| 国产激情视频一区二区三区欧美| 1000精品久久久久久久久| 91玉足脚交白嫩脚丫在线播放| 一区二区三区四区激情 | 国产中文字幕精品| 欧美韩国日本一区| 色综合天天综合网国产成人综合天| 亚洲色图丝袜美腿| 欧美一区二区三区公司| 成人永久免费视频| 五月天欧美精品| 国产亚洲福利社区一区| 国产精品亚洲一区二区三区妖精| 中文字幕在线播放不卡一区| 欧美成人一区二区| 99精品视频在线观看免费| 天堂一区二区在线| 国产日韩av一区| 欧美精品tushy高清| 成人91在线观看| 久久疯狂做爰流白浆xx| 一二三区精品福利视频| 国产精品视频在线看| 日韩美女一区二区三区四区| 欧美性xxxxxx少妇| 在线国产电影不卡| 99视频精品全部免费在线| 成人性生交大合| 国产成人精品免费在线| 国产综合一区二区| 日韩av不卡一区二区| 日韩精品每日更新| 夜夜精品视频一区二区| 一区二区视频在线| 国产精品高潮呻吟久久| 亚洲欧洲韩国日本视频| 中文字幕一区二区在线观看| 中文成人综合网| 国产精品网友自拍| 亚洲国产精品av| 成人免费在线观看入口| 一区二区三区**美女毛片| 亚洲精品国产一区二区精华液| 亚洲午夜视频在线观看| 丝袜亚洲另类欧美| 国产一区美女在线| 99久久精品国产毛片| 91蜜桃婷婷狠狠久久综合9色| 91久久精品一区二区| 91精品国产综合久久久蜜臀粉嫩| 日韩午夜小视频| 亚洲国产高清不卡| 亚洲电影视频在线| 国产一区啦啦啦在线观看| 99久久99久久免费精品蜜臀| 欧美三级韩国三级日本三斤| 精品成人一区二区三区四区| 亚洲桃色在线一区| 激情五月婷婷综合| 91官网在线观看| 国产日韩影视精品| 日韩在线一二三区| 91在线观看成人| 久久久99久久精品欧美|