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

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

?? edma.c

?? DSP編程
?? C
字號:
#ifndef _EDMA_H_
#include "EDMA.h"
#endif

/*-------------------------------------------------------------------------
 * qdma_start() - used to start QDMA    
 * Description:  32位數(shù)據(jù)傳送
 * Parameter: src      EDMA傳送的源地址
 *            dst      EDMA傳送的目的地址
 *            sum/dum  =1  源地址/目的地址連續(xù)遞增
 *                     =0  源地址/目的地址固定不變  
 *            size     EDMA傳送的element的個數(shù)                 
 *
 * Note: "size" is the transfered count of the element, 
 *        and the element is 4 byte, so it will transfer
 *        size*4 from src to dst. The src and dst address increment.
 *        The max size is (2^16-1) = 65535 = 64k
 *        Frame Synchronized 1D Transfer (FS=1)
 *-------------------------------------------------------------------------*/

void qdma_start(int src, int dst, int sum, int dum, int size)
{ 
	
  *(unsigned volatile int *)CIERL |= (1<<QDMA_TCC);
  
  *(unsigned volatile int *)QDMA_OPT = (QDMA_PRI<<PRI) + (sum<<SUM) + (dum<<DUM) + (1<<TCINT)  
                                     + ((QDMA_TCC%16)<<TCC) + ((QDMA_TCC/16)<<TCCM)+ (1<<FS);

  *(unsigned volatile int *)QDMA_SRC = src;
  *(unsigned volatile int *)QDMA_DST = dst;
  *(unsigned volatile int *)QDMA_IDX = 0x00000000; 

  *(unsigned volatile int *)QDMA_S_CNT = size;
}
  


/*
To configure the EDMA for any channel (or QDMA request) to interrupt the CPU:
1.	Set CIE n to '1' in the CIER (Channel interrupt enable register)
2.	Set TCINT to '1' in channel options
3.	Set Transfer Complete Code(TCC) to n in channel options
*/
//left up corner is (0,0)

// use qdma to trans 2d src to 1d dst, test ok 2002/9/13 by shiyan 
int qdma_2Dto1D_start(int src, int dst, int image_size_x, int image_size_y,
						int LU_x, int LU_y, int RD_x, int RD_y,
						unsigned char nbytePerPixel)
{ 
	if((RD_x - LU_x +1)*nbytePerPixel % 4 != 0 ||
		(RD_x -LU_x +1)*(RD_y - LU_y +1)*nbytePerPixel % 8 !=0)
		return 1;

	//transfer element is 32bits
  *(unsigned volatile int *)CIERL |= (1<<QDMA_TCC);
  
  *(unsigned volatile int *)QDMA_OPT = (QDMA_PRI<<PRI) + (1<<DS) + (1<<SUM) + (0<<DUM) + (1<<TCINT)  
                                      + ((QDMA_TCC%16)<<TCC) + ((QDMA_TCC/16)<<TCCM) + (1<<FS);

  *(unsigned volatile int *)QDMA_SRC = src + (LU_y * image_size_x + LU_x) * nbytePerPixel;;
  *(unsigned volatile int *)QDMA_DST = dst;

  *(unsigned volatile int *)QDMA_IDX = ((image_size_x - 1 - RD_x + LU_x) * nbytePerPixel) <<16; 
  
  *(unsigned volatile int *)QDMA_S_CNT = (RD_y - LU_y) << 16 
  									| ((RD_x - LU_x +1)*nbytePerPixel / 4);
  
  return 0;
}

