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

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

?? dm642app.c

?? dsp DM642 pci 詳細的開發例程
?? C
字號:
// Dm642App.c
//////////////////////////////////////////////////////////////////////////////
////
////  Copyright (c) 2003, Valley Technologies, Inc.
////  All rights reserved.
////
//////////////////////////////////////////////////////////////////////////////
////
////  $Header $
////
////  $ReleaseClass: src $
////
////  Original Author                 : ebersole
////  Most Recent Contributing $Author: ebersole $
////
//////////////////////////////////////////////////////////////////////////////
////
////  This file contains only one routine: main().
////
////  main() performs necessary init and setup tasks (for the app and
////  DSP/BIOS), then exits and passes control to DSP/BIOS.  See the
////  the Description/Purpose in main()'s comment-header for more info.
////
////  DSP/BIOS 4.90.270   06-11-03 (barracuda-m10)
////  DDK      1.10.00.23 07-02-03 (ddk-b12)
////
//////////////////////////////////////////////////////////////////////////////


//############################################################################
//                             Include Files
//############################################################################


#include <std.h>

#include <log.h>
#include <buf.h>
#include <hwi.h>
#include <sem.h>
#include <gio.h>

#include "Dm642Appcfg.h"
#include "MyGlobals.h"

#include <c64xx_pci.h>

#include <csl.h>
#include <csl_pci.h>


//############################################################################
//                                 Constants
//############################################################################


//-------------------------------------------------------
// Could not find any macro to map a Memory region's
//   name to its segment id (to use in BUF_ and MEM_
//   modules).  So we define these manually.
//-------------------------------------------------------
#define kMemSegId_ISRAM   (0)
#define kMemSegId_SDRAM   (1)

#define kPCIMC_CNT_RstVal (0x000)
#define kDspDmaAddr       (0x80000000)


//############################################################################
//                       (external) Global Variables
//############################################################################


extern tMyPciXferInfo g_oXferInfo;
extern tMyBufInfo     g_oBufInfo;

extern Ptr            g_pMyGio;


//############################################################################
//                            Start of Functions
//############################################################################


//////////////////////////////////////////////////////////////////////////////
////
////  Name: main
////
////  Purpose:  The entry point into the program.
////            Performs any necessary pre-application initialization.
////
////            Waits for the Host-Side Application (for Exhibit #2) to
////            place a byte-count/size into the PCIMC register and a
////            physical PCI address into the PCIMA register.  These values
////            are saved into program globals for later use.
////
////            After the above values are read, a buffer pool is created
////            in SDRAM.  The pool consists of 3 buffers, each equal to
////            the length read from the PCIMC register.
////
////            After the buffer pool has been created, the routine uses
////            DSP/BIOS's GIO-module to create and start the DM642's PCI
////            device driver.  This MUST occur in main()!  [ie, before
////            DPS/BIOS actually takes control of the system.
////
////            Finally, main() returns, which passes control to DSP/BIOS.
////
////  Input Parameters:  none
////  Output Parameters: none
////  Return Value(s)  : none
////
//////////////////////////////////////////////////////////////////////////////

