1. gzyueqian
      18529173453
      首頁 > 新聞中心 > > 正文

      NIOS常用函數詳解

      更新時間: 2007-02-02 15:51:09來源: 粵嵌教育瀏覽量:1258

      NIOS II常用函數詳解
      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_RDW R,分別對應著只讀,只寫,或讀寫操作;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處理器

      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的數據


      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 一级做a免费观看久久 | 亚洲午夜久久久久久噜噜噜 | 伊人大杳蕉一本v视频 | 午夜性色福利视频久久久久 | 日韩精品一区二区三区中文精品 | 一区二区三区免费的视频 |