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

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

?? frmwrk.c

?? ep7312- ad轉換的源碼
?? C
字號:
/**************************************************************************
*                                                                         *
*   PROJECT     : ARM port for UCOS-II                                    *
*                                                                         *
*   MODULE      : FRMWRK.c                                                *
*                                                                         *
*   AUTHOR      : Michael Anburaj                                         *
*                 URL  : http://geocities.com/michaelanburaj/             *
*                 EMAIL: michaelanburaj@hotmail.com                       *
*                                                                         *
*   PROCESSOR   : EP7312 (32 bit ARM720T RISC core from CIRRUS Logic)     *
*                                                                         *
*   IDE         : SDT 2.51 & ADS 1.2                                      *
*                                                                         *
*   DESCRIPTION :                                                         *
*   This is the Framework module. Creates an operating infrastructure.    *
*                                                                         *
**************************************************************************/


#include "includes.h"
#include "frmwrk.h"
#include "consol.h"

#include <stdarg.h>
#include <stdio.h>

/* ********************************************************************* */
/* Global definitions */


/* ********************************************************************* */
/* File local definitions */

#define __nSVCStkBase (STK_SADDR+_SVC_STKSIZE)
#define __nSVCStkEnd  STK_SADDR
#define __nSVCStkSize _SVC_STKSIZE

#define __nIRQStkBase (STK_SADDR+_SVC_STKSIZE+_UND_STKSIZE+_ABT_STKSIZE+_IRQ_STKSIZE)
#define __nIRQStkEnd  (STK_SADDR+_SVC_STKSIZE+_UND_STKSIZE+_ABT_STKSIZE)
#define __nIRQStkSize _IRQ_STKSIZE


/* ********************************************************************* */
/* Local functions */

/*
*********************************************************************************************
*                                       __Haltx
*
* Description: These exception handlers are used to report a particular exception on the
*              CONSOL & halt.
*
* Arguments  : none.
*
* Return     : none.
*
* Note(s)    : 
*********************************************************************************************
*/

static void __HaltUndef(void)
{
        CONSOL_Printf("Undefined instruction exception!!!\n");
        while(1);
}

static void __HaltSwi(void)
{
        CONSOL_Printf("SWI exception!!!\n");

        while(1);
}

static void __HaltPabort()
{
        CONSOL_Printf("Pabort exception!!!\n");
        while(1);
}

static void __HaltDabort(void)
{
        CONSOL_Printf("Dabort exception !!!\n");
        while(1);
}

static void __HaltFiq(void)
{
        CONSOL_Printf("FIQ exception!!!\n");
        while(1);
}

static void __HaltIrq(void)
{
        CONSOL_Printf("IRQ exception!!!\n");
        while(1);
}

/*
*********************************************************************************************
*                                       __vInitHaltHandlers
*
* Description: This routine hooks all the Halt exception handlers. Exceptions which are to
*              be handled by the application can be overwritten with the new handler at the
*              appropriate Software hook location.
*
* Arguments  : none.
*
* Return     : none.
*
* Note(s)    : 
*********************************************************************************************
*/

static void __vInitHaltHandlers(void)
{
        pISR_UNDEF = (unsigned)__HaltUndef;
        pISR_SWI   = (unsigned)__HaltSwi;
        pISR_PABORT= (unsigned)__HaltPabort;
        pISR_DABORT= (unsigned)__HaltDabort;
        pISR_FIQ   = (unsigned)__HaltFiq;
        pISR_IRQ = (unsigned)__HaltIrq;
}

/*
*********************************************************************************************
*                                       __vLogo
*
* Description: This routine display the Logo on the CONSOL port.
*
* Arguments  : none.
*
* Return     : none.
*
* Note(s)    : 
*********************************************************************************************
*/
void __vLogo(void)
{
	//uart1_send();
	CONSOL_SendString("\nUCOS FRAMEWORK Ver 1.10 for EP7312\n");

	CONSOL_Printf("Built using SDT \n");
                  
	CONSOL_Printf("CONSOL: COM1, 8Bit, 1152000\n");

	 CONSOL_Printf("Developed by sy and stam\n");
        //CONSOL_Printf("Registers rTC2EOI :%08xh \n",rTC2EOI);
        //CONSOL_Printf("Registers rINTMR1 :%08xh \n",rINTMR1);
        //CONSOL_Printf("Registers rINTSR1 :%08xh \n",rINTSR1);
        	
}


/* ********************************************************************* */
/* Global functions */

