对初学者很有帮助的NIOSII常用函数详解IO操作函数函数原型:IORD(BASE,REGNUM)输入参数:BASE为寄存器的基地址,REGNUM为寄存器的偏移量函数说明:从基地址为BASE的设备中读取寄存器中偏移量为REGNUM的单元里面的值。寄存器的值在地址总线的范围之内。返回值:-函数原型:IOWR(BASE,REGNUM,DATA)输入参数:BASE为寄存器的基地址,REGNUM为寄存器的偏移量,DATA为要写入的数据函数说明:往偏移量为REGNUM寄存器中写入数据。寄存器的值在地址总线的范围之内。返回值:-函数原型:IORD_32DIRECT(BASE,OFFSET)输入参数:BASE为寄存器的基地址,OFFSET为寄存器的的偏移量函数说明:从地址位置为BASE+OFFSET的寄存器中直接读取32Bit的数据返回值:-函数原型:IORD_16DIRECT(BASE,OFFSET)输入参数:BASE为寄存器的基地址,OFFSET为寄存器的的偏移量函数说明:从地址位置为BASE+OFFSET的寄存器中直接读取16Bit的数据返回值:-函数原型:IORD_8DIRECT(BASE,OFFSET)输入参数:BASE为寄存器的基地址,OFFSET为寄存器的的偏移量函数说明:从地址位置为BASE+OFFSET的寄存器中直接读取8Bit的数据返回值:-函数原型:IOWR_32DIRECT(BASE,OFFSET,DATA)输入参数:BASE为寄存器的基地址,REGNUM为寄存器的偏移量,DATA为要写入的数据函数说明:往地址位置为BASE+OFFSET的寄存器中直接写入32Bit的数据返回值:-函数原型:IOWR_16DIRECT(BASE,OFFSET,DATA)输入参数:BASE为寄存器的基地址,REGNUM为寄存器的偏移量,DATA为要写入的数据函数说明:往地址位置为BASE+OFFSET的寄存器中直接写入16Bit的数据返回值:-函数原型:IOWR_8DIRECT(BASE,OFFSET,DATA)输入参数:BASE为寄存器的基地址,REGNUM为寄存器的偏移量,DATA为要写入的数据函数说明:往地址位置为BASE+OFFSET的寄存器中直接写入8Bit的数据返回值:-Dma:函数原型:intalt_dma_rxchan_close(alt_dma_rxchanrxchan)输入参数:rxchan为接收信道函数说明:函数alt_dma_rxchan_close()通知系统:应用程序已经完成DMA接收信道rxchan,目前执行是成功的返回值:成功返回为0,反之为-1函数原型:alt_dma_rxchan_depth(alt_dma_rxchandma)输入参数:dma函数说明:函数alt_dma_rxchan_depth()返回传送到特别DMA的最大数量(深度)的接收请求返回值:DMA的最大数量函数原型:intalt_dma_rxchan_ioctl(alt_dma_rxchandma,intreq,void*arg)输入参数:dma直接存储器名,req为请求操作的列举,arg由请求决定函数说明:通过DMA接收信道执行设备的具体I/O操作返回值:成功返回请求具体值,反之返回为负数请求类型请求类型请求类型说明ALT_DMA_SET_MODE_8传输以8Bit为单位的数据,arg值忽略ALT_DMA_SET_MODE_16传输以16Bit为单位的数据,arg值忽略ALT_DMA_SET_MODE_32传输以32Bit为单位的数据,arg值忽略ALT_DMA_SET_MODE_64传输以64Bit为单位的数据,arg值忽略ALT_DMA_SET_MODE_128传输以128Bit为单位的数据,arg值忽略ALT_DMA_TX_ONLY_ON(1)软件控制下只能发送ALT_DMA_TX_ONLY_OFF(1)自定义模式,软件控制下可以接收,发送ALT_DMA_RX_ONLY_ON(1)软件控制下只能接收ALT_DMA_RX_ONLY_OFF(1)自定义模式,软件控制下可以接收,发送函数原型:alt_dma_rxchanalt_dma_rxchan_open(constchar*name)输入参数:name为常数字符指针,如/dev/dma_0函数说明:为DMA接收信道获得一个alt_dma_rxchan描述符返回值:成功返回非0,反之返回为0函数原型:intalt_dma_rxchan_prepare(alt_dma_rxchandma,void*data,alt_u32length,alt_rxchan_done*done,void*handle)输入参数:dma使用的信道;data接收数据位置的指针;length最大的接收数据长度;done一旦数据被接收,调用返回函数;handle,非透明值传到done函数说明:发送一个接收请求到DMA接收信道,返回值:成功返回0,反之返回为负数函数原型:intalt_dma_rxchan_reg(alt_dma_rxchan_dev*dev)输入参数:dev接收信道设备名函数说明:给系统寄存DMA接收信道返回值:成功返回0,反之返回为负数函数原型:intalt_dma_txchan_close(alt_dma_txchantxchan)输入参数:txchan发送信道名函数说明:通知系统:应用程序已经完成DMA发送信道txchan返回值:成功返回0,反之返回为负数函数原型:intalt_dma_txchan_ioctl(alt_dma_txchandma,intreq,void*arg)输入参数:dma直接存储器名;req为请求操作的列举;arg请求的额外参数,由请求决定函数说明:通过DMA发送信道执行设备的具体I/O操作返回值:成功返回请求具体值,反之返回为负数函数原型:alt_dma_txchanalt_dma_txchan_open(constchar*name)输入参数:name为常数字符指针,如/dev/dma_0函数说明:为DMA发送信道获得一个alt_dma_rxchan描述符返回值:成功返回非0,反之返回为0函数原型:intalt_dma_txchan_reg(alt_dma_txchan_dev*dev)输入参数:dev接收信道设备名函数说明:给系统寄存DMA发送信道返回值:成功返回0,反之返回为负数函数原型:intalt_dma_txchan_send(alt_dma_txchandma,constvoid*from,alt_u32length,alt_txchan_done*done,void*handle)输入参数:dma使用的信道;data接收数据位置的指针;length最大的接收数据长度;done一旦数据被接收,调用返回函数;handle,非透明值传到done函数说明:发送一个发送请求到DMA发送信道,返回值:发送成功返回0,反之返回为负数函数原型:ntalt_dma_txchan_space(alt_dma_txchandma)输入参数:dma直接存储器名函数说明:返回被传送到具体DMA发送信道的发送请求数目返回值:返回发送请求数目Flash函数原型:intalt_erase_flash_block(alt_flash_fd*fd,intoffset,intlength)输入参数:fd为具体的flash设备;offset擦除的flash模块的偏移量;length擦除的flash模块的长度函数说明:擦除单独的一个flash模块返回值:发送成功返回0,反之返回为负数函数原型:voidalt_flash_close_dev(alt_flash_fd*fd)输入参数:fd为具体的flash设备函数说明:关闭flash设备返回值:-函数原型:alt_flash_fd*alt_flash_open_dev(constchar*name)输入参数:函数说明:打开flash设备。一旦打开,函数alt_write_flash()用来写入,函数alt_read_flash()用来读取数据,或者使用函数alt_get_flash_info(),alt_erase_flash_block(),alt_write_flash_block(),控制单个模块返回值:失败返回0,成功其他值函数原型:intalt_get_flash_info(alt_flash_fd*fd,flash_region**info,int*number_of_regions)输入参数:fdflash设备;info指向flash_region结构体的指针;number_of_regions函数说明:得到擦除flash区域的细节返回值:发送成功返回0,反之返回为负数函数原型:intalt_read_flash(alt_flash_fd*fd,intoffset,void*dest_addr,intlength)输入参数:dest_addr目标地址指针函数说明:从flash偏移量为offset字节开始读取数据,写入到目标地址dest_addr中返回值:成功返回0,反之为非0函数原型:intalt_write_flash(alt_flash_fd*fd,intoffset,constvoid*src_addr,intlength)输入参数:src_addr源地址;fd,flash设备;offset偏移量;length字节长度函数说明:写数据到flsah中,要写的数据在源地址src_addr中返回值:成功返回0,反之为非0函数原型:intalt_write_flash_block(alt_flash_fd*fd,intblock_offset,intdata_offset,constvoid*data,intlength)输入参数:fd;data_offset起始写数据的偏移量;length为要写数据的长度函数说明:写入到一个已擦除的flash模块返回值:成功返回0,反之为非0Irq函数原型:alt_irq_contextalt_irq_disable_all(void)输入参数:void函数说明:禁止所有中断返回值:传递的值作为随后的函数调用的输入参数函数原型:voidalt_irq_enable_all(alt_irq_contextcontext)输入参数:先前调用函数alt_irq_disable_all(void)的返回值,函数说明:启动所有中断返回值:-函数原型:intalt_irq_enabled(void)输入参数:void函数说明:启动中断返回值:禁止中断返回0,反之为非0函数原型:intalt_irq_register(alt_u32id,void*context,void(*isr)(void*,alt_u32))输入参数:id,32位无符号数,中断使能;context和id是isr的两个输入参数;中断激活时调用isr函数说明:寄存一个isr返回值:成功返回0,反之为非0函数原型:intalt_write_flash(alt_flash_fd*fd,intoffset,constvoid*src_addr,intlength)输入参数:src_addr源地址;fd,flash设备;offset偏移量;length字节长度函数说明:写数据到flsah中,要写的数据在源地址src_addr中返回值:成功返回0,反之为非0函数原型:intalt_write_flash_block(alt_flash_fd*fd,intblock_offset,intdata_offset,constvoid*data,intlength)输入参数:fd;data_offset起始写数据的偏移量;length为要写数据的长度函数说明:写入到一个已擦除的flash模块返回值:成功返回0,反之为非0函数原型:intclose(intfiledes)输入参数:filedes,描述符函数说明:标准的UNIX函数close