<?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=159 </link><title>NIOS&amp;nbsp;II常用函数整理</title><author>john</author><pubDate>2009/11/30 18:09:29</pubDate><description><![CDATA[<div style="margin-bottom: 15px" class="g_p_center g_t_right g_c_pdin g_h_20 c08"><strong>IO操作函数</strong><br />
函数原型：IORD(BASE, REGNUM) <br />
输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量<br />
函数说明：从基地址为BASE的设备中读取寄存器中偏移量为REGNUM的单元里面的值。寄存器的值在地址总线的范围之内。<br />
返回值：&nbsp; －</div>
<div class="g_blog_list">
<div id="blogtext_fks_082069087083081074092084081095085087084064085082083067087" class="g_t_center g_c_pdin g_p_center c07 content">
<div class="ns_content">
<p>函数原型：IOWR(BASE, REGNUM, DA<wbr></wbr>TA)<br />
输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量，DA<wbr></wbr>TA为要写入的数据<br />
函数说明：往偏移量为REGNUM寄存器中写入数据。寄存器的值在地址总线的范围之内。<br />
返回值：&nbsp; －</p>
<p>函数原型：IORD_32DIRECT(BASE, OFFSET)<br />
输入参数：BASE为寄存器的基地址，OFFSET为寄存器的的偏移量<br />
函数说明：从地址位置为BASE+OFFSET的寄存器中直接读取32Bit的数据<br />
返回值：&nbsp; －</p>
<p>函数原型：IORD_16DIRECT(BASE, OFFSET) <br />
输入参数：BASE为寄存器的基地址，OFFSET为寄存器的的偏移量<br />
函数说明：从地址位置为BASE+OFFSET的寄存器中直接读取16Bit的数据<br />
返回值：&nbsp; －<br />
<br />
函数原型：IORD_8DIRECT(BASE, OFFSET) <br />
输入参数：BASE为寄存器的基地址，OFFSET为寄存器的的偏移量<br />
函数说明：从地址位置为BASE+OFFSET的寄存器中直接读取8Bit的数据<br />
返回值：&nbsp; －<br />
<br />
函数原型：IOWR_32DIRECT(BASE, OFFSET, DA<wbr></wbr>TA)<br />
输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量，DA<wbr></wbr>TA为要写入的数据<br />
函数说明：往地址位置为BASE+OFFSET的寄存器中直接写入32Bit的数据<br />
返回值： －<br />
<br />
函数原型：IOWR_16DIRECT(BASE, OFFSET, DA<wbr></wbr>TA)<br />
输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量，DA<wbr></wbr>TA为要写入的数据<br />
函数说明：往地址位置为BASE+OFFSET的寄存器中直接写入16Bit的数据<br />
返回值： －</p>
<p>函数原型：IOWR_8DIRECT(BASE, OFFSET, DA<wbr></wbr>TA)<br />
输入参数：BASE为寄存器的基地址，REGNUM为寄存器的偏移量，DA<wbr></wbr>TA为要写入的数据<br />
函数说明：往地址位置为BASE+OFFSET的寄存器中直接写入8Bit的数据<br />
返回值： －</p>
<hr />
<p><strong>Dma：</strong><br />
函数原型：int alt_dma_rxchan_close (alt_dma_rxchan rxchan)<br />
输入参数：rxchan为接收信道<br />
函数说明：函数 alt_dma_rxchan_close ()通知系统：应用程序已经完成DMA<br />
接收信道rxchan，目前执行是成功的<br />
返回值： 成功返回为0，反之为－1</p>
<p>&nbsp;</p>
<p>函数原型：alt_dma_rxchan_depth(alt_dma_rxchan dma)<br />
输入参数：dma<br />
函数说明：函数alt_dma_rxchan_depth ()返回传送到特别DMA的最大数量(深度)的接收请求<br />
返回值： 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 />
返回值： 成功返回请求具体值，反之返回为负数<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_ON<wbr></wbr>LY_ON (1) 软件控制下只能发送<br />
ALT_DMA_TX_ON<wbr></wbr>LY_OFF (1) 自定义模式，软件控制下可以接收，发送<br />
ALT_DMA_RX_ON<wbr></wbr>LY_ON (1) 软件控制下只能接收<br />
ALT_DMA_RX_ON<wbr></wbr>LY_OFF (1) 自定义模式，软件控制下可以接收，发送</p>
<p>函数原型：alt_dma_rxchan alt_dma_rxchan_open (const char* name)<br />
输入参数：name为常数字符指针，如/dev/dma_0<br />
函数说明：为DMA接收信道获得一个alt_dma_rxchan描述符<br />
返回值： 成功返回非0，反之返回为0</p>
<p>函数原型：int alt_dma_rxchan_prepare (alt_dma_rxchan dma, void* da<wbr></wbr>ta,<br />
alt_u32 length, alt_rxchan_done * done, void* handle)<br />
输入参数：dma使用的信道；da<wbr></wbr>ta接收数据位置的指针；length最大的接收数据长度；done一旦数据被接收，调用返回函数；handle，非透明值传到done<br />
函数说明：发送一个接收请求到DMA接收信道，<br />
返回值： 成功返回0，反之返回为负数</p>
<p>函数原型：int alt_dma_rxchan_reg (alt_dma_rxchan_dev * dev)<br />
输入参数：dev接收信道设备名<br />
函数说明：给系统寄存DMA接收信道<br />
返回值： 成功返回0，反之返回为负数</p>
<p>函数原型：int alt_dma_txchan_close (alt_dma_txchan txchan)<br />
输入参数：txchan发送信道名<br />
函数说明：通知系统：应用程序已经完成DMA发送信道txchan<br />
返回值： 成功返回0，反之返回为负数</p>
<p>函数原型：int alt_dma_txchan_ioctl (alt_dma_txchan dma, int req, void* arg)<br />
输入参数：dma直接存储器名；req为请求操作的列举；arg请求的额外参数，由请求决定<br />
函数说明：通过DMA发送信道执行设备的具体I/O操作<br />
返回值： 成功返回请求具体值，反之返回为负数</p>
<p>函数原型：alt_dma_txchan alt_dma_txchan_open (const char* name)<br />
输入参数：name为常数字符指针，如/dev/dma_0<br />
函数说明：为DMA发送信道获得一个alt_dma_rxchan描述符<br />
返回值： 成功返回非0，反之返回为0</p>
<p>函数原型：int alt_dma_txchan_reg (alt_dma_txchan_dev* dev)<br />
输入参数：dev接收信道设备名<br />
函数说明：给系统寄存DMA发送信道<br />
返回值： 成功返回0，反之返回为负数</p>
<p>函数原型：int alt_dma_txchan_send (alt_dma_txchan dma, const void* from,<br />
alt_u32 length, alt_txchan_done* done, void* handle)<br />
输入参数：dma使用的信道；da<wbr></wbr>ta接收数据位置的指针；length最大的接收数据长度；done一旦数据被接收，调用返回函数；handle，非透明值传到done<br />
函数说明：发送一个发送请求到DMA发送信道，<br />
返回值： 发送成功返回0，反之返回为负数</p>
<p>函数原型：nt alt_dma_txchan_space (alt_dma_txchan dma)<br />
输入参数：dma 直接存储器名<br />
函数说明：返回被传送到具体DMA发送信道的发送请求数目<br />
返回值： 返回发送请求数目</p>
<hr />
<p><strong>Flash</strong><br />
函数原型：int alt_erase_flash_block(alt_flash_fd* fd, int offset, int length)<br />
输入参数：fd为具体的flash设备；offset擦除的flash模块的偏移量；length擦除的flash模块的长度<br />
函数说明：擦除单独的一个flash模块<br />
返回值： 发送成功返回0，反之返回为负数</p>
<p>&nbsp;</p>
<p>函数原型：void alt_flash_close_dev(alt_flash_fd * fd)<br />
输入参数：fd为具体的flash设备<br />
函数说明：关闭flash设备<br />
返回值： －</p>
<p>函数原型：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 />
返回值： 失败返回0，成功其他值</p>
<p>函数原型：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 />
返回值： 发送成功返回0，反之返回为负数</p>
<p>函数原型：int alt_read_flash(alt_flash_fd* fd, int offset, void* dest_addr, int length)<br />
输入参数：dest_addr目标地址指针<br />
函数说明：从flash偏移量为offset字节开始读取数据，写入到目标地址dest_addr中<br />
返回值： 成功返回0，反之为非0<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 />
返回值： 成功返回0，反之为非0</p>
<p>函数原型：int alt_write_flash_block(alt_flash_fd* fd, int block_offset, int da<wbr></wbr>ta_offset,<br />
const void *da<wbr></wbr>ta, int length)<br />
输入参数：fd；da<wbr></wbr>ta_offset起始写数据的偏移量；length为要写数据的长度<br />
函数说明：写入到一个已擦除的flash模块<br />
返回值： 成功返回0，反之为非0</p>
<p><br />
函数原型：alt_irq_context alt_irq_disable_all (void)<br />
输入参数：void<br />
函数说明：禁止所有中断<br />
返回值： 传递的值作为随后的函数调用的输入参数</p>
<p>&nbsp;</p>
<p><br />
函数原型：void alt_irq_enable_all (alt_irq_context context)<br />
输入参数：先前调用函数alt_irq_disable_all (void)的返回值，<br />
函数说明：启动所有中断<br />
返回值： －</p>
<p>函数原型：int alt_irq_enabled (void)<br />
输入参数：void<br />
函数说明：启动中断<br />
返回值： 禁止中断返回0，反之为非0</p>
<p>函数原型：int alt_irq_register (alt_u32 id, void* context, void (*isr)(void*, alt_u32))<br />
输入参数：id,32位无符号数，中断使能；context和id是isr的两个输入参数；中断激活时调用isr<br />
函数说明：寄存一个isr<br />
返回值： 成功返回0，反之为非0<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 />
返回值： 成功返回0，反之为非0</p>
<p>函数原型：int alt_write_flash_block(alt_flash_fd* fd, int block_offset, int da<wbr></wbr>ta_offset,<br />
const void *da<wbr></wbr>ta, int length)<br />
输入参数：fd；da<wbr></wbr>ta_offset起始写数据的偏移量；length为要写数据的长度<br />
函数说明：写入到一个已擦除的flash模块<br />
返回值： 成功返回0，反之为非0</p>
<p>函数原型：int close (int filedes)<br />
输入参数：filedes，描述符<br />
函数说明：标准的UNIX函数close()，关闭文件描述符filedes<br />
返回值： 成功返回0，反之为－1</p>
<p>函数原型：int open (const char* pathname, int flags, mode_t mode)<br />
输入参数：pathname, 路径名；flags,O_RDONLY或O_WRONLY 或O_RDWR,分别对应着只读，只写，或读写操作；mode，使用许可说明<br />
函数说明：打开文件或设备，返回一个文件描述符（读写中使用的非负整数）<br />
返回值： 成功返回文件描述符，反之返回－1</p>
<p>函数原型：int read(int file, void *ptr, size_t len)<br />
输入参数：file文件描述符；ptr为读数据的位置指针，len读数据的长度，单位为字节<br />
函数说明：从文件或设备中读取数据块<br />
返回值： 成功返回读取的字节数，反之返回－1</p>
<p>函数原型：clock_t times (struct tms *buf)<br />
输入参数：buf结构体指针<br />
函数说明：兼容newlib，tms的结构体指针如下：<br />
type struct<br />
{clock_t tms_utime;<br />
clock_t tms_stime;<br />
clock_t tms_cutime;<br />
clock_t 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 />
返回值： 返回时钟数，没有时钟则返回0<br />
<br />
函数原型：int usleep (int us)<br />
输入参数：us,单位为微秒<br />
函数说明：直到us微秒后才解除阻塞，即其功能相当于延时us微秒<br />
返回值： 成功返回0，反之为－1，有错误发生显示错误发生原因</p>
<p>函数原型：int wait(int *status)<br />
输入参数： status 进程状态指针<br />
函数说明：功能是等候所有子进程退出，由于HAL不支持分散子进程，函数立即返回<br />
返回值： status内容清0，表明没有子进程；返回值为－1，且errno置为ECHILD， 表明没有子进程等候</p>
<p>函数原型：int write(int file, const void *ptr, size_t len)<br />
输入参数：file文件描述符；ptr为读数据的位置指针，len读数据的长度，单位为字节<br />
函数说明：往文件或设备写入数据块，<br />
返回值： 成功返回写入的字节数，也可能少于请求的长度；反之返回－1，万一有错误发生，errno被设置为发生的原因</p>
<p><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位整数</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<hr />
<p>下面为自己整理<br />
函数原型：int fopen (char * file_name, way_use);<br />
输入参数：file_name文件名，way_use使用文件方式，比如r，w分别对应着读写<br />
函数说明：打开文件，对其进行某种文件操作<br />
返回值： 打不开则出错，返回一个空指针NULL</p>
<p>&nbsp;</p>
<p>函数原型：int fclose (fp)<br />
输入参数：fp的定义为：FILE *fp<br />
函数说明：关闭文件fp<br />
返回值： 成功返回0，反之为－1（EOF）<br />
<br />
函数原型：int fread(void *ptr, int size, int count, FILE * fp);<br />
输入参数：buffer为指针；是读入数据地存放地址；size读字节数；count读字节数地数目；fp文件型指针<br />
函数说明：从一个流中读取数据<br />
返回值： 成功返回值为count</p>
<p>函数原型：int fwrite(void *ptr, int size, int count, FILE *fp)<br />
输入参数：buffer为指针；是读入数据地存放地址；size读字节数；count读字节数地数目；fp文件型指针，<br />
函数说明：写内容到流中<br />
返回值： 成功返回值为count<br />
<br />
函数原型：int fprintf(FILE *fp, char *format[, argument,...]);<br />
输入参数：fp文件型指针；format格式字符串；[, argument,...]输出列表,如：<br />
fprintf(fp,&ldquo;%d,%f&rdquo;,i,t)<br />
函数说明：传送格式化输出到一个流中<br />
返回值： －</p>
<p>函数原型：int fscanf(FILE * fp, char *format[,argument...])<br />
输入参数：fp文件型指针；format格式字符串；[, argument,...]输入列表，如：<br />
fscanf(fp,&ldquo;%d,%f&rdquo;,i,t)<br />
函数说明：从一个流中执行格式化输入 <br />
返回值： －</p>
<p>函数原型：int fputc(int ch, FILE *fp)<br />
输入参数：ch字符；fp：文件型指针<br />
函数说明：送一个字符到一个流中<br />
返回值： 成功返回字符，反之返回－1（EOF）</p>
<p>函数原型：int fgetc(FILE *fp);<br />
输入参数：fp：文件型指针<br />
函数说明：从流中读取字符<br />
返回值： 遇到文件结束返回－1（EOF）</p>
<p>函数原型：int putw(int w, FILE *fp)<br />
输入参数：w: 字符或字; fp：文件型指针<br />
函数说明：把一字符或字送到流中<br />
返回值： －</p>
<p>函数原型：int getw(FILE *fp)<br />
输入参数：fp：文件型指针<br />
函数说明：从流中取一整数<br />
返回值： －</p>
<p>函数原型：int rewind(FILE *fp)<br />
输入参数：fp：文件型指针<br />
函数说明：将文件指针重新指向一个流的开头<br />
返回值： －</p>
<p>函数原型：int fseek(FILE *fp, long offset, int fromwhere); <br />
输入参数：fp：文件型指针；offset：long型偏移量；fromwhere：起始点<br />
起始点为0，1，2分别代表文件开始，当前位置，文件末尾<br />
函数说明：重定位流上的文件指针<br />
返回值： －</p>
<p>函数原型：int ferror(FILE *fp)<br />
输入参数：fp：文件型指针<br />
函数说明：检测流上的错误 <br />
返回值： 未</p>
</div>
</div>
</div>]]></description></item></channel></rss>