<?xml version="1.0" encoding="gbk"?> <rss version="2.0"><channel> <title>定阅帖子更新</title> <link>http://www.broadkey.com.cn/XML.ASP</link><description>TEAM Board - 意得法电子</description> <copyright>TEAM 2.0.5 Release</copyright><generator>TEAM Board by TEAM5.Cn Studio</generator> <ttl>30</ttl><item><link>http://www.broadkey.com.cn/Thread.asp?tid=12 </link><title>NIOS&amp;nbsp;II常用函数整理</title><author>aaron</author><pubDate>2009-11-24 10:38:43</pubDate><description><![CDATA[<div class="t_msgfontfix">
<table cellspacing="0" cellpadding="0">
    <tbody>
        <tr>
            <td id="postmessage_9143" class="t_msgfont">IO操作函数<br />
            函数原型：IORD(BASE, REGNUM) <br />
            输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量<br />
            函数说明：从基地址为BASE的设备中读取寄存器中偏移量为REGNUM的单元里面的值。寄存器的值在地址总线的范围之内。<br />
            返回值：&nbsp;&nbsp;－<br />
            函数原型：IOWR(BASE, REGNUM, DATA)<br />
            输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量，DATA为要写入的数据<br />
            函数说明：往偏移量为REGNUM寄存器中写入数据。寄存器的值在地址总线的范围之内。<br />
            返回值：&nbsp;&nbsp;－<br />
            函数原型：IORD_32DIRECT(BASE, OFFSET)<br />
            输入参数：BASE为寄存器的基地址，OFFSET为寄存器的的偏移量<br />
            函数说明：从地址位置为BASE+OFFSET的寄存器中直接读取32Bit的数据<br />
            返回值：&nbsp;&nbsp;－<br />
            函数原型：IORD_16DIRECT(BASE, OFFSET) <br />
            输入参数：BASE为寄存器的基地址，OFFSET为寄存器的的偏移量<br />
            函数说明：从地址位置为BASE+OFFSET的寄存器中直接读取16Bit的数据<br />
            返回值：&nbsp;&nbsp;－<br />
            函数原型：IORD_8DIRECT(BASE, OFFSET) <br />
            输入参数：BASE为寄存器的基地址，OFFSET为寄存器的的偏移量<br />
            函数说明：从地址位置为BASE+OFFSET的寄存器中直接读取8Bit的数据<br />
            返回值：&nbsp;&nbsp;－<br />
            <br />
            函数原型：IOWR_32DIRECT(BASE, OFFSET, DATA)<br />
            输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量，DATA为要写入的数据<br />
            函数说明：往地址位置为BASE+OFFSET的寄存器中直接写入32Bit的数据<br />
            返回值： －<br />
            函数原型：IOWR_16DIRECT(BASE, OFFSET, DATA)<br />
            输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量，DATA为要写入的数据<br />
            函数说明：往地址位置为BASE+OFFSET的寄存器中直接写入16Bit的数据<br />
            返回值： －<br />
            函数原型：IOWR_8DIRECT(BASE, OFFSET, DATA)<br />
            输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量，DATA为要写入的数据<br />
            函数说明：往地址位置为BASE+OFFSET的寄存器中直接写入8Bit的数据<br />
            返回值： －<br />
            Dma：<br />
            函数原型：int alt_dma_rxchan_close (alt_dma_rxchan rxchan)<br />
            输入参数：rxchan为接收信道<br />
            函数说明：函数 alt_dma_rxchan_close ()通知系统：应用程序已经完成DMA<br />
            &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 接收信道rxchan，目前执行是成功的<br />
            返回值：&nbsp;&nbsp;成功返回为0，反之为－1<br />
            函数原型：alt_dma_rxchan_depth(alt_dma_rxchan dma)<br />
            输入参数：dma<br />
            函数说明：函数alt_dma_rxchan_depth ()返回传送到特别DMA的最大数量(深度)的接收请求<br />
            返回值：&nbsp;&nbsp;DMA的最大数量<br />
            <br />
            函数原型：int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, int req, void* arg)<br />
            输入参数：dma直接存储器名, req为请求操作的列举, arg由请求决定<br />
            函数说明：通过DMA接收信道执行设备的具体I/O操作<br />
            返回值：&nbsp;&nbsp;成功返回请求具体值，反之返回为负数<br />
            请求类型<br />
            请求类型 请求类型说明<br />
            ALT_DMA_SET_MODE_8 传输以8Bit为单位的数据，arg值忽略<br />
            ALT_DMA_SET_MODE_16 传输以16Bit为单位的数据，arg值忽略<br />
            ALT_DMA_SET_MODE_32 传输以32Bit为单位的数据，arg值忽略<br />
            ALT_DMA_SET_MODE_64 传输以64Bit为单位的数据，arg值忽略<br />
            ALT_DMA_SET_MODE_128 传输以128Bit为单位的数据，arg值忽略<br />
            ALT_DMA_TX_ONLY_ON (1) 软件控制下只能发送<br />
            ALT_DMA_TX_ONLY_OFF (1) 自定义模式，软件控制下可以接收，发送<br />
            ALT_DMA_RX_ONLY_ON (1) 软件控制下只能接收<br />
            ALT_DMA_RX_ONLY_OFF (1) 自定义模式，软件控制下可以接收，发送<br />
            函数原型：alt_dma_rxchan&nbsp;&nbsp;alt_dma_rxchan_open (const char* name)<br />
            输入参数：name为常数字符指针，如/dev/dma_0<br />
            函数说明：为DMA接收信道获得一个alt_dma_rxchan描述符<br />
            返回值：&nbsp;&nbsp;成功返回非0，反之返回为0<br />
            函数原型：int alt_dma_rxchan_prepare (alt_dma_rxchan&nbsp;&nbsp;dma, void* data,<br />
            alt_u32 length, alt_rxchan_done * done, void* handle)<br />
            输入参数：dma使用的信道；data接收数据位置的指针；length最大的接收数据长度；done一旦数据被接收，调用返回函数；handle，非透明值传到done<br />
            函数说明：发送一个接收请求到DMA接收信道，<br />
            返回值：&nbsp;&nbsp;成功返回0，反之返回为负数<br />
            函数原型：int alt_dma_rxchan_reg (alt_dma_rxchan_dev * dev)<br />
            输入参数：dev接收信道设备名<br />
            函数说明：给系统寄存DMA接收信道<br />
            返回值：&nbsp;&nbsp;成功返回0，反之返回为负数<br />
            函数原型：int alt_dma_txchan_close (alt_dma_txchan txchan)<br />
            输入参数：txchan发送信道名<br />
            函数说明：通知系统：应用程序已经完成DMA发送信道txchan<br />
            返回值：&nbsp;&nbsp;成功返回0，反之返回为负数<br />
            函数原型：int&nbsp;&nbsp;alt_dma_txchan_ioctl (alt_dma_txchan dma, int req, void* arg)<br />
            输入参数：dma直接存储器名；req为请求操作的列举；arg请求的额外参数，由请求决定<br />
            函数说明：通过DMA发送信道执行设备的具体I/O操作<br />
            返回值：&nbsp;&nbsp;成功返回请求具体值，反之返回为负数<br />
            函数原型：alt_dma_txchan&nbsp;&nbsp;alt_dma_txchan_open (const char* name)<br />
            输入参数：name为常数字符指针，如/dev/dma_0<br />
            函数说明：为DMA发送信道获得一个alt_dma_rxchan描述符<br />
            返回值：&nbsp;&nbsp;成功返回非0，反之返回为0<br />
            函数原型：int&nbsp;&nbsp;alt_dma_txchan_reg (alt_dma_txchan_dev* dev)<br />
            输入参数：dev接收信道设备名<br />
            函数说明：给系统寄存DMA发送信道<br />
            返回值：&nbsp;&nbsp;成功返回0，反之返回为负数<br />
            函数原型：int alt_dma_txchan_send (alt_dma_txchan dma, const void* from,<br />
            alt_u32 length, alt_txchan_done* done, void* handle)<br />
            输入参数：dma使用的信道；data接收数据位置的指针；length最大的接收数据长度；done一旦数据被接收，调用返回函数；handle，非透明值传到done<br />
            函数说明：发送一个发送请求到DMA发送信道，<br />
            返回值：&nbsp;&nbsp;发送成功返回0，反之返回为负数<br />
            函数原型：nt alt_dma_txchan_space (alt_dma_txchan dma)<br />
            输入参数：dma 直接存储器名<br />
            函数说明：返回被传送到具体DMA发送信道的发送请求数目<br />
            返回值：&nbsp;&nbsp;返回发送请求数目<br />
            Flash<br />
            函数原型：int alt_erase_flash_block(alt_flash_fd* fd, int offset, int length)<br />
            输入参数：fd为具体的flash设备；offset擦除的flash模块的偏移量；length擦除的flash模块的长度<br />
            函数说明：擦除单独的一个flash模块<br />
            返回值：&nbsp;&nbsp;发送成功返回0，反之返回为负数<br />
            函数原型：void&nbsp;&nbsp;alt_flash_close_dev(alt_flash_fd * fd)<br />
            输入参数：fd为具体的flash设备<br />
            函数说明：关闭flash设备<br />
            返回值：&nbsp;&nbsp;－<br />
            函数原型：alt_flash_fd * alt_flash_open_dev(const char* name)<br />
            输入参数：<br />
            函数说明：打开flash设备。一旦打开，函数alt_write_flash()用来写入，函数alt_read_flash()用来读取数据，或者使用函数alt_get_flash_info(), alt_erase_flash_block(), alt_write_flash_block(),控制单个模块<br />
            返回值：&nbsp;&nbsp;失败返回0，成功其他值<br />
            函数原型：int alt_get_flash_info(alt_flash_fd* fd, flash_region ** info,<br />
            int* number_of_regions)<br />
            输入参数：fd flash设备；info指向flash_region结构体的指针；number_of_regions<br />
            函数说明：得到擦除flash区域的细节<br />
            返回值：&nbsp;&nbsp;发送成功返回0，反之返回为负数<br />
            函数原型：int alt_read_flash(alt_flash_fd* fd, int offset, void* dest_addr, int length)<br />
            输入参数：dest_addr目标地址指针<br />
            函数说明：从flash偏移量为offset字节开始读取数据，写入到目标地址dest_addr中<br />
            返回值：&nbsp;&nbsp;成功返回0，反之为非0<br />
            函数原型：int alt_write_flash(alt_flash_fd* fd, int offset, const void* src_addr, <br />
            int length)<br />
            输入参数：src_addr源地址；fd，flash设备；offset 偏移量；length字节长度<br />
            函数说明：写数据到flsah中，要写的数据在源地址src_addr中<br />
            返回值：&nbsp;&nbsp;成功返回0，反之为非0<br />
            函数原型：int alt_write_flash_block(alt_flash_fd* fd, int block_offset, int data_offset,<br />
            const void *data, int length)<br />
            输入参数：fd；data_offset起始写数据的偏移量；length为要写数据的长度<br />
            函数说明：写入到一个已擦除的flash模块<br />
            返回值：&nbsp;&nbsp;成功返回0，反之为非0<br />
            Irq<br />
            函数原型：alt_irq_context&nbsp;&nbsp;alt_irq_disable_all (void)<br />
            输入参数：void<br />
            函数说明：禁止所有中断<br />
            返回值：&nbsp;&nbsp;传递的值作为随后的函数调用的输入参数 <br />
            <br />
            <br />
            函数原型：void alt_irq_enable_all (alt_irq_context context)<br />
            输入参数：先前调用函数alt_irq_disable_all (void)的返回值，<br />
            函数说明：启动所有中断<br />
            返回值：&nbsp;&nbsp;－<br />
            <br />
            函数原型：int alt_irq_enabled (void)<br />
            输入参数：void<br />
            函数说明：启动中断<br />
            返回值：&nbsp;&nbsp;禁止中断返回0，反之为非0<br />
            <br />
            函数原型：int alt_irq_register (alt_u32 id, void* context, void (*isr)(void*, alt_u32))<br />
            输入参数：id,32位无符号数，中断使能；context和id是isr的两个输入参数；中断激活时调用isr<br />
            函数说明：寄存一个isr<br />
            返回值：&nbsp;&nbsp;成功返回0，反之为非0<br />
            <br />
            <br />
            函数原型：int alt_write_flash(alt_flash_fd* fd, int offset, const void* src_addr, <br />
            int length)<br />
            输入参数：src_addr源地址；fd，flash设备；offset 偏移量；length字节长度<br />
            函数说明：写数据到flsah中，要写的数据在源地址src_addr中<br />
            返回值：&nbsp;&nbsp;成功返回0，反之为非0<br />
            <br />
            函数原型：int alt_write_flash_block(alt_flash_fd* fd, int block_offset, int data_offset,<br />
            const void *data, int length)<br />
            输入参数：fd；data_offset起始写数据的偏移量；length为要写数据的长度<br />
            函数说明：写入到一个已擦除的flash模块<br />
            返回值：&nbsp;&nbsp;成功返回0，反之为非0<br />
            <br />
            函数原型：int close (int filedes)<br />
            输入参数：filedes，描述符<br />
            函数说明：标准的UNIX函数close()，关闭文件描述符filedes<br />
            返回值：&nbsp;&nbsp;成功返回0，反之为－1<br />
            <br />
            函数原型：int open (const char* pathname, int flags, mode_t mode)<br />
            输入参数：pathname, 路径名；flags,O_RDONLY或O_WRONLY 或O_RDWR,分别对应着只读，只写，或读写操作；mode，使用许可说明<br />
            函数说明：打开文件或设备，返回一个文件描述符（读写中使用的非负整数）<br />
            返回值：&nbsp;&nbsp;成功返回文件描述符，反之返回－1<br />
            <br />
            函数原型：int read(int file,&nbsp;&nbsp;void *ptr,&nbsp;&nbsp;size_t&nbsp;&nbsp;len)<br />
            输入参数：file文件描述符；ptr为读数据的位置指针，len读数据的长度，单位为字节<br />
            函数说明：从文件或设备中读取数据块<br />
            返回值：&nbsp;&nbsp;成功返回读取的字节数，反之返回－1<br />
            <br />
            函数原型：clock_t times (struct tms *buf)<br />
            输入参数：buf结构体指针<br />
            函数说明：兼容newlib，tms的结构体指针如下：<br />
            &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; type struct<br />
            {clock_t&nbsp;&nbsp;tms_utime;<br />
            clock_t&nbsp;&nbsp;tms_stime;<br />
            clock_t&nbsp;&nbsp;tms_cutime;<br />
            clock_t&nbsp;&nbsp;tms_sutime;<br />
            };<br />
            tms_utime： CPU索取用户指令的执行时间<br />
            tms_stime： CPU索取由系统表示的过程的执行时间<br />
            tms_cutime：所有子进程tms_utime和tms_cutime的时间之和<br />
            tms_sutime：所有子进程tms_stime和tms_sutime的时间之和<br />
            返回值：&nbsp;&nbsp;返回时钟数，没有时钟则返回0<br />
            <br />
            函数原型：int usleep (int us)<br />
            输入参数：us,单位为微秒<br />
            函数说明：直到us微秒后才解除阻塞，即其功能相当于延时us微秒<br />
            返回值：&nbsp;&nbsp;成功返回0，反之为－1，有错误发生显示错误发生原因<br />
            <br />
            函数原型：int wait(int *status)<br />
            输入参数： status 进程状态指针<br />
            函数说明：功能是等候所有子进程退出，由于HAL不支持分散子进程，函数立即返回<br />
            返回值：&nbsp;&nbsp;status内容清0，表明没有子进程；返回值为－1，且errno置为ECHILD，&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;表明没有子进程等候<br />
            <br />
            函数原型：int write(int file, const void *ptr, size_t len)<br />
            输入参数：file文件描述符；ptr为读数据的位置指针，len读数据的长度，单位为字节<br />
            函数说明：往文件或设备写入数据块，<br />
            返回值：&nbsp;&nbsp;成功返回写入的字节数，也可能少于请求的长度；反之返回－1，万一有错误发生，errno被设置为发生的原因<br />
            <br />
            数据的标准类型<br />
            类型 说明<br />
            alt_8 符号8位整数<br />
            alt_u8 无符号8位整数<br />
            alt_16 符号16位整数<br />
            alt_u16 无符号16位整数<br />
            alt_32 符号32位整数<br />
            alt_u32 无符号32位整数</td>
        </tr>
    </tbody>
