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

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

?? intc_example5.c

?? dsp tms320c6486的csl例程
?? C
字號:
/*  ===========================================================================
 *   Copyright (c) Texas Instruments Inc 2002, 2003, 2004, 2005
 *
 *   Use of this software is controlled by the terms and conditions found in the
 *   license agreement under which this software has been supplied.
 *   ==========================================================================
 */
/** ===========================================================================
 *   @file  Intc_example5.c
 *
 *   @path  $(CSLPATH)\example\c64xplus\intc\intc_example5\src
 *
 *   @desc  Example of INTC
 *
 *  ============================================================================
 *   @n Target Platform: TCI6486 VDB
 *  ============================================================================
 *   @n <b> Example Description </b>
 *   @n This example demonstrating usage of the exception handling. Timer 6,7 
 *      are treated as exceptions and they are cleared accordingly
 *      This example,
 *          1. Intializes Intc module and the CPU vector table, dispatcher
 *          2. Enables the external exceptions
 *          3. Hook up the NMI Isr
 *          4. Opens a handle for the Timer 6 and Timer 7 Event as an 
 *             exception event
 *          5. Plugs timers event handler
 *          6. Enabls timers exception
 *          7. Intializes and opens the timer module 
 *          8. Sets up the timer modules
 *          9. starts the timers
 *          10. Wait for exceptions to occur
 *          11. print the result
 *
 * =============================================================================
 *      
 *   <b> Procedure to run the example </b>
 *   @verbatim
 *      1. Configure the CCS setup to work with the emulator being used
 *      2. Please refer CCS manual for setup configuration and loading 
 *         proper GEL file
 *      3. Launch CCS window
 *      4. Open project Intc_example5.pjt
 *      5. Build the project and load the .out file of the project.
 *          
 *   @endverbatim
 *
 */
   
/* ============================================================================
 *  Revision History
 *  ===============
 *  2-July-2004  Ruchika Kharwar File Created.
 *
 *  14-Nov-2005  ds changed to support timer CSL
 *
 * ============================================================================
 */ 

#include <csl_intc.h>
#include <csl_intcAux.h>
#include <csl_tmr.h>
#include <soc.h>
#include <stdio.h>

/* Forward declarations */
void eventTimer6Handler(void *handle);
void eventTimer7Handler(void *handle);
void NMI_handler();
void intc_example (void);

/* Global variables declarations */
volatile Int timer6Cnt = 0;
volatile Int timer7Cnt = 0;
volatile Int passed = 0;
Uint32   excepStatus1;

/* Intc Variable declarations */
CSL_IntcEventHandlerRecord  EventHandler[30];
CSL_IntcContext             context; 
CSL_IntcEventHandlerRecord  Record[3]; 

/* ============================================================================
 *
 *   @func   main
 *
 *   @desc
 *    This is the main routine,which invokes the example
 * ============================================================================
 */
void main (void)
{   
    printf ("Demonstrating the exception handling \n");
          
    /* Invoke example */
    intc_example ();
    
    return;
       
}

/*
 * =============================================================================
 *   @func  intc_example
 *  
 *   @arg   None
 *
 *   @desc
 *      Demonstrating usage of the exception handling. Timer 6,7 are treated 
 *      as exceptions and they are cleared accordingly
 *      It implements following steps
 *          1. Intializes Intc module and the CPU vector table, dispatcher
 *          2. Enables the external exceptions
 *          3. Hook up the NMI Isr
 *          4. Opens a handle for the Timer6 and Timer7 Event as an 
 *             exception event
 *          5. Plugs timers event handler
 *          6. Enabls timers exception
 *          7. Intializes and opens the timer module 
 *          8. Sets up the timer modules
 *          9. starts the timers
 *          10. Wait for exceptions to occur
 *          11. print the result
 *          12. Close intc and timer module
 *
 *   @return
 *      None
 *   
 *   @eg
 *      intc_example ();
 * =============================================================================
 */
