NIOS II常用函数详解.docx
- 文档编号:7353411
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:10
- 大小:19.92KB
NIOS II常用函数详解.docx
《NIOS II常用函数详解.docx》由会员分享,可在线阅读,更多相关《NIOS II常用函数详解.docx(10页珍藏版)》请在冰豆网上搜索。
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,反之为非0
Irq
函数原型:
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
函数原型:
intclose(intfiledes)
输入参数:
filedes,描述符
函数说明:
标准的UNIX函数close(),关闭文件描述符filedes
返回值:
成功返回0,反之为-1
函数原型:
intopen(constchar*pathname,intflags,mode_tmode)
输入参数:
pathname,路径名;flags,O_RDONLY或O_WRONLY或O_RDWR,分别对应着只读,只写,或读写操作;mode,使用许可说明
函数说明:
打开文件或设备,返回一个文件描述符(读写中使用的非负整数)
返回值:
成功返回文件描述符,反之返回-1
函数原型:
intread(intfile,void*ptr,size_tlen)
输入参数:
file文件描述符;ptr为读数据的位置指针,len读数据的长度,单位为字节
函数说明:
从文件或设备中读取数据块
返回值:
成功返回读取的字节数,反之返回-1
函数原型:
clock_ttimes(structtms*buf)
输入参数:
buf结构体指针
函数说明:
兼容newlib,tms的结构体指针如下:
typestruct
{clock_ttms_utime;
clock_ttms_stime;
clock_ttms_cutime;
clock_ttms_sutime;
};
tms_utime:
CPU索取用户指令的执行时间
tms_stime:
CPU索取由系统表示的过程的执行时间
tms_cutime:
所有子进程tms_utime和tms_cutime的时间之和
tms_sutime:
所有子进程tms_stime和tms_sutime的时间之和
返回值:
返回时钟数,没有时钟则返回0
函数原型:
intusleep(intus)
输入参数:
us,单位为微秒
函数说明:
直到us微秒后才解除阻塞,即其功能相当于延时us微秒
返回值:
成功返回0,反之为-1,有错误发生显示错误发生原因
函数原型:
intwait(int*status)
输入参数:
status进程状态指针
函数说明:
功能是等候所有子进程退出,由于HAL不支持分散子进程,函数立即返回
返回值:
status内容清0,表明没有子进程;返回值为-1,且errno置为ECHILD,表明没有子进程等候
函数原型:
intwrite(intfile,constvoid*ptr,size_tlen)
输入参数:
file文件描述符;ptr为读数据的位置指针,len读数据的长度,单位为字节
函数说明:
往文件或设备写入数据块,
返回值:
成功返回写入的字节数,也可能少于请求的长度;反之返回-1,万一有错误发生,errno被设置为发生的原因
数据的标准类型
类型说明
alt_8符号8位整数
alt_u8无符号8位整数
alt_16符号16位整数
alt_u16无符号16位整数
alt_32符号32位整数
alt_u32无符号32位整数
下面为自己整理
函数原型:
intfopen(char*file_name,way_use);
输入参数:
file_name文件名,way_use使用文件方式,比如r,w分别对应着读写
函数说明:
打开文件,对其进行某种文件操作
返回值:
打不开则出错,返回一个空指针NULL
函数原型:
intfclose(fp)
输入参数:
fp的定义为:
FILE*fp
函数说明:
关闭文件fp
返回值:
成功返回0,反之为-1(EOF)
函数原型:
intfread(void*ptr,intsize,intcount,FILE*fp);
输入参数:
buffer为指针;是读入数据地存放地址;size读字节数;count读字节数地数目;fp文件型指针
函数说明:
从一个流中读取数据
返回值:
成功返回值为count
函数原型:
intfwrite(void*ptr,intsize,intcount,FILE*fp)
输入参数:
buffer为指针;是读入数据地存放地址;size读字节数;count读字节数地数目;fp文件型指针,
函数说明:
写内容到流中
返回值:
成功返回值为count
函数原型:
intfprintf(FILE*fp,char*format[,argument,...]);
输入参数:
fp文件型指针;format格式字符串;[,argument,...]输出列表,如:
fprintf(fp,“%d,%f”,i,t)
函数说明:
传送格式化输出到一个流中
返回值:
-
函数原型:
intfscanf(FILE*fp,char*format[,argument...])
输入参数:
fp文件型指针;format格式字符串;[,argument,...]输入列表,如:
fscanf(fp,“%d,%f”,i,t)
函数说明:
从一个流中执行格式化输入
返回值:
-
函数原型:
intfputc(intch,FILE*fp)
输入参数:
ch字符;fp:
文件型指针
函数说明:
送一个字符到一个流中
返回值:
成功返回字符,反之返回-1(EOF)
函数原型:
intfgetc(FILE*fp);
输入参数:
fp:
文件型指针
函数说明:
从流中读取字符
返回值:
遇到文件结束返回-1(EOF)
函数原型:
intputw(intw,FILE*fp)
输入参数:
w:
字符或字;fp:
文件型指针
函数说明:
把一字符或字送到流中
返回值:
-
函数原型:
intgetw(FILE*fp)
输入参数:
fp:
文件型指针
函数说明:
从流中取一整数
返回值:
-
函数原型:
intrewind(FILE*fp)
输入参数:
fp:
文件型指针
函数说明:
将文件指针重新指向一个流的开头
返回值:
-
函数原型:
intfseek(FILE*fp,longoffset,intfromwhere);
输入参数:
fp:
文件型指针;offset:
long型偏移量;fromwhere:
起始点
起始点为0,1,2分别代表文件开始,当前位置,文件末尾
函数说明:
重定位流上的文件指针
返回值:
-
函数原型:
intferror(FILE*fp)
输入参数:
fp:
文件型指针
函数说明:
检测流上的错误
返回值:
未出错返回值为0,反之为非0
函数原型:
longftell(FILE*fp)
输入参数:
fp:
文件型指针
函数说明:
返回当前文件指针,得到当前位置
返回值:
返回值为-1表示出错,反之为非0
函数原型:
voidclearerr(FILE*fp)
输入参数:
fp:
文件型指针
函数说明:
复位错误标志
返回值:
出错为非0,反之为0
函数原型:
char*fgets(char*string,intn,FILE*fp)
输入参数:
string:
字符串指针;fp:
文件型指针
函数说明:
从流中读取一字符串,但只从文件输入n-1个字符,后一个为‘\0’结束标志位
返回值:
-
函数原型:
ntfputs(char*string,FILE*fp)
输入参数:
string:
字符串指针;fp:
文件型指针
函数说明:
送一个字符串到一个流中
返回值:
-
函数原型:
intfeof(FILE*fp)
输入参数:
fp:
文件型指针
函数说明:
检测流上的文件结束符
返回值:
-
NiosIIIDECommandLineTools
ToolDescriptor
nios2-create-system-library创建一个新系统库工程
nios2-create-application-project创建一个C/C++应用库工程
nios2-build-project使用NiosIIIDE编译工程,创建或更新文件编写来编译工程,该操作工程必须是存在当前的NiosIIIDE工作区间
nios2-import-project导入一个以前创建的NiosIIIDE工程到当前的工作区间
nios2-delete-project从NiosIIIDE工作区间删除工程
AlteraCommand-LineTools
ToolDescriptor
nios2-download为调试或运行下载代码到目标处理器
nios2-flash-programmer编程数据到目标板的flash存储器上
nios2-gdb-server通过TCP,用目标NiosII处理器把GNU调试器远程的串口协议分组翻译为共同测试行动小组(JTAG)的事务
nios2-terminal用JTAG通用异步收发机(UART)执行终止NiosII系统里面的I/O
validate_zip核实指定的zip文件是否兼容Altera只读zip文件系统
FileConversionUtilities
UtilityDescriptor
bin2flash为下载到flash存储器上,将二进制文件转换为.flash文件
elf2dat为适应VerilogHDL硬件仿真,将.elf可执行文件格式转换为.dat文件格式
elf2flash为下载到flash存储器上,将.elf可执行文件格式转换为.flash文件
elf2hex将.elf可执行文件格式转换为Intel.hex文件格式
elf2mem在指定的NiosII系统中为存储设备生成存储内容
elf2mif将.elf可执行文件格式转换为QuartusII内存初始化文件(.mif)格式
flash2dat为适应VerilogHDL硬件仿真,将.flash可执行文件格式转换为.dat文件格式
mk-nios2-signaltap-mnemonic-table获得一个.elf文件和SOPCBuilder系统文件(.ptf),创建一个.stp包含NiosII子令集记忆表和Altera’sSignalTap®IIlogic分析仪符号的文件
sof2flash为下载到flash存储器上,将FPGA配置文件(.sof)转换为.flash文件
BackwardCompatibilityTools
ToolDescriptor
nios2-build基于传统SDK库的编译和链接软件工程
nios2-run下载程序到NiosII处理器,终止I/O的变成
nios2-debug下载程序到NiosII处理器,启动洞察力的调试器
nios2-console打开FS2命令行接口(CLI),连接到NiosII处理器,(有选择地下载代码)
IORD_16DIRECT(BASE,OFFSET)
从地址位置为BASE+OFFSET的寄存器中直接读取16Bit的数据
IORD_8DIRECT(BASE,OFFSET)
从地址位置为BASE+OFFSET的寄存器中直接读取8Bit的数据
IOWR_32DIRECT(BASE,OFFSET,DATA)
往地址位置为BASE+OFFSET的寄存器中直接写入32B
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NIOS II常用函数详解 II 常用 函数 详解