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

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

?? introutines.c

?? 很多的經典的嵌入式例子 自己去看吧
?? C
字號:
#include "arm_boot.h"

#define HIGH_PRIORITY	0x0001
#define LOW_PRIORITY	0x0002

// IRQ lines masks
#define IRQ_MSK_TIMER0      0x0001
#define IRQ_MSK_TIMER1      0x0002
#define IRQ_MSK_TIMER2      0x0004
#define IRQ_MSK_GPIO_0      0x0008
#define IRQ_MSK_EIM         0x0010
#define IRQ_MSK_KBGPIO_7_0  0x0020
#define IRQ_MSK_UART        0x0040
#define IRQ_MSK_UART_IRDA   0x0080
#define IRQ_MSK_KBGPIO_15_8 0x0100
#define IRQ_MSK_GPIO_3      0x0200
#define IRQ_MSK_GPIO_2      0x0400
#define IRQ_MSK_I2C         0x0800
#define IRQ_MSK_GPIO_1      0x1000
#define IRQ_MSK_SPI         0x2000
#define IRQ_MSK_GPIO_19_4   0x4000
#define IRQ_MSK_API         0x8000
#define IRQ_MSK_ALL         0xFFFF


// IRQ lines
#define IRQ_TIMER0      0
#define IRQ_TIMER1      1
#define IRQ_TIMER2      2
#define IRQ_GPIO_0      3
#define IRQ_EIM         4
#define IRQ_KBGPIO_7_0  5
#define IRQ_UART        6
#define IRQ_UART_IRDA   7
#define IRQ_KBGPIO_15_8 8
#define IRQ_GPIO_3      9
#define IRQ_GPIO_2      10
#define IRQ_I2C         11
#define IRQ_GPIO_1      12
#define IRQ_SPI         13
#define IRQ_GPIO_19_4   14
#define IRQ_API         15


// int_ctrl_reg register values
#define INT_CTRL_IRQ_AGR   0x0001
#define INT_CTRL_FIQ_AGR   0x0002



// ---------------------- Interrupt Setup --------------------------------
#define SWI_CMD_SETSTK         1
#define SWI_CMD_SETCPSR        2

#define SWI_MODE_USER          0x10
#define SWI_MODE_FIQ           0x11
#define SWI_MODE_IRQ           0x12
#define SWI_MODE_SVC           0x13

#define SWI_MASK_IRQ           0x80
#define SWI_MASK_FIQ           0x40

#define SWI_IRQENABLE          0x00
#define SWI_IRQDISABLE         0x80
#define SWI_FIQENABLE          0x00
#define SWI_FIQDISABLE         0x40

#define ENABLE_IRQ_INTERRUPTS  SWI_Command(SWI_CMD_SETCPSR, \
                                           SWI_MASK_IRQ,    \
                                           SWI_IRQENABLE)
#define DISABLE_IRQ_INTERRUPTS SWI_Command(SWI_CMD_SETCPSR, \
                                           SWI_MASK_IRQ,    \
                                           SWI_IRQDISABLE)
#define ENABLE_FIQ_INTERRUPTS  SWI_Command(SWI_CMD_SETCPSR, \
                                           SWI_MASK_FIQ,    \
                                           SWI_FIQENABLE)
#define DISABLE_FIQ_INTERRUPTS SWI_Command(SWI_CMD_SETCPSR, \
                                           SWI_MASK_FIQ,    \
                                           SWI_FIQDISABLE)

int SWI_cmd, SWI_arg1, SWI_arg2;

static void SWI_Command(int cmd, unsigned long arg1, unsigned long arg2)
{
    SWI_cmd = cmd;
    SWI_arg1 = arg1;
    SWI_arg2 = arg2;
    asm(" SWIAL #0");
}

// ---------------------- Stack Setup ---------------------------
#define SVC_STACK_SIZE  128      
#define IRQ_STACK_SIZE  128      
#define FIQ_STACK_SIZE  128      

static unsigned long _svc_stack[SVC_STACK_SIZE];
static unsigned long _irq_stack[IRQ_STACK_SIZE];
static unsigned long _fiq_stack[FIQ_STACK_SIZE];