void intc_example (void)
{
    CSL_IntcObj                 intcTimerObj6;
    CSL_IntcObj                 intcTimerObj7;
    CSL_IntcHandle              hIntcTimer6;
    CSL_IntcHandle              hIntcTimer7;
    CSL_IntcGlobalEnableState   state;
    CSL_IntcEventHandlerRecord  eventRecord;
    CSL_IntcParam               vectId;
    CSL_TmrHandle               hTmr6;
    CSL_TmrHandle               hTmr7;
    CSL_TmrObj                  tmrObj6;
    CSL_TmrObj                  tmrObj7;
    CSL_Status                  status;
    CSL_TmrHwSetup              hwSetup6 = CSL_TMR_HWSETUP_DEFAULTS;
    CSL_TmrHwSetup              hwSetup7 = CSL_TMR_HWSETUP_DEFAULTS;
    CSL_TmrEnamode              TimeCountMode = CSL_TMR_ENAMODE_ENABLE;
    volatile Uint32             delay;
    Uint32                      LoadValue = 100;
    

    /* Init the Interrupt Controller 
     * Initializes the CPU vector table, dispatcher
     */
    context.numEvtEntries = 3; 
    context.eventhandlerRecord = Record;
    status = CSL_intcInit(&context);
    if (status != CSL_SOK) {
        printf("Intc initialization failed\n");
        return;
    }
    
    /* Enable NMIs */
    status = CSL_intcGlobalNmiEnable();
    if (status != CSL_SOK) {
        printf("Intc global NMI enable failed\n");
        return;
    }
    
    /* Enable Global Interrupts */
    status = CSL_intcGlobalEnable(&state);
    if (status != CSL_SOK) {
        printf ("Intc global enable failed\n");
        return;
    }
    
    /* Enable global exceptions */ 
    status = CSL_intcGlobalExcepEnable (); 
    if (status != CSL_SOK) {
        printf ("Intc global exceptions enable failed\n");
        return;
    }
    
    /* Enable external exceptions */ 
    status = CSL_intcGlobalExtExcepEnable ();
    if (status != CSL_SOK) {
        printf ("Intc global external exceptions enable failed\n");
        return;
    }
    
    /* Hook up the NMI Isr */
    status = CSL_intcHookIsr(CSL_INTC_VECTID_NMI,NMI_handler);
    if (status != CSL_SOK) {
        printf ("Intc hook up NMI Isr failed\n");
        return;
    }
    
    /* Opening a handle for the Timer 6 Event as an exception event */
    vectId = CSL_INTC_VECTID_EXCEP;
    hIntcTimer6 = CSL_intcOpen (&intcTimerObj6, CSL_INTC_EVENTID_TINTLO6, 
                                &vectId , NULL);
    if (hIntcTimer6 == NULL) {
        printf("Intc open failed for timer6 event \n");
        return;
    }  
                              
    /* Plug timer6 event handler */
    eventRecord.handler = &eventTimer6Handler;
    eventRecord.arg = hIntcTimer6;
    status = CSL_intcPlugEventHandler(hIntcTimer6,&eventRecord); 
    if (status != CSL_SOK) {
        printf("Intc plug event handler for timer6 event failed\n");
        return;
    }
    
    /* Opening a handle for the Timer 7 Event as an exception event */
    vectId = CSL_INTC_VECTID_EXCEP;
    hIntcTimer7 = CSL_intcOpen (&intcTimerObj7, CSL_INTC_EVENTID_TINTLO7, 
                                &vectId , NULL);
    if (hIntcTimer7 == NULL) {
        printf("Intc open failed for timer7 event\n");
        return;
    }
    
    /* Plug timer7 event handler */
    eventRecord.handler = &eventTimer7Handler;
    eventRecord.arg = hIntcTimer7;
    status = CSL_intcPlugEventHandler(hIntcTimer7,&eventRecord); 
    if (status != CSL_SOK) {
        printf("Intc plug event handler for timer7 event failed\n");
        return;
    }
    
    /* Enabling timers exception */
    status = CSL_intcExcepAllEnable (CSL_INTC_EXCEP_0TO31, 
									(1 << (CSL_INTC_EVENTID_TINTLO6))
								   |(1 << (CSL_INTC_EVENTID_TINTLO7)), NULL);
    if (status != CSL_SOK) {
        printf("Intc enabling timer exceptions failed\n");
        return;
    }
    
    /* Initialize GP timer CSL module */
    CSL_tmrInit(NULL);
    
    /* Open the timer6 and timer7 */
    hTmr6 =  CSL_tmrOpen(&tmrObj6, CSL_TMR_6, NULL, &status);
    hTmr7 =  CSL_tmrOpen(&tmrObj7, CSL_TMR_7, NULL, &status);

    /* Stop the GP Timer */
    status = CSL_tmrHwControl(hTmr6, CSL_TMR_CMD_RESET_TIMLO, NULL);

    /* Stop the GP Timer */
    status = CSL_tmrHwControl(hTmr7, CSL_TMR_CMD_RESET_TIMLO, NULL);

    /* Set the timer mode to unchained dual mode */
    hwSetup6.tmrTimerMode = CSL_TMR_TIMMODE_DUAL_UNCHAINED;

    /* Set the timer mode to unchained dual mode */
    hwSetup7.tmrTimerMode = CSL_TMR_TIMMODE_DUAL_UNCHAINED;
    
    /* Setup timers */
    CSL_tmrHwSetup(hTmr6, &hwSetup6); 
    CSL_tmrHwSetup(hTmr7, &hwSetup7); 

    /* Load the period register of timer6 */
    CSL_tmrHwControl(hTmr6, CSL_TMR_CMD_LOAD_PRDLO, (void *)&LoadValue);
    
    /* Load the period register of timer7 */
    CSL_tmrHwControl(hTmr7, CSL_TMR_CMD_LOAD_PRDLO, (void *)&LoadValue);
    
     /* Start the timer6 with one shot*/
    CSL_tmrHwControl(hTmr6, CSL_TMR_CMD_START_TIMLO, (void *)&TimeCountMode);

    /* Start the timer7 with one shot*/
    CSL_tmrHwControl(hTmr7, CSL_TMR_CMD_START_TIMLO, (void *)&TimeCountMode);
    
    /* Waits for exception to generate */
    while (!passed);
    
    /* Wait for some time */
    for (delay = 0; delay < 1000; delay++);

    /* Stop the GP Timer */
    status = CSL_tmrHwControl(hTmr6, CSL_TMR_CMD_RESET_TIMLO, NULL);

    /* Stop the GP Timer */
    status = CSL_tmrHwControl(hTmr7, CSL_TMR_CMD_RESET_TIMLO, NULL);

    CSL_tmrClose (hTmr6);
    CSL_tmrClose (hTmr7);

    /* Close Intc CSL */
    CSL_intcClose(hIntcTimer6);

    /* Close Intc CSL */
    CSL_intcClose(hIntcTimer7);

    
    printf ("Demonstrating the exception handling Done\n");
        
}

