NIOS II的串口通讯程序

求一个NIOS II的串口通讯程序
小弟初学NIOS,想做一下串口通信,想找个程序参考一下,很简单的只要能接受和发送就行了,各位帮帮忙啊,先谢过了。
------解决方案--------------------
你在网上找《nios ii那些事儿》里边有
------解决方案--------------------
在sopc builder / qsys 里添加 uart 模块,软件部分调用dsp文件夹里头文件里的函数。
------解决方案--------------------
“很简单”的代码,这个用了中断方式你自然搞定

#include "alt_types.h"
#include "system.h"

typedef    alt_8           schar;
typedef    alt_u8          uchar;
typedef    alt_16          sshort;
typedef    alt_u16         ushort;
typedef    alt_32          slong;
typedef    alt_u32         ulong;

typedef    alt_u8*         puchar;
typedef    alt_u16*        pushort;
typedef    alt_u32*        pulong;

#define    REG8(addr)      ( *( ( volatile puchar )(addr) ) )
#define    REG16(addr)     ( *( ( volatile pushort )(addr) ) )
#define    REG32(addr)     ( *( ( volatile pulong )(addr) ) )

// usart  native address
#define    UART_RXD_REG    REG8( UART_BASE + 0*4 )   
#define    UART_TXD_REG    REG8( UART_BASE + 1*4 )
#define    UART_STS_REG    REG8( UART_BASE + 2*4 )
// uart   status mask
  #define  UART_TRDY_MSK   0x40
  #define  UART_RRDY_MSK   0x80


uchar uart_read_byte( void )
{
    while( !( UART_STS_REG & UART_RRDY_MSK ) );
    return( (uchar)( UART_RXD_REG ) );
}

void  uart_send_byte( uchar dat )
{
    while( !( UART_STS_REG & UART_TRDY_MSK ) );  
    UART_TXD_REG = dat;    
}

void  uart_send_string( schar* str )
{
    schar  dat;
    while( ( dat = *str++ ) != '\0' )  uart_send_byte( (uchar)dat );
}

void  uart_send_buffer( uchar* pbuf, uchar size )
{
    uchar ctr;
    for( ctr = 0; ctr < size; ctr++ )  uart_send_byte( *pbuf++ );
}