/*-----------------------------------------------------------------------------------------*/
int edma_start(int src, int dst, unsigned int ch, int sum, int dum, int islink, int size)
{ 
//	EDMA_REG *edma_reg = (EDMA_REG*)EVENT_PARAMS_ADDR(ch); 
	
	if((ch>=EDMA_CHANNEL_NUM)) 
      return 1;

  *(unsigned volatile int *)ECRL |= (1<<ch);		//clear 
    
  *(unsigned volatile int *)(EVENT_PARAMS_ADDR(ch) + OPT) = (EDMA_PRI<<PRI) + (sum<<SUM) + (dum<<DUM) + (1<<TCINT)  
                                                  + ((ch%16)<<TCC) + ((ch/16)<<TCCM) + (islink<<LINK) + (1<<FS);
 
  *(unsigned volatile int *)(EVENT_PARAMS_ADDR(ch) + SRC) = src;
  *(unsigned volatile int *)(EVENT_PARAMS_ADDR(ch) + DST) = dst;
  *(unsigned volatile int *)(EVENT_PARAMS_ADDR(ch) + IDX) = 0x00000000; 
   
  *(unsigned volatile int *)(EVENT_PARAMS_ADDR(ch) + CNT) = size;
  *(unsigned volatile int *)(EVENT_PARAMS_ADDR(ch) + LNK)= ((0xffff& NULL_PARAMS_ADDR));

  *(unsigned volatile int *)CIERL |= (1<<ch);	//enable channel interrupt
  *(unsigned volatile int *)EERL |= (1<<ch);	//enable EVENT

  return 0;
}

/*-----------------------------------------------------------------------------------------*/
int edma_1Dto2D_start(int src, int dst, unsigned int ch, int image_size_x, int image_size_y,
						int LU_x, int LU_y, int RD_x, int RD_y,
						unsigned char nbytePerPixel)
{ 
  if((RD_x - LU_x +1)*nbytePerPixel % 4 != 0 ||
	(RD_x -LU_x +1)*(RD_y - LU_y +1)*nbytePerPixel % 8 !=0)
      return 1;

  if((ch>=EDMA_CHANNEL_NUM)) 
      return 1;

  *(unsigned volatile int *)ECRL |= (1<<ch);		
    
  //transfer element is 32bits
  *(unsigned volatile int *)(EVENT_PARAMS_ADDR(ch) + OPT) = (EDMA_PRI<<PRI) + (1<<DD) + (1<<SUM) + (1<<DUM) + (1<<TCINT)
                                                        + ((ch%16)<<TCC) + ((ch/16)<<TCCM) + (1<<LINK) + (1<<FS);

  *(unsigned volatile int *)(EVENT_PARAMS_ADDR(ch) + SRC) = src;
  *(unsigned volatile int *)(EVENT_PARAMS_ADDR(ch) + DST) = dst + (LU_y * image_size_x + LU_x) * nbytePerPixel;

	//computer the parameter of the EDMA
  *(unsigned volatile int *)(EVENT_PARAMS_ADDR(ch) + IDX) = ((image_size_x - 1 - RD_x + LU_x) * nbytePerPixel) <<16;
  
  *(unsigned volatile int *)(EVENT_PARAMS_ADDR(ch) + CNT) = (RD_y - LU_y) << 16 
  											| ((RD_x - LU_x +1)*nbytePerPixel / 4);

  *(unsigned volatile int *)(EVENT_PARAMS_ADDR(ch) + LNK)= ((0xffff& NULL_PARAMS_ADDR));

  *(unsigned volatile int *)CIERL |= (1<<ch);
  *(unsigned volatile int *)EERL |= (1<<ch);

  return 0;
}

/*-----------------------------------------------------------------------------------------*/
int edma_2Dto1D_start(int src, int dst, unsigned int ch, int image_size_x, int image_size_y,
						int LU_x, int LU_y, int RD_x, int RD_y,
						unsigned char nbytePerPixel)
{ 
  if((RD_x - LU_x +1)*nbytePerPixel % 4 != 0 ||
	(RD_x -LU_x +1)*(RD_y - LU_y +1)*nbytePerPixel % 8 !=0)
      return 1;

  if((ch>=EDMA_CHANNEL_NUM)) 
      return 1;

  *(unsigned volatile int *)ECRL |= (1<<ch);		
    
  //transfer element is 32bits
  *(unsigned volatile int *)(EVENT_PARAMS_ADDR(ch) + OPT) = (EDMA_PRI<<PRI) + (1<<DS) + (1<<SUM) + (0<<DUM) + (1<<TCINT)
                                                        + ((ch%16)<<TCC) + ((ch/16)<<TCCM) + (1<<LINK) + (1<<FS);

  *(unsigned volatile int *)(EVENT_PARAMS_ADDR(ch) + SRC) = src + (LU_y * image_size_x + LU_x) * nbytePerPixel;;
  *(unsigned volatile int *)(EVENT_PARAMS_ADDR(ch) + DST) = dst;

	//computer the parameter of the EDMA
  *(unsigned volatile int *)(EVENT_PARAMS_ADDR(ch) + IDX) = ((image_size_x - 1 - RD_x + LU_x) * nbytePerPixel) <<16;
  
  *(unsigned volatile int *)(EVENT_PARAMS_ADDR(ch) + CNT) = (RD_y - LU_y) << 16 
  											| ((RD_x - LU_x +1)*nbytePerPixel / 4);

  *(unsigned volatile int *)(EVENT_PARAMS_ADDR(ch) + LNK)= ((0xffff& NULL_PARAMS_ADDR));

  *(unsigned volatile int *)CIERL |= (1<<ch);
  *(unsigned volatile int *)EERL |= (1<<ch);

  return 0;
}

