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

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

?? main.c

?? 這是C6416片上支持庫(CSL)的所有例程
?? C
字號:
/*
 *  Copyright 2001 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.
 *  U.S. Patent Nos. 5,283,900  5,392,448
 */
/* "@(#) DSP/BIOS 4.51.0 05-23-01 (barracuda-i10)" */
/******************************************************************************\
*           Copyright (C) 2000 Texas Instruments Incorporated.
*                           All Rights Reserved
*------------------------------------------------------------------------------
* FILENAME...... main.c
* DATE CREATED.. 10/02/2000
* LAST MODIFIED. 02/02/2002
*------------------------------------------------------------------------------
* This program uses the timers to trigger EDMA events. These events in turn 
* trigger linked EDMA parameter tables to fill a ping pong buffer structure. 
* Set a breakpoint on swiProcessFunc(int arg). Then open two memory windows. 
* Use ping as the address for one memory window and pong for the other. Then 
* run the application. You'll note that the program bounces between the ping 
* and pong buffers filling each with a value that comes from the source. The 
* source in this case is the SDRAM timer control register and it simulates 
* input data.(Note: This example runs with CACHE enable). 
\******************************************************************************/
#include <std.h>
#include <swi.h>
#include <log.h>
#include <clk.h>

#include <csl.h>
#include <csl_cache.h>
#include <csl_edma.h>
#include <csl_timer.h>
#include <csl_irq.h>

/*----------------------------------------------------------------------------*/

/* declare DSP/BIOS objects created with the configuration tool */
extern far SWI_Obj SwiMain;
extern far LOG_Obj LogMain;
extern far SWI_Obj swiProcess;
extern far LOG_Obj trace;

/* Pick which EDMA transfer completion interrupt we want to use */
#define TCCINTNUM   10

/* define some constants */
#define BUFF_SZ  256              /* ping-pong buffer sizes in # of ints  */
#define FCPU     150000000        /* CPU clock frequency                  */
#define SRATE    8000             /* data sample rate (simulated w/timer  */
#define TPRD     (FCPU/(4*SRATE)) /* timer period                         */

/* Create the buffers. We want to align the buffers to be cache friendly */
/* by aligning them on an L2 cache line boundary.                        */
#pragma DATA_ALIGN(ping,128);
#pragma DATA_ALIGN(pong,128);
#pragma DATA_ALIGN(outbuff,128);
int ping[BUFF_SZ];
int pong[BUFF_SZ];
int outbuff[BUFF_SZ];

/* These two variables serve as the data sources for this example. */
/* Also want to align these on a cache line boundary since they    */
/* sources of EDMA transfers.                                      */
#pragma DATA_ALIGN(ping_data,128);
#pragma DATA_ALIGN(pong_data,128);
static int ping_data;
static int pong_data;

/* global variable used to track the ping-pong'ing */
static int pingpong = 0;

/* declare some CSL objects */
TIMER_Handle hTimer;   /* Handle for the timer device                 */
EDMA_Handle hEdma;     /* Handle for the EDMA channel                 */
EDMA_Handle hEdmaPing; /* Handle for the ping EDMA reload parameters  */
EDMA_Handle hEdmaPong; /* Handle for the pong EDMA reload parameters  */
EDMA_Config cfgEdma;   /* EDMA configuration structure                */

/* Create the EDMA configuration structure for ping transfers */
EDMA_Config cfgEdmaPing = {  
  EDMA_OPT_RMK(
    EDMA_OPT_PRI_LOW,
    EDMA_OPT_ESIZE_32BIT,
    EDMA_OPT_2DS_NO,
    EDMA_OPT_SUM_NONE,
    EDMA_OPT_2DD_NO,
    EDMA_OPT_DUM_INC,
    EDMA_OPT_TCINT_YES,
    EDMA_OPT_TCC_OF(TCCINTNUM),
    EDMA_OPT_TCCM_OF(0),
    EDMA_OPT_ATCINT_NO,
    EDMA_OPT_ATCC_OF(0),
    EDMA_OPT_PDTS_DEFAULT,
    EDMA_OPT_PDTD_DEFAULT,
    EDMA_OPT_LINK_YES,
    EDMA_OPT_FS_NO
  ),
  EDMA_SRC_OF(&ping_data),
  EDMA_CNT_OF(BUFF_SZ),
  EDMA_DST_OF(ping),
  EDMA_IDX_OF(0x00000004),
  EDMA_RLD_OF(0x00000000)
};                         