/*
 * =============================================================================
 *   @func   NMI_handler
 *
 *   @desc
 *     This is the interrupt exception handler
 *
 *   @arg    
 *      None
 *
 *
 *   @eg
 *      NMI_handler ();
 * =============================================================================
 */
#pragma NMI_INTERRUPT(NMI_handler);
void NMI_handler (void)
{
    Uint32      excepStatus1;
    Uint32      rcvExcep0to31;
    Uint32      evtMask;
    Int         evtId;
    
    /* Get the exception status */
    CSL_intcExcepAllStatus(CSL_INTC_EXCEP_0TO31,&excepStatus1);
    
    while (excepStatus1) {
        rcvExcep0to31 = excepStatus1;
        CSL_intcExcepAllClear(CSL_INTC_EXCEP_0TO31,excepStatus1);
        evtMask = 16;
        evtId = 4;
        do {
            if (rcvExcep0to31 & evtMask) {
                CSL_intcInvokeEventHandle(evtId);
                rcvExcep0to31 &= ~evtMask;
            }
            evtMask = evtMask << 1;
            evtId++;
        } while (rcvExcep0to31);
        CSL_intcExcepAllStatus(CSL_INTC_EXCEP_0TO31,&excepStatus1);
    }
    
    CSL_intcExcepAllDisable(CSL_INTC_EXCEP_0TO31,(1 << (CSL_INTC_EVENTID_TINTLO6))
							|(1 << (CSL_INTC_EVENTID_TINTLO7)) ,NULL);     
    
    passed++;
    
}

