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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? stellaris.c

?? xen虛擬機(jī)源代碼安裝包
?? C
?? 第 1 頁 / 共 3 頁
字號(hào):
/* * Luminary Micro Stellaris peripherals * * Copyright (c) 2006 CodeSourcery. * Written by Paul Brook * * This code is licenced under the GPL. */#include "hw.h"#include "arm-misc.h"#include "primecell.h"#include "devices.h"#include "qemu-timer.h"#include "i2c.h"#include "net.h"#include "sd.h"#include "sysemu.h"#include "boards.h"#define GPIO_A 0#define GPIO_B 1#define GPIO_C 2#define GPIO_D 3#define GPIO_E 4#define GPIO_F 5#define GPIO_G 6#define BP_OLED_I2C  0x01#define BP_OLED_SSI  0x02#define BP_GAMEPAD   0x04typedef const struct {    const char *name;    uint32_t did0;    uint32_t did1;    uint32_t dc0;    uint32_t dc1;    uint32_t dc2;    uint32_t dc3;    uint32_t dc4;    uint32_t peripherals;} stellaris_board_info;/* General purpose timer module.  */typedef struct gptm_state {    uint32_t config;    uint32_t mode[2];    uint32_t control;    uint32_t state;    uint32_t mask;    uint32_t load[2];    uint32_t match[2];    uint32_t prescale[2];    uint32_t match_prescale[2];    uint32_t rtc;    int64_t tick[2];    struct gptm_state *opaque[2];    uint32_t base;    QEMUTimer *timer[2];    /* The timers have an alternate output used to trigger the ADC.  */    qemu_irq trigger;    qemu_irq irq;} gptm_state;static void gptm_update_irq(gptm_state *s){    int level;    level = (s->state & s->mask) != 0;    qemu_set_irq(s->irq, level);}static void gptm_stop(gptm_state *s, int n){    qemu_del_timer(s->timer[n]);}static void gptm_reload(gptm_state *s, int n, int reset){    int64_t tick;    if (reset)        tick = qemu_get_clock(vm_clock);    else        tick = s->tick[n];    if (s->config == 0) {        /* 32-bit CountDown.  */        uint32_t count;        count = s->load[0] | (s->load[1] << 16);        tick += (int64_t)count * system_clock_scale;    } else if (s->config == 1) {        /* 32-bit RTC.  1Hz tick.  */        tick += ticks_per_sec;    } else if (s->mode[n] == 0xa) {        /* PWM mode.  Not implemented.  */    } else {        cpu_abort(cpu_single_env, "TODO: 16-bit timer mode 0x%x\n",                  s->mode[n]);    }    s->tick[n] = tick;    qemu_mod_timer(s->timer[n], tick);}static void gptm_tick(void *opaque){    gptm_state **p = (gptm_state **)opaque;    gptm_state *s;    int n;    s = *p;    n = p - s->opaque;    if (s->config == 0) {        s->state |= 1;        if ((s->control & 0x20)) {            /* Output trigger.  */	    qemu_irq_raise(s->trigger);	    qemu_irq_lower(s->trigger);        }        if (s->mode[0] & 1) {            /* One-shot.  */            s->control &= ~1;        } else {            /* Periodic.  */            gptm_reload(s, 0, 0);        }    } else if (s->config == 1) {        /* RTC.  */        uint32_t match;        s->rtc++;        match = s->match[0] | (s->match[1] << 16);        if (s->rtc > match)            s->rtc = 0;        if (s->rtc == 0) {            s->state |= 8;        }        gptm_reload(s, 0, 0);    } else if (s->mode[n] == 0xa) {        /* PWM mode.  Not implemented.  */    } else {        cpu_abort(cpu_single_env, "TODO: 16-bit timer mode 0x%x\n",                  s->mode[n]);    }    gptm_update_irq(s);}static uint32_t gptm_read(void *opaque, target_phys_addr_t offset){    gptm_state *s = (gptm_state *)opaque;    offset -= s->base;    switch (offset) {    case 0x00: /* CFG */        return s->config;    case 0x04: /* TAMR */        return s->mode[0];    case 0x08: /* TBMR */        return s->mode[1];    case 0x0c: /* CTL */        return s->control;    case 0x18: /* IMR */        return s->mask;    case 0x1c: /* RIS */        return s->state;    case 0x20: /* MIS */        return s->state & s->mask;    case 0x24: /* CR */        return 0;    case 0x28: /* TAILR */        return s->load[0] | ((s->config < 4) ? (s->load[1] << 16) : 0);    case 0x2c: /* TBILR */        return s->load[1];    case 0x30: /* TAMARCHR */        return s->match[0] | ((s->config < 4) ? (s->match[1] << 16) : 0);    case 0x34: /* TBMATCHR */        return s->match[1];    case 0x38: /* TAPR */        return s->prescale[0];    case 0x3c: /* TBPR */        return s->prescale[1];    case 0x40: /* TAPMR */        return s->match_prescale[0];    case 0x44: /* TBPMR */        return s->match_prescale[1];    case 0x48: /* TAR */        if (s->control == 1)            return s->rtc;    case 0x4c: /* TBR */        cpu_abort(cpu_single_env, "TODO: Timer value read\n");    default:        cpu_abort(cpu_single_env, "gptm_read: Bad offset 0x%x\n", (int)offset);        return 0;    }}static void gptm_write(void *opaque, target_phys_addr_t offset, uint32_t value){    gptm_state *s = (gptm_state *)opaque;    uint32_t oldval;    offset -= s->base;    /* The timers should be disabled before changing the configuration.       We take advantage of this and defer everything until the timer       is enabled.  */    switch (offset) {    case 0x00: /* CFG */        s->config = value;        break;    case 0x04: /* TAMR */        s->mode[0] = value;        break;    case 0x08: /* TBMR */        s->mode[1] = value;        break;    case 0x0c: /* CTL */        oldval = s->control;        s->control = value;        /* TODO: Implement pause.  */        if ((oldval ^ value) & 1) {            if (value & 1) {                gptm_reload(s, 0, 1);            } else {                gptm_stop(s, 0);            }        }        if (((oldval ^ value) & 0x100) && s->config >= 4) {            if (value & 0x100) {                gptm_reload(s, 1, 1);            } else {                gptm_stop(s, 1);            }        }        break;    case 0x18: /* IMR */        s->mask = value & 0x77;        gptm_update_irq(s);        break;    case 0x24: /* CR */        s->state &= ~value;        break;    case 0x28: /* TAILR */        s->load[0] = value & 0xffff;        if (s->config < 4) {            s->load[1] = value >> 16;        }        break;    case 0x2c: /* TBILR */        s->load[1] = value & 0xffff;        break;    case 0x30: /* TAMARCHR */        s->match[0] = value & 0xffff;        if (s->config < 4) {            s->match[1] = value >> 16;        }        break;    case 0x34: /* TBMATCHR */        s->match[1] = value >> 16;        break;    case 0x38: /* TAPR */        s->prescale[0] = value;        break;    case 0x3c: /* TBPR */        s->prescale[1] = value;        break;    case 0x40: /* TAPMR */        s->match_prescale[0] = value;        break;    case 0x44: /* TBPMR */        s->match_prescale[0] = value;        break;    default:        cpu_abort(cpu_single_env, "gptm_write: Bad offset 0x%x\n", (int)offset);    }    gptm_update_irq(s);}static CPUReadMemoryFunc *gptm_readfn[] = {   gptm_read,   gptm_read,   gptm_read};static CPUWriteMemoryFunc *gptm_writefn[] = {   gptm_write,   gptm_write,   gptm_write};static void stellaris_gptm_init(uint32_t base, qemu_irq irq, qemu_irq trigger){    int iomemtype;    gptm_state *s;    s = (gptm_state *)qemu_mallocz(sizeof(gptm_state));    s->base = base;    s->irq = irq;    s->trigger = trigger;    s->opaque[0] = s->opaque[1] = s;    iomemtype = cpu_register_io_memory(0, gptm_readfn,                                       gptm_writefn, s);    cpu_register_physical_memory(base, 0x00001000, iomemtype);    s->timer[0] = qemu_new_timer(vm_clock, gptm_tick, &s->opaque[0]);    s->timer[1] = qemu_new_timer(vm_clock, gptm_tick, &s->opaque[1]);    /* ??? Save/restore.  */}/* System controller.  */typedef struct {    uint32_t base;    uint32_t pborctl;    uint32_t ldopctl;    uint32_t int_status;    uint32_t int_mask;    uint32_t resc;    uint32_t rcc;    uint32_t rcgc[3];    uint32_t scgc[3];    uint32_t dcgc[3];    uint32_t clkvclr;    uint32_t ldoarst;    uint32_t user0;    uint32_t user1;    qemu_irq irq;    stellaris_board_info *board;} ssys_state;static void ssys_update(ssys_state *s){  qemu_set_irq(s->irq, (s->int_status & s->int_mask) != 0);}static uint32_t pllcfg_sandstorm[16] = {    0x31c0, /* 1 Mhz */    0x1ae0, /* 1.8432 Mhz */    0x18c0, /* 2 Mhz */    0xd573, /* 2.4576 Mhz */    0x37a6, /* 3.57954 Mhz */    0x1ae2, /* 3.6864 Mhz */    0x0c40, /* 4 Mhz */    0x98bc, /* 4.906 Mhz */    0x935b, /* 4.9152 Mhz */    0x09c0, /* 5 Mhz */    0x4dee, /* 5.12 Mhz */    0x0c41, /* 6 Mhz */    0x75db, /* 6.144 Mhz */    0x1ae6, /* 7.3728 Mhz */    0x0600, /* 8 Mhz */    0x585b /* 8.192 Mhz */};static uint32_t pllcfg_fury[16] = {    0x3200, /* 1 Mhz */    0x1b20, /* 1.8432 Mhz */    0x1900, /* 2 Mhz */    0xf42b, /* 2.4576 Mhz */    0x37e3, /* 3.57954 Mhz */    0x1b21, /* 3.6864 Mhz */    0x0c80, /* 4 Mhz */    0x98ee, /* 4.906 Mhz */    0xd5b4, /* 4.9152 Mhz */    0x0a00, /* 5 Mhz */    0x4e27, /* 5.12 Mhz */    0x1902, /* 6 Mhz */    0xec1c, /* 6.144 Mhz */    0x1b23, /* 7.3728 Mhz */    0x0640, /* 8 Mhz */    0xb11c /* 8.192 Mhz */};static uint32_t ssys_read(void *opaque, target_phys_addr_t offset){    ssys_state *s = (ssys_state *)opaque;    offset -= s->base;    switch (offset) {    case 0x000: /* DID0 */        return s->board->did0;    case 0x004: /* DID1 */        return s->board->did1;    case 0x008: /* DC0 */        return s->board->dc0;    case 0x010: /* DC1 */        return s->board->dc1;    case 0x014: /* DC2 */        return s->board->dc2;    case 0x018: /* DC3 */        return s->board->dc3;    case 0x01c: /* DC4 */        return s->board->dc4;    case 0x030: /* PBORCTL */        return s->pborctl;    case 0x034: /* LDOPCTL */        return s->ldopctl;    case 0x040: /* SRCR0 */        return 0;    case 0x044: /* SRCR1 */        return 0;    case 0x048: /* SRCR2 */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
污片在线观看一区二区| 国产精品情趣视频| 蜜臀久久99精品久久久久宅男 | 国产成人精品1024| 久久久国产精华| thepron国产精品| 亚洲欧美日本韩国| 欧美猛男超大videosgay| 日韩中文字幕1| 精品久久久久久亚洲综合网| 国产盗摄一区二区三区| 国产精品国产三级国产有无不卡| av福利精品导航| 奇米精品一区二区三区在线观看| 日韩精品自拍偷拍| 成人丝袜高跟foot| 亚洲国产精品久久不卡毛片| 欧美大片一区二区| 99天天综合性| 美腿丝袜一区二区三区| 国产精品毛片a∨一区二区三区| 日本精品裸体写真集在线观看 | 欧美极品另类videosde| 成人激情免费网站| 亚洲成国产人片在线观看| 精品国产乱码久久久久久蜜臀| 成人av资源在线观看| 午夜精品国产更新| 国产情人综合久久777777| 欧美亚洲综合在线| 国产精品夜夜爽| 三级不卡在线观看| 中文字幕在线不卡一区| 精品欧美一区二区三区精品久久 | 肉丝袜脚交视频一区二区| 国产欧美精品一区二区色综合| 欧美视频一区二区三区四区| 国产一区二区影院| 日韩电影在线免费观看| 1000精品久久久久久久久| 欧美va天堂va视频va在线| 欧美亚洲免费在线一区| 成人动漫一区二区三区| 免费三级欧美电影| 亚洲午夜久久久| 中文字幕亚洲在| 久久久亚洲高清| 日韩精品影音先锋| 欧美日韩国产精选| 91丨九色丨黑人外教| 国产一区 二区 三区一级| 日日摸夜夜添夜夜添国产精品| 成人免费一区二区三区视频| 久久综合色一综合色88| 日韩欧美国产综合一区 | 欧美日韩免费高清一区色橹橹| 高清av一区二区| 极品少妇xxxx精品少妇| 日韩国产欧美在线视频| 亚洲成人第一页| 亚洲色图视频网站| 中文字幕成人av| 国产清纯在线一区二区www| 日韩一级精品视频在线观看| 欧美色图在线观看| 在线视频国内自拍亚洲视频| 99re这里都是精品| 波多野结衣一区二区三区| 国产一区二区三区四| 国内精品自线一区二区三区视频| 石原莉奈一区二区三区在线观看| 亚洲伊人色欲综合网| 亚洲男人的天堂在线观看| 亚洲天天做日日做天天谢日日欢| 中文字幕av一区 二区| 中文一区一区三区高中清不卡| 精品少妇一区二区三区日产乱码| 日韩免费看网站| 久久久久久久精| 国产欧美日产一区| 中文字幕在线不卡视频| 亚洲乱码一区二区三区在线观看| 亚洲视频狠狠干| 一区二区三区小说| 亚洲va国产天堂va久久en| 午夜精品久久一牛影视| 麻豆91精品91久久久的内涵| 麻豆视频一区二区| 国产麻豆成人精品| 成人免费高清在线| 欧美性一区二区| 欧美一区三区四区| 久久亚洲精品小早川怜子| 欧美激情一区二区在线| 亚洲色图制服诱惑| 日韩精品成人一区二区三区| 美女一区二区久久| 风间由美一区二区av101| 99热精品一区二区| 欧美色偷偷大香| 欧美成人猛片aaaaaaa| 久久久久久久久久久电影| 亚洲色图欧美在线| 亚洲第一狼人社区| 国产中文字幕一区| a亚洲天堂av| 9191成人精品久久| 中文字幕免费一区| 日日摸夜夜添夜夜添亚洲女人| 久久91精品国产91久久小草| 成人福利视频在线看| 欧美日韩1234| 国产调教视频一区| 五月天一区二区| 国产91精品露脸国语对白| 在线视频欧美区| 精品国产乱码久久久久久闺蜜 | 精品久久久久一区| 国产精品久久久久久久午夜片| 午夜亚洲福利老司机| 国产成人在线观看| 91精品国产综合久久久蜜臀图片 | 欧美大片顶级少妇| 综合久久一区二区三区| 久久aⅴ国产欧美74aaa| 色综合久久综合网| 久久综合色天天久久综合图片| 一区二区三区四区蜜桃| 国产·精品毛片| 欧美一区二区三区免费在线看 | 国产毛片精品一区| 欧洲一区二区三区免费视频| 久久免费精品国产久精品久久久久| 亚洲一级二级三级| 成人午夜视频在线| 久久婷婷国产综合精品青草| 午夜精品国产更新| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲精品一区二区精华| 婷婷一区二区三区| 日本韩国欧美三级| 中文字幕精品三区| 国产精品99久久久| 精品国产伦一区二区三区观看体验| 亚洲成人777| 欧洲人成人精品| 国产精品久久久久影院老司| 精品亚洲成a人在线观看| 91精品国产免费久久综合| 一区二区三区欧美| 日本高清成人免费播放| 中文字幕一区二区三区乱码在线| 国内精品伊人久久久久av一坑 | 欧美精品一卡二卡| 亚洲国产精品久久艾草纯爱| 日本韩国精品一区二区在线观看| 国产精品第五页| 99久精品国产| 成人免费视频在线观看| 91在线视频免费观看| 国产精品美女久久久久久久网站| 国产精品性做久久久久久| 2022国产精品视频| 国产最新精品精品你懂的| 精品粉嫩超白一线天av| 精品伊人久久久久7777人| 欧美不卡一区二区三区| 精品一区二区成人精品| 久久久精品国产免大香伊| 国产麻豆91精品| 久久嫩草精品久久久精品| 国产乱理伦片在线观看夜一区| 久久精品视频在线看| 风间由美性色一区二区三区| 国产精品日产欧美久久久久| 懂色av中文一区二区三区 | 最近日韩中文字幕| 色综合久久六月婷婷中文字幕| 亚洲视频在线一区| 欧美日韩一区二区三区高清| 亚洲高清免费观看 | 国产高清在线精品| 国产人伦精品一区二区| 91色综合久久久久婷婷| 亚洲一级在线观看| 日韩免费视频一区| 成人综合在线网站| 一区二区三区四区在线免费观看| 欧美日韩三级视频| 国产一区在线看| 中文字幕一区二区三区不卡| 欧美视频日韩视频在线观看| 另类人妖一区二区av| 久久精品视频免费| 91福利视频网站| 免费成人在线观看视频| 久久久久97国产精华液好用吗| 91视频免费播放| 另类小说综合欧美亚洲| 国产精品国产三级国产普通话蜜臀 |