/*
*********************************************************************************************
*                                       C_IRQHandler
*
* Description: This routine is the IRQ handler. Handles UART1 interrupts.
*
* Arguments  : none.
*
* Return     : none.
*
* Note(s)    : 
*********************************************************************************************
*/

void C_IRQHandler(void)
{
        U32 wTemp;

        /* Process INTSR1 interrupts */
        wTemp = rINTSR1&rINTMR1;

	if (TEST_BIT_SET(wTemp,BIT_EINT1))
	{
		((void(*)(void))pISR_EINT1)();
	}

        if(TEST_BIT_SET(wTemp,BIT_EINT3)) /* High priority since its used for CS8900A */
        {
                ((void(*)(void))pISR_EINT3)();
        }

        if(TEST_BIT_SET(wTemp,BIT_TC1OI))
        {
                rTC1EOI = 0;
//                CONSOL_Printf("\n!!!!!!Enter Tc1 interrupt \n!!!!!!Registers rINTSR1 :%08xh \n" , rINTSR1);
                ((void(*)(void))pISR_TC1OI)();
        }

        if(TEST_BIT_SET(wTemp,BIT_TC2OI))
        {
                rTC2EOI = 0x0;
//	       rTC1EOI = 0x0;	
//              CONSOL_Printf("Enter Tc2 interrupt\n");

//	       CONSOL_Printf("\nRegisters rINTSR1 :%08xh   !!!After clear int\n",rINTSR1);

		
                ((void(*)(void))pISR_TC2OI)();
        }

        if(TEST_BIT_SET(wTemp,BIT_URXINT1))
        {
                ((void(*)(void))pISR_URXINT1)();
        }

        if(TEST_BIT_SET(wTemp,BIT_UTXINT1))
        {
                ((void(*)(void))pISR_UTXINT1)();
        }

        /* Add code for the other IRQ Group 1 interrupts here */

        /* Process INTSR2 interrupts */
        wTemp = rINTSR2&rINTMR2;

        if(TEST_BIT_SET(wTemp,BIT_URXINT2))
        {
                ((void(*)(void))pISR_URXINT2)();
        }

        if(TEST_BIT_SET(wTemp,BIT_UTXINT2))
        {
                ((void(*)(void))pISR_UTXINT2)();
        }

        /* Add code for the other IRQ Group 2 interrupts here */
}

/*
*********************************************************************************************
*                                       FRMWRK_vStartTicker
*
* Description: This routine starts Timer1 (TC1) in the Prescale mode for OS Tick.
*
* Arguments  : wTicksPerSec - Time ticks per second.
*
* Return     : none.
*
* Note(s)    : 
*********************************************************************************************
*/

void QXEINT_S (void)
{

U16 qx=0;



qx++;

return;

}



void FRMWRK_vStartTicker(U32 wTicksPerSec)
{
#if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
    OS_CPU_SR  cpu_sr;
#endif

        OS_ENTER_CRITICAL();
        //CONSOL_Printf("Enter Frmwrk_vstart_ticker \n");

        //CONSOL_Printf("Registers rINTMR1 :%08xh !!!Before set ...\n",rINTMR1);

         pISR_TC1OI = (U32)OSTimeTick;
//	pISR_EINT1 = (U32)QXEINT_S;

//first, set up the timer1 for 512Khz input with prescale mode enabled
         BIT_SET(rSYSCON1,BIT_TC1M);        //set bit 4
         BIT_SET(rSYSCON1,BIT_TC1S);        //set bit 5
//	BIT_SET(rINTMR1,BIT_EINT1);

        rTC1D = (512000/wTicksPerSec-1);
//      CONSOL_Printf("Registers rTC2D :%08xh \n",rTC2D);

        //enable timer interrupt by enabling the bit in the interrupt mask register
//	rTC2EOI = 0;	                       //clear the EOI
	rTC1EOI = 0;	
//      CONSOL_Printf("After clear TC2EOI\n");

//        CONSOL_Printf("Registers rTC1EOI :%08xh \n",rTC2EOI);
//        CONSOL_Printf("Registers rINTMR1 :%08xh \n",rINTMR1);
//        CONSOL_Printf("Registers rINTSR1 :%08xh \n",rINTSR1);

        BIT_SET(rINTMR1,BIT_TC1OI);        //set bit 8
//        CONSOL_Printf("Registers rINTMR1 :%08xh !!!After set...... \n",rINTMR1);

        OS_EXIT_CRITICAL();
}