/* Create the EDMA configuration structure for pong transfers */
EDMA_Config cfgEdmaPong = {
  EDMA_OPT_RMK(
    EDMA_OPT_PRI_LOW,
    EDMA_OPT_ESIZE_32BIT,
    EDMA_OPT_2DS_NO,
    EDMA_OPT_SUM_NONE,
    EDMA_OPT_2DD_NO,
    EDMA_OPT_DUM_INC,
    EDMA_OPT_TCINT_YES,
    EDMA_OPT_TCC_OF(TCCINTNUM),
    EDMA_OPT_TCCM_OF(0),
    EDMA_OPT_ATCINT_NO,
    EDMA_OPT_ATCC_OF(0),
    EDMA_OPT_PDTS_DEFAULT,
    EDMA_OPT_PDTD_DEFAULT,
    EDMA_OPT_LINK_YES,
    EDMA_OPT_FS_NO
  ),
  EDMA_SRC_OF(&pong_data),
  EDMA_CNT_OF(BUFF_SZ),
  EDMA_DST_OF(pong),
  EDMA_IDX_OF(0x00000004),
  EDMA_RLD_OF(0x00000000)
};                         
 
    
/*----------------------------------------------------------------------------*/
void main(){

  /* initialize the CSL library */
  CSL_init();

  /* initialize the input source data */
  ping_data=0x00000000;
  pong_data=0x80000000;
  
  /* Since these variables are the source of an EDMA transfer, we     */
  /* need to flush them out of the cache since we just wrote to them. */
  CACHE_flush(CACHE_L2,&ping_data,1);
  CACHE_flush(CACHE_L2,&pong_data,1);

  /* Let's disable/clear related interrupts just in case they are pending */
  /* fram a previous run of the program.                                  */  
  IRQ_reset(IRQ_EVT_EDMAINT);
  EDMA_intDisable(TCCINTNUM);
  EDMA_intClear(TCCINTNUM);
  
  /* Although not required, let's clear all of the EDMA parameter RAM. */
  /* This makes it easier to view the RAM and see the changes as we    */
  /* configure it.                                                     */
  EDMA_clearPram(0x00000000);
   
  /* Let's open up a timer device, we'll use this to simulate input events */
  /* at a gien sample rate.                                                */
  hTimer = TIMER_open(TIMER_DEV1, TIMER_OPEN_RESET);

  /* Lets open up the EDMA channel associated with timer #1. */
  hEdma = EDMA_open(EDMA_CHA_TINT1, EDMA_OPEN_RESET);

  /* We also need two EDMA reload parameter sets so let's allocate them */
  /* here. Notice the -1, this means allocate any availale tale.        */
  hEdmaPing = EDMA_allocTable(-1);
  hEdmaPong = EDMA_allocTable(-1);

  /* Let's copy the ping reload configuration structure to an */
  /* intermediate configuration structure.                    */
  cfgEdma = cfgEdmaPing;
  
  /* Let's initialize the link fields of the configuration structures */
  cfgEdmaPing.rld = EDMA_RLD_RMK(0,hEdmaPing);
  cfgEdmaPong.rld = EDMA_RLD_RMK(0,hEdmaPong);
  cfgEdma.rld     = EDMA_RLD_RMK(0,hEdmaPong);

  /* Now let's program up the EDMA channel with the configuration structure */
  EDMA_config(hEdma, &cfgEdma);   
  
  /* Let's also configure the reload parameter tables in the EDMA PRAM */
  /* with the values in the configuration structures.                  */
  EDMA_config(hEdmaPing, &cfgEdmaPing);
  EDMA_config(hEdmaPong, &cfgEdmaPong);   

  /* Configure up the timer. */
  TIMER_configArgs(hTimer, 
    TIMER_CTL_OF(0x00000200), 
    TIMER_PRD_OF(TPRD), 
    TIMER_CNT_OF(0)
  );   

  /* Enable the related interrupts */
  IRQ_enable(IRQ_EVT_EDMAINT);
  EDMA_intEnable(TCCINTNUM);        
  
  /* Enable the EDMA channel */
  EDMA_enableChannel(hEdma);   
  
  /* Finally, enable the timer which will drive everything. */
  TIMER_start(hTimer);
}