</table>
<div class="t_msgfontfix">
<div class="t_msgfontfix">
<table cellspacing="0" cellpadding="0">
    <tbody>
        <tr>
            <td id="postmessage_9143" class="t_msgfont">IO操作函数<br />
            函数原型：IORD(BASE, REGNUM) <br />
            输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量<br />
            函数说明：从基地址为BASE的设备中读取寄存器中偏移量为REGNUM的单元里面的值。寄存器的值在地址总线的范围之内。<br />
            返回值：&nbsp;&nbsp;－<br />
            函数原型：IOWR(BASE, REGNUM, DATA)<br />
            输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量，DATA为要写入的数据<br />
            函数说明：往偏移量为REGNUM寄存器中写入数据。寄存器的值在地址总线的范围之内。<br />
            返回值：&nbsp;&nbsp;－<br />
            函数原型：IORD_32DIRECT(BASE, OFFSET)<br />
            输入参数：BASE为寄存器的基地址，OFFSET为寄存器的的偏移量<br />
            函数说明：从地址位置为BASE+OFFSET的寄存器中直接读取32Bit的数据<br />
            返回值：&nbsp;&nbsp;－<br />
            函数原型：IORD_16DIRECT(BASE, OFFSET) <br />
            输入参数：BASE为寄存器的基地址，OFFSET为寄存器的的偏移量<br />
            函数说明：从地址位置为BASE+OFFSET的寄存器中直接读取16Bit的数据<br />
            返回值：&nbsp;&nbsp;－<br />
            函数原型：IORD_8DIRECT(BASE, OFFSET) <br />
            输入参数：BASE为寄存器的基地址，OFFSET为寄存器的的偏移量<br />
            函数说明：从地址位置为BASE+OFFSET的寄存器中直接读取8Bit的数据<br />
            返回值：&nbsp;&nbsp;－<br />
            <br />
            函数原型：IOWR_32DIRECT(BASE, OFFSET, DATA)<br />
            输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量，DATA为要写入的数据<br />
            函数说明：往地址位置为BASE+OFFSET的寄存器中直接写入32Bit的数据<br />
            返回值： －<br />
            函数原型：IOWR_16DIRECT(BASE, OFFSET, DATA)<br />
            输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量，DATA为要写入的数据<br />
            函数说明：往地址位置为BASE+OFFSET的寄存器中直接写入16Bit的数据<br />
            返回值： －<br />
            函数原型：IOWR_8DIRECT(BASE, OFFSET, DATA)<br />
            输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量，DATA为要写入的数据<br />
            函数说明：往地址位置为BASE+OFFSET的寄存器中直接写入8Bit的数据<br />
            返回值： －<br />
            Dma：<br />
            函数原型：int alt_dma_rxchan_close (alt_dma_rxchan rxchan)<br />
            输入参数：rxchan为接收信道<br />
            函数说明：函数 alt_dma_rxchan_close ()通知系统：应用程序已经完成DMA<br />
            &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 接收信道rxchan，目前执行是成功的<br />
            返回值：&nbsp;&nbsp;成功返回为0，反之为－1<br />
            函数原型：alt_dma_rxchan_depth(alt_dma_rxchan dma)<br />
            输入参数：dma<br />
            函数说明：函数alt_dma_rxchan_depth ()返回传送到特别DMA的最大数量(深度)的接收请求<br />
            返回值：&nbsp;&nbsp;DMA的最大数量<br />
            <br />
            函数原型：int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, int req, void* arg)<br />
            输入参数：dma直接存储器名, req为请求操作的列举, arg由请求决定<br />
            函数说明：通过DMA接收信道执行设备的具体I/O操作<br />
            返回值：&nbsp;&nbsp;成功返回请求具体值，反之返回为负数<br />
            请求类型<br />
            请求类型 请求类型说明<br />
            ALT_DMA_SET_MODE_8 传输以8Bit为单位的数据，arg值忽略<br />
            ALT_DMA_SET_MODE_16 传输以16Bit为单位的数据，arg值忽略<br />
            ALT_DMA_SET_MODE_32 传输以32Bit为单位的数据，arg值忽略<br />
            ALT_DMA_SET_MODE_64 传输以64Bit为单位的数据，arg值忽略<br />
            ALT_DMA_SET_MODE_128 传输以128Bit为单位的数据，arg值忽略<br />
            ALT_DMA_TX_ONLY_ON (1) 软件控制下只能发送<br />
            ALT_DMA_TX_ONLY_OFF (1) 自定义模式，软件控制下可以接收，发送<br />
            ALT_DMA_RX_ONLY_ON (1) 软件控制下只能接收<br />
            ALT_DMA_RX_ONLY_OFF (1) 自定义模式，软件控制下可以接收，发送<br />
            函数原型：alt_dma_rxchan&nbsp;&nbsp;alt_dma_rxchan_open (const char* name)<br />
            输入参数：name为常数字符指针，如/dev/dma_0<br />
            函数说明：为DMA接收信道获得一个alt_dma_rxchan描述符<br />
            返回值：&nbsp;&nbsp;成功返回非0，反之返回为0<br />
            函数原型：int alt_dma_rxchan_prepare (alt_dma_rxchan&nbsp;&nbsp;dma, void* data,<br />
            alt_u32 length, alt_rxchan_done * done, void* handle)<br />
            输入参数：dma使用的信道；data接收数据位置的指针；length最大的接收数据长度；done一旦数据被接收，调用返回函数；handle，非透明值传到done<br />
            函数说明：发送一个接收请求到DMA接收信道，<br />
            返回值：&nbsp;&nbsp;成功返回0，反之返回为负数<br />
            函数原型：int alt_dma_rxchan_reg (alt_dma_rxchan_dev * dev)<br />
            输入参数：dev接收信道设备名<br />
            函数说明：给系统寄存DMA接收信道<br />
            返回值：&nbsp;&nbsp;成功返回0，反之返回为负数<br />
            函数原型：int alt_dma_txchan_close (alt_dma_txchan txchan)<br />
            输入参数：txchan发送信道名<br />
            函数说明：通知系统：应用程序已经完成DMA发送信道txchan<br />
            返回值：&nbsp;&nbsp;成功返回0，反之返回为负数<br />
            函数原型：int&nbsp;&nbsp;alt_dma_txchan_ioctl (alt_dma_txchan dma, int req, void* arg)<br />
            输入参数：dma直接存储器名；req为请求操作的列举；arg请求的额外参数，由请求决定<br />
            函数说明：通过DMA发送信道执行设备的具体I/O操作<br />
            返回值：&nbsp;&nbsp;成功返回请求具体值，反之返回为负数<br />
            函数原型：alt_dma_txchan&nbsp;&nbsp;alt_dma_txchan_open (const char* name)<br />
            输入参数：name为常数字符指针，如/dev/dma_0<br />
            函数说明：为DMA发送信道获得一个alt_dma_rxchan描述符<br />
            返回值：&nbsp;&nbsp;成功返回非0，反之返回为0<br />
            函数原型：int&nbsp;&nbsp;alt_dma_txchan_reg (alt_dma_txchan_dev* dev)<br />
            输入参数：dev接收信道设备名<br />
            函数说明：给系统寄存DMA发送信道<br />
            返回值：&nbsp;&nbsp;成功返回0，反之返回为负数<br />
            函数原型：int alt_dma_txchan_send (alt_dma_txchan dma, const void* from,<br />
            alt_u32 length, alt_txchan_done* done, void* handle)<br />
            输入参数：dma使用的信道；data接收数据位置的指针；length最大的接收数据长度；done一旦数据被接收，调用返回函数；handle，非透明值传到done<br />
            函数说明：发送一个发送请求到DMA发送信道，<br />
            返回值：&nbsp;&nbsp;发送成功返回0，反之返回为负数<br />
            函数原型：nt alt_dma_txchan_space (alt_dma_txchan dma)<br />
            输入参数：dma 直接存储器名<br />
            函数说明：返回被传送到具体DMA发送信道的发送请求数目<br />
            返回值：&nbsp;&nbsp;返回发送请求数目<br />
            Flash<br />
            函数原型：int alt_erase_flash_block(alt_flash_fd* fd, int offset, int length)<br />
            输入参数：fd为具体的flash设备；offset擦除的flash模块的偏移量；length擦除的flash模块的长度<br />
            函数说明：擦除单独的一个flash模块<br />
            返回值：&nbsp;&nbsp;发送成功返回0，反之返回为负数<br />
            函数原型：void&nbsp;&nbsp;alt_flash_close_dev(alt_flash_fd * fd)<br />
            输入参数：fd为具体的flash设备<br />
            函数说明：关闭flash设备<br />
            返回值：&nbsp;&nbsp;－<br />
            函数原型：alt_flash_fd * alt_flash_open_dev(const char* name)<br />
            输入参数：<br />
            函数说明：打开flash设备。一旦打开，函数alt_write_flash()用来写入，函数alt_read_flash()用来读取数据，或者使用函数alt_get_flash_info(), alt_erase_flash_block(), alt_write_flash_block(),控制单个模块<br />
            返回值：&nbsp;&nbsp;失败返回0，成功其他值<br />
            函数原型：int alt_get_flash_info(alt_flash_fd* fd, flash_region ** info,<br />
            int* number_of_regions)<br />
            输入参数：fd flash设备；info指向flash_region结构体的指针；number_of_regions<br />
            函数说明：得到擦除flash区域的细节<br />
            返回值：&nbsp;&nbsp;发送成功返回0，反之返回为负数<br />
            函数原型：int alt_read_flash(alt_flash_fd* fd, int offset, void* dest_addr, int length)<br />
            输入参数：dest_addr目标地址指针<br />
            函数说明：从flash偏移量为offset字节开始读取数据，写入到目标地址dest_addr中<br />
            返回值：&nbsp;&nbsp;成功返回0，反之为非0<br />
            函数原型：int alt_write_flash(alt_flash_fd* fd, int offset, const void* src_addr, <br />
            int length)<br />
            输入参数：src_addr源地址；fd，flash设备；offset 偏移量；length字节长度<br />
            函数说明：写数据到flsah中，要写的数据在源地址src_addr中<br />
            返回值：&nbsp;&nbsp;成功返回0，反之为非0<br />
            函数原型：int alt_write_flash_block(alt_flash_fd* fd, int block_offset, int data_offset,<br />
            const void *data, int length)<br />
            输入参数：fd；data_offset起始写数据的偏移量；length为要写数据的长度<br />
            函数说明：写入到一个已擦除的flash模块<br />
            返回值：&nbsp;&nbsp;成功返回0，反之为非0<br />
            Irq<br />
            函数原型：alt_irq_context&nbsp;&nbsp;alt_irq_disable_all (void)<br />
            输入参数：void<br />
            函数说明：禁止所有中断<br />
            返回值：&nbsp;&nbsp;传递的值作为随后的函数调用的输入参数 <br />
            <br />
            <br />
            函数原型：void alt_irq_enable_all (alt_irq_context context)<br />
            输入参数：先前调用函数alt_irq_disable_all (void)的返回值，<br />
            函数说明：启动所有中断<br />
            返回值：&nbsp;&nbsp;－<br />
            <br />
            函数原型：int alt_irq_enabled (void)<br />
            输入参数：void<br />
            函数说明：启动中断<br />
            返回值：&nbsp;&nbsp;禁止中断返回0，反之为非0<br />
            <br />
            函数原型：int alt_irq_register (alt_u32 id, void* context, void (*isr)(void*, alt_u32))<br />
            输入参数：id,32位无符号数，中断使能；context和id是isr的两个输入参数；中断激活时调用isr<br />
            函数说明：寄存一个isr<br />
            返回值：&nbsp;&nbsp;成功返回0，反之为非0<br />
            <br />
            <br />
            函数原型：int alt_write_flash(alt_flash_fd* fd, int offset, const void* src_addr, <br />
            int length)<br />
            输入参数：src_addr源地址；fd，flash设备；offset 偏移量；length字节长度<br />
            函数说明：写数据到flsah中，要写的数据在源地址src_addr中<br />
            返回值：&nbsp;&nbsp;成功返回0，反之为非0<br />
            <br />
            函数原型：int alt_write_flash_block(alt_flash_fd* fd, int block_offset, int data_offset,<br />
            const void *data, int length)<br />
            输入参数：fd；data_offset起始写数据的偏移量；length为要写数据的长度<br />
            函数说明：写入到一个已擦除的flash模块<br />
            返回值：&nbsp;&nbsp;成功返回0，反之为非0<br />
            <br />
            函数原型：int close (int filedes)<br />
            输入参数：filedes，描述符<br />
            函数说明：标准的UNIX函数close()，关闭文件描述符filedes<br />
            返回值：&nbsp;&nbsp;成功返回0，反之为－1<br />
            <br />
            函数原型：int open (const char* pathname, int flags, mode_t mode)<br />
            输入参数：pathname, 路径名；flags,O_RDONLY或O_WRONLY 或O_RDWR,分别对应着只读，只写，或读写操作；mode，使用许可说明<br />
            函数说明：打开文件或设备，返回一个文件描述符（读写中使用的非负整数）<br />
            返回值：&nbsp;&nbsp;成功返回文件描述符，反之返回－1<br />
            <br />
            函数原型：int read(int file,&nbsp;&nbsp;void *ptr,&nbsp;&nbsp;size_t&nbsp;&nbsp;len)<br />
            输入参数：file文件描述符；ptr为读数据的位置指针，len读数据的长度，单位为字节<br />
            函数说明：从文件或设备中读取数据块<br />
            返回值：&nbsp;&nbsp;成功返回读取的字节数，反之返回－1<br />
            <br />
            函数原型：clock_t times (struct tms *buf)<br />
            输入参数：buf结构体指针<br />
            函数说明：兼容newlib，tms的结构体指针如下：<br />
            &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; type struct<br />
            {clock_t&nbsp;&nbsp;tms_utime;<br />
            clock_t&nbsp;&nbsp;tms_stime;<br />
            clock_t&nbsp;&nbsp;tms_cutime;<br />
            clock_t&nbsp;&nbsp;tms_sutime;<br />
            };<br />
            tms_utime： CPU索取用户指令的执行时间<br />
            tms_stime： CPU索取由系统表示的过程的执行时间<br />
            tms_cutime：所有子进程tms_utime和tms_cutime的时间之和<br />
            tms_sutime：所有子进程tms_stime和tms_sutime的时间之和<br />
            返回值：&nbsp;&nbsp;返回时钟数，没有时钟则返回0<br />
            <br />
            函数原型：int usleep (int us)<br />
            输入参数：us,单位为微秒<br />
            函数说明：直到us微秒后才解除阻塞，即其功能相当于延时us微秒<br />
            返回值：&nbsp;&nbsp;成功返回0，反之为－1，有错误发生显示错误发生原因<br />
            <br />
            函数原型：int wait(int *status)<br />
            输入参数： status 进程状态指针<br />
            函数说明：功能是等候所有子进程退出，由于HAL不支持分散子进程，函数立即返回<br />
            返回值：&nbsp;&nbsp;status内容清0，表明没有子进程；返回值为－1，且errno置为ECHILD，&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;表明没有子进程等候<br />
            <br />
            函数原型：int write(int file, const void *ptr, size_t len)<br />
            输入参数：file文件描述符；ptr为读数据的位置指针，len读数据的长度，单位为字节<br />
            函数说明：往文件或设备写入数据块，<br />
            返回值：&nbsp;&nbsp;成功返回写入的字节数，也可能少于请求的长度；反之返回－1，万一有错误发生，errno被设置为发生的原因<br />
            <br />
            数据的标准类型<br />
            类型 说明<br />
            alt_8 符号8位整数<br />
            alt_u8 无符号8位整数<br />
            alt_16 符号16位整数<br />
            alt_u16 无符号16位整数<br />
            alt_32 符号32位整数<br />
            alt_u32 无符号32位整数</td>
        </tr>
    </tbody>