/*
*********************************************************************************************
*                                       FRMWRK_vRamTest
*
* Description: This routine is used do RAM test.
*
* Arguments  : pbID   - Test identification string.
*              wSAddr - RAM starting address.
*              wEAddr - RAM end address.




*
* Return     : none.
*
* Note(s)    : Do not test the following areas using this routine:
*                       1. Stack
*                       2. Software vector table
*                       3. C Variables (RW & ZI)
*********************************************************************************************
*/

void FRMWRK_vRamTest(U8 *pbID,U32 wSAddr,U32 wEAddr)
{
        U32 wI,wJ;
        U8 bError=0;
        
        CONSOL_Printf("\n%s(%08xh-%08xh):WR",pbID,wSAddr,wEAddr);
        for(wI=wSAddr;wI<wEAddr;wI+=4)
        {
                *((volatile unsigned *)wI)=wI;
        }
        CONSOL_Printf("\b\bRD");
        for(wI=wSAddr;wI<wEAddr;wI+=4)
        {
                wJ=*((volatile unsigned *)wI);
                if(wJ!=wI)bError=1;
        }

        //if(bError==0)CONSOL_Printf("\b\bO.K.\n");
        //else CONSOL_Printf("\b\bFAIL\n");


}

/*
*********************************************************************************************
*                                       C_vMain
*
* Description: This is the main C entry function.
*
* Arguments  : none.
*
* Return     : none.
*
* Note(s)    : 
*********************************************************************************************
*/

void C_vMain(void)
{
        __vInitHaltHandlers();

        pISR_IRQ = (U32)UCOS_IRQHandler;

        //CONSOL_Select(__nConsolPort);
        //CONSOL_Select(1);
        CONSOL_Init();
        __vLogo();
        
        APP_vMain();

        CONSOL_Printf("APP has ended...\n");
}

/*
*********************************************************************************************
*                                       printf
*
* Description: This is a stdio.h function.
*
* Arguments  : .
*
* Return     : Returns 0.
*
* Note(s)    : 
*********************************************************************************************
*/

int printf(const char *pbFmt,...)
{
        va_list pArg;
        char abString[1024];

        va_start(pArg,pbFmt);
        vsprintf(abString,pbFmt,pArg);
        CONSOL_SendString(abString);
        va_end(pArg);

        return 0;
}