/*----------------------------------------------------------------------------*/
void swiProcessFunc(int arg){

  int *inbuff;
  int x;

  if (pingpong){

    /* If pingpong is 0, then we own the ping input buffer */
    inbuff = ping;
    LOG_printf(&trace,"Ping");
    
  }else{

    /* If pingpong is 1, then we own the pong input buffer */
    inbuff = pong;
    LOG_printf(&trace,"Pong");

  }  

  /* Now let's process the input buffer, for simplicity, we'll */
  /* just copy it to the output buffer.                        */
  for (x=0; x<BUFF_SZ; x++) {
    outbuff[x] = inbuff[x];
  }

  /* If this example is enhanced to actually do something with the  */
  /* output buffer such as DMA it somewhere, you will want to flush */
  /* it out of the cache first.                                     */
  CACHE_flush(CACHE_L2,outbuff,BUFF_SZ);
  
  /* Since we're done processing the input buffer, clean it from cache, */
  /* this invalidates it from cache to ensure we read a fresh version   */
  /* the next time.                                                     */
  CACHE_clean(CACHE_L2,inbuff,BUFF_SZ);
}

/*----------------------------------------------------------------------------*/
void hwiEdmaIsr(int arg){
  
  /* Clear the pending interrupt from the EDMA interrupt pending register */
  EDMA_intClear(TCCINTNUM);
  
  /* Perform ping-pong */
  pingpong = (pingpong + 1) & 1;

  /* Based on if we ping'ed or pong'ed, we need to set the EDMA channel */
  /* link address for the NEXT frame.                                   */
  
  if (pingpong){
    /* Currently doing pong so setup next frame for ping */                     
  
    /* Modify the input data source, this just simulates */
    /* the input data changing.                          */
    ping_data++;

    /* Rememer to flush this variable out of the cache */
    /* since it's the source of an EDMA transfer       */
    CACHE_flush(CACHE_L2,&ping_data,1); 

    /* Now filling pong so set link to ping */
    EDMA_link(hEdma,hEdmaPing);
    
  }else{
    /* Currently doing ping so setup next frame for pong */                     
  
    /* Modify the output data source, this just simulates */
    /* the input data changing.                           */
    pong_data++;
    
    /* Rememer to flush this variable out of the cache */
    /* since it's the source of an EDMA transfer       */
    CACHE_flush(CACHE_L2,&pong_data,1);

    /* Now filling ping so set link to pong */
    EDMA_link(hEdma,hEdmaPong);
    
  }  
 
  /* Notify the app that we just ping-pong'ed */
  SWI_post(&swiProcess);
}

/*----------------------------------------------------------------------------*/