Void main()
{
    extern tMyPciXferInfo g_oXferInfo;
    extern BUF_Handle     g_hBufferPool;

    PCI_ConfigXfr     oXfrCfg;
    BUF_Attrs         oBufAttrs;

    C64XX_PCI_Attrs   oPciAttrs;
    GIO_Attrs         oGioAttrs;


    //--------------------------------------
    // Initialize the Chip Support Library
    //--------------------------------------
    CSL_init();

    LOG_printf(&trace, "Dm642App Started");

    //------------------------------------------------------------------
    // Print the current (ie, the boot) values of the DSPMA and PCIMC
    //   registers
    //------------------------------------------------------------------

    PCI_xfrGetConfig(&oXfrCfg);

    LOG_printf(&trace, "PCIMA == %04x_%04x",
              (oXfrCfg.dspma >> 16), (MdUns)oXfrCfg.dspma);
    LOG_printf(&trace, "PCIMC == %04x_%04x",
              (oXfrCfg.pcimc >> 16), (MdUns)oXfrCfg.pcimc);
    
    //------------------------------------------------------------------
    // Wait for the Host to set the transfer-byte-count in the PCIMC
    //   register.  The host will have also set the PCIMA register
    //   at about the same time.  These tell the DSP where the Host
    //   wants its DMA data, and how much data it wants at atime
    //------------------------------------------------------------------
    do
    {
        MdUns nPciByteCnt;


        PCI_xfrGetConfig(&oXfrCfg);
    
        nPciByteCnt = (oXfrCfg.pcimc >> 16) & 0xFFFF;
        
        if (kPCIMC_CNT_RstVal != nPciByteCnt)
        {
            LOG_printf(&trace, "PCIMC[CNT] has been set by the Host.");

            g_oXferInfo.nCountB  = nPciByteCnt;
            g_oXferInfo.pPciAddr = (void *)(oXfrCfg.pcima & _PCI_PCIMA_ADDRMA_MASK);

            break;
        }
    }
    while(1);

    //----------------------------------------------------------
    // Creat a pool of three buffers to use.
    // Place the buffer pool in SDRAM ... up above 0x8000_0000
    //----------------------------------------------------------

    LOG_printf(&trace, "Setting up the buffer pool ...");

    g_oBufInfo.nBufSizeB = g_oXferInfo.nCountB;
    oBufAttrs.segid      = kMemSegId_SDRAM;

    g_oBufInfo.hBufPool = BUF_create(3, g_oBufInfo.nBufSizeB, 4, &oBufAttrs);
    if (NULL == g_oBufInfo.hBufPool)
    {
        SYS_abort("ERROR:Creation of buffer pool failed!");
    }

    //------------------------------------------------------------------------
    // Start-up the PCI driver via DSP/BIOS's GIO module.  This manual
    //   start-up MUST take place.  Without it, the main loop in the appl.
    //   will hang waiting on a semaphore.
    //
    // NOTE: we changed the interrupt-handling in the PCI driver to post
    //       to that semaphore.
    //------------------------------------------------------------------------
    
    oPciAttrs.queuePriority = C64XX_PCI_QUEUE_PRIORITY_LOW;
    
    oGioAttrs.nPackets = 1;
    oGioAttrs.timeout  = SYS_FOREVER;

    g_pMyGio = GIO_create("/UsrDevPci", IOM_INOUT, NULL, &oPciAttrs, &oGioAttrs);
    if(NULL == g_pMyGio)
    {
        LOG_printf(&trace, "ERROR!!! GIO_create() => NULL!");
        SYS_abort("GIO_create");
    }

    //---------------------------------
    // fall into DSP/BIOS idle loop
    //---------------------------------
    return;

}       // END main()