void setupstacks()
{
    SWI_Command(SWI_CMD_SETSTK, SWI_MODE_SVC, 
                (unsigned long) _svc_stack + SVC_STACK_SIZE);
    SWI_Command(SWI_CMD_SETSTK, SWI_MODE_IRQ, 
                (unsigned long) _irq_stack + IRQ_STACK_SIZE);
    SWI_Command(SWI_CMD_SETSTK, SWI_MODE_FIQ, 
                (unsigned long) _fiq_stack + FIQ_STACK_SIZE);
} 
// --------------------------------------------------------------


unsigned long factorial = 0xFFFFFFFF;


asm("ISR: .sect \"isr\" ");

volatile unsigned long* const it_reg            	= (unsigned long*)0xffff2d00;
volatile unsigned long* const mask_it_reg           = (unsigned long*)0xffff2d04;
volatile unsigned long* const src_irq_reg           = (unsigned long*)0xffff2d08;
volatile unsigned long* const src_fiq_reg           = (unsigned long*)0xffff2d0c;
volatile unsigned long* const src_irq_bin_reg       = (unsigned long*)0xffff2d10;
volatile unsigned long* const src_fiq_bin_reg       = (unsigned long*)0xffff2d14;
volatile unsigned long* const int_ctrl_reg          = (unsigned long*)0xffff2d18;
volatile unsigned long* const ilr_irq[] = {
    (unsigned long*)0xffff2d1c, /*IRQ0  Watchdog TIMER */
    (unsigned long*)0xffff2d20, /*IRQ1  TIMER1*/
    (unsigned long*)0xffff2d24, /*IRQ2  TIMER2*/
    (unsigned long*)0xffff2d28, /*IRQ3  GPIO0*/
    (unsigned long*)0xffff2d2c, /*IRQ4  Ethernet interface*/
    (unsigned long*)0xffff2d30, /*IRQ5  KBGPIO(7:0) */
    (unsigned long*)0xffff2d34, /*IRQ6  UART*/
    (unsigned long*)0xffff2d38, /*IRQ7  UART_IRDA*/
    (unsigned long*)0xffff2d3c, /*IRQ8  KBGPIO(15:8)*/
    (unsigned long*)0xffff2d40, /*IRQ9  GPIO3*/
    (unsigned long*)0xffff2d44, /*IRQ10 GPIO2*/
    (unsigned long*)0xffff2d48, /*IRQ11 I2C*/
    (unsigned long*)0xffff2d4c, /*IRQ12 GPIO1*/
    (unsigned long*)0xffff2d50, /*IRQ13 SPI*/
    (unsigned long*)0xffff2d54, /*IRQ14 GPIO(19:4)*/
    (unsigned long*)0xffff2d58  /*IRQ15 API*/
};
	  
interrupt
void c_spin( void )
{
	while (1);  /*interrupted in bad place*/
}


void timer1_handler(void)
{
}

void timer2_handler(void)
{
}

// Enable the API interrupt on the MCU
void setup_api_interrupt(void)
{
#define API_IRQ      15

    // set the 'I' bit in CPSR to enable IRQ interrupts
    ENABLE_IRQ_INTERRUPTS;

    // configure the API interrupt level register:
    //      SENSE_EDGE = 1
    //      PRIORITY   = 0
    //      FIQ        = 0
	*ilr_irq[API_IRQ] = 0x20;

    // clear the API interrupt bit in the Interrupt Register
    // this clears all pending API interrupts
    *it_reg &= ~(1 << API_IRQ); 

    // clear the API interrupt bit in the Mask Interrupt Register
    // (enables the interrupt)
  	*mask_it_reg &= ~(1 << API_IRQ); 
}

// ISR for the API interrupt
void api_handler(void)
{
    volatile unsigned long  *dsp_output  = (unsigned long *)DSP_OUTPUT;
    factorial = Read_Long_API(dsp_output);
}


void it_handler(unsigned short priority)
{
    int it_source;

	if (priority == HIGH_PRIORITY) {
   		it_source = *src_fiq_reg;
   	}
  	else {
    	it_source = *src_irq_reg;
    }
    
  	switch (it_source) {

    case 0x0001 : 	break;
    case 0x0002 : 
        timer1_handler(); 
        break;
    case 0x0004 : 
        timer2_handler();
        break;
    case 0x0008 : 	break;
    case 0x0010 : 	break;
    case 0x0020 : 	break;
    case 0x0040 : 	break;
    case 0x0080 : 	break;
    case 0x0100 : 	break;
    case 0x0200 : 	break;
    case 0x0400 : 	break;
    case 0x0800 : 	break;
    case 0x1000 : 	break;
    case 0x2000 : 	break;
    case 0x4000 : 	break;
    case 0x8000 : 	
        api_handler();
        break;
        
    default	 	:   asm(" .long 0xDEFED0FE");
  	}

    /* re-enable interrupt on the interrupt controller */
  	if (priority == HIGH_PRIORITY) {
        *int_ctrl_reg |= INT_CTRL_FIQ_AGR;
    }
  	else {
        *int_ctrl_reg |= INT_CTRL_IRQ_AGR;
    }
}  

interrupt
void c_irq( void )
{
	it_handler(LOW_PRIORITY);
}

interrupt
void c_fiq( void )
{
	it_handler(HIGH_PRIORITY);
}

