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:
函数原型:int alt_dma_rxchan_close (alt_dma_rxchan rxchan)
输入参数:rxchan为接纳信道
函数阐明:函数 alt_dma_rxchan_close ()告诉体系:运用程序现已完结DMA
接纳信道rxchan,现在履行是成功的
回来值: 成功回来为0,反之为-1
函数原型:alt_dma_rxchan_depth(alt_dma_rxchan dma)
输入参数:dma
函数阐明:函数alt_dma_rxchan_depth ()回来传送到特别DMA的最大数量(深度)的接纳恳求
回来值: DMA的最大数量
函数原型:int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, int req, 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_rxchan alt_dma_rxchan_open (const char* name)
输入参数:name为常数字符指针,如/dev/dma_0
函数阐明:为DMA接纳信道取得一个alt_dma_rxchan描述符
回来值: 成功回来非0,反之回来为0
函数原型:int alt_dma_rxchan_prepare (alt_dma_rxchan dma, void* data,
alt_u32 length, alt_rxchan_done * done, void* handle)
输入参数:dma运用的信道;data接纳数据方位的指针;length最大的接纳数据长度;done一旦数据被接纳,调用回来函数;handle,非通明值传到done
函数阐明:发送一个接纳恳求到DMA接纳信道,
回来值: 成功回来0,反之回来为负数
函数原型:int alt_dma_rxchan_reg (alt_dma_rxchan_dev * dev)
输入参数:dev接纳信道设备名
函数阐明:给体系寄存DMA接纳信道
回来值: 成功回来0,反之回来为负数
函数原型:int alt_dma_txchan_close (alt_dma_txchan txchan)
输入参数:txchan发送信道名
函数阐明:告诉体系:运用程序现已完结DMA发送信道txchan
回来值: 成功回来0,反之回来为负数
函数原型:int alt_dma_txchan_ioctl (alt_dma_txchan dma, int req, void* arg)
输入参数:dma直接存储器名;req为恳求操作的罗列;arg恳求的额定参数,由恳求决议
函数阐明:经过DMA发送信道履行设备的详细I/O操作
回来值: 成功回来恳求详细值,反之回来为负数
函数原型:alt_dma_txchan alt_dma_txchan_open (const char* name)
输入参数:name为常数字符指针,如/dev/dma_0
函数阐明:为DMA发送信道取得一个alt_dma_rxchan描述符
回来值: 成功回来非0,反之回来为0
函数原型:int alt_dma_txchan_reg (alt_dma_txchan_dev* dev)
输入参数:dev接纳信道设备名
函数阐明:给体系寄存DMA发送信道
回来值: 成功回来0,反之回来为负数
函数原型:int alt_dma_txchan_send (alt_dma_txchan dma, const void* from,
alt_u32 length, alt_txchan_done* done, void* handle)
输入参数:dma运用的信道;data接纳数据方位的指针;length最大的接纳数据长度;done一旦数据被接纳,调用回来函数;handle,非通明值传到done
函数阐明:发送一个发送恳求到DMA发送信道,
回来值: 发送成功回来0,反之回来为负数
函数原型:nt alt_dma_txchan_space (alt_dma_txchan dma)
输入参数:dma 直接存储器名
函数阐明:回来被传送到详细DMA发送信道的发送恳求数目
回来值: 回来发送恳求数目
Flash
函数原型:int alt_erase_flash_block(alt_flash_fd* fd, int offset, int length)
输入参数:fd为详细的flash设备;offset擦除的flash模块的偏移量;length擦除的flash模块的长度
函数阐明:擦除独自的一个flash模块
回来值: 发送成功回来0,反之回来为负数
函数原型:void alt_flash_close_dev(alt_flash_fd * fd)
输入参数:fd为详细的flash设备
函数阐明:封闭flash设备
回来值: -
函数原型:alt_flash_fd * alt_flash_open_dev(const char* name)
输入参数:
函数阐明:翻开flash设备。一旦翻开,函数alt_write_flash()用来写入,函数alt_read_flash()用来读取数据,或许运用函数alt_get_flash_info(), alt_erase_flash_block(), alt_write_flash_block(),操控单个模块
回来值: 失利回来0,成功其他值
函数原型:int alt_get_flash_info(alt_flash_fd* fd, flash_region ** info,
int* number_of_regions)
输入参数:fd flash设备;info指向flash_region结构体的指针;number_of_regions
函数阐明:得到擦除flash区域的细节
回来值: 发送成功回来0,反之回来为负数
函数原型:int alt_read_flash(alt_flash_fd* fd, int offset, void* dest_addr, int length)
输入参数:dest_addr方针地址指针
函数阐明:从flash偏移量为offset字节开端读取数据,写入到方针地址dest_addr中
回来值: 成功回来0,反之为非0
函数原型:int alt_write_flash(alt_flash_fd* fd, int offset, const void* src_addr,
int length)
输入参数:src_addr源地址;fd,flash设备;offset 偏移量;length字节长度
函数阐明:写数据到flsah中,要写的数据在源地址src_addr中
回来值: 成功回来0,反之为非0
函数原型:int alt_write_flash_block(alt_flash_fd* fd, int block_offset, int data_offset,
const void *data, int length)
输入参数:fd;data_offset开端写数据的偏移量;length为要写数据的长度
函数阐明:写入到一个已擦除的flash模块
回来值: 成功回来0,反之为非0
Irq
函数原型:alt_irq_context alt_irq_disable_all (void)
输入参数:void
函数阐明:制止一切中止
回来值: 传递的值作为随后的函数调用的输入参数
函数原型:void alt_irq_enable_all (alt_irq_context context)
输入参数:从前调用函数alt_irq_disable_all (void)的回来值,
函数阐明:发动一切中止
回来值: -
函数原型:int alt_irq_enabled (void)
输入参数:void
函数阐明:发动中止
回来值: 制止中止回来0,反之为非0
函数原型:int alt_irq_register (alt_u32 id, void* context, void (*isr)(void*, alt_u32))
输入参数:id,32位无符号数,中止使能;context和id是isr的两个输入参数;中止激活时调用isr
函数阐明:寄存一个isr
回来值: 成功回来0,反之为非0
函数原型:int alt_write_flash(alt_flash_fd* fd, int offset, const void* src_addr,
int length)
输入参数:src_addr源地址;fd,flash设备;offset 偏移量;length字节长度
函数阐明:写数据到flsah中,要写的数据在源地址src_addr中
回来值: 成功回来0,反之为非0
函数原型:int alt_write_flash_block(alt_flash_fd* fd, int block_offset, int data_offset,
const void *data, int length)
输入参数:fd;data_offset开端写数据的偏移量;length为要写数据的长度
函数阐明:写入到一个已擦除的flash模块
回来值: 成功回来0,反之为非0
函数原型:int close (int filedes)
输入参数:filedes,描述符
函数阐明:规范的UNIX函数close(),封闭文件描述符filedes
回来值: 成功回来0,反之为-1
函数原型:int open (const char* pathname, int flags, mode_t mode)
输入参数:pathname, 路径名;flags,O_RDONLY或O_WRONLY 或O_RDWR,别离对应着只读,只写,或读写操作;mode,运用答应阐明
函数阐明:翻开文件或设备,回来一个文件描述符(读写中运用的非负整数)
回来值: 成功回来文件描述符,反之回来-1
函数原型:int read(int file, void *ptr, size_t len)
输入参数:file文件描述符;ptr为读数据的方位指针,len读数据的长度,单位为字节
函数阐明:从文件或设备中读取数据块
回来值: 成功回来读取的字节数,反之回来-1
函数原型:clock_t times (struct tms *buf)
输入参数:buf结构体指针
函数阐明:兼容newlib,tms的结构体指针如下:
type struct
{clock_t tms_utime;
clock_t tms_stime;
clock_t tms_cutime;
clock_t tms_sutime;
};
tms_utime: CPU讨取用户指令的履行时刻
tms_stime: CPU讨取由体系标明的进程的履行时刻
tms_cutime:一切子进程tms_utime和tms_cutime的时刻之和
tms_sutime:一切子进程tms_stime和tms_sutime的时刻之和
回来值: 回来时钟数,没有时钟则回来0
函数原型:int usleep (int us)
输入参数:us,单位为微秒
函数阐明:直到us微秒后才免除堵塞,即其功用相当于延时us微秒
回来值: 成功回来0,反之为-1,有过错产生显现过错产生原因
函数原型:int wait(int *status)
输入参数: status 进程状况指针
函数阐明:功用是等候一切子进程退出,因为HAL不支持涣散子进程,函数当即回来
回来值: status内容清0,标明没有子进程;回来值为-1,且errno置为ECHILD, 标明没有子进程等候
函数原型:int write(int file, const void *ptr, size_t len)
输入参数:file文件描述符;ptr为读数据的方位指针,len读数据的长度,单位为字节
函数阐明:往文件或设备写入数据块,
回来值: 成功回来写入的字节数,也或许少于恳求的长度;反之回来-1,万一有过错产生,errno被设置为产生的原因
数据的规范类型
类型 阐明
alt_8 符号8位整数
alt_u8 无符号8位整数
alt_16 符号16位整数
alt_u16 无符号16位整数
alt_32 符号32位整数
alt_u32 无符号32位整数
下面为自己收拾
函数原型:int fopen (char * file_name, way_use);
输入参数:file_name文件名,way_use运用文件方法,比方r,w别离对应着读写
函数阐明:翻开文件,对其进行某种文件操作
回来值: 打不开则犯错,回来一个空指针NULL
函数原型:int fclose (fp)
输入参数:fp的界说为:FILE *fp
函数阐明:封闭文件fp
回来值: 成功回来0,反之为-1(EOF)
函数原型:int fread(void *ptr, int size, int count, FILE * fp);
输入参数:buffer为指针;是读入数据地寄存地址;size读字节数;count读字节数地数目;fp文件型指针
函数阐明:从一个流中读取数据
回来值: 成功回来值为count
函数原型:int fwrite(void *ptr, int size, int count, FILE *fp)
输入参数:buffer为指针;是读入数据地寄存地址;size读字节数;count读字节数地数目;fp文件型指针,
函数阐明:写内容到流中
回来值: 成功回来值为count
函数原型:int fprintf(FILE *fp, char *format[, argument,…]);
输入参数:fp文件型指针;format格局字符串;[, argument,…]输出列表,如:
fprintf(fp,“%d,%f”,i,t)
函数阐明:传送格局化输出到一个流中
回来值: -
函数原型:int fscanf(FILE * fp, char *format[,argument…])
输入参数:fp文件型指针;format格局字符串;[, argument,…]输入列表,如:
fscanf(fp,“%d,%f”,i,t)
函数阐明:从一个流中履行格局化输入
回来值: -
函数原型:int fputc(int ch, FILE *fp)
输入参数:ch字符;fp:文件型指针
函数阐明:送一个字符到一个流中
回来值: 成功回来字符,反之回来-1(EOF)
函数原型:int fgetc(FILE *fp);
输入参数:fp:文件型指针
函数阐明:从流中读取字符
回来值: 遇到文件完毕回来-1(EOF)
函数原型:int putw(int w, FILE *fp)
输入参数:w: 字符或字; fp:文件型指针
函数阐明:把一字符或字送到流中
回来值: -
函数原型:int getw(FILE *fp)
输入参数:fp:文件型指针
函数阐明:从流中取一整数
回来值: -
函数原型:int rewind(FILE *fp)
输入参数:fp:文件型指针
函数阐明:将文件指针从头指向一个流的最初
回来值: -
函数原型:int fseek(FILE *fp, long offset, int fromwhere);
输入参数:fp:文件型指针;offset:long型偏移量;fromwhere:开端点
开端点为0,1,2别离代表文件开端,当时方位,文件结尾
函数阐明:重定位流上的文件指针
回来值: -
函数原型:int ferror(FILE *fp)
输入参数:fp:文件型指针
函数阐明:检测流上的过错
回来值: 未犯错回来值为0,反之为非0
函数原型:long ftell(FILE *fp)
输入参数:fp:文件型指针
函数阐明:回来当时文件指针,得到当时方位
回来值: 回来值为-1标明犯错,反之为非0
函数原型:void clearerr(FILE *fp)
输入参数:fp:文件型指针
函数阐明:复位过错标志
回来值: 犯错为非0,反之为0
函数原型:char *fgets(char *string, int n, FILE *fp)
输入参数:string:字符串指针;fp:文件型指针
函数阐明:从流中读取一字符串,但只从文件输入n-1个字符,后一个为‘’完毕标志位
回来值: -
函数原型:nt fputs(char *string, FILE *fp)
输入参数:string:字符串指针;fp:文件型指针
函数阐明:送一个字符串到一个流中
回来值: -
函数原型:int feof(FILE *fp)
输入参数:fp:文件型指针
函数阐明:检测流上的文件完毕符
回来值: -
Nios II IDE Command Line Tools
Tool Descriptor
nios2-create-system-library 创立一个新体系库工程
nios2-create-application-project 创立一个C/C++运用库工程
nios2-build-project 运用Nios II IDE编译工程,创立或更新文件编写来编译工程,该操作工程有必要是存在当时的Nios II IDE作业区间
nios2-import-project 导入一个曾经创立的Nios II IDE工程到当时的作业区间
nios2-delete-project 从Nios II IDE作业区间删去工程
Altera Command-Line Tools
Tool Descriptor
nios2-download 为调试或运转下载代码到方针处理器
nios2-flash-programmer 编程数据到方针板的flash存储器上
nios2-gdb-server 经过TCP,用方针Nios II处理器把GNU调试器长途的串口协议分组翻译为一起测验举动小组(JTAG)的业务
nios2-terminal 用JTAG通用异步收发机(UART)履行停止Nios II体系里边的I/O
validate_zip 核实指定的zip文件是否兼容Altera只读zip文件体系
File Conversion Utilities
Utility Descriptor
bin2flash 为下载到flash存储器上,将二进制文件转换为.flash文件
elf2dat 为习惯Verilog HDL硬件仿真,将.elf可履行文件格局转换为.dat文件格局
elf2flash 为下载到flash存储器上,将.elf可履行文件格局转换为.flash文件
elf2hex 将.elf可履行文件格局转换为Intel.hex文件格局
elf2mem 在指定的Nios II体系中为存储设备生成存储内容
elf2mif 将.elf可履行文件格局转换为Quartus II内存初始化文件(.mif)格局
flash2dat 为习惯Verilog HDL硬件仿真,将.flash可履行文件格局转换为.dat文件格局
mk-nios2-signaltap-mnemonic-table 取得一个.elf文件和SOPC Builder 体系文件(.ptf),创立一个.stp包括Nios II子令集回忆表和Altera’s SignalTap® II logic分析仪符号的文件
sof2flash 为下载到flash存储器上,将FPGA配置文件(.sof)转换为.flash文件
Backward Compatibility Tools
Tool Descriptor
nios2-build 根据传统SDK库的编译和链接软件工程
nios2-run 下载程序到Nios II处理器,停止I/O的变成
nios2-debug 下载程序到Nios II处理器,发动洞察力的调试器
nios2-console 翻开FS2命令行接口(CLI),连接到Nios II处理器,(有挑选地下载代码)
IRQ
IORD_16DIRECT(BASE, OFFSET)
从地址方位为BASE+OFFSET的寄存器中直接读取16Bit的数据
IORD_8DIRECT(BASE, OFFSET)
从地址方位为BASE+OFFSET的寄存器中直接读取8Bit的数据
IOWR_32DIRECT(BASE, OFFSET, DATA)
往地址方位为BASE+OFFSET的寄存器中直接写入32Bit的数据
IOWR_16DIRECT(BASE, OFFSET, DATA)
往地址方位为BASE+OFFSET的寄存器中直接写入16Bit的数据
IOWR_8DIRECT(BASE, OFFSET, DATA)
往地址方位为BASE+OFFSET的寄存器中直接写入8Bit的数据
IORD(BASE, REGNUM)
从基地址为BASE的设备中读取偏移量为REGNUM的寄存器里边的值。寄存器的值在地址总线的规模之内。
IOWR(BASE, REGNUM, DATA)
BASE为基地址,往偏移量为REGNUM寄存器中写入数据。寄存器的值在地址总线的规模之内。
IORD_32DIRECT(BASE, OFFSET)
BASE为寄存器的基地址,OFFSET为寄存器的的偏移量。
从地址方位为BASE+OFFSET的寄存器中直接读取32Bit的数据
IORD_16DIRECT(BASE, OFFSET)
从地址方位为BASE+OFFSET的寄存器中直接读取16Bit的数据
IORD_8DIRECT(BASE, OFFSET)
从地址方位为BASE+OFFSET的寄存器中直接读取8Bit的数据
IOWR_32DIRECT(BASE, OFFSET, DATA)
往地址方位为BASE+OFFSET的寄存器中直接写入32Bit的数据
IOWR_16DIRECT(BASE, OFFSET, DATA)
往地址方位为BASE+OFFSET的寄存器中直接写入16Bit的数据
IOWR_8DIRECT(BASE, OFFSET, DATA)
往地址方位为BASE+OFFSET的寄存器中直接写入8Bit的数据