Example #1
0
File: dma.c Project: jaw0/osj5
dma_init(int unit){

    RCC->AHBENR |= 1;

    nvic_enable( dmairq,   IPL_DISK );

}
Example #2
0
/* initialize the serial ports */
int
serial_init(struct Device_Conf *dev){
    int i    = dev->unit;
    USART_TypeDef *addr;
    int irq;
    int b;

    int altpins = dev->flags & CFFLAGS_ALTPINS;

    finit( & com[i].file );
    com[i].file.fs = &serial_port_fs;
    com[i].file.codepage = CODEPAGE_UTF8;
    com[i].head = com[i].tail = com[i].len = 0;
    com[i].status  = 0;
    com[i].portno  = i;
    com[i].file.d  = (void*)&com[i];

    // enable gpio clock, usart clock, configure pins
    serial_pins_init( i, altpins );

    switch(i){
    case 0:
        addr = USART1;
        com[i].baudclock = apb2_clock_freq();
        irq           = (int) IRQ_USART1;
        break;
    case 1:
        addr = USART2;
        com[i].baudclock = apb1_clock_freq();
        irq           = (int) IRQ_USART2;
        break;
    case 2:
        addr = USART3;
        com[i].baudclock = apb1_clock_freq();
        irq           = (int) IRQ_USART3_4;
        break;

    default:
        PANIC("invalid serial");
        break;

    }

    com[i].addr   = addr;

    if( dev->baud )
        serial_setbaud(i, b=dev->baud);
    else
        serial_setbaud(i, b=9600);

    addr->CR1 = 0x0C		// enable rx/tx, no parity, 8 bit, ...
        | 0x20			// enable RX irq
        | 1;			// enable

    // enable ints
    nvic_enable( irq, IPL_TTY );

    if( !serial0_port ){
        serial0_port = &com[i].file;
    }

    bootmsg("%s at io 0x%x irq %d %d baud\n", dev->name, addr, irq, b);

    return (int) &com[i].file;
}