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

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

?? main.c

?? evmDM642的經典例程(ccs),初學者必備
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
 *  Copyright 2003 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.
 *  
 */
/* "@(#) DSP/BIOS 4.90.270 06-11-03 (barracuda-m10)" */
/****************************************************************************\
 *           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() */


/****************************************************************************\

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品视频免费| 精品在线观看视频| 狠狠狠色丁香婷婷综合久久五月| 成人中文字幕合集| 日韩一区二区三免费高清| 亚洲视频香蕉人妖| 国产成人精品亚洲777人妖| 4438x成人网最大色成网站| 亚洲三级免费电影| 国产成人精品免费一区二区| 日韩精品中文字幕在线不卡尤物 | 亚洲高清免费视频| 成人av网址在线观看| 久久蜜桃av一区二区天堂| 日一区二区三区| 91激情五月电影| 亚洲视频网在线直播| 成人av在线一区二区三区| 久久嫩草精品久久久精品一| 美腿丝袜亚洲综合| 欧美麻豆精品久久久久久| 亚洲欧美aⅴ...| 95精品视频在线| 国产精品国产三级国产aⅴ原创| 久久99精品久久久久| 日韩一二三区视频| 奇米一区二区三区av| 91精品婷婷国产综合久久性色| 亚洲一区二区三区国产| 在线亚洲高清视频| 亚洲资源在线观看| 欧美日韩高清在线| 日韩电影一二三区| 欧美v国产在线一区二区三区| 奇米888四色在线精品| 欧美一区二区视频在线观看2020| 日韩成人一级大片| 欧美mv日韩mv| 国产呦萝稀缺另类资源| 久久精品无码一区二区三区| 成人伦理片在线| 国产精品国产三级国产三级人妇 | 一区二区在线观看视频在线观看| 91网站视频在线观看| 亚洲精品成人a在线观看| 91福利精品视频| 日本中文字幕不卡| 久久亚洲春色中文字幕久久久| 国产成人免费xxxxxxxx| 亚洲精品国久久99热| 欧美日韩三级一区| 久久99精品国产.久久久久| 久久综合九色综合欧美亚洲| 国产99精品在线观看| 亚洲女爱视频在线| 日韩一二三四区| 国产69精品久久久久777| 亚洲精品一二三| 91精品一区二区三区在线观看| 国产呦精品一区二区三区网站| 中文字幕一区二区5566日韩| 9191久久久久久久久久久| 国产一区二区中文字幕| 亚洲视频一区二区在线观看| 日韩色视频在线观看| 成人美女视频在线看| 日韩精品福利网| 中文一区一区三区高中清不卡| 色婷婷综合五月| 国产精品一品二品| 午夜精品免费在线观看| 国产日韩精品一区二区浪潮av | 99这里只有久久精品视频| 亚洲午夜免费视频| 国产校园另类小说区| 欧美日韩国产一二三| 高清日韩电视剧大全免费| 亚洲1区2区3区视频| 国产日韩欧美a| 日韩免费电影一区| 日本高清不卡在线观看| 国产精品自产自拍| 日本欧美一区二区| 亚洲精品美国一| 久久精品欧美一区二区三区麻豆| 欧美日韩视频在线一区二区| 99久久夜色精品国产网站| 麻豆国产欧美一区二区三区| 综合在线观看色| 国产亚洲综合性久久久影院| 日韩一区二区精品| 欧美午夜在线观看| 91在线视频播放地址| 国产99久久久精品| 国产一区二三区| 极品少妇一区二区| 久久精品国产亚洲高清剧情介绍| 亚洲一区影音先锋| 亚洲欧美日韩综合aⅴ视频| 国产精品蜜臀在线观看| 2022国产精品视频| 欧美大片一区二区| 欧美一区二区在线看| 91精品麻豆日日躁夜夜躁| 欧美日韩在线一区二区| 99精品国产视频| av一本久道久久综合久久鬼色| 懂色av中文一区二区三区| 国产精品一级黄| 国产高清无密码一区二区三区| 免费成人在线视频观看| 青青草视频一区| 麻豆精品精品国产自在97香蕉| 日本一区中文字幕| 奇米影视一区二区三区| 久久se精品一区二区| 美女国产一区二区| 精品在线一区二区三区| 国产剧情一区在线| 国产成人精品午夜视频免费| 成人在线视频一区| aaa亚洲精品| 91网站最新地址| 欧美日韩综合在线| 日韩一级成人av| 久久久夜色精品亚洲| 日本一区二区视频在线观看| 国产精品伦一区| 一区二区三区国产精品| 香蕉成人啪国产精品视频综合网 | 成人精品视频一区| 91视频免费看| 欧美日韩情趣电影| 亚洲精品一区二区在线观看| 国产日韩欧美精品一区| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲电影一级片| 免费的国产精品| gogo大胆日本视频一区| 欧美裸体一区二区三区| 精品1区2区在线观看| 国产精品免费aⅴ片在线观看| 亚洲第一电影网| 国产一二精品视频| 在线一区二区视频| 日韩精品一区二区三区三区免费| 国产亚洲欧美一区在线观看| 亚洲精品免费播放| 国产在线一区二区综合免费视频| 成人av资源站| 91精品欧美久久久久久动漫| 国产精品美女久久久久久久| 日韩在线一区二区| 成人av午夜电影| 日韩精品一区二区三区视频播放| 亚洲男帅同性gay1069| 激情偷乱视频一区二区三区| 色av一区二区| 久久久久久久久久电影| 性感美女极品91精品| 成人在线视频一区| 91精品国产综合久久久蜜臀粉嫩| 国产精品三级av在线播放| 日韩国产一二三区| av亚洲精华国产精华精华| 精品国产免费久久| 亚洲五码中文字幕| 成人美女视频在线观看18| 欧美大黄免费观看| 亚洲va国产va欧美va观看| 成人高清视频免费观看| 91精品国产综合久久精品图片| 成人欧美一区二区三区在线播放| 精品一区二区三区免费播放| 欧美中文字幕久久| 亚洲欧美另类在线| av福利精品导航| 久久色在线观看| 美女久久久精品| 宅男在线国产精品| 亚洲一线二线三线视频| 色欧美片视频在线观看| 国产精品毛片高清在线完整版| 美女视频黄免费的久久| 制服丝袜国产精品| 亚洲国产一区在线观看| 一本到高清视频免费精品| 中文字幕不卡的av| 成人av影院在线| 国产精品毛片a∨一区二区三区| 国产一区二区美女诱惑| 欧美一区二区精品| 美女在线视频一区| 精品日韩一区二区三区免费视频| 天堂在线亚洲视频| 欧美精品九九99久久| 免费看日韩a级影片| 日韩午夜av一区| 国产美女久久久久| 中文字幕第一区第二区|