《匠人手记》推荐网上购书渠道:
EDN网(ednchina)购书入口   >>>
互动出版网(china-pub)购书入口   >>>
当当网(dangdang)购书入口   >>>
淘宝网(taobao)购书入口   >>>
更多购书渠道……   >>> 

设为首页加入收藏联系匠人管理入口21IC首页21IC博客21IC社区侃单片机回复的贴参与的贴

天气预报
百宝日历

百宝专栏

  • 首页 相册 标签
  • 电脑应用(65)
  • 供需信息(22)
  • 写书近况(82)
  • 匠人文集(115)
  • 硬件技术(171)
  • 匠人公告(86)
  • 与非门专栏(545)
  • 匠人笔记(115)
  • 团队撰写(96)
  • 汽车电子(52)
  • 编程技巧(465)
  • 程序宝典(476)
  • 网络酷文(472)
  • 开发工具(19)
  • 资料宝藏(274)
  • 项目管理(11)
  • 藏经宝阁(42)
  • 趣味设计(5)
  • 社区热贴(2)
  • 比尔盖茨熊专栏(0) 
  • 百宝信息

    载入中...

    百宝流量

    (2006-07-01开始)



    匠人手记

    [转载评论]NIOSII常用函数中文介绍
    flanix 发表于 2007-11-21 15:45:00  阅读全文 | 回复(0) | 引用通告 | 编辑

    NIOSII常用函数中文介绍

    函数原型: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个字符,后一个为‘\0’结束标志位
    返回值:  -

    函数原型: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的数据
    评论:
           NIOS的函数不是很多,平时多用点也就能熟悉了.参数名一定跟具体的硬件对应.

    看《匠人手记》,与匠人同行!北航出版,正在热卖!

  • 标签:NIOS 
  • 圈子:飞远 
  • 发表评论:
    载入中...

    芯片专题

    器件专题

    软件专题

    硬件专题

    综合专题

    项目专题

    原创专题

    器件检测
    LCD LED
    按键 触摸键
    E2PROM
    电池 电机
    电阻 电容 电感

    指令系统
    软件算法
    编程规范
    滤波算法
    串行通讯

    PCB设计
    I2C PWM
    红外遥控
    充电技术
    中断 ADC 

    匠人手记
    匠人夜话
    网络心路
    一周热点串烧
    从零开始玩PIC
    DIY旋转时钟

    广告5号位 [投放]


    学习板、开发板、编程器、下载器、仿真器(查看详情……)

    站内搜索


    站外搜索


    百度  google
    mp3  歌词 
    图片  FLASH 
    知道  文档
    新闻  词典 
    地图  mp3 
    软件  天网 
    雅虎  爱问 
    搜狗  讯雷 
    网讯  华军 
    天空 

    21IC器件搜索
    百宝箱分站
  • 《匠人的百宝箱》21IC站
  • 《匠人的百宝箱》21IC笔记团队
  • 《匠人的百宝箱》MCUBLOG站
  • 《匠人的百宝箱》MCUBLOG笔记团队
  • 《匠人的百宝箱》EDN站
  • 《匠人手记》EDN书友会
  • 《匠人的百宝箱》与非网站
  • 《匠人的百宝箱》新浪站
  • 《匠人的百宝箱》百度站
  • 《匠人的百宝箱》网易126站
  • 《匠人的百宝箱》网易163站
  • 《匠人的百宝箱》互动出版网站
  • 广告4号位 [投放]

     
     
     

    新鲜货色

    匠人手记

    近期动态

    载入中...

      《匠人手记》购书全攻略 
     书友近况:淘书手记答疑与讨论:什么是散转程序 
     《匠人手记》新书艳照
     EDN《匠人手记》签名售书优惠活动开始报名啦!
     欢迎加入《匠人手记》EDN书友会
     欢迎加入《匠人手记》书友会Q群
     《匠人手记》终稿目录
     《匠人手记》封面,请大家先睹为快
     上周六收到了北航寄来的《匠人手记》清样,让大家先睹为快

    匠人原创

    粉丝评论

    往日酷贴

    载入中...

    载入中...



     网络酷文:博客,改变的不仅仅是图书 
     网络酷文:C语言宏定义技巧C语言 条件编译详解

      21IC上海2008-04聚会报名进行中。。。 
     两分钟让你明白什么是ERP![转]
      神奇的Duff's Device 算法
      实用一线通讯电路及软件设计方法
      程序员的“七年之痒”
      史上最短但最精彩的武侠小说
      网络无厘头文学《缺钙水浒》(爆笑)

     你的博客还能持续多久(转贴)
     电动车无刷电机控制器软件设计要点(作者:谢渊斌)

    大千八卦

    友情连接

    新浪新闻:
    新浪财经:
    AK58新闻:
    新浪股票:
    新浪股票:
    证券之星:

     [更多酷站连接]

     

     

    [欢迎交换连接]

    [百宝箱之与非门分舵]

    [电脑圈圈的家当]

    [IC921的博客]

    [柔月阁]

    [八楼的呼吸]

    [hotpower 的水潭]

    [xwj的文君阁]

    [所长的BLOG]

    [阿摆手记]

    [电子伙伴]

    [unaided的笔记]

    [小飞的笔记]

    [单片机开发联盟]

    [网址之家]

    [好东西网址大全]

    [美萍中文精选]

    [数字电视之家]

    [SMARTCODE电子书斋]

    [软件开发之窗]

    [Armoric]

    [我爱研发网]

    [infernal的笔记]

    [雄鹰的空中加油站]

    [SunK]

    [逍遥电子]

    [ningpanda的博客]

    [C-Design]

    [一网见天下]

    [海边淘沙]

    [嵌入式365]

    [水牛的仓库]

    [股剩是怎样炼成的]

    [PIC论坛]

    [ICC AVR开发网]

    [中国高校自动化网]

     

     

     

    MCU博客-中国电子工程师博客网 

    大学生电子网 

     

     

     

     

     

    !!! 《匠人的百宝箱》 !!!