</table>
</div>
</div>
</div>
IO操作函数<br />
函数原型：IORD(BASE, REGNUM) <br />
输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量<br />
函数说明：从基地址为BASE的设备中读取寄存器中偏移量为REGNUM的单元里面的值。寄存器的值在地址总线的范围之内。<br />
返回值：&nbsp;&nbsp;－<br />
函数原型：IOWR(BASE, REGNUM, DATA)<br />
输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量，DATA为要写入的数据<br />
函数说明：往偏移量为REGNUM寄存器中写入数据。寄存器的值在地址总线的范围之内。<br />
返回值：&nbsp;&nbsp;－<br />
函数原型：IORD_32DIRECT(BASE, OFFSET)<br />
输入参数：BASE为寄存器的基地址，OFFSET为寄存器的的偏移量<br />
函数说明：从地址位置为BASE+OFFSET的寄存器中直接读取32Bit的数据<br />
返回值：&nbsp;&nbsp;－<br />
函数原型：IORD_16DIRECT(BASE, OFFSET) <br />
输入参数：BASE为寄存器的基地址，OFFSET为寄存器的的偏移量<br />
函数说明：从地址位置为BASE+OFFSET的寄存器中直接读取16Bit的数据<br />
返回值：&nbsp;&nbsp;－<br />
函数原型：IORD_8DIRECT(BASE, OFFSET) <br />
输入参数：BASE为寄存器的基地址，OFFSET为寄存器的的偏移量<br />
函数说明：从地址位置为BASE+OFFSET的寄存器中直接读取8Bit的数据<br />
返回值：&nbsp;&nbsp;－<br />
<br />
函数原型：IOWR_32DIRECT(BASE, OFFSET, DATA)<br />
输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量，DATA为要写入的数据<br />
函数说明：往地址位置为BASE+OFFSET的寄存器中直接写入32Bit的数据<br />
返回值： －<br />
函数原型：IOWR_16DIRECT(BASE, OFFSET, DATA)<br />
输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量，DATA为要写入的数据<br />
函数说明：往地址位置为BASE+OFFSET的寄存器中直接写入16Bit的数据<br />
返回值： －<br />
函数原型：IOWR_8DIRECT(BASE, OFFSET, DATA)<br />
输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量，DATA为要写入的数据<br />
函数说明：往地址位置为BASE+OFFSET的寄存器中直接写入8Bit的数据<br />
返回值： －<br />
Dma：<br />
函数原型：int alt_dma_rxchan_close (alt_dma_rxchan rxchan)<br />
输入参数：rxchan为接收信道<br />
函数说明：函数 alt_dma_rxchan_close ()通知系统：应用程序已经完成DMA<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 接收信道rxchan，目前执行是成功的<br />
返回值：&nbsp;&nbsp;成功返回为0，反之为－1<br />
函数原型：alt_dma_rxchan_depth(alt_dma_rxchan dma)<br />
输入参数：dma<br />
函数说明：函数alt_dma_rxchan_depth ()返回传送到特别DMA的最大数量(深度)的接收请求<br />
返回值：&nbsp;&nbsp;DMA的最大数量<br />
<br />
函数原型：int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, int req, void* arg)<br />
输入参数：dma直接存储器名, req为请求操作的列举, arg由请求决定<br />
函数说明：通过DMA接收信道执行设备的具体I/O操作<br />
返回值：&nbsp;&nbsp;成功返回请求具体值，反之返回为负数<br />
请求类型<br />
请求类型 请求类型说明<br />
ALT_DMA_SET_MODE_8 传输以8Bit为单位的数据，arg值忽略<br />
ALT_DMA_SET_MODE_16 传输以16Bit为单位的数据，arg值忽略<br />
ALT_DMA_SET_MODE_32 传输以32Bit为单位的数据，arg值忽略<br />
ALT_DMA_SET_MODE_64 传输以64Bit为单位的数据，arg值忽略<br />
ALT_DMA_SET_MODE_128 传输以128Bit为单位的数据，arg值忽略<br />
ALT_DMA_TX_ONLY_ON (1) 软件控制下只能发送<br />
ALT_DMA_TX_ONLY_OFF (1) 自定义模式，软件控制下可以接收，发送<br />
ALT_DMA_RX_ONLY_ON (1) 软件控制下只能接收<br />
ALT_DMA_RX_ONLY_OFF (1) 自定义模式，软件控制下可以接收，发送<br />
函数原型：alt_dma_rxchan&nbsp;&nbsp;alt_dma_rxchan_open (const char* name)<br />
输入参数：name为常数字符指针，如/dev/dma_0<br />
函数说明：为DMA接收信道获得一个alt_dma_rxchan描述符<br />
返回值：&nbsp;&nbsp;成功返回非0，反之返回为0<br />
函数原型：int alt_dma_rxchan_prepare (alt_dma_rxchan&nbsp;&nbsp;dma, void* data,<br />
alt_u32 length, alt_rxchan_done * done, void* handle)<br />
输入参数：dma使用的信道；data接收数据位置的指针；length最大的接收数据长度；done一旦数据被接收，调用返回函数；handle，非透明值传到done<br />
函数说明：发送一个接收请求到DMA接收信道，<br />
返回值：&nbsp;&nbsp;成功返回0，反之返回为负数<br />
函数原型：int alt_dma_rxchan_reg (alt_dma_rxchan_dev * dev)<br />
输入参数：dev接收信道设备名<br />
函数说明：给系统寄存DMA接收信道<br />
返回值：&nbsp;&nbsp;成功返回0，反之返回为负数<br />
函数原型：int alt_dma_txchan_close (alt_dma_txchan txchan)<br />
输入参数：txchan发送信道名<br />
函数说明：通知系统：应用程序已经完成DMA发送信道txchan<br />
返回值：&nbsp;&nbsp;成功返回0，反之返回为负数<br />
函数原型：int&nbsp;&nbsp;alt_dma_txchan_ioctl (alt_dma_txchan dma, int req, void* arg)<br />
输入参数：dma直接存储器名；req为请求操作的列举；arg请求的额外参数，由请求决定<br />
函数说明：通过DMA发送信道执行设备的具体I/O操作<br />
返回值：&nbsp;&nbsp;成功返回请求具体值，反之返回为负数<br />
函数原型：alt_dma_txchan&nbsp;&nbsp;alt_dma_txchan_open (const char* name)<br />
输入参数：name为常数字符指针，如/dev/dma_0<br />
函数说明：为DMA发送信道获得一个alt_dma_rxchan描述符<br />
返回值：&nbsp;&nbsp;成功返回非0，反之返回为0<br />
函数原型：int&nbsp;&nbsp;alt_dma_txchan_reg (alt_dma_txchan_dev* dev)<br />
输入参数：dev接收信道设备名<br />
函数说明：给系统寄存DMA发送信道<br />
返回值：&nbsp;&nbsp;成功返回0，反之返回为负数<br />
函数原型：int alt_dma_txchan_send (alt_dma_txchan dma, const void* from,<br />
alt_u32 length, alt_txchan_done* done, void* handle)<br />
输入参数：dma使用的信道；data接收数据位置的指针；length最大的接收数据长度；done一旦数据被接收，调用返回函数；handle，非透明值传到done<br />
函数说明：发送一个发送请求到DMA发送信道，<br />
返回值：&nbsp;&nbsp;发送成功返回0，反之返回为负数<br />
函数原型：nt alt_dma_txchan_space (alt_dma_txchan dma)<br />
输入参数：dma 直接存储器名<br />
函数说明：返回被传送到具体DMA发送信道的发送请求数目<br />
返回值：&nbsp;&nbsp;返回发送请求数目<br />
Flash<br />
函数原型：int alt_erase_flash_block(alt_flash_fd* fd, int offset, int length)<br />
输入参数：fd为具体的flash设备；offset擦除的flash模块的偏移量；length擦除的flash模块的长度<br />
函数说明：擦除单独的一个flash模块<br />
返回值：&nbsp;&nbsp;发送成功返回0，反之返回为负数<br />
函数原型：void&nbsp;&nbsp;alt_flash_close_dev(alt_flash_fd * fd)<br />
输入参数：fd为具体的flash设备<br />
函数说明：关闭flash设备<br />
返回值：&nbsp;&nbsp;－<br />
函数原型：alt_flash_fd * alt_flash_open_dev(const char* name)<br />
输入参数：<br />
函数说明：打开flash设备。一旦打开，函数alt_write_flash()用来写入，函数alt_read_flash()用来读取数据，或者使用函数alt_get_flash_info(), alt_erase_flash_block(), alt_write_flash_block(),控制单个模块<br />
返回值：&nbsp;&nbsp;失败返回0，成功其他值<br />
函数原型：int alt_get_flash_info(alt_flash_fd* fd, flash_region ** info,<br />
int* number_of_regions)<br />
输入参数：fd flash设备；info指向flash_region结构体的指针；number_of_regions<br />
函数说明：得到擦除flash区域的细节<br />
返回值：&nbsp;&nbsp;发送成功返回0，反之返回为负数<br />
函数原型：int alt_read_flash(alt_flash_fd* fd, int offset, void* dest_addr, int length)<br />
输入参数：dest_addr目标地址指针<br />
函数说明：从flash偏移量为offset字节开始读取数据，写入到目标地址dest_addr中<br />
返回值：&nbsp;&nbsp;成功返回0，反之为非0<br />
函数原型：int alt_write_flash(alt_flash_fd* fd, int offset, const void* src_addr, <br />
int length)<br />
输入参数：src_addr源地址；fd，flash设备；offset 偏移量；length字节长度<br />
函数说明：写数据到flsah中，要写的数据在源地址src_addr中<br />
返回值：&nbsp;&nbsp;成功返回0，反之为非0<br />
函数原型：int alt_write_flash_block(alt_flash_fd* fd, int block_offset, int data_offset,<br />
const void *data, int length)<br />
输入参数：fd；data_offset起始写数据的偏移量；length为要写数据的长度<br />
函数说明：写入到一个已擦除的flash模块<br />
返回值：&nbsp;&nbsp;成功返回0，反之为非0<br />
Irq<br />
函数原型：alt_irq_context&nbsp;&nbsp;alt_irq_disable_all (void)<br />
输入参数：void<br />
函数说明：禁止所有中断<br />
返回值：&nbsp;&nbsp;传递的值作为随后的函数调用的输入参数 <br />
<br />
<br />
函数原型：void alt_irq_enable_all (alt_irq_context context)<br />
输入参数：先前调用函数alt_irq_disable_all (void)的返回值，<br />
函数说明：启动所有中断<br />
返回值：&nbsp;&nbsp;－<br />
<br />
函数原型：int alt_irq_enabled (void)<br />
输入参数：void<br />
函数说明：启动中断<br />
返回值：&nbsp;&nbsp;禁止中断返回0，反之为非0<br />
<br />
函数原型：int alt_irq_register (alt_u32 id, void* context, void (*isr)(void*, alt_u32))<br />
输入参数：id,32位无符号数，中断使能；context和id是isr的两个输入参数；中断激活时调用isr<br />
函数说明：寄存一个isr<br />
返回值：&nbsp;&nbsp;成功返回0，反之为非0<br />
<br />
<br />
函数原型：int alt_write_flash(alt_flash_fd* fd, int offset, const void* src_addr, <br />
int length)<br />
输入参数：src_addr源地址；fd，flash设备；offset 偏移量；length字节长度<br />
函数说明：写数据到flsah中，要写的数据在源地址src_addr中<br />
返回值：&nbsp;&nbsp;成功返回0，反之为非0<br />
<br />
函数原型：int alt_write_flash_block(alt_flash_fd* fd, int block_offset, int data_offset,<br />
const void *data, int length)<br />
输入参数：fd；data_offset起始写数据的偏移量；length为要写数据的长度<br />
函数说明：写入到一个已擦除的flash模块<br />
返回值：&nbsp;&nbsp;成功返回0，反之为非0<br />
<br />
函数原型：int close (int filedes)<br />
输入参数：filedes，描述符<br />
函数说明：标准的UNIX函数close()，关闭文件描述符filedes<br />
返回值：&nbsp;&nbsp;成功返回0，反之为－1<br />
<br />
函数原型：int open (const char* pathname, int flags, mode_t mode)<br />
输入参数：pathname, 路径名；flags,O_RDONLY或O_WRONLY 或O_RDWR,分别对应着只读，只写，或读写操作；mode，使用许可说明<br />
函数说明：打开文件或设备，返回一个文件描述符（读写中使用的非负整数）<br />
返回值：&nbsp;&nbsp;成功返回文件描述符，反之返回－1<br />
<br />
函数原型：int read(int file,&nbsp;&nbsp;void *ptr,&nbsp;&nbsp;size_t&nbsp;&nbsp;len)<br />
输入参数：file文件描述符；ptr为读数据的位置指针，len读数据的长度，单位为字节<br />
函数说明：从文件或设备中读取数据块<br />
返回值：&nbsp;&nbsp;成功返回读取的字节数，反之返回－1<br />
<br />
函数原型：clock_t times (struct tms *buf)<br />
输入参数：buf结构体指针<br />
函数说明：兼容newlib，tms的结构体指针如下：<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; type struct<br />
{clock_t&nbsp;&nbsp;tms_utime;<br />
clock_t&nbsp;&nbsp;tms_stime;<br />
clock_t&nbsp;&nbsp;tms_cutime;<br />
clock_t&nbsp;&nbsp;tms_sutime;<br />
};<br />
tms_utime： CPU索取用户指令的执行时间<br />
tms_stime： CPU索取由系统表示的过程的执行时间<br />
tms_cutime：所有子进程tms_utime和tms_cutime的时间之和<br />
tms_sutime：所有子进程tms_stime和tms_sutime的时间之和<br />
返回值：&nbsp;&nbsp;返回时钟数，没有时钟则返回0<br />
<br />
函数原型：int usleep (int us)<br />
输入参数：us,单位为微秒<br />
函数说明：直到us微秒后才解除阻塞，即其功能相当于延时us微秒<br />
返回值：&nbsp;&nbsp;成功返回0，反之为－1，有错误发生显示错误发生原因<br />
<br />
函数原型：int wait(int *status)<br />
输入参数： status 进程状态指针<br />
函数说明：功能是等候所有子进程退出，由于HAL不支持分散子进程，函数立即返回<br />
返回值：&nbsp;&nbsp;status内容清0，表明没有子进程；返回值为－1，且errno置为ECHILD，&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;表明没有子进程等候<br />
<br />
函数原型：int write(int file, const void *ptr, size_t len)<br />
输入参数：file文件描述符；ptr为读数据的位置指针，len读数据的长度，单位为字节<br />
函数说明：往文件或设备写入数据块，<br />
返回值：&nbsp;&nbsp;成功返回写入的字节数，也可能少于请求的长度；反之返回－1，万一有错误发生，errno被设置为发生的原因<br />
<br />
数据的标准类型<br />
类型 说明<br />
alt_8 符号8位整数<br />
alt_u8 无符号8位整数<br />
alt_16 符号16位整数<br />
alt_u16 无符号16位整数<br />
alt_32 符号32位整数<br />
alt_u32 无符号32位整数]]></description></item></channel></rss>