新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > NIOS II常用函數(shù)整理

        NIOS II常用函數(shù)整理

        作者: 時(shí)間:2017-06-06 來源:網(wǎng)絡(luò) 收藏
        IO操作函數(shù)
        函數(shù)原型:IORD(BASE, REGNUM)
        輸入?yún)?shù):BASE為寄存器的基地址,REGNUM為寄存器的偏移量
        函數(shù)說明:從基地址為BASE的設(shè)備中讀取寄存器中偏移量為REGNUM的單元里面的值。寄存器的值在地址總線的范圍之內(nèi)。
        返回值: -



        函數(shù)原型:IOWR(BASE, REGNUM, DATA)
        輸入?yún)?shù):BASE為寄存器的基地址,REGNUM為寄存器的偏移量,DATA為要寫入的數(shù)據(jù)
        函數(shù)說明:往偏移量為REGNUM寄存器中寫入數(shù)據(jù)。寄存器的值在地址總線的范圍之內(nèi)。
        返回值: -



        函數(shù)原型:IORD_32DIRECT(BASE, OFFSET)
        輸入?yún)?shù):BASE為寄存器的基地址,OFFSET為寄存器的的偏移量
        函數(shù)說明:從地址位置為BASE+OFFSET的寄存器中直接讀取32Bit的數(shù)據(jù)
        返回值: -



        函數(shù)原型:IORD_16DIRECT(BASE, OFFSET)
        輸入?yún)?shù):BASE為寄存器的基地址,OFFSET為寄存器的的偏移量
        函數(shù)說明:從地址位置為BASE+OFFSET的寄存器中直接讀取16Bit的數(shù)據(jù)
        返回值: -



        函數(shù)原型:IORD_8DIRECT(BASE, OFFSET)
        輸入?yún)?shù):BASE為寄存器的基地址,OFFSET為寄存器的的偏移量
        函數(shù)說明:從地址位置為BASE+OFFSET的寄存器中直接讀取8Bit的數(shù)據(jù)
        返回值: -




        函數(shù)原型:IOWR_32DIRECT(BASE, OFFSET, DATA)
        輸入?yún)?shù):BASE為寄存器的基地址,REGNUM為寄存器的偏移量,DATA為要寫入的數(shù)據(jù)
        函數(shù)說明:往地址位置為BASE+OFFSET的寄存器中直接寫入32Bit的數(shù)據(jù)
        返回值: -



        函數(shù)原型:IOWR_16DIRECT(BASE, OFFSET, DATA)
        輸入?yún)?shù):BASE為寄存器的基地址,REGNUM為寄存器的偏移量,DATA為要寫入的數(shù)據(jù)
        函數(shù)說明:往地址位置為BASE+OFFSET的寄存器中直接寫入16Bit的數(shù)據(jù)
        返回值: -



        函數(shù)原型:IOWR_8DIRECT(BASE, OFFSET, DATA)
        輸入?yún)?shù):BASE為寄存器的基地址,REGNUM為寄存器的偏移量,DATA為要寫入的數(shù)據(jù)
        函數(shù)說明:往地址位置為BASE+OFFSET的寄存器中直接寫入8Bit的數(shù)據(jù)
        返回值: -

        Dma:
        函數(shù)原型:int alt_dma_rxchan_close (alt_dma_rxchan rxchan)
        輸入?yún)?shù):rxchan為接收信道
        函數(shù)說明:函數(shù) alt_dma_rxchan_close ()通知系統(tǒng):應(yīng)用程序已經(jīng)完成DMA
        接收信道rxchan,目前執(zhí)行是成功的
        返回值: 成功返回為0,反之為-1

        函數(shù)原型:alt_dma_rxchan_depth(alt_dma_rxchan dma)
        輸入?yún)?shù):dma
        函數(shù)說明:函數(shù)alt_dma_rxchan_depth ()返回傳送到特別DMA的最大數(shù)量(深度)的接收請求
        返回值: DMA的最大數(shù)量


        函數(shù)原型:int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, int req, void* arg)
        輸入?yún)?shù):dma直接存儲器名, req為請求操作的列舉, arg由請求決定
        函數(shù)說明:通過DMA接收信道執(zhí)行設(shè)備的具體I/O操作
        返回值: 成功返回請求具體值,反之返回為負(fù)數(shù)
        請求類型
        請求類型 請求類型說明
        ALT_DMA_SET_MODE_8 傳輸以8Bit為單位的數(shù)據(jù),arg值忽略
        ALT_DMA_SET_MODE_16 傳輸以16Bit為單位的數(shù)據(jù),arg值忽略
        ALT_DMA_SET_MODE_32 傳輸以32Bit為單位的數(shù)據(jù),arg值忽略
        ALT_DMA_SET_MODE_64 傳輸以64Bit為單位的數(shù)據(jù),arg值忽略
        ALT_DMA_SET_MODE_128 傳輸以128Bit為單位的數(shù)據(jù),arg值忽略
        ALT_DMA_TX_ONLY_ON (1) 軟件控制下只能發(fā)送
        ALT_DMA_TX_ONLY_OFF (1) 自定義模式,軟件控制下可以接收,發(fā)送
        ALT_DMA_RX_ONLY_ON (1) 軟件控制下只能接收
        ALT_DMA_RX_ONLY_OFF (1) 自定義模式,軟件控制下可以接收,發(fā)送

        函數(shù)原型:alt_dma_rxchan alt_dma_rxchan_open (const char* name)
        輸入?yún)?shù):name為常數(shù)字符指針,如/dev/dma_0
        函數(shù)說明:為DMA接收信道獲得一個(gè)alt_dma_rxchan描述符
        返回值: 成功返回非0,反之返回為0

        函數(shù)原型:int alt_dma_rxchan_prepare (alt_dma_rxchan dma, void* data,
        alt_u32 length, alt_rxchan_done * done, void* handle)
        輸入?yún)?shù):dma使用的信道;data接收數(shù)據(jù)位置的指針;length最大的接收數(shù)據(jù)長度;done一旦數(shù)據(jù)被接收,調(diào)用返回函數(shù);handle,非透明值傳到done
        函數(shù)說明:發(fā)送一個(gè)接收請求到DMA接收信道,
        返回值: 成功返回0,反之返回為負(fù)數(shù)

        函數(shù)原型:int alt_dma_rxchan_reg (alt_dma_rxchan_dev * dev)
        輸入?yún)?shù):dev接收信道設(shè)備名
        函數(shù)說明:給系統(tǒng)寄存DMA接收信道
        返回值: 成功返回0,反之返回為負(fù)數(shù)

        函數(shù)原型:int alt_dma_txchan_close (alt_dma_txchan txchan)
        輸入?yún)?shù):txchan發(fā)送信道名
        函數(shù)說明:通知系統(tǒng):應(yīng)用程序已經(jīng)完成DMA發(fā)送信道txchan
        返回值: 成功返回0,反之返回為負(fù)數(shù)

        函數(shù)原型:int alt_dma_txchan_ioctl (alt_dma_txchan dma, int req, void* arg)
        輸入?yún)?shù):dma直接存儲器名;req為請求操作的列舉;arg請求的額外參數(shù),由請求決定
        函數(shù)說明:通過DMA發(fā)送信道執(zhí)行設(shè)備的具體I/O操作
        返回值: 成功返回請求具體值,反之返回為負(fù)數(shù)

        函數(shù)原型:alt_dma_txchan alt_dma_txchan_open (const char* name)
        輸入?yún)?shù):name為常數(shù)字符指針,如/dev/dma_0
        函數(shù)說明:為DMA發(fā)送信道獲得一個(gè)alt_dma_rxchan描述符
        返回值: 成功返回非0,反之返回為0

        函數(shù)原型:int alt_dma_txchan_reg (alt_dma_txchan_dev* dev)
        輸入?yún)?shù):dev接收信道設(shè)備名
        函數(shù)說明:給系統(tǒng)寄存DMA發(fā)送信道
        返回值: 成功返回0,反之返回為負(fù)數(shù)

        函數(shù)原型:int alt_dma_txchan_send (alt_dma_txchan dma, const void* from,
        alt_u32 length, alt_txchan_done* done, void* handle)
        輸入?yún)?shù):dma使用的信道;data接收數(shù)據(jù)位置的指針;length最大的接收數(shù)據(jù)長度;done一旦數(shù)據(jù)被接收,調(diào)用返回函數(shù);handle,非透明值傳到done
        函數(shù)說明:發(fā)送一個(gè)發(fā)送請求到DMA發(fā)送信道,
        返回值: 發(fā)送成功返回0,反之返回為負(fù)數(shù)

        函數(shù)原型:nt alt_dma_txchan_space (alt_dma_txchan dma)
        輸入?yún)?shù):dma 直接存儲器名
        函數(shù)說明:返回被傳送到具體DMA發(fā)送信道的發(fā)送請求數(shù)目
        返回值: 返回發(fā)送請求數(shù)目

        Flash
        函數(shù)原型:int alt_erase_flash_block(alt_flash_fd* fd, int offset, int length)
        輸入?yún)?shù):fd為具體的flash設(shè)備;offset擦除的flash模塊的偏移量;length擦除的flash模塊的長度
        函數(shù)說明:擦除單獨(dú)的一個(gè)flash模塊
        返回值: 發(fā)送成功返回0,反之返回為負(fù)數(shù)

        函數(shù)原型:void alt_flash_close_dev(alt_flash_fd * fd)
        輸入?yún)?shù):fd為具體的flash設(shè)備
        函數(shù)說明:關(guān)閉flash設(shè)備
        返回值: -

        函數(shù)原型:alt_flash_fd * alt_flash_open_dev(const char* name)
        輸入?yún)?shù):
        函數(shù)說明:打開flash設(shè)備。一旦打開,函數(shù)alt_write_flash()用來寫入,函數(shù)alt_read_flash()用來讀取數(shù)據(jù),或者使用函數(shù)alt_get_flash_info(), alt_erase_flash_block(), alt_write_flash_block(),控制單個(gè)模塊
        返回值: 失敗返回0,成功其他值

        函數(shù)原型:int alt_get_flash_info(alt_flash_fd* fd, flash_region ** info,
        int* number_of_regions)
        輸入?yún)?shù):fd flash設(shè)備;info指向flash_region結(jié)構(gòu)體的指針;number_of_regions
        函數(shù)說明:得到擦除flash區(qū)域的細(xì)節(jié)
        返回值: 發(fā)送成功返回0,反之返回為負(fù)數(shù)

        函數(shù)原型:int alt_read_flash(alt_flash_fd* fd, int offset, void* dest_addr, int length)
        輸入?yún)?shù):dest_addr目標(biāo)地址指針
        函數(shù)說明:從flash偏移量為offset字節(jié)開始讀取數(shù)據(jù),寫入到目標(biāo)地址dest_addr中
        返回值: 成功返回0,反之為非0
        函數(shù)原型:int alt_write_flash(alt_flash_fd* fd, int offset, const void* src_addr,
        int length)
        輸入?yún)?shù):src_addr源地址;fd,flash設(shè)備;offset 偏移量;length字節(jié)長度
        函數(shù)說明:寫數(shù)據(jù)到flsah中,要寫的數(shù)據(jù)在源地址src_addr中
        返回值: 成功返回0,反之為非0

        函數(shù)原型:int alt_write_flash_block(alt_flash_fd* fd, int block_offset, int data_offset,
        const void *data, int length)
        輸入?yún)?shù):fd;data_offset起始寫數(shù)據(jù)的偏移量;length為要寫數(shù)據(jù)的長度
        函數(shù)說明:寫入到一個(gè)已擦除的flash模塊
        返回值: 成功返回0,反之為非0

        Irq
        函數(shù)原型:alt_irq_context alt_irq_disable_all (void)
        輸入?yún)?shù):void
        函數(shù)說明:禁止所有中斷
        返回值: 傳遞的值作為隨后的函數(shù)調(diào)用的輸入?yún)?shù)


        函數(shù)原型:void alt_irq_enable_all (alt_irq_context context)
        輸入?yún)?shù):先前調(diào)用函數(shù)alt_irq_disable_all (void)的返回值,
        函數(shù)說明:啟動所有中斷
        返回值: -

        函數(shù)原型:int alt_irq_enabled (void)
        輸入?yún)?shù):void
        函數(shù)說明:啟動中斷
        返回值: 禁止中斷返回0,反之為非0

        函數(shù)原型:int alt_irq_register (alt_u32 id, void* context, void (*isr)(void*, alt_u32))
        輸入?yún)?shù):id,32位無符號數(shù),中斷使能;context和id是isr的兩個(gè)輸入?yún)?shù);中斷激活時(shí)調(diào)用isr
        函數(shù)說明:寄存一個(gè)isr
        返回值: 成功返回0,反之為非0


        函數(shù)原型:int alt_write_flash(alt_flash_fd* fd, int offset, const void* src_addr,
        int length)
        輸入?yún)?shù):src_addr源地址;fd,flash設(shè)備;offset 偏移量;length字節(jié)長度
        函數(shù)說明:寫數(shù)據(jù)到flsah中,要寫的數(shù)據(jù)在源地址src_addr中
        返回值: 成功返回0,反之為非0

        函數(shù)原型:int alt_write_flash_block(alt_flash_fd* fd, int block_offset, int data_offset,
        const void *data, int length)
        輸入?yún)?shù):fd;data_offset起始寫數(shù)據(jù)的偏移量;length為要寫數(shù)據(jù)的長度
        函數(shù)說明:寫入到一個(gè)已擦除的flash模塊
        返回值: 成功返回0,反之為非0

        函數(shù)原型:int close (int filedes)
        輸入?yún)?shù):filedes,描述符
        函數(shù)說明:標(biāo)準(zhǔn)的UNIX函數(shù)close(),關(guān)閉文件描述符filedes
        返回值: 成功返回0,反之為-1

        函數(shù)原型:int open (const char* pathname, int flags, mode_t mode)
        輸入?yún)?shù):pathname, 路徑名;flags,O_RDONLY或O_WRONLY 或O_RDWR,分別對應(yīng)著只讀,只寫,或讀寫操作;mode,使用許可說明
        函數(shù)說明:打開文件或設(shè)備,返回一個(gè)文件描述符(讀寫中使用的非負(fù)整數(shù))
        返回值: 成功返回文件描述符,反之返回-1

        函數(shù)原型:int read(int file, void *ptr, size_t len)
        輸入?yún)?shù):file文件描述符;ptr為讀數(shù)據(jù)的位置指針,len讀數(shù)據(jù)的長度,單位為字節(jié)
        函數(shù)說明:從文件或設(shè)備中讀取數(shù)據(jù)塊
        返回值: 成功返回讀取的字節(jié)數(shù),反之返回-1

        函數(shù)原型:clock_t times (struct tms *buf)
        輸入?yún)?shù):buf結(jié)構(gòu)體指針
        函數(shù)說明:兼容newlib,tms的結(jié)構(gòu)體指針如下:
        type struct
        {clock_t tms_utime;
        clock_t tms_stime;
        clock_t tms_cutime;
        clock_t tms_sutime;
        };
        tms_utime: CPU索取用戶指令的執(zhí)行時(shí)間
        tms_stime: CPU索取由系統(tǒng)表示的過程的執(zhí)行時(shí)間
        tms_cutime:所有子進(jìn)程tms_utime和tms_cutime的時(shí)間之和
        tms_sutime:所有子進(jìn)程tms_stime和tms_sutime的時(shí)間之和
        返回值: 返回時(shí)鐘數(shù),沒有時(shí)鐘則返回0


        函數(shù)原型:int usleep (int us)
        輸入?yún)?shù):us,單位為微秒
        函數(shù)說明:直到us微秒后才解除阻塞,即其功能相當(dāng)于延時(shí)us微秒
        返回值: 成功返回0,反之為-1,有錯(cuò)誤發(fā)生顯示錯(cuò)誤發(fā)生原因

        函數(shù)原型:int wait(int *status)
        輸入?yún)?shù): status 進(jìn)程狀態(tài)指針
        函數(shù)說明:功能是等候所有子進(jìn)程退出,由于HAL不支持分散子進(jìn)程,函數(shù)立即返回
        返回值: status內(nèi)容清0,表明沒有子進(jìn)程;返回值為-1,且errno置為ECHILD, 表明沒有子進(jìn)程等候

        函數(shù)原型:int write(int file, const void *ptr, size_t len)
        輸入?yún)?shù):file文件描述符;ptr為讀數(shù)據(jù)的位置指針,len讀數(shù)據(jù)的長度,單位為字節(jié)
        函數(shù)說明:往文件或設(shè)備寫入數(shù)據(jù)塊,
        返回值: 成功返回寫入的字節(jié)數(shù),也可能少于請求的長度;反之返回-1,萬一有錯(cuò)誤發(fā)生,errno被設(shè)置為發(fā)生的原因

        數(shù)據(jù)的標(biāo)準(zhǔn)類型
        類型 說明
        alt_8 符號8位整數(shù)
        alt_u8 無符號8位整數(shù)
        alt_16 符號16位整數(shù)
        alt_u16 無符號16位整數(shù)
        alt_32 符號32位整數(shù)
        alt_u32 無符號32位整數(shù)
        下面為自己整理
        函數(shù)原型:int fopen (char * file_name, way_use);
        輸入?yún)?shù):file_name文件名,way_use使用文件方式,比如r,w分別對應(yīng)著讀寫
        函數(shù)說明:打開文件,對其進(jìn)行某種文件操作
        返回值: 打不開則出錯(cuò),返回一個(gè)空指針NULL

        函數(shù)原型:int fclose (fp)
        輸入?yún)?shù):fp的定義為:FILE *fp
        函數(shù)說明:關(guān)閉文件fp
        返回值: 成功返回0,反之為-1(EOF)


        函數(shù)原型:int fread(void *ptr, int size, int count, FILE * fp);
        輸入?yún)?shù):buffer為指針;是讀入數(shù)據(jù)地存放地址;size讀字節(jié)數(shù);count讀字節(jié)數(shù)地?cái)?shù)目;fp文件型指針
        函數(shù)說明:從一個(gè)流中讀取數(shù)據(jù)
        返回值: 成功返回值為count

        函數(shù)原型:int fwrite(void *ptr, int size, int count, FILE *fp)
        輸入?yún)?shù):buffer為指針;是讀入數(shù)據(jù)地存放地址;size讀字節(jié)數(shù);count讀字節(jié)數(shù)地?cái)?shù)目;fp文件型指針,
        函數(shù)說明:寫內(nèi)容到流中
        返回值: 成功返回值為count


        函數(shù)原型:int fprintf(FILE *fp, char *format[, argument,...]);
        輸入?yún)?shù):fp文件型指針;format格式字符串;[, argument,...]輸出列表,如:
        fprintf(fp,“%d,%f”,i,t)
        函數(shù)說明:傳送格式化輸出到一個(gè)流中
        返回值: -

        函數(shù)原型:int fscanf(FILE * fp, char *format[,argument...])
        輸入?yún)?shù):fp文件型指針;format格式字符串;[, argument,...]輸入列表,如:
        fscanf(fp,“%d,%f”,i,t)
        函數(shù)說明:從一個(gè)流中執(zhí)行格式化輸入
        返回值: -

        函數(shù)原型:int fputc(int ch, FILE *fp)
        輸入?yún)?shù):ch字符;fp:文件型指針
        函數(shù)說明:送一個(gè)字符到一個(gè)流中
        返回值: 成功返回字符,反之返回-1(EOF)

        函數(shù)原型:int fgetc(FILE *fp);
        輸入?yún)?shù):fp:文件型指針
        函數(shù)說明:從流中讀取字符
        返回值: 遇到文件結(jié)束返回-1(EOF)

        函數(shù)原型:int putw(int w, FILE *fp)
        輸入?yún)?shù):w: 字符或字; fp:文件型指針
        函數(shù)說明:把一字符或字送到流中
        返回值: -

        函數(shù)原型:int getw(FILE *fp)
        輸入?yún)?shù):fp:文件型指針
        函數(shù)說明:從流中取一整數(shù)
        返回值: -

        函數(shù)原型:int rewind(FILE *fp)
        輸入?yún)?shù):fp:文件型指針
        函數(shù)說明:將文件指針重新指向一個(gè)流的開頭
        返回值: -

        函數(shù)原型:int fseek(FILE *fp, long offset, int fromwhere);
        輸入?yún)?shù):fp:文件型指針;offset:long型偏移量;fromwhere:起始點(diǎn)
        起始點(diǎn)為0,1,2分別代表文件開始,當(dāng)前位置,文件末尾
        函數(shù)說明:重定位流上的文件指針
        返回值: -

        函數(shù)原型:int ferror(FILE *fp)
        輸入?yún)?shù):fp:文件型指針
        函數(shù)說明:檢測流上的錯(cuò)誤
        返回值: 未出錯(cuò)返回值為0,反之為非0

        函數(shù)原型:long ftell(FILE *fp)
        輸入?yún)?shù):fp:文件型指針
        函數(shù)說明:返回當(dāng)前文件指針,得到當(dāng)前位置
        返回值: 返回值為-1表示出錯(cuò),反之為非0

        函數(shù)原型:void clearerr(FILE *fp)
        輸入?yún)?shù):fp:文件型指針
        函數(shù)說明:復(fù)位錯(cuò)誤標(biāo)志
        返回值: 出錯(cuò)為非0,反之為0

        函數(shù)原型:char *fgets(char *string, int n, FILE *fp)
        輸入?yún)?shù):string:字符串指針;fp:文件型指針
        函數(shù)說明:從流中讀取一字符串,但只從文件輸入n-1個(gè)字符,后一個(gè)為‘ 主站蜘蛛池模板: 延长县| 镇坪县| 大同市| 禄丰县| 晋中市| 万州区| 烟台市| 拉孜县| 新疆| 平定县| 光泽县| 昭平县| 英德市| 蒙自县| 盈江县| 岑溪市| 西华县| 聊城市| 青浦区| 神木县| 潮安县| 西峡县| 富阳市| 唐海县| 安陆市| 永年县| 莎车县| 政和县| 金昌市| 农安县| 蒲城县| 芮城县| 鄢陵县| 丰宁| 浦城县| 德州市| 富源县| 浪卡子县| 托克托县| 岱山县| 明溪县|