/******************************************************************************\
* End of main.c
\******************************************************************************/
                                                                                

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产真实精品久久二三区| 天天影视色香欲综合网老头| 精品乱人伦小说| 日韩亚洲欧美在线| 日韩免费观看2025年上映的电影| 欧美精品丝袜久久久中文字幕| 精品视频在线免费看| 欧美精品乱码久久久久久| 在线观看日韩精品| 欧美日韩一卡二卡三卡 | 亚洲婷婷在线视频| 亚洲欧美一区二区不卡| 亚洲视频狠狠干| 亚洲无线码一区二区三区| 午夜视频在线观看一区二区三区| 亚洲成人综合网站| 麻豆精品视频在线观看免费| 国产在线精品免费av| 国产乱对白刺激视频不卡| 99久久综合99久久综合网站| 99久久国产综合精品女不卡| 欧美日韩一卡二卡| 精品国产乱码久久| 自拍偷拍国产亚洲| 丝袜诱惑制服诱惑色一区在线观看 | 久久综合中文字幕| 国产精品久久99| 亚洲一区二区三区四区五区中文| 亚洲午夜久久久久久久久久久| 青青国产91久久久久久| 丁香激情综合国产| 欧美日本一区二区| 国产精品网站在线观看| 亚洲mv大片欧洲mv大片精品| 国产在线不卡视频| 欧美日韩免费电影| 中文字幕国产一区| 麻豆国产精品一区二区三区| 99精品欧美一区二区三区小说| 7777精品伊人久久久大香线蕉 | 亚洲成人tv网| 福利电影一区二区| 久久九九全国免费| 亚洲柠檬福利资源导航| 国产一区二区三区黄视频| 欧美三级资源在线| 国产精品国产三级国产a| 视频一区视频二区中文| 99精品热视频| 久久精品视频免费| 美女诱惑一区二区| 欧美欧美欧美欧美首页| 亚洲欧美成aⅴ人在线观看| 国产成人在线视频网站| 日韩精品一区二区三区视频| 亚洲福中文字幕伊人影院| 北条麻妃国产九九精品视频| 欧美zozozo| 久久精品国内一区二区三区| 欧美人妇做爰xxxⅹ性高电影| 17c精品麻豆一区二区免费| 国产一区二区美女| 亚洲国产精品av| 精品一区二区三区视频| 欧美伦理影视网| 亚洲午夜电影网| 色综合天天天天做夜夜夜夜做| 日本一区二区免费在线观看视频 | 欧美日韩精品福利| 亚洲精品国产精品乱码不99| 99久久精品国产一区| 欧美国产激情一区二区三区蜜月| 精品一区二区av| 欧美va亚洲va在线观看蝴蝶网| 免费三级欧美电影| 欧美一二三区在线| 美女任你摸久久 | 国产精品久久久久一区| 国产麻豆精品95视频| 久久影院电视剧免费观看| 国产乱对白刺激视频不卡| 精品国产一二三区| 国产99一区视频免费| 国产欧美一区二区在线| 成人av动漫网站| 亚洲人成伊人成综合网小说| 色视频成人在线观看免| 亚洲地区一二三色| 欧美成人在线直播| 国产一区二区三区四区五区入口| 国产日产精品1区| 99久久99久久免费精品蜜臀| 亚洲一区二区av在线| 在线播放91灌醉迷j高跟美女| 六月婷婷色综合| 亚洲国产精品成人综合| 色伊人久久综合中文字幕| 亚洲1区2区3区4区| 精品国产乱码久久久久久1区2区 | 亚洲欧美视频一区| 欧美日本韩国一区二区三区视频 | 亚洲精品一区二区三区蜜桃下载 | 国产精品污污网站在线观看| 色屁屁一区二区| 久久成人av少妇免费| 国产精品国产自产拍高清av| 91久久精品一区二区二区| 人人爽香蕉精品| 中文av一区二区| 91精品国产一区二区| 国产美女在线精品| 亚洲chinese男男1069| 久久久久久久国产精品影院| 欧美性淫爽ww久久久久无| 国产资源在线一区| 亚洲国产日韩综合久久精品| 国产日产欧美一区二区三区| 欧美一区二区福利在线| 波多野洁衣一区| 久久成人久久爱| 亚洲午夜免费视频| 奇米精品一区二区三区四区| 国产精品不卡在线观看| 7878成人国产在线观看| 不卡的av中国片| 国内一区二区视频| 五月婷婷激情综合网| 中文字幕中文乱码欧美一区二区 | 亚洲图片欧美一区| 国产精品视频yy9299一区| 91精品国产综合久久久久久久| 97久久人人超碰| 成人午夜大片免费观看| 日本一区中文字幕| 亚洲尤物在线视频观看| 中文字幕中文在线不卡住| 国产欧美一区二区精品性| 日韩精品一区二区三区在线播放| 色婷婷久久一区二区三区麻豆| 福利视频网站一区二区三区| 国产综合一区二区| 精品一区二区国语对白| 久久精品国产99国产精品| 日韩高清在线不卡| 亚洲国产一区二区a毛片| 一区二区三区在线免费| 亚洲欧洲av在线| 国产精品卡一卡二| 国产精品久久久久四虎| 国产精品女主播av| 国产精品毛片无遮挡高清| 中文欧美字幕免费| 自拍偷拍国产亚洲| 亚洲精品v日韩精品| 一区二区三区在线视频观看 | 久久久久久久久久久电影| 精品99999| 久久久久久电影| 中文在线免费一区三区高中清不卡| 国产亚洲欧美日韩在线一区| 久久久另类综合| 国产精品久久精品日日| 亚洲乱码日产精品bd| 一区二区三区四区不卡在线 | 91精品国产综合久久精品app| 欧美日本视频在线| 欧美mv和日韩mv国产网站| 久久亚洲影视婷婷| 中文字幕在线一区| 一区二区不卡在线播放| 婷婷成人综合网| 国产一区二区三区av电影 | 蜜桃传媒麻豆第一区在线观看| 国内精品久久久久影院色| 丰满少妇久久久久久久| 91免费版在线| 欧美一二三在线| 国产精品理伦片| 蜜臀av性久久久久蜜臀av麻豆 | 欧美主播一区二区三区| 91麻豆精品国产| 国产日韩欧美精品一区| 亚洲免费伊人电影| 蜜臀久久久99精品久久久久久| 国产精品夜夜嗨| 欧美性生活大片视频| 精品成a人在线观看| 亚洲欧美日韩成人高清在线一区| 青青草国产精品97视觉盛宴| 成人一级视频在线观看| 欧美少妇bbb| 亚洲国产精品二十页| 日韩va亚洲va欧美va久久| 成人午夜在线免费| 日韩午夜小视频| 亚洲成人手机在线| 成人一区在线观看| 日韩欧美一级特黄在线播放| 国产精品久久久久久久久晋中| 日日摸夜夜添夜夜添国产精品|