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

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

?? main.c

?? 這是C6416片上支持庫(CSL)的所有例程
?? C
?? 第 1 頁 / 共 2 頁
字號:
/****************************************************************************\
 *           Copyright (C) 2001 Texas Instruments Incorporated.             *
 *                           All Rights Reserved                            *
 ****************************************************************************
 * TCPSharedProcessing.pjt                                                  *
 *                                                                          *
 *                                                                          *
 * The purpose of this project is to demonstrate how to use the Turbo Co-   *
 * Processor (TCP) using the Chip Support Library (CSL).                    *
 *                                                                          *
 * User data, residing in the tcpUserx.asm files included with this project *
 * is processed through the TCP in Shared Processing Mode. The TCP is       *
 * configured based on the channel parameters set in tcp_parameters.h. This *
 * software handles the TCP, EDMA, and interrupt configuration necessary to *
 * process each user channel.                                               *
\****************************************************************************/
#include <csl.h>
#include <csl_tcp.h>
#include <csl_edma.h>
#include "tcp_parameters.h"

/* Prototype declarations */
void intConfig(void);
Int32 checkResults(Uint32 *actual ,Uint32 *reference, Uint32 size, 
        Uint32 nbValidBitsInLastWord);
interrupt void edmaIsr(void);
void submitEdma(TCP_UserData *userData, TCP_UserData *xabData,
        TCP_Params *tcpParameters, Uint16 *interleaverTable,
        TCP_ExtrinsicData *extrinsics, TCP_ExtrinsicData *apriori,
        Uint32 numSubFrame);
void processUserChannel(TCP_UserData *userData, TCP_Params *configParms,
        Uint16 *interleaverTable, Uint32 **hardDecisions, Uint32 *numHd,
        Uint32 *validHdLast);

/* Global variable declarations */
Int32 tcpDone;                   /* TCP processing completion flag          */ 
int tcc = -1;                    /* Transfer completion code used by EDMA   */
int tccApriori = -1;             /* Transfer completion code used for chain */
EDMA_Handle hEdmaRevt,           /* EDMA channel used for extrinsics data   */
            hEdmaXevt,           /* EDMA channel used for IC Values         */
            hEdmaSysPar,         /* EDMA channel used for Systematics and   */
                                 /*      Parities data                      */
            hEdmaApriori,        /* EDMA channel used for apriori data      */
            hEdmaNull;           /* EDMA NULL channel used for termination  */


/****************************************************************************\
 * main function                                                            *
\****************************************************************************/
void
main(void)
{
volatile Uint32 error = 0;
Uint32 *hardDecisions, numHd, validHdLast;
Uint32 i;

    /* Initialize Chip Support Library */
    CSL_init();

    /* Cycle through user channels */
    for(i = 0; i < NUM_USERS; i++){
      /* Process the user channel data */
      processUserChannel(userData[i], &tcpParameters[i], interleaverTable[i],
                         &hardDecisions, &numHd, &validHdLast);

      /* Verify the coprocessing results by comparing received decisions and*/
      /* output parameters to programmed reference data. A value of "0"     */
      /* indicates that no error was present. A non-zero value indicates an */
      /* error occurred.                                                    */
      error = checkResults(hardDecisions, referenceHd[i], numHd, validHdLast);
      if (error) break;
    } /* end for i */
    
    while(1);
    
} /* end main */ 


/****************************************************************************\
 * processUserChannel: Perform the submission of the shared processing      *
 * channel data to the TCP as well as the necessary shared CPU functions.   *
\****************************************************************************/
void
processUserChannel(TCP_UserData *userData, TCP_Params *configParms,
        Uint16 *interleaverTable, Uint32 **hardDecisions, Uint32 *numHd,
        Uint32 *validHdLast)
{
TCP_UserData *workingData1, *workingData2;
TCP_UserData *xabData;
Uint16 index;
TCP_ExtrinsicData *extrinsics1, *extrinsics2;
TCP_ExtrinsicData *apriori;
int i;
Uint32 numExt;
Uint32 numApriori;
Uint32 numSubFrame;
Uint16 frameLen = configParms->frameLen;
Uint16 rate = configParms->rate;
Uint32 workingDataSize;

    /* Break up user channel data into sub-frames */
    numSubFrame = TCP_calcSubBlocksSP(configParms);
    
    /* Calculate all count parameters required for EDMA programming */
    TCP_calcCountsSP(configParms);

    /* Allocate all required memory for data */
    workingDataSize = TCP_ceil(rate * frameLen, 3) << 3;
    workingData1  = (TCP_UserData *)memalign(2 * sizeof(Uint32),
                                               workingDataSize);
    workingData2  = (TCP_UserData *)memalign(2 * sizeof(Uint32),
                                               workingDataSize);
    numExt = configParms->numExt * sizeof(Uint32);
    extrinsics1   = (TCP_ExtrinsicData *)memalign(2 * sizeof(Uint32),
                                               numSubFrame * numExt);
    extrinsics2   = (TCP_ExtrinsicData *)memalign(2 * sizeof(Uint32),
                                               numSubFrame * numExt);
    numApriori    = configParms->numApriori * sizeof(Uint32);
    apriori       = (TCP_ExtrinsicData *)memalign(2 * sizeof(Uint32),
                                           numSubFrame * numApriori);

    /* demultiplex channel data for SP mode */
    TCP_demuxInput(rate, frameLen, userData, interleaverTable,
                                      workingData1, workingData2);

    index = frameLen * rate;
    xabData = &userData[index];

    for (i=0; i<configParms->maxIter; i++){
      /* Submit MAP1 */
      /* Clear TCP completion flag */
      tcpDone = 0;    

      /* Program EDMA to service User Channel for MAP 1 */
      submitEdma(workingData1, xabData, configParms, interleaverTable,
                                   extrinsics1, apriori, numSubFrame);

      /* Begin transmitting to the TCP */
      TCP_start();

      /* Wait on turbo decode to complete. The task pends on a semaphore    */
      /* that is set in the EDMA interrupt service routine.                 */
      while(!tcpDone);

      /* Interleave extrinsics to generate apriori data used for next MAP   */
      /* decode.                                                            */
      TCP_interleaveExt(apriori, extrinsics1, interleaverTable,
                                                            frameLen); 

      configParms->map = TCP_MAP_MAP2;
      
      /* Submit MAP2 */
      /* Clear TCP completion flag */
      tcpDone = 0;    

      /* Program EDMA to service User Channel for MAP 1 */
      submitEdma(workingData2, xabData, configParms, interleaverTable,
                                   extrinsics2, apriori, numSubFrame);

      /* Begin transmitting to the TCP */
      TCP_start();

      /* Wait on turbo decode to complete. The task pends on a semaphore    */
      /* that is set in the EDMA interrupt service routine.                 */
      while(!tcpDone);

      /* De-interleave extrinsics to generate apriori data used for next    */
      /* MAP decode.                                                        */
      TCP_deinterleaveExt(apriori, extrinsics2, interleaverTable,
                                                              frameLen); 

      /* Select MAP 1 decode (non-1st iteration) */
      configParms->map = TCP_MAP_MAP1B;

    } /* end for i */
    
    /* Allocate memory for hard decisions data */
    *numHd = tcpParameters->numHd;
    *validHdLast = *numHd % 4;
    *hardDecisions = (Uint32 *)memalign(2 * sizeof(Uint32),
                                  *numHd * sizeof(Uint32));

    /* Calculate Hard Decisions */
    TCP_calculateHd(extrinsics1, apriori, userData, *hardDecisions, frameLen,
                                                                       rate);

    /* Free memory spaces back to the system */
    free(workingData1);
    free(workingData2);
    free(extrinsics1);
    free(extrinsics2);
    free(apriori);
    free(hardDecisions);

} /* end processUserChannel() */


/****************************************************************************\
 * intConfig: Configure the CPU interrupt controller to receive interrupts  *
 * from the EDMA.                                                           *
\****************************************************************************/
void
intConfig(void)
{
    IRQ_resetAll();                       /* Reset all maskable interrupts  */
    IRQ_enable(IRQ_EVT_EDMAINT);          /* Enable EDMA -> CPU interrupt   */
    IRQ_nmiEnable();                      /* Enable non-maskable interrupt  */
    IRQ_globalEnable();                   /* Globally enable all interrupts */
} /* end intConfig() */


/****************************************************************************\
 * checkResults: Verify that the hard decisions and output parameters sent  *
 * by the TCP are correct. If the hard decisions are not correct, the index *
 * of the first incorrect value is returned. If the output parameters (the  *
 * number of iterations) is not correct, then a -1 is returned. If all      *

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re视频精品| 91在线观看地址| 亚洲黄色录像片| 中文字幕亚洲区| 欧美韩日一区二区三区| xnxx国产精品| 久久久电影一区二区三区| 日韩视频在线观看一区二区| 51久久夜色精品国产麻豆| 欧美日韩在线三级| 91麻豆精品国产自产在线| 欧美人妇做爰xxxⅹ性高电影| 在线区一区二视频| 91久久精品一区二区三区| 91成人在线精品| 欧美性感一类影片在线播放| 欧美日韩久久一区| 91精品久久久久久蜜臀| 精品欧美一区二区在线观看| 久久新电视剧免费观看| 国产精品久久免费看| 国产精品视频第一区| 亚洲品质自拍视频| 午夜精品影院在线观看| 捆绑调教美女网站视频一区| 国产精品一区一区| 91在线播放网址| 欧美日韩一区二区三区免费看 | 日韩三区在线观看| 精品国一区二区三区| 国产精品三级av| 亚洲资源在线观看| 黄色小说综合网站| 91丨porny丨户外露出| 欧美人xxxx| 国产欧美日韩精品一区| 亚洲精品欧美综合四区| 奇米影视7777精品一区二区| 高清日韩电视剧大全免费| 91精品福利视频| 欧美精品一区在线观看| 亚洲天堂福利av| 久久精品国产澳门| 日本久久电影网| 久久综合九色欧美综合狠狠| 亚洲黄色录像片| 国产一区二区三区不卡在线观看| 色综合欧美在线视频区| 久久综合狠狠综合久久激情| 亚洲激情五月婷婷| 国产大陆a不卡| 欧美精品亚洲一区二区在线播放| 国产女人18水真多18精品一级做| 日精品一区二区三区| www.日韩在线| 久久综合久久综合亚洲| 亚洲成精国产精品女| 成人av网站大全| 欧美不卡一区二区三区四区| 亚洲国产精品精华液网站| 成人一区在线观看| 久久综合九色综合久久久精品综合 | 人妖欧美一区二区| 一本一本大道香蕉久在线精品| 26uuu亚洲| 久久精品72免费观看| 欧美色图激情小说| 亚洲色图色小说| 国产不卡一区视频| 久久毛片高清国产| 国产一区二区三区久久悠悠色av| 欧美日韩五月天| 亚洲一区二区美女| 欧美制服丝袜第一页| 国产精品久线观看视频| 国产成人综合亚洲91猫咪| 精品欧美一区二区在线观看| 视频一区二区国产| 884aa四虎影成人精品一区| 亚洲一区二区综合| 欧美午夜在线一二页| 一区二区三区中文字幕精品精品| bt7086福利一区国产| 日韩一区欧美小说| 色屁屁一区二区| 一区二区高清免费观看影视大全| 色婷婷综合激情| 一区二区三区欧美| 欧美人体做爰大胆视频| 日韩不卡在线观看日韩不卡视频| 91精品国产色综合久久不卡电影 | 欧美片在线播放| 午夜精品影院在线观看| 7777精品伊人久久久大香线蕉经典版下载 | 国产欧美1区2区3区| 国产69精品一区二区亚洲孕妇| 久久这里只有精品首页| 国产一区二区精品久久| 国产三级一区二区| 91在线看国产| 午夜伦欧美伦电影理论片| 日韩一区二区影院| 国产成人aaa| 最近日韩中文字幕| 欧美日韩在线播放一区| 麻豆国产欧美一区二区三区| www一区二区| 99国产精品国产精品毛片| 夜夜操天天操亚洲| 精品欧美一区二区久久| 国产·精品毛片| 亚洲大片在线观看| 精品入口麻豆88视频| 不卡免费追剧大全电视剧网站| 一区二区三区四区亚洲| 欧美丰满美乳xxx高潮www| 国产精品一色哟哟哟| 一区二区三区久久| www国产成人| 欧美无人高清视频在线观看| 黑人精品欧美一区二区蜜桃| 亚洲激情av在线| 久久精品一区二区三区四区| 欧美在线你懂得| 成人在线一区二区三区| 日韩av中文字幕一区二区| 国产精品久久久久婷婷| 日韩一区二区三区电影| 91久久精品一区二区三| 国产一区二区三区国产| 日韩高清欧美激情| 亚洲女人的天堂| 国产欧美日韩另类一区| 欧美一区二区三区播放老司机| 97久久久精品综合88久久| 狠狠色综合播放一区二区| 午夜影院久久久| 亚洲人妖av一区二区| 26uuu久久天堂性欧美| 51精品视频一区二区三区| 色综合夜色一区| 成人高清视频在线| 国产福利不卡视频| 精品亚洲国产成人av制服丝袜 | 日韩一区二区电影| 欧美亚洲综合久久| 一本一道综合狠狠老| 成人一区在线看| 国产v综合v亚洲欧| 国产精华液一区二区三区| 久久se这里有精品| 毛片基地黄久久久久久天堂| 日韩在线观看一区二区| 亚洲福利视频导航| 香蕉久久一区二区不卡无毒影院 | 欧美成人一级视频| 欧美一区二区黄色| 欧美一级午夜免费电影| 欧美日韩不卡在线| 欧美电影影音先锋| 欧美视频一区二区三区| 欧美日韩一区二区三区四区 | 亚洲综合图片区| 尤物在线观看一区| 亚洲电影一区二区| 午夜精品成人在线视频| 一区二区三区在线不卡| 亚洲午夜在线观看视频在线| 亚洲成国产人片在线观看| 石原莉奈在线亚洲二区| 久久精品免费看| 国产一区二区三区在线观看精品| 国产成人综合网站| www.色精品| 欧美日本一区二区| 精品日韩一区二区| 国产精品欧美一区二区三区| 亚洲精选在线视频| 午夜成人免费电影| 国产又黄又大久久| 972aa.com艺术欧美| 欧美少妇一区二区| 亚洲精品在线观| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 亚洲午夜久久久久久久久电影网 | 国产欧美视频一区二区| 亚洲人成网站色在线观看| 洋洋av久久久久久久一区| 日本vs亚洲vs韩国一区三区| 国产精品69久久久久水密桃| 91女人视频在线观看| 欧美一区在线视频| 亚洲国产精品成人久久综合一区| 亚洲精品自拍动漫在线| 蜜桃av噜噜一区二区三区小说| 国产精品一品二品| 欧美日韩高清一区二区不卡| 久久精品一区二区三区四区| 亚洲一二三区不卡| 成人午夜av影视|