/*
 * =============================================================================
 *   @func   eventTimer6Handler
 *
 *   @desc
 *     This is the interrupt handler for timer 6
 *
 *   @arg    
 *      None
 *
 *
 *   @eg
 *      eventTimer6Handler ();
 * =============================================================================
 */
void eventTimer6Handler (
    void    *handle
)
{
    timer6Cnt++;
}

/*
 * =============================================================================
 *   @func   eventTimer7Handler
 *
 *   @desc
 *     This is the interrupt handler for timer 7
 *
 *   @arg    
 *      None
 *
 *
 *   @eg
 *      eventTimer7Handler ();
 * =============================================================================
 */
void eventTimer7Handler (
    void    *handle
)
{
    timer7Cnt++;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国女主播成人在线观看| 69堂亚洲精品首页| 欧美一区二区三区喷汁尤物| 欧美精品一区二区久久婷婷| 自拍视频在线观看一区二区| 亚洲午夜久久久| 久久精品国产99久久6| 91在线播放网址| 久久精品一区二区三区不卡| 午夜视频在线观看一区| 99久久久无码国产精品| 久久中文娱乐网| 日本va欧美va精品发布| 欧美日韩精品一区视频| 亚洲综合色成人| 色综合婷婷久久| 亚洲欧美综合网| 成人a区在线观看| 久久久国际精品| 国产在线一区二区| 精品人在线二区三区| 免费观看日韩电影| 日韩视频免费观看高清在线视频| 亚洲国产欧美在线人成| 91麻豆精东视频| 自拍视频在线观看一区二区| 成人h动漫精品| 中文字幕一区二区三区四区| 成人美女视频在线看| 国产欧美久久久精品影院| 韩日精品视频一区| 久久一区二区视频| 国产999精品久久久久久绿帽| 2020国产精品自拍| 国产风韵犹存在线视精品| 久久久精品国产免大香伊| 国产精品一区二区无线| 国产欧美精品一区二区色综合| 国产一区二区在线视频| 久久久电影一区二区三区| 国产99精品国产| 1区2区3区欧美| 欧美日韩在线观看一区二区 | 国产片一区二区| 国产成人在线视频播放| 中文字幕日韩一区| 色狠狠一区二区| 亚洲123区在线观看| 日韩一区二区高清| 国产91精品免费| 一区二区三区在线不卡| 欧美在线你懂得| 亚洲va韩国va欧美va精品 | 色诱视频网站一区| 亚洲国产精品久久久久秋霞影院| 欧美丰满美乳xxx高潮www| 久久不见久久见免费视频1| 中文字幕第一页久久| 欧美亚洲自拍偷拍| 蜜臀国产一区二区三区在线播放| 欧美精品一区二区三区四区| 国产盗摄女厕一区二区三区| 亚洲人成伊人成综合网小说| 欧美日韩国产综合一区二区| 日本vs亚洲vs韩国一区三区 | 日韩精品专区在线影院重磅| 国产成人精品综合在线观看| 亚洲啪啪综合av一区二区三区| 欧美男生操女生| 成人性生交大片免费看在线播放| 亚洲高清视频中文字幕| 精品成人私密视频| 欧美丝袜丝交足nylons图片| 激情深爱一区二区| 亚洲伦在线观看| 久久久久久久免费视频了| 91成人免费在线| 高清成人免费视频| 老汉av免费一区二区三区| 亚洲免费在线看| 国产清纯白嫩初高生在线观看91| 在线播放中文一区| 99久久国产免费看| 国产一区二区在线免费观看| 亚洲国产乱码最新视频| 国产精品福利在线播放| 精品国一区二区三区| 欧美日韩精品欧美日韩精品一 | 国产成人免费av在线| 亚洲一区二区三区四区五区黄| 久久久www免费人成精品| 欧美精品在欧美一区二区少妇| 国产成人av电影在线观看| 日韩福利电影在线| 亚洲与欧洲av电影| 国产精品美女久久久久久2018 | 成人午夜在线播放| 韩国av一区二区| 蜜臀精品一区二区三区在线观看| 一区二区三区四区视频精品免费| 欧美国产激情一区二区三区蜜月| 日韩亚洲电影在线| 欧美一级片在线| 欧美精品777| 欧美性受极品xxxx喷水| 99久久国产综合精品女不卡| 成人aa视频在线观看| 国产最新精品免费| 国产乱人伦偷精品视频免下载| 日韩成人精品在线| 午夜激情一区二区三区| 亚洲va韩国va欧美va| 午夜精品久久久久久久久久| 亚洲与欧洲av电影| 午夜精品aaa| 天天做天天摸天天爽国产一区| 亚洲h在线观看| 偷偷要91色婷婷| 热久久国产精品| 老汉av免费一区二区三区| 国产在线一区二区综合免费视频| 国内精品视频一区二区三区八戒| 精品亚洲国内自在自线福利| 国产制服丝袜一区| 成人av网在线| 色菇凉天天综合网| 欧美日韩在线一区二区| 91精品欧美综合在线观看最新 | 在线视频综合导航| 欧美精品久久99| 精品国产青草久久久久福利| 久久先锋影音av鲁色资源| 中文字幕欧美国产| 亚洲国产日日夜夜| 美女一区二区三区在线观看| 国产精品亚洲人在线观看| 波多野结衣一区二区三区| 色先锋资源久久综合| 欧美日韩亚洲丝袜制服| 日韩免费电影网站| 中文字幕av不卡| 亚洲一区在线电影| 久久超碰97中文字幕| 成人精品视频一区二区三区| 91官网在线观看| 日韩一卡二卡三卡国产欧美| 国产视频一区二区三区在线观看| 亚洲欧洲日本在线| 免费高清在线一区| av男人天堂一区| 欧美一区二区性放荡片| 中文字幕av不卡| 日本不卡一区二区三区| 国产高清精品网站| 欧美日韩一区二区在线观看视频| 日韩欧美国产小视频| 中文字幕五月欧美| 日本不卡视频在线观看| 99精品国产99久久久久久白柏| 在线观看区一区二| 久久九九99视频| 日韩精品乱码av一区二区| 成人黄色国产精品网站大全在线免费观看 | 最新久久zyz资源站| 日韩有码一区二区三区| 粉嫩13p一区二区三区| 日韩亚洲欧美一区二区三区| 亚洲欧美日韩久久| 国产精一品亚洲二区在线视频| 欧美日韩一区二区三区在线 | 精品国产电影一区二区| 亚洲一二三区视频在线观看| 丁香婷婷深情五月亚洲| 欧美成人a视频| 视频一区中文字幕| 91免费国产视频网站| 国产亚洲欧美日韩日本| 视频在线观看91| 在线视频你懂得一区二区三区| 久久综合久久鬼色中文字| 免费观看在线色综合| 欧美精品在线视频| 性做久久久久久免费观看欧美| av欧美精品.com| 国产精品高潮久久久久无| 国产传媒日韩欧美成人| 久久理论电影网| 久久狠狠亚洲综合| 日韩一级片在线观看| 亚洲444eee在线观看| 欧美性生活影院| 一区二区在线观看视频| 色综合久久天天综合网| 亚洲精品高清在线| 91官网在线免费观看| 亚洲国产乱码最新视频 | 美女一区二区三区| 日韩欧美中文字幕一区| 免费在线观看一区| 欧美大片在线观看一区|