OpenCores
URL https://opencores.org/ocsvn/altor32/altor32/trunk

Subversion Repositories altor32

[/] [altor32/] [trunk/] [sw/] [common/] [serial.c] - Blame information for rev 42

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 42 ultra_embe
#include "mem_map.h"
2
#include "serial.h"
3
 
4
//-----------------------------------------------------------------
5
// Defines
6
//-----------------------------------------------------------------
7
#define UART_RX_AVAIL    (1<<0)
8
#define UART_TX_BUSY     (1<<3)
9
 
10
//-------------------------------------------------------------
11
// serial_init: 
12
//-------------------------------------------------------------
13
void serial_init (void)
14
{
15
    // Not required
16
}
17
//-------------------------------------------------------------
18
// serial_putchar: Write character to UART Tx buffer
19
//-------------------------------------------------------------
20
int serial_putchar(char ch)
21
{
22
    if (ch == '\n')
23
        serial_putchar('\r');
24
 
25
    // Print in simulator via l.nop instruction
26
    {
27
        register char  t1 asm ("r3") = ch;
28
        asm volatile ("\tl.nop\t%0" : : "K" (0x0004), "r" (t1));
29
    }
30
 
31
    // Write to Tx buffer
32
    UART_UDR = ch;
33
 
34
    // Wait for Tx to complete
35
    while (UART_USR & UART_TX_BUSY);
36
 
37
    return 0;
38
}
39
//-------------------------------------------------------------
40
// serial_getchar: Read character from UART Rx buffer
41
//-------------------------------------------------------------
42
int serial_getchar (void)
43
{
44
    if (serial_haschar())
45
        return UART_UDR;
46
    else
47
        return -1;
48
}
49
//-------------------------------------------------------------
50
// serial_haschar: Is a character waiting in Rx buffer
51
//-------------------------------------------------------------
52
int serial_haschar()
53
{
54
    return (UART_USR & UART_RX_AVAIL);
55
}
56
//-------------------------------------------------------------
57
// serial_putstr: Send a string to UART
58
//-------------------------------------------------------------
59
void serial_putstr(char *str)
60
{
61
    while (*str)
62
        serial_putchar(*str++);
63
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.