void resetinterrupts()
{
    // Disable all interrupts
    *mask_it_reg = IRQ_MSK_ALL;      
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人久久精品77777最新版本| 欧美日韩一区二区三区在线看| 波多野结衣中文字幕一区| 91丨九色丨黑人外教| 日韩免费电影网站| 亚洲欧美日韩国产中文在线| 老司机精品视频线观看86 | 91蜜桃网址入口| 日韩丝袜美女视频| 亚洲国产精品久久不卡毛片| 99综合电影在线视频| 精品国产123| 日韩国产欧美一区二区三区| 91国偷自产一区二区三区观看| 久久精品视频一区二区三区| 奇米四色…亚洲| 欧美天堂一区二区三区| 一区二区在线观看视频| 国产成人精品亚洲日本在线桃色| 日韩美一区二区三区| 肉肉av福利一精品导航| 欧美日韩国产一级片| 亚洲一区二区三区美女| 色噜噜久久综合| 中文字幕制服丝袜一区二区三区 | 欧美变态口味重另类| 水蜜桃久久夜色精品一区的特点 | eeuss鲁片一区二区三区在线看| 欧美videofree性高清杂交| 日本aⅴ亚洲精品中文乱码| 欧美日韩在线亚洲一区蜜芽| 综合久久综合久久| 91丨九色丨国产丨porny| ...中文天堂在线一区| 99riav久久精品riav| 亚洲日本成人在线观看| 色综合久久久久久久| 一级精品视频在线观看宜春院 | 中文字幕一区视频| 成人福利视频在线看| 国产精品美女久久久久久久久| 成人精品免费看| 中文字幕在线不卡一区二区三区| a4yy欧美一区二区三区| 亚洲一区二区视频| 欧美精品日韩精品| 老司机精品视频导航| 2欧美一区二区三区在线观看视频| 精品亚洲porn| 中文字幕亚洲精品在线观看| 色吧成人激情小说| 午夜精品久久久久久久久久久| 欧美三级视频在线播放| 青青草国产精品97视觉盛宴| 久久男人中文字幕资源站| av电影在线不卡| 午夜精品久久久久久久蜜桃app| 日韩欧美高清dvd碟片| 国产福利精品一区二区| 亚洲理论在线观看| 欧美一区欧美二区| 91亚洲精品乱码久久久久久蜜桃| 亚洲精品国产精华液| 日韩亚洲欧美在线| 成人免费高清在线| 亚洲成人资源网| 久久久天堂av| 欧美日韩一级黄| 国产夫妻精品视频| 午夜国产精品一区| 日本一区二区三区国色天香| 在线观看一区不卡| 韩国视频一区二区| 亚洲一区二区三区爽爽爽爽爽| 精品日韩一区二区三区| 一本久久a久久免费精品不卡| 久久精品99国产国产精| 亚洲人成网站在线| 日韩一区二区在线看片| 色婷婷久久久久swag精品 | 91精品国产色综合久久ai换脸 | 色婷婷av一区| 久久电影国产免费久久电影| 椎名由奈av一区二区三区| 日韩免费成人网| 欧美色成人综合| 成人av资源在线| 国产乱人伦精品一区二区在线观看 | 欧美一区二区成人| 色拍拍在线精品视频8848| 国产在线观看一区二区| 亚洲国产裸拍裸体视频在线观看乱了| 久久久久国产精品人| 欧美日本韩国一区| 91丨porny丨国产入口| 国产美女一区二区| 日韩av一区二区三区四区| 一区二区三区毛片| 国产精品电影一区二区| 精品日产卡一卡二卡麻豆| 色婷婷亚洲一区二区三区| 国产91精品免费| 国产一区二区调教| 日本不卡一区二区三区| 伊人色综合久久天天人手人婷| 中文在线免费一区三区高中清不卡| 日韩欧美国产一区二区在线播放 | 日韩视频在线永久播放| 欧美日本在线观看| 欧美三电影在线| 在线视频国内自拍亚洲视频| 成人免费高清在线| 国产**成人网毛片九色| 顶级嫩模精品视频在线看| 国产综合色精品一区二区三区| 秋霞成人午夜伦在线观看| 日日夜夜免费精品视频| 亚洲成av人片观看| 亚洲永久精品大片| 亚洲成人av资源| 蜜臂av日日欢夜夜爽一区| 日韩和欧美一区二区| 午夜伊人狠狠久久| 麻豆一区二区三| 国产一区在线看| 国产黄人亚洲片| 91在线观看下载| 91久久国产最好的精华液| 欧美剧情片在线观看| 日韩三级伦理片妻子的秘密按摩| 日韩你懂的在线播放| 中文字幕精品一区二区精品绿巨人 | 91精品国产色综合久久久蜜香臀| 日韩一级黄色大片| 久久精子c满五个校花| 国产精品久久影院| 亚洲综合另类小说| 日韩精品亚洲一区| 国产麻豆9l精品三级站| 成人av资源在线观看| 欧美亚洲日本国产| 日韩女优毛片在线| 中文字幕一区二区三区在线不卡 | 国产亚洲人成网站| 一区二区三区在线影院| 亚洲成人免费观看| 国产一区二区在线电影| 在线影院国内精品| 久久一夜天堂av一区二区三区| 国产精品久久久爽爽爽麻豆色哟哟 | 欧美视频在线播放| 久久久久久亚洲综合影院红桃| 亚洲日穴在线视频| 国精产品一区一区三区mba视频 | 国内精品伊人久久久久av一坑| 成人国产精品免费观看| 制服丝袜中文字幕一区| 国产精品久久久久永久免费观看| 亚洲第一福利视频在线| 国产**成人网毛片九色| 日韩一区二区视频| 一区二区在线观看免费 | 欧美国产精品一区二区三区| 亚洲美女淫视频| 国产一区二区成人久久免费影院| 欧美影视一区在线| 国产亚洲欧美日韩日本| 日日摸夜夜添夜夜添精品视频| 国产91丝袜在线播放| 日韩西西人体444www| 日韩毛片一二三区| 国产精品资源网| 91精品国产全国免费观看| 亚洲少妇屁股交4| 韩国av一区二区| 日韩女优av电影在线观看| 午夜精品123| 在线免费观看日本一区| 国产精品福利一区| 国产成+人+日韩+欧美+亚洲| 91精品国产综合久久久久| 亚洲综合图片区| 色综合网站在线| 亚洲国产精品黑人久久久| 久久成人羞羞网站| 日韩欧美资源站| 日韩电影免费在线看| 欧美色综合网站| 亚洲永久免费av| 91久久香蕉国产日韩欧美9色| 国产精品久久精品日日| 高清国产一区二区| 国产日韩亚洲欧美综合| 国产尤物一区二区| 久久综合九色欧美综合狠狠| 狠狠久久亚洲欧美| 久久只精品国产| 国产精品1024| 国产精品拍天天在线| 99综合电影在线视频|