/*----------------------------------------------------------------------------------------*/
void edma_null_init()
{ 

	*(unsigned volatile int *)(NULL_PARAMS_ADDR + OPT)= 0x0;
	*(unsigned volatile int *)(NULL_PARAMS_ADDR + SRC)= 0x0;
	*(unsigned volatile int *)(NULL_PARAMS_ADDR + CNT)= 0x0;
	*(unsigned volatile int *)(NULL_PARAMS_ADDR + DST)= 0x0;
	*(unsigned volatile int *)(NULL_PARAMS_ADDR + IDX)= 0x0;
	*(unsigned volatile int *)(NULL_PARAMS_ADDR + LNK)= 0x0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色悠悠亚洲一区二区| 男女激情视频一区| 色欧美88888久久久久久影院| 国产精品区一区二区三区| 国产99久久久精品| 自拍偷拍国产亚洲| 欧美视频在线一区二区三区 | 91丨九色丨尤物| 亚洲人成人一区二区在线观看 | 亚洲精品网站在线观看| 99久久国产综合精品色伊| 亚洲欧美日韩久久| 欧美中文字幕一区| 日韩不卡一区二区| 久久久亚洲精华液精华液精华液| 国产成人精品一区二区三区四区 | 最新国产成人在线观看| 99久久婷婷国产| 亚洲一区二区三区四区中文字幕| 精品视频一区二区三区免费| 日日夜夜精品视频天天综合网| 欧美一区二区在线播放| 裸体在线国模精品偷拍| 国产精品久久久久永久免费观看 | 在线日韩av片| 美女国产一区二区| 一区二区中文视频| 91精品国产综合久久精品性色| 国产一二精品视频| 亚洲最大的成人av| 精品处破学生在线二十三| 国产成人aaa| 日产欧产美韩系列久久99| 中文字幕欧美日韩一区| 欧美一区二区视频在线观看| 成人黄色一级视频| 日韩高清一区二区| 亚洲色图视频网| 久久久久一区二区三区四区| 欧美视频精品在线| k8久久久一区二区三区| 久久国产剧场电影| 夜夜嗨av一区二区三区| 亚洲国产精品ⅴa在线观看| 欧美精品在线一区二区三区| 成人av电影在线观看| 免费视频最近日韩| 亚洲一区二区三区四区在线观看 | 精品蜜桃在线看| 欧美亚洲尤物久久| 99国产精品久| 国产成人免费av在线| 久久精品国产一区二区| 亚洲一二三专区| 最新热久久免费视频| 国产午夜精品一区二区三区视频 | 成人国产精品免费观看动漫| 蜜臀久久久99精品久久久久久| 亚洲精品欧美在线| 综合久久给合久久狠狠狠97色| 久久亚洲精精品中文字幕早川悠里| 欧美性xxxxxxxx| 色久综合一二码| www.视频一区| 波多野结衣中文一区| 国产成人在线视频播放| 激情综合网av| 蜜臀久久99精品久久久久宅男| 亚洲成av人片在线| 亚洲午夜久久久久久久久电影网| 亚洲天堂成人在线观看| ...xxx性欧美| 亚洲精品视频在线| 亚洲自拍偷拍图区| 亚洲aaa精品| 免费看欧美美女黄的网站| 五月天婷婷综合| 日韩专区一卡二卡| 免费在线观看视频一区| 麻豆高清免费国产一区| 久久www免费人成看片高清| 日本系列欧美系列| 老司机午夜精品99久久| 偷偷要91色婷婷| 亚洲成人激情自拍| 日韩av在线免费观看不卡| 天天免费综合色| 免费xxxx性欧美18vr| 麻豆91在线播放| 国产精品一区在线观看乱码| 国产白丝精品91爽爽久久| 高清不卡一区二区| 国产不卡视频在线观看| a在线欧美一区| 欧美午夜影院一区| 欧美丰满嫩嫩电影| 欧美日韩高清在线| 欧美电影精品一区二区| 国产日韩欧美a| 亚洲欧洲av在线| 亚洲乱码国产乱码精品精可以看 | 精品国产一区二区三区av性色| 精品国产a毛片| 精品国内片67194| 国产精品久久夜| 亚洲va国产va欧美va观看| 久久99精品国产麻豆婷婷洗澡| 国产在线精品一区二区夜色| 风间由美中文字幕在线看视频国产欧美| 99久久伊人网影院| 欧美视频一区二区三区在线观看 | 色综合欧美在线视频区| 欧美日韩亚州综合| 久久一二三国产| 亚洲影视在线播放| 国产激情一区二区三区桃花岛亚洲| 成人午夜av电影| 欧美亚洲国产一区二区三区 | 丝袜国产日韩另类美女| 国产高清不卡一区| 欧美日韩国产综合视频在线观看| 久久亚洲一区二区三区明星换脸 | 日本美女一区二区| 成年人国产精品| 国产人妖乱国产精品人妖| 亚洲自拍与偷拍| 顶级嫩模精品视频在线看| 91精品国产日韩91久久久久久| 国产精品每日更新在线播放网址 | 国产亚洲成av人在线观看导航| 一个色在线综合| 成人国产精品视频| 亚洲精品在线一区二区| 亚洲成人手机在线| 99久久夜色精品国产网站| 精品人伦一区二区色婷婷| 一区二区三区免费看视频| 成人亚洲一区二区一| 欧美本精品男人aⅴ天堂| 亚洲国产三级在线| 99国产精品久久久久久久久久| 久久久久久亚洲综合| 丝袜亚洲另类丝袜在线| 91黄色激情网站| 亚洲欧美激情插| 成人成人成人在线视频| 久久久久88色偷偷免费| 激情亚洲综合在线| 日韩三级中文字幕| 日韩成人精品在线| 欧美群妇大交群中文字幕| 一区二区三区免费网站| 色综合久久久久网| 亚洲同性同志一二三专区| 粉嫩av亚洲一区二区图片| 久久蜜桃av一区二区天堂| 免费视频一区二区| 日韩情涩欧美日韩视频| 乱一区二区av| 日韩美女在线视频| 精品在线免费观看| 精品欧美一区二区三区精品久久| 日韩av午夜在线观看| 欧美区一区二区三区| 偷拍与自拍一区| 91精品婷婷国产综合久久竹菊| 日韩经典一区二区| 日韩午夜激情av| 久久99久久99| 久久久久久久久久看片| 国产精品99久久久久久宅男| 欧美激情综合在线| 99久久精品99国产精品 | 午夜精彩视频在线观看不卡| 欧美日韩和欧美的一区二区| 日韩一区精品视频| 精品国产99国产精品| 国产不卡高清在线观看视频| 国产精品妹子av| 91国产视频在线观看| 亚洲成年人影院| 久久综合资源网| 91在线视频免费91| 亚洲第一在线综合网站| 日韩欧美国产不卡| 国产a久久麻豆| 亚洲小说春色综合另类电影| 91精品国产91久久久久久一区二区 | 亚洲曰韩产成在线| 9191久久久久久久久久久| 久久精品国产色蜜蜜麻豆| 精品久久一二三区| www.欧美日韩| 日韩高清在线不卡| 中文字幕+乱码+中文字幕一区| 99re66热这里只有精品3直播| 亚洲午夜国产一区99re久久| 日韩精品在线一区| 91丝袜美腿高跟国产极品老师 | 国产三区在线成人av|