/* ********************************************************************* */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国三级电影一区二区| 7777精品伊人久久久大香线蕉超级流畅 | 日韩精品乱码免费| 国产精品一二三四五| 欧美性受极品xxxx喷水| 国产目拍亚洲精品99久久精品 | 欧美激情一区二区三区蜜桃视频| 一区二区三区四区视频精品免费| 国产精品99久久久久久有的能看 | 成人午夜视频福利| 日韩亚洲欧美高清| 亚洲午夜一区二区三区| 不卡欧美aaaaa| 久久伊人蜜桃av一区二区| 午夜国产不卡在线观看视频| 91日韩一区二区三区| 久久久精品人体av艺术| 久久99热国产| 欧美一区二区三区免费在线看| 一区二区三区不卡视频 | 欧美人动与zoxxxx乱| 亚洲精品老司机| 成人高清视频在线| 中文字幕欧美国产| 懂色av一区二区三区蜜臀| 精品少妇一区二区三区免费观看| 天堂va蜜桃一区二区三区漫画版| 在线观看网站黄不卡| 一区二区三区四区蜜桃| 欧美性一二三区| 一区二区免费视频| 欧美这里有精品| 一区二区三区日韩欧美| 91在线一区二区三区| 国产精品久久夜| av亚洲精华国产精华精华| 国产精品嫩草影院com| 成人高清视频免费观看| 中文字幕在线不卡国产视频| 成人91在线观看| 日韩伦理av电影| 91黄色激情网站| 午夜成人在线视频| 日韩欧美一区二区在线视频| 另类综合日韩欧美亚洲| 久久免费午夜影院| 成人免费福利片| 亚洲人成在线播放网站岛国| 色天天综合色天天久久| 亚洲国产裸拍裸体视频在线观看乱了| 在线观看www91| 日韩成人伦理电影在线观看| 日韩欧美国产麻豆| 成人免费福利片| 亚洲综合色噜噜狠狠| 777亚洲妇女| 国产又黄又大久久| 中文字幕欧美一| 欧美精品日日鲁夜夜添| 麻豆成人91精品二区三区| 国产精品污网站| 欧洲av在线精品| 国产一区视频网站| 亚洲人快播电影网| 日韩欧美亚洲另类制服综合在线| 国产成人综合在线| 性欧美疯狂xxxxbbbb| 精品福利一二区| 色悠久久久久综合欧美99| 天堂午夜影视日韩欧美一区二区| 久久伊99综合婷婷久久伊| 一本色道a无线码一区v| 蜜臀av亚洲一区中文字幕| 中文字幕中文字幕一区二区| 在线不卡中文字幕| 成人激情黄色小说| 免费av成人在线| 亚洲色图一区二区| 久久影院午夜片一区| 欧美色男人天堂| 国产99精品视频| 日本特黄久久久高潮| 亚洲欧洲色图综合| www日韩大片| 欧美日韩国产高清一区二区| 成人开心网精品视频| 蜜桃一区二区三区四区| 亚洲亚洲精品在线观看| 国产精品免费丝袜| 精品国产乱码久久久久久老虎| 在线视频欧美区| 99久久婷婷国产| 国产精品 欧美精品| 免费在线观看一区| 亚洲一区二区欧美日韩| 亚洲日本在线观看| 国产日韩欧美电影| 欧美成人激情免费网| 欧美喷水一区二区| 欧美午夜在线一二页| 99视频精品在线| 东方aⅴ免费观看久久av| 久久精工是国产品牌吗| 污片在线观看一区二区| 一区二区在线观看免费| 国产精品高潮呻吟久久| 国产欧美一区二区精品忘忧草 | 欧美一区二区三级| 日本韩国一区二区三区视频| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 蜜桃一区二区三区四区| 一区二区三区免费看视频| 国产精品免费aⅴ片在线观看| 久久久夜色精品亚洲| 欧美mv和日韩mv国产网站| 精品乱人伦一区二区三区| 日韩欧美国产一区在线观看| 日韩美女视频一区二区在线观看| 欧美日韩精品一区二区三区四区| 色88888久久久久久影院野外| 色婷婷综合久久久久中文| 99久久精品免费精品国产| 99国产欧美久久久精品| 91美女片黄在线观看91美女| 一本一本久久a久久精品综合麻豆| 色综合天天综合狠狠| 在线免费亚洲电影| 欧美日韩专区在线| 日韩一区二区中文字幕| 26uuu国产一区二区三区| 亚洲国产精华液网站w| 中文字幕中文在线不卡住| 亚洲在线观看免费| 免费观看久久久4p| 国产精品99久久久久| 成人高清视频免费观看| 在线日韩国产精品| 日韩免费视频一区| 国产精品美女久久久久aⅴ国产馆| 国产精品久久久久影视| 亚洲线精品一区二区三区| 日本欧美在线看| 国产成人综合在线播放| 色老汉一区二区三区| 日韩视频免费直播| 国产精品久久久久久久久快鸭 | 97aⅴ精品视频一二三区| 欧美调教femdomvk| 精品日韩成人av| 国产精品久久久久影院| 肉色丝袜一区二区| 成人免费毛片嘿嘿连载视频| 欧美日韩亚洲综合一区 | 国产一区二区成人久久免费影院| 成人理论电影网| 91精品一区二区三区久久久久久 | 欧美精品三级在线观看| 亚洲国产成人在线| 蜜桃视频一区二区| 91免费精品国自产拍在线不卡| 91精品国产品国语在线不卡| 国产精品久久久久影院老司 | 亚洲国产三级在线| 国产成人精品综合在线观看| 在线观看免费视频综合| 中文av字幕一区| 日韩av中文在线观看| 一本在线高清不卡dvd| 久久精品欧美一区二区三区不卡 | 亚洲精品久久7777| 国产精品一二三区在线| 欧美日韩精品一区二区三区蜜桃| 国产精品区一区二区三| 久久国产精品72免费观看| 欧洲一区二区av| 亚洲欧美日韩人成在线播放| 国产中文字幕精品| 2023国产精品自拍| 洋洋成人永久网站入口| 成人高清免费观看| 欧美tk丨vk视频| 日韩制服丝袜av| 91国产丝袜在线播放| 国产精品久久毛片a| 国产精品小仙女| 精品人在线二区三区| 首页亚洲欧美制服丝腿| 欧美日韩综合色| 一区二区三区四区国产精品| 99re这里只有精品视频首页| 国产精品丝袜黑色高跟| 国产精品自拍在线| 国产午夜亚洲精品午夜鲁丝片| 久久精品国产999大香线蕉| 日韩一区二区三区在线| 婷婷综合在线观看| 欧美精品18+| 日本aⅴ免费视频一区二区三区| 欧美专区日韩专区| 亚洲超碰精品一区二区|