//############################################################################
//                             End of Functions
//############################################################################

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美艳星brazzers| 亚洲三级理论片| 在线观看亚洲成人| 日本韩国欧美一区| 欧美视频完全免费看| 久久久久久久久久美女| 欧美精彩视频一区二区三区| 国产情人综合久久777777| 亚洲bt欧美bt精品777| 免费高清在线一区| 国产精品一区二区久久不卡| 成人av资源网站| 欧洲一区在线观看| 国产精品欧美一区二区三区| 亚洲一区二区视频| 麻豆久久久久久| 高清久久久久久| 在线精品国精品国产尤物884a| 亚洲精品一区二区三区蜜桃下载| 日本一区二区三区国色天香| 久久精品国产成人一区二区三区| 国产福利一区二区三区视频| 91在线一区二区三区| 欧美电影影音先锋| 国产日韩综合av| 国产精品99久久久| 久久久精品日韩欧美| 久久电影网站中文字幕| 91精品婷婷国产综合久久竹菊| 久久女同精品一区二区| 蜜桃视频一区二区三区在线观看| 欧美久久一区二区| 日韩精品亚洲专区| aa级大片欧美| 精品国产在天天线2019| 美国欧美日韩国产在线播放| 日韩一区和二区| 亚洲一区视频在线观看视频| 日本精品视频一区二区| 亚洲人精品午夜| 国产真实精品久久二三区| 91国模大尺度私拍在线视频| 亚洲欧美区自拍先锋| 色婷婷精品大视频在线蜜桃视频| 精品国产一区二区在线观看| 国产伦精品一区二区三区免费| 在线免费观看日本欧美| 亚洲一区二区三区在线看| 777a∨成人精品桃花网| 男人的天堂久久精品| 精品成人a区在线观看| 国产传媒一区在线| 亚洲欧美日韩中文播放| 欧美日韩中字一区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 国产一区二区三区国产| 欧美激情在线观看视频免费| 丝袜美腿成人在线| 精品久久久久99| 日本在线不卡视频一二三区| 91丨九色丨黑人外教| 久久蜜桃av一区精品变态类天堂| 国产成人在线视频网站| 日韩伦理av电影| 欧美精品一卡两卡| 极品瑜伽女神91| 精品国产a毛片| 成人avav影音| 三级欧美在线一区| 国产欧美一区二区精品性色超碰| 一本到不卡免费一区二区| 日韩不卡一区二区| 亚洲视频一二区| 欧美va在线播放| 91视频在线看| 狠狠狠色丁香婷婷综合激情| 亚洲欧美日韩系列| 精品国产凹凸成av人网站| 一本大道久久a久久综合婷婷| 美腿丝袜在线亚洲一区| 亚洲欧美aⅴ...| 国产日韩av一区二区| 欧美三级电影精品| 成人av网站在线观看免费| 男女激情视频一区| 亚洲一二三四区| 色拍拍在线精品视频8848| 国产一区欧美一区| 日韩电影在线观看网站| 日韩毛片高清在线播放| 国产欧美日本一区视频| 日韩精品中文字幕一区二区三区| 国产制服丝袜一区| 日韩成人午夜精品| 亚洲第一av色| 亚洲色图在线播放| 亚洲国产成人午夜在线一区| 91精品国产入口| 国产 欧美在线| 久久99精品久久久久久动态图| 一区二区三区不卡在线观看| 欧美伦理视频网站| 在线视频观看一区| 97se亚洲国产综合自在线不卡| 国产美女精品在线| 黑人精品欧美一区二区蜜桃| 丝袜美腿亚洲色图| 亚洲成av人片一区二区| 亚洲一区在线观看免费观看电影高清| 国产精品视频免费看| 久久日一线二线三线suv| 成人精品视频.| 日韩国产欧美一区二区三区| 亚洲成av人片一区二区三区| 伊人性伊人情综合网| 精品少妇一区二区三区视频免付费| 欧美三级中文字幕| 欧美日韩国产首页| 不卡在线观看av| av福利精品导航| av电影在线观看完整版一区二区| 国产suv精品一区二区883| 国产高清精品网站| av一区二区三区在线| 色综合夜色一区| 久久99精品网久久| 国产乱国产乱300精品| 丁香婷婷深情五月亚洲| 99久久久久久99| 日本韩国一区二区| 欧美肥大bbwbbw高潮| wwwwww.欧美系列| 国产精品久久久久久久久免费桃花| 欧美一级xxx| 国产欧美精品一区二区色综合朱莉| 国产精品夫妻自拍| 一区二区成人在线| 免费在线观看一区| 国产一区二区不卡| 色综合久久久久网| 在线综合亚洲欧美在线视频| 久久久精品国产免费观看同学| 国产片一区二区| 亚洲影视资源网| 久久精品国产99久久6| 成人在线视频一区| 欧洲亚洲精品在线| 久久亚洲综合色一区二区三区| 中文字幕中文字幕一区| 日韩精品视频网站| 高清视频一区二区| 欧美老年两性高潮| 国产精品免费av| 水蜜桃久久夜色精品一区的特点 | 欧美在线免费播放| 日韩欧美在线网站| 亚洲欧洲日本在线| 亚洲视频资源在线| 麻豆精品视频在线观看免费| 东方aⅴ免费观看久久av| 欧美四级电影网| 日本一区二区三区久久久久久久久不 | 亚洲久本草在线中文字幕| 老鸭窝一区二区久久精品| 色婷婷久久一区二区三区麻豆| 欧美大胆一级视频| 亚洲精品免费在线| 紧缚捆绑精品一区二区| 欧美婷婷六月丁香综合色| 久久精品人人做人人爽人人| 欧美韩国日本不卡| 亚洲第一精品在线| av爱爱亚洲一区| 国产欧美一区二区三区在线看蜜臀| 同产精品九九九| 国精品**一区二区三区在线蜜桃| 日本精品视频一区二区三区| 欧美极品美女视频| 激情五月激情综合网| 欧美精品粉嫩高潮一区二区| 亚洲激情第一区| 不卡的看片网站| 国产欧美精品一区二区色综合| 美女www一区二区| 欧美日韩精品是欧美日韩精品| 国产精品久久久久久久久久久免费看 | 美女精品自拍一二三四| 欧美日韩国产小视频| 一区二区三区欧美亚洲| 91在线观看视频| 中文字幕国产一区| 丁香婷婷综合色啪| 国产精品色哟哟| 成人夜色视频网站在线观看| 久久久av毛片精品| 伦理电影国产精品| 精品国产污污免费网站入口 | 亚洲乱码中文字幕| a4yy欧美一区二区三区| 亚洲欧洲精品一区二区精品久久久|