⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 system.c

📁 编译后直接运行的MP3播放器全部C语言源代码 一个包含FAT文件系统、系统引导 Boot、FLASH Driver等内容的
💻 C
📖 第 1 页 / 共 2 页
字号:
    /*** 84-86 ITU1 ***/      IMIA1,IMIB1,OVI1,        /*** 87 Reserved ***/    UIE87,       /*** 88-90 ITU2 ***/      IMIA2,IMIB2,OVI2,        /*** 91 Reserved ***/    UIE91,       /*** 92-94 ITU3 ***/      IMIA3,IMIB3,OVI3,        /*** 95 Reserved ***/    UIE95,       /*** 96-98 ITU4 ***/      IMIA4,IMIB4,OVI4,        /*** 99 Reserved ***/    UIE99,        /*** 100-103 SCI0 ***/       REI0,RXI0,TXI0,TEI0,      /*** 104-107 SCI1 ***/       REI1,RXI1,TXI1,TEI1,      /*** 108 Parity Control Unit ***/      UIE108,             /*** 109 AD Converter ***/      ADITI    };void system_reboot (void){    set_irq_level(15);    asm volatile ("ldc\t%0,vbr" : : "r"(0));    PACR2 |= 0x4000; /* for coldstart detection */    IPRA = 0;    IPRB = 0;    IPRC = 0;    IPRD = 0;    IPRE = 0;    ICR = 0;    asm volatile ("jmp @%0; mov.l @%1,r15" : :		  "r"(*(int*)0),"r"(4));}void UIE (unsigned int pc) /* Unexpected Interrupt or Exception */{    bool state = true;    unsigned int n;    char str[32];    asm volatile ("sts\tpr,%0" : "=r"(n));        /* clear screen */    lcd_clear_display ();#ifdef HAVE_LCD_BITMAP    lcd_setfont(FONT_SYSFIXED);#endif    /* output exception */    n = (n - (unsigned)UIE0 - 4)>>2; /* get exception or interrupt number */    snprintf(str,sizeof(str),"I%02x:%s",n,irqname[n]);    lcd_puts(0,0,str);    snprintf(str,sizeof(str),"at %08x",pc);    lcd_puts(0,1,str);#ifdef HAVE_LCD_BITMAP    lcd_update ();#endif    while (1)    {        volatile int i;        led (state);        state = state?false:true;                for (i = 0; i < 240000; ++i);        /* try to restart firmware if ON is pressed */#ifdef HAVE_LCD_CHARCELLS        if (!(PADR & 0x20))            rolo_load("/archos.mod");#else        if (!(PBDR & PBDR_BTN_ON))            rolo_load("/ajbrec.ajz");#endif    }}asm (    "_UIE0:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE1:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE2:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE3:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE4:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE5:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE6:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE7:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE8:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE9:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE10:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE11:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE12:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE13:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE14:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE15:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE16:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE17:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE18:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE19:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE20:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE21:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE22:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE23:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE24:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE25:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE26:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE27:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE28:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE29:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE30:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE31:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE32:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE33:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE34:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE35:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE36:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE37:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE38:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE39:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE40:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE41:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE42:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE43:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE44:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE45:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE46:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE47:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE48:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE49:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE50:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE51:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE52:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE53:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE54:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE55:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE56:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE57:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE58:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE59:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE60:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE61:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE62:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE63:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE64:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE65:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE66:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE67:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE68:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE69:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE70:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE71:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE72:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE73:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE74:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE75:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE76:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE77:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE78:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE79:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE80:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE81:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE82:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE83:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE84:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE85:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE86:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE87:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE88:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE89:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE90:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE91:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE92:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE93:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE94:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE95:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE96:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE97:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE98:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE99:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE100:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE101:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE102:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE103:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE104:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE105:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE106:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE107:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE108:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\t\n"    "_UIE109:\tbsr\t_UIE\n\tmov.l\t@r15+,r4");void system_init(void){    /* Disable all interrupts */    IPRA = 0;    IPRB = 0;    IPRC = 0;    IPRD = 0;    IPRE = 0;    /* NMI level low, falling edge on all interrupts */    ICR = 0;    /* Enable burst mode on DRAM */    DCR |= 0x1000;    /* Activate Warp mode (simultaneous internal and external mem access) */    BCR |= 0x2000;    /* Bus state controller initializations. These are only necessary when       running from flash. The correct settings for player models are not       verified, so we only do this for the recorder. */#ifdef HAVE_RECORDING    WCR1 = 0x4000; /* Long wait states for CS6 (ATA), short for the rest. */    WCR3 = 0x8000; /* WAIT is pulled up, 1 state inserted for CS6 */#endif}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -