亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
久久精品999| 亚洲国产视频一区| 欧美一级黄色片| 欧美妇女性影城| 欧美男人的天堂一二区| 欧美日韩在线一区二区| 欧美日韩精品欧美日韩精品一| 色哟哟精品一区| 欧美婷婷六月丁香综合色| 日本道精品一区二区三区 | 日韩三级av在线播放| 欧美在线观看18| 欧美三级视频在线| 国产香蕉久久精品综合网| 日韩精品中文字幕一区| 久久网站热最新地址| 亚洲国产成人自拍| 亚洲天天做日日做天天谢日日欢| 亚洲视频在线观看一区| 一区二区三区毛片| 美腿丝袜亚洲综合| www.av精品| 91麻豆精品国产91久久久久| 精品电影一区二区三区| 国产精品视频九色porn| 亚洲精品第1页| 香港成人在线视频| 国产一区二区精品久久91| 99国产精品久| 欧美一区2区视频在线观看| 国产蜜臀av在线一区二区三区| 亚洲欧洲www| 青青草伊人久久| 97精品久久久午夜一区二区三区| 欧美日韩国产区一| 国产精品色哟哟| 午夜不卡av在线| 成人午夜免费电影| 91精品国产色综合久久ai换脸| 久久久久久麻豆| 亚瑟在线精品视频| 成人免费视频网站在线观看| 欧美日韩国产bt| 欧美国产1区2区| 日韩成人伦理电影在线观看| 国产精品一线二线三线| 欧美日韩一级黄| 国产精品福利av| 国模冰冰炮一区二区| 欧美人体做爰大胆视频| 日韩久久一区二区| 国产精品99精品久久免费| 777a∨成人精品桃花网| 激情国产一区二区| 欧美熟乱第一页| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲电影欧美电影有声小说| 懂色av一区二区三区免费看| 日韩精品一区在线观看| 午夜在线成人av| 色婷婷亚洲精品| 亚洲欧美经典视频| 99re热这里只有精品视频| 国产欧美精品国产国产专区| 国产在线精品一区二区三区不卡 | 日韩和欧美的一区| 97久久人人超碰| 成人欧美一区二区三区| 国产很黄免费观看久久| 国产日韩欧美综合在线| 国产一区二区影院| 国产午夜精品一区二区三区视频 | 亚洲图片你懂的| 成人av免费在线播放| 国产精品成人免费精品自在线观看| 国产一区 二区 三区一级| 久久一区二区视频| 风间由美中文字幕在线看视频国产欧美| 精品sm在线观看| 国产精品一二一区| 国产欧美精品区一区二区三区 | 99久久国产综合精品女不卡| 国产精品伦一区| 99r国产精品| 亚洲国产人成综合网站| 在线综合+亚洲+欧美中文字幕| 亚洲国产精品麻豆| 欧美一区欧美二区| 精品亚洲成a人| 国产精品激情偷乱一区二区∴| 成人免费视频视频在线观看免费| 1024成人网| 欧美日韩色综合| 开心九九激情九九欧美日韩精美视频电影 | 91视频www| 亚洲一区二区av在线| 欧美一区二区三区精品| 国产盗摄精品一区二区三区在线| 国产欧美在线观看一区| 色综合久久88色综合天天6| 丝袜美腿亚洲一区| 久久久久久亚洲综合影院红桃| 99久久国产综合精品色伊| 亚洲不卡一区二区三区| 久久久亚洲精品石原莉奈| 色偷偷一区二区三区| 蜜桃av一区二区三区| 国产精品久久国产精麻豆99网站| 欧美性大战xxxxx久久久| 九九国产精品视频| 一区二区三区在线视频观看| 日韩欧美一区二区不卡| 一本色道综合亚洲| 国产一本一道久久香蕉| 亚洲丰满少妇videoshd| 久久精品免费在线观看| 欧美在线免费播放| 成人av在线资源网站| 日韩成人午夜精品| 亚洲视频在线一区| 欧美成人三级在线| 91国产免费看| 成人在线综合网| 看电视剧不卡顿的网站| 亚洲激情男女视频| 国产精品污网站| 欧美精品一区二区三区在线播放| 91一区一区三区| 国产精品中文字幕欧美| 日韩精品一二三| 久久国产生活片100| 亚洲伊人伊色伊影伊综合网| 国产视频一区二区三区在线观看| 欧美日韩美女一区二区| 99精品偷自拍| 国产成人免费xxxxxxxx| 黄色小说综合网站| 日本伊人色综合网| 亚洲电影视频在线| 亚洲一区二区三区不卡国产欧美| 国产精品久线在线观看| 国产视频一区二区三区在线观看| 日韩无一区二区| 日韩视频在线一区二区| 欧美情侣在线播放| 欧美日韩不卡在线| 欧美色手机在线观看| 色老汉一区二区三区| 97久久精品人人爽人人爽蜜臀| 成人精品电影在线观看| 成人久久久精品乱码一区二区三区 | 亚洲 欧美综合在线网络| 亚洲尤物视频在线| 亚洲国产精品久久不卡毛片| 亚洲精品日韩一| 一区二区三区在线播放| 亚洲综合在线第一页| 亚洲精选视频在线| 亚洲一区二区精品久久av| 亚洲电影在线播放| 日本大胆欧美人术艺术动态| 免费成人在线观看视频| 久久99热这里只有精品| 国产一区三区三区| 成人午夜在线视频| 色婷婷久久久综合中文字幕| 欧美日韩精品欧美日韩精品一| 欧美一区二区三区四区高清| 精品久久久影院| 国产精品免费看片| 亚洲一区精品在线| 久久精品国产免费| 国产黑丝在线一区二区三区| 不卡欧美aaaaa| 欧美亚一区二区| 日韩写真欧美这视频| 国产亚洲成aⅴ人片在线观看 | 亚洲一级二级在线| 免费精品99久久国产综合精品| 国产在线观看免费一区| 一本色道久久综合亚洲aⅴ蜜桃| 欧美偷拍一区二区| 国产亚洲精品超碰| 一区二区三区四区在线| 美女爽到高潮91| 高清成人免费视频| 欧美人与性动xxxx| 中文一区一区三区高中清不卡| 亚洲自拍偷拍麻豆| 国产成人精品1024| 欧美日韩国产综合一区二区| 欧美mv日韩mv国产| 一区二区三区国产精华| 韩国视频一区二区| 欧美曰成人黄网| 中文字幕av一区二区三区免费看| 亚洲成人1区2区| 成年人国产精品| 日韩免费福利电影在线观看| 亚洲人成精品久久久久|