90
Altera Corporation セクション IV–1 セクション IV. 付録 セクション 、以 されています。 10 HAL API リファレンス 11 アルテラ ツール 12 リード・オンリ zip ファイル・システム 改定履歴 に、各 します。これら バージョン している Nios II キット Nios II プロセッサ バージョンに ありません。 日付 / バージョン 変更内容 10 2004 12 v1.2 DMA の一般的な要求の名前を更新 2004 9 v1.1 open() を追加 alt_dma_txchan_open() ERRNO 報を追加 ALT_DMA_TX_STREAM_ON の定義を修正 ALT_DMA_RX_STREAM_ON の定義を修正 alt_dma_rxchan_ioctl() および alt_dma_txchan_ioctl() に情報を追 2004 5 v1.0 初版 11 2004 12 v1.1 Nios II コマンドライン・ツールの情報を追加 2004 5 v1.0 初版 12 2004 5 v1.0 初版

Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation セクション IV–1

セクション IV. 付録

このセクションは、以下の章で構成されています。

■ 第 10章 HAL APIリファレンス

■ 第 11章 アルテラの開発ツール

■ 第 12章 リード・オンリ zipファイル・システム

改定履歴 以下の表に、各章の改定履歴を示します。これらのバージョンは資料の改定を追跡しているのもので、Nios II開発キットや Nios IIプロセッサのバージョンには関係ありません。

章 日付 /バージョン 変更内容

10 2004年 12月v1.2

DMAの一般的な要求の名前を更新

2004年 9月v1.1

● open()を追加● alt_dma_txchan_open()に ERRNO情報を追加

● ALT_DMA_TX_STREAM_ONの定義を修正● ALT_DMA_RX_STREAM_ONの定義を修正● alt_dma_rxchan_ioctl()および

alt_dma_txchan_ioctl()に情報を追加

2004年 5月v1.0

初版

11 2004年 12月v1.1

Nios IIコマンドライン・ツールの情報を追加

2004年 5月v1.0

初版

12 2004年 5月v1.0

初版

myoshida
Text Box
この資料は、更新された最新の英語版が存在します。こちらの日本語版は参考用としてご利用下さい。 設計の際は、必ず最新の英語版で内容をご確認下さい。
Page 2: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

セクション IV–2 Altera Corporation

付録 Nios II ソフトウェア開発ハンドブック

Page 3: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–12004年 12月 Preliminary

10. HAL APIリファレンス

はじめに この章では、HAL(Hardware Abstraction Layer)API内のすべての関数をアルファベット順に記載します。それぞれの関数について Cプロトタイプを示し、簡単に説明します。また、マルチ・スレッド環境で実行するときにスレッド・セーフかどうか、割り込みサービス・ルーチン(ISR)から呼び出せるかどうかについても示します。

この章では、HALが提供する機能のみを記載します。HALシステム内部からはすべてのNewlib APIも利用できることに注意してください。例えば、Newlibは、ここで説明していない printf()やその他の標準 I/O関数を提供しています。

Newlib API の詳細については、Newlib の資料を参照してください。(Windows のスタート・メニューから)プログラム > Altera > Nios IIDevelopment Kit > Nios II Documentationの順にクリックしてください。

NII52010-1.2

myoshida
Text Box
この資料は、更新された最新の英語版が存在します。こちらの日本語版は参考用としてご利用下さい。 設計の際は、必ず最新の英語版で内容をご確認下さい。
Page 4: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–2 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

_exit()

プロトタイプ void _exit (int exit_code)

一般的な呼び出し元 Newlib Cライブラリ

スレッド・セーフ ○

ISRからの利用 ×

インクルード <unistd.h>

説明 Newlibの exit()関数は、_exit()関数を呼び出して現在のプロセスを終了します。一般に、main()が完了したときに呼び出されます。HALシステム内にはプロセスは 1つしかないため、HAL実装は永久にブロックします。

割り込みはディセーブルされないため、ISR は動作し続けることに注意してください。

入力引数 exit_codeは無視されます。

戻り値 –

関連項目 Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 5: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–32004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

_rename()

プロトタイプ int _rename(char *existing, char* new)

一般的な呼び出し元 Newlib Cライブラリ

スレッド・セーフ ○

ISRからの利用 ○

インクルード <stdio.h>

説明 _rename()関数は、Newlibの互換性を確保します。

戻り値 常にリターン・コード –1で、errnoを ENOSYSに設定して失敗します。

関連項目 Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 6: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–4 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_alarm_start()

プロトタイプ int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks, alt_u32 (*callback) (void* context),void* context)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ○

インクルード <sys/alt_alarm.h>

説明 alt_alarm_start() 関数はアラーム・コールバックをスケジュールします(4–11ページの「アラーム」を参照)。入力引数 ntickは、callback関数を呼び出すまで積算されるシステム・クロック・チック数です。入力引数 contextは、コールバックが発生したときに、入力引数として callbackに渡されます。

入力 alarm は、このアラームを表す構造体へのポインタです。このポインタは、ユーザが作成する必要があり、少なくともアラームよりも長い間有効である必要があります。ただし、alarmが指し示す構造体の内容をユーザが初期化する必要はありません。この処理は、alt_alarm_start() 呼び出しによって実行されます。

戻り値 alt_alarm_start() の戻り値は、成功した場合はゼロ、それ以外は負の値です。この関数はシステム・クロックが利用できない場合は失敗します。

関連項目 alt_alarm_stop()alt_nticks()alt_sysclk_init()alt_tick()alt_ticks_per_second() gettimeofday()settimeofday()times()usleep()

Page 7: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–52004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_alarm_stop()

プロトタイプ void alt_alarm_stop (alt_alarm* alarm)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ○

インクルード <sys/alt_alarm.h>

説明 alt_alarm_stop()関数を呼び出すと、alt_alarm_start()呼び出しによって以前に登録されたアラームをキャンセルできます。入力引数は、以前のalt_alarm_start() 呼び出しに使用したアラーム構造体へのポインタです。

復帰時にアラームがまだアクティブの場合、アラームはキャンセルされます。

戻り値 –

関連項目 alt_alarm_start()alt_nticks()alt_sysclk_init()alt_tick()alt_ticks_per_second() gettimeofday()settimeofday()times()usleep()

Page 8: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–6 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_dcache_flush()

プロトタイプ void alt_dcache_flush (void* start, alt_u32 len)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ○

インクルード <sys/alt_cache.h>

説明 alt_dcache_flush() 関数は、アドレス start から len バイトの長さのメモリ領域に対するデータ・キャッシュを消去(つまり、ダーティ・データをライト・バックして無効化)します。

データ・キャッシュのないプロセッサでは、効果はありません。

戻り値 –

関連項目 alt_dcache_flush_all()alt_icache_flush()alt_icache_flush_all()#alt_remap_cached()alt_remap_uncached()alt_uncached_free()alt_uncached_malloc()

Page 9: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–72004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_dcache_flush_all()

プロトタイプ void alt_dcache_flush_all (void)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ○

インクルード <sys/alt_cache.h>

説明 alt_dcache_flush_all()関数は、データ・キャッシュのすべての内容を消去(つまり、ダーティ・データをライト・バックして無効化)します。

データ・キャッシュのないプロセッサでは、効果はありません。

戻り値 –

関連項目 alt_dcache_flush()alt_icache_flush()alt_icache_flush_all()#alt_remap_cached()alt_remap_uncached()alt_uncached_free()alt_uncached_malloc()

Page 10: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–8 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_dev_reg()

プロトタイプ int alt_dev_reg(alt_dev* dev)

一般的な呼び出し元 デバイス・ドライバ

スレッド・セーフ ×

ISRからの利用 ×

インクルード <sys/alt_dev.h>

説明 alt_dev_reg()関数は、デバイスをシステムに登録します。登録が完了すると、標準 I/O 関数を使用してそのデバイスにアクセスできます(4–1 ページの「HALを使用したプログラムの開発」を参照)。

デバイスが、既存のデバイスまたはファイル・システムと競合する名前で登録された場合、システムの動作は不定となります。

alt_dev_reg()関数が呼び出された時点で、そのデバイスを使用しているスレッドが他に存在してはならないという意味で、alt_dev_reg() 関数はスレッド・セーフではありません。実際には、alt_dev_reg()は、シングル・スレッド・モードで動作している間にのみ呼び出す必要があります。この関数はalt_sys_init()で起動されたデバイス初期化関数によってのみ呼び出され、このデバイス初期化関数はシングル・スレッドの C起動コードによってのみ呼び出されることを想定しています。

戻り値 ゼロの戻り値は正常に終了したことを示します。負の戻り値は失敗を示します。

関連項目 alt_fs_reg()

Page 11: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–92004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_dma_rxchan_close()

プロトタイプ int alt_dma_rxchan_close (alt_dma_rxchan rxchan)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ×

インクルード <sys/alt_dma.h>

説明 alt_dma_rxchan_close() 関数は、アプリケーションが DMA 受信チャネル rxchanの使用を完了したことをシステムに通知します。現在の実装は常に成功します。

戻り値 戻り値は、成功した場合はゼロ、それ以外は負の値です。

関連項目 alt_dma_rxchan_depth()alt_dma_rxchan_ioctl()alt_dma_rxchan_open()alt_dma_rxchan_prepare()alt_dma_rxchan_reg()alt_dma_txchan_close()alt_dma_txchan_ioctl()alt_dma_txchan_open()alt_dma_txchan_reg()alt_dma_txchan_send()alt_dma_txchan_space()

Page 12: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–10 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_dma_rxchan_depth()

プロトタイプ alt_u32 alt_dma_rxchan_depth(alt_dma_rxchan dma)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ×

インクルード <sys/alt_dma.h>

説明 alt_dma_rxchan_depth()関数は、指定されたDMA受信チャネルdmaに送信できる受信要求の最大数を返します。

この関数がスレッド・セーフかどうか、または ISRから呼び出せるかどうかは、基本デバイス・ドライバによって決まります。一般には、デバイスに依存しないことを前提とします。

戻り値 送信できる受信要求の最大数を返します。

関連項目 alt_dma_rxchan_close()alt_dma_rxchan_ioctl()alt_dma_rxchan_open()alt_dma_rxchan_prepare()alt_dma_rxchan_reg()alt_dma_txchan_close()alt_dma_txchan_ioctl()alt_dma_txchan_open()alt_dma_txchan_reg()alt_dma_txchan_send()alt_dma_txchan_space()

Page 13: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–112004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_dma_rxchan_ioctl()

プロトタイプ int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, int req, void* arg)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ 説明を参照。

ISRからの利用 説明を参照。

インクルード <sys/alt_dma.h>

説明 alt_dma_rxchan_ioctl()関数は、DMA受信チャネル dma上でデバイス固有の I/O 操作を実行します。例えば、一部のドライバは転送操作の幅を制御するオプションをサポートしています。入力引数reqは要求される操作の列挙、argは要求に対する追加引数です。argの解釈は要求によって異なります。

表 10–1 に、<sys/alt_dma.h> で定義されている一般的な要求を示します。デバイスはこれら要求をサポートできます。

alt_dma_rxchan_iotcl()の呼び出しがスレッド・セーフかどうか、または ISR から呼び出せるかどうかは、デバイスによって決まります。一般には、デバイスに依存しないことを前提とします。

DMA 転送のペンディング中に alt_dma_rxchan_ioctl() 関数を呼び出さないでください。予期できない動作が発生することがあります。

戻り値 負の戻り値は失敗を示します。それ以外の場合、戻り値の解釈は要求によって異なります。

関連項目 alt_dma_rxchan_close()alt_dma_rxchan_depth()alt_dma_rxchan_open()alt_dma_rxchan_prepare()alt_dma_rxchan_reg()alt_dma_txchan_close()alt_dma_txchan_ioctl()alt_dma_txchan_open()alt_dma_txchan_reg()alt_dma_txchan_send()alt_dma_txchan_space()

Page 14: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–12 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

表 10–1.一般的な要求

要求 意味

ALT_DMA_SET_MODE_8 8ビット単位でデータを送信します。argの値は無視されます。

ALT_DMA_SET_MODE_16 16ビット単位でデータを送信します。argの値は無視されます。

ALT_DMA_SET_MODE_32 32ビット単位でデータを送信します。argの値は無視されます。

ALT_DMA_SET_MODE_64 64ビット単位でデータを送信します。argの値は無視されます。

ALT_DMA_SET_MODE_128 128ビット単位でデータを送信します。argの値は無視されます。

ALT_DMA_GET_MODE 送信幅を返します。argの値は無視されます。

ALT_DMA_TX_ONLY_ON (1) ALT_DMA_TX_ONLY_ON要求によって、DMAチャネルは、トランスミッタのみがソフトウェアで制御されるモードで動作します。他端は 1つの位置から連続して書き込みます。書き込み先のアドレスはこの要求の引数です。

ALT_DMA_TX_ONLY_OFF (1) DMA の受信側と送信側の両方をソフトウェアで制御可能なデフォルト・モードに戻ります。

ALT_DMA_RX_ONLY_ON (1) ALT_DMA_RX_ONLY_ON要求によって、DMAチャネルは、レシーバのみがソフトウェアで制御されるモードで動作します。他端は 1つの位置から連続して読み込まれます。読み込むアドレスはこの要求の引数です。

ALT_DMA_RX_ONLY_OFF (1) DMA の受信側と送信側の両方をソフトウェアで制御可能なデフォルト・モードに戻ります。

表 10–1の注:(1) Nios II開発キットのバージョン 1.1では、これらのマクロ名は変更されています。古い名前(ALT_DMA_TX_STREAM_ON、ALT_DMA_TX_STREAM_OFF、ALT_DMA_RX_STREAM_ON、およびALT_DMA_RX_STREAM_OFF)は現在でも有効ですが、新しいデザインでは新しい名前を使用してください。

Page 15: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–132004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_dma_rxchan_open()

プロトタイプ alt_dma_rxchan alt_dma_rxchan_open (const char* name)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ×

インクルード <sys/alt_dma.h>

説明 alt_dma_rxchan_open()関数は、DMA受信チャネルのalt_dma_rxchanディスクリプタを取得します。入力引数 nameは、/dev/dma_0など、関連付けられた物理デバイスの名前です。

戻り値 戻り値は、失敗した場合は null、そうでない場合は null 以外の値です。エラーが発生した場合、errnoは ENODEVに設定されます。

関連項目 alt_dma_rxchan_close()alt_dma_rxchan_depth()alt_dma_rxchan_ioctl()alt_dma_rxchan_prepare()alt_dma_rxchan_reg()alt_dma_txchan_close()alt_dma_txchan_ioctl()alt_dma_txchan_open()alt_dma_txchan_reg()alt_dma_txchan_send()alt_dma_txchan_space()

Page 16: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–14 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_dma_rxchan_prepare()

プロトタイプ int alt_dma_rxchan_prepare (alt_dma_rxchan dma, void* data,alt_u32 length,alt_rxchan_done* done, void* handle)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ 説明を参照。

ISRからの利用 説明を参照。

インクルード <sys/alt_dma.h>

説明 alt_dma_rxchan_prepare() は、DMA 受信チャネルに受信要求を送信します。入力引数 dmaは使用するチャネル、dataはデータの受信先を示すポインタ、length は受信するデータのバイト単位の最大長、done はデータが受信されると呼び出しされるコールバック関数、handleは doneに渡される不定値です。

この関数がスレッド・セーフかどうか、または ISRから呼び出せるかどうかは、基本デバイス・ドライバによって決まります。一般には、デバイスに依存しないことを前提とします。

戻り値 戻り値は、要求を送信できない場合は負の値、それ以外はゼロです。

関連項目 alt_dma_rxchan_close()alt_dma_rxchan_depth()alt_dma_rxchan_ioctl()alt_dma_rxchan_open()alt_dma_rxchan_reg()alt_dma_txchan_close()alt_dma_txchan_ioctl()alt_dma_txchan_open()alt_dma_txchan_reg()alt_dma_txchan_send()alt_dma_txchan_space()

Page 17: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–152004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_dma_rxchan_reg()

プロトタイプ int alt_dma_rxchan_reg (alt_dma_rxchan_dev* dev)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ×

ISRからの利用 ×

インクルード <sys/alt_dma_dev.h>

説明 alt_dma_rxchan_reg()関数は、DMA受信チャネルをシステムに登録します。登録が完了すると、4–23 ページの「DMA 受信チャネル」で説明した関数を使用してデバイスにアクセスできます。

チャネルが既存のチャネルと競合する名前で登録された場合、システムの動作は不定になります。

alt_dma_rxchan_reg() が呼び出された時点で他のスレッドがチャネル・リストを使用している場合、alt_dma_rxchan_reg()関数はスレッド・セーフではありません。実際には、alt_dma_rxchan_reg() は、シングル・スレッド・モードで動作している間にのみ呼び出します。alt_sys_init()によって起動されたデバイス初期化関数でのみ呼び出してください。デバイス初期化関数は、シングル・スレッド C起動コードでのみ呼び出してください。

戻り値 ゼロの戻り値は正常に終了したことを示します。負の戻り値は失敗を示します。

関連項目 alt_dma_rxchan_close()alt_dma_rxchan_depth()alt_dma_rxchan_ioctl()alt_dma_rxchan_open()alt_dma_rxchan_prepare()alt_dma_txchan_close()alt_dma_txchan_ioctl()alt_dma_txchan_open()alt_dma_txchan_reg()alt_dma_txchan_send()alt_dma_txchan_space()

Page 18: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–16 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_dma_txchan_close()

プロトタイプ int alt_dma_txchan_close (alt_dma_txchan txchan)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ×

インクルード <sys/alt_dma.h>

説明 alt_dma_txchan_close() 関数は、アプリケーションが DMA 送信チャネル txchanの使用を完了したことをシステムに通知します。現在の実装は常に成功します。

戻り値 戻り値は、成功した場合はゼロ、それ以外は負の値です。

関連項目 alt_dma_rxchan_close()alt_dma_rxchan_depth()alt_dma_rxchan_ioctl()alt_dma_rxchan_open()alt_dma_rxchan_prepare()alt_dma_rxchan_reg()alt_dma_txchan_ioctl()alt_dma_txchan_open()alt_dma_txchan_reg()alt_dma_txchan_send()alt_dma_txchan_space()

Page 19: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–172004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_dma_txchan_ioctl()

プロトタイプ int alt_dma_txchan_ioctl (alt_dma_txchan dma, int req, void* arg)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ 説明を参照。

ISRからの利用 説明を参照。

インクルード <sys/alt_dma.h>

説明 alt_dma_txchan_ioctl()関数は、DMA送信チャネル dma上でデバイス固有の I/O 操作を実行します。例えば、一部のドライバは転送操作の幅を制御するオプションをサポートしています。入力引数reqは要求される操作の列挙、argは要求に対する追加引数です。argの解釈は、要求によって異なります。

デバイスがサポートできる一般的な要求については、表 10–1を参照してください。

alt_dma_txchan_iotcl()の呼び出しがスレッド・セーフかどうか、または ISR から呼び出せるかどうかは、デバイスによって決まります。一般には、デバイスに依存しないことを前提とします。

DMA 転送のペンディング中に alt_dma_rxchan_ioctl() 関数を呼び出さないでください。予期できない動作が発生することがあります。

戻り値 負の値は失敗を示します。それ以外の場合、戻り値の解釈は要求によって異なります。

関連項目 alt_dma_rxchan_close()alt_dma_rxchan_depth()alt_dma_rxchan_ioctl()alt_dma_rxchan_open()alt_dma_rxchan_prepare()alt_dma_rxchan_reg()alt_dma_txchan_close()alt_dma_txchan_open()alt_dma_txchan_reg()alt_dma_txchan_send()alt_dma_txchan_space()

Page 20: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–18 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_dma_txchan_open()

プロトタイプ alt_dma_txchan alt_dma_txchan_open (const char* name)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ×

インクルード <sys/alt_dma.h>

説明 alt_dma_txchan_open()関数は、DMA送信チャネルのalt_dma_txchanディスクリプタを取得します。入力引数 name は、/dev/dma_0 など、関連付けられた物理デバイスの名前です。

戻り値 戻り値は、失敗した場合は null、そうでない場合は null 以外の値です。エラーが発生した場合、errnoは ENODEVに設定されます。

関連項目 alt_dma_rxchan_close()alt_dma_rxchan_depth()alt_dma_rxchan_ioctl()alt_dma_rxchan_open()alt_dma_rxchan_prepare()alt_dma_rxchan_reg()alt_dma_txchan_close()alt_dma_txchan_ioctl()alt_dma_txchan_reg()alt_dma_txchan_send()alt_dma_txchan_space()

Page 21: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–192004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_dma_txchan_reg()

プロトタイプ int alt_dma_txchan_reg (alt_dma_txchan_dev* dev)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ×

ISRからの利用 ×

インクルード <sys/alt_dma_dev.h>

説明 alt_dma_txchan_reg()関数は、DMA送信チャネルをシステムに登録します。登録が完了すると、4–21 ページの「DMA 送信チャネル」で説明した関数を使用してデバイスにアクセスできます。

チャネルが既存のチャネルと競合する名前で登録された場合、システムの動作は不定になります。

alt_dma_txchan_reg() 関数が呼び出された時点で他のスレッドがチャネル・リストを使用している場合、alt_dma_txchan_reg()関数はスレッド・セーフではありません。alt_dma_txchan_reg()は、シングル・スレッド・モードで動作している間にのみ呼び出してください。alt_sys_init()で起動されたデバイス初期化関数によってのみ呼び出してください。このデバイス初期化関数はシングル・スレッドの C起動コードによってのみ呼び出してください。

戻り値 ゼロの戻り値は正常に終了したことを示します。負の戻り値は失敗を示します。

関連項目 alt_dma_rxchan_close()alt_dma_rxchan_depth()alt_dma_rxchan_ioctl()alt_dma_rxchan_open()alt_dma_rxchan_prepare()alt_dma_rxchan_reg()alt_dma_txchan_close()alt_dma_txchan_ioctl()alt_dma_txchan_open()alt_dma_txchan_send()alt_dma_txchan_space()

Page 22: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–20 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_dma_txchan_send()

プロトタイプ int alt_dma_txchan_send (alt_dma_txchan dma, const void* from, alt_u32 length,alt_txchan_done* done, void* handle)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ 説明を参照。

ISRからの利用 説明を参照。

インクルード <sys/alt_dma.h>

説明 alt_dma_txchan_send() 関数は、DMA 送信チャネルに送信要求を送信します。入力引数 dmaは使用するチャネル、fromは送信するデータの先頭を指し示すポインタ、length は送信するデータのバイト単位の長さ、done はデータが送信されると呼び出されるコールバック関数、handle は done に渡される不定値です。

この関数がスレッド・セーフかどうか、または ISRから呼び出せるかどうかは、基本デバイス・ドライバによって決まります。一般には、デバイスに依存しないことを前提とします。

戻り値 戻り値は、要求を送信できない場合は負の値、それ以外はゼロです。

関連項目 alt_dma_rxchan_close()alt_dma_rxchan_depth()alt_dma_rxchan_ioctl()alt_dma_rxchan_open()alt_dma_rxchan_prepare()alt_dma_rxchan_reg()alt_dma_txchan_close()alt_dma_txchan_ioctl()alt_dma_txchan_open()alt_dma_txchan_reg()alt_dma_txchan_space()

Page 23: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–212004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_dma_txchan_space()

プロトタイプ int alt_dma_txchan_space (alt_dma_txchan dma)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ 説明を参照。

ISRからの利用 説明を参照。

インクルード <sys/alt_dma.h>

説明 alt_dma_txchan_space()関数は、指定された DMA送信チャネル dmaに送信できる送信要求の最大数を返します。負の戻り値は最大数を決定できないことを示します。

この関数がスレッド・セーフかどうか、または ISRから呼び出せるかどうかは、基本デバイス・ドライバによって決まります。一般には、デバイスに依存しないことを前提とします。

戻り値 送信できる転送要求の数を返します。

関連項目 alt_dma_rxchan_close()alt_dma_rxchan_depth()alt_dma_rxchan_ioctl()alt_dma_rxchan_open()alt_dma_rxchan_prepare()alt_dma_rxchan_reg()alt_dma_txchan_close()alt_dma_txchan_ioctl()alt_dma_txchan_open()alt_dma_txchan_reg()alt_dma_txchan_send()

Page 24: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–22 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_erase_flash_block()

プロトタイプ int alt_erase_flash_block(alt_flash_fd* fd, int offset, int length)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ×

ISRからの利用 ×

インクルード <sys/alt_flash.h>

説明 alt_erase_flash_block() 関数は、個々のフラッシュ消去ブロックを消去します。パラメータ fd はフラッシュ・デバイスを指定します。offset は消去するブロックのフラッシュ内でのオフセット、length は消去するブロックのサイズです。有効なブロックかどうか、または長さが正しいかどうかを確認するためのエラー・チェックは実行されません(4–18 ページの「高精度フラッシュ・アクセス」を参照)。

alt_erase_flash_block() は、シングル・スレッド・モードで動作しているときにのみ呼び出してください。

fdパラメータの値は、alt_flash_open_dev関数から返された値のみ有効です。その他の値が渡された場合、この関数の動作は不定です。

戻り値 ゼロの戻り値は正常に終了したことを示します。負の戻り値は失敗を示します。

関連項目 alt_flash_close_dev()alt_flash_open_dev()alt_get_flash_info()alt_read_flash()alt_write_flash()alt_write_flash_block()

Page 25: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–232004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_flash_close_dev()

プロトタイプ void alt_flash_close_dev(alt_flash_fd* fd)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ×

ISRからの利用 ×

インクルード <sys/alt_flash.h>

説明 alt_flash_close_dev() 関数は、フラッシュ・デバイスをクローズします。それ以降は、このフラッシュ・デバイスに対する alt_write_flash()、a l t _ r e a d _ f l a s h ( ) 、a l t _ g e t _ f l a s h _ i n f o ( ) 、alt_erase_flash_block()、および alt_write_flash_block() 呼び出しはすべて失敗します。

alt_flash_close_dev()関数は、シングル・スレッド・モードで動作しているときにのみ呼び出してください。

fdパラメータの値は、alt_flash_open_dev関数から返された値のみ有効です。その他の値が渡された場合、この関数の動作は不定です。

戻り値 –

関連項目 alt_erase_flash_block()alt_flash_open_dev()alt_get_flash_info()alt_read_flash()alt_write_flash()alt_write_flash_block()

Page 26: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–24 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_flash_open_dev()

プロトタイプ alt_flash_fd* alt_flash_open_dev(const char* name)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ×

ISRからの利用 ×

インクルード <sys/alt_flash.h>

説明 alt_flash_open_dev()関数は、フラッシュ・デバイスをオープンします。オープンしたフラッシュ・デバイスに対しては、alt_write_flash() 関数を使用した書き込みや、alt_read_flash()関数を使用した読み込みが可能です。また個々のフラッシュ・ブロックは、alt_get_flash_info()、alt_erase_flash_block()、または alt_write_flash_block() 関数を使用して制御できます。

alt_flash_open_dev() 関数は、シングル・スレッド・モードで動作しているときにのみ呼び出してください。

戻り値 戻り値のゼロは失敗を示します。それ以外の値は成功を示します。

関連項目 alt_erase_flash_block()alt_flash_close_dev()alt_get_flash_info()alt_read_flash()alt_write_flash()alt_write_flash_block()

Page 27: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–252004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_fs_reg()

プロトタイプ int alt_fs_reg (alt_dev* dev)

一般的な呼び出し元 デバイス・ドライバ

スレッド・セーフ ×

ISRからの利用 ×

インクルード <sys/alt_dev.h>

説明 alt_fs_reg()関数は、ファイル・システムを HALに登録します。登録が完了すると、標準 I/O関数を使用してファイル・システムにアクセスできます(4–1ページの「HALを使用したプログラムの開発」を参照)。

ファイル・システムが、既存のデバイスまたはファイル・システムと競合する名前で登録された場合、システムの動作は不定になります。。

alt_fs_reg() 関数が呼び出された時点で他のスレッドがチャネル・リストを使用している場合、alt_fs_reg() 関数はスレッド・セーフではありません。実際には、alt_fs_reg() は、シングル・スレッド・モードで動作している間にのみ呼び出してください。この関数は alt_sys_init()で起動されたデバイス初期化関数によってのみ呼び出され、このデバイス初期化関数はシングル・スレッドの C起動コードによってのみ呼び出されることを想定しています。

戻り値 ゼロの戻り値は正常に終了したことを示します。負の戻り値は失敗を示します。

関連項目 alt_dev_reg()

Page 28: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–26 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_get_flash_info()

プロトタイプ int alt_get_flash_info(alt_flash_fd* fd, flash_region** info, int* number_of_regions)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ×

ISRからの利用 ×

インクルード <sys/alt_flash.h>

説明 alt_get_flash_info() 関数は、フラッシュ部分の消去領域の詳細情報を取得します。フラッシュ部分は識別子 fdによって指定され、flash_region構造体の開始位置へのポインタは info パラメータ内に返され、さらにフラッシュ領域の数は、number_of_regionsに返されます。

この関数は、シングル・スレッド・モードで動作しているときにのみ呼び出してください。

fdパラメータの値は、alt_flash_open_dev関数から返された値のみ有効です。その他の値が渡された場合、この関数の動作は不定です。

戻り値 ゼロの戻り値は正常に終了したことを示します。負の戻り値は失敗を示します。

関連項目 alt_erase_flash_block()alt_flash_close_dev()alt_flash_open_dev()alt_read_flash()alt_write_flash()alt_write_flash_block()

Page 29: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–272004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_icache_flush()

プロトタイプ void alt_icache_flush (void* start, alt_u32 len)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ○

インクルード <sys/alt_cache.h>

説明 alt_icache_flush() 関数は、アドレス start から始まる長さ len バイトのメモリ領域の命令キャッシュを無効化します。

命令キャッシュのないプロセッサでは、効果はありません。

戻り値 –

関連項目 alt_dcache_flush()alt_dcache_flush_all()alt_icache_flush_all()#alt_remap_cached()alt_remap_uncached()alt_uncached_free()alt_uncached_malloc()

Page 30: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–28 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_icache_flush_all()

プロトタイプ void alt_icache_flush_all (void)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ○

インクルード <sys/alt_cache.h>

説明 alt_icache_flush_all()関数は、命令キャッシュのすべての内容を無効化します。

命令キャッシュのないプロセッサでは、効果はありません。

戻り値 –

関連項目 alt_dcache_flush()alt_dcache_flush_all()alt_icache_flush()#alt_remap_cached()alt_remap_uncached()alt_uncached_free()alt_uncached_malloc()

Page 31: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–292004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_irq_disable_all()

プロトタイプ alt_irq_context alt_irq_disable_all (void)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ×

インクルード <sys/alt_irq.h>

説明 alt_irq_disable_all()関数はすべての割り込みをディセーブルします。

戻り値 これに続く alt_irq_enable_all()呼び出しに、戻り値を入力引数として渡します。

関連項目 alt_irq_enable_all()alt_irq_enabled()alt_irq_register()

Page 32: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–30 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_irq_enable_all()

プロトタイプ void alt_irq_enable_all (alt_irq_context context)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ○

インクルード <sys/alt_irq.h>

説明 alt_irq_enable_all() 関数はすべての割り込みをイネーブルします。入力引数 context は、直前の alt_irq_disable_all() の呼び出しによって返された値です。割り込みは、関連する alt_irq_disable_all() の呼び出しが割り込みをディセーブルした場合にのみイネーブルされるため、ネストした alt_irq_disable_all()または alt_irq_enable_all()の呼び出しを正しく実行することができます。

戻り値 –

関連項目 alt_irq_disable_all()alt_irq_enabled()alt_irq_register()

Page 33: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–312004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_irq_enabled()

プロトタイプ int alt_irq_enabled (void)

一般的な呼び出し元 デバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ○

インクルード <sys/alt_irq.h>

説明 alt_irq_enabled()関数。

戻り値 割り込みがディセーブルされた場合はゼロを返し、そうでない場合はゼロ以外の値を返します。

関連項目 alt_irq_disable_all()alt_irq_enable_all()alt_irq_register()

Page 34: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–32 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_irq_register()

プロトタイプ int alt_irq_register (alt_u32 id, void* context, void (*isr)(void*, alt_u32))

一般的な呼び出し元 デバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ×

インクルード <sys/alt_irq.h>

説明 alt_irq_register()関数は ISRを登録します。この関数が成功すると、要求された割り込みは関数の戻り時にイネーブルになります。入力引数 id はイネーブルする割り込み、isr は割り込みがアクティブなときに呼び出される関数、contextおよび idは isrの引数です。

alt_irq_register()が呼び出されると、登録された割り込み idのハンドラと置き換わります。

irq_handlerが nullに設定されている場合、割り込みはディセーブルされます。

戻り値 alt_irq_register()関数は、成功した場合はゼロを返し、そうでない場合はゼロ以外の値を返します。

関連項目 alt_irq_disable_all()alt_irq_enable_all()alt_irq_enabled()

Page 35: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–332004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_llist_insert()

プロトタイプ void alt_llist_insert(alt_llist* list, alt_llist* entry)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ×

ISRからの利用 ○

インクルード <sys/alt_llist.h>

説明 alt_llist_insert()関数は、二重のリンク・リスト・エントリ entryをリスト list に挿入します。これは、リエントリ操作できません。例えば、リストが他のスレッドから操作される、またはアプリケーション・コードと ISRの両方から操作される可能性がある場合、リストへのアクセスを保護する何らかのメカニズムが必要です。割り込みはロックすることができ、またMicroC/OS-IIでは mutexが使用できます。

戻り値 –

関連項目 alt_llist_remove()

Page 36: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–34 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_llist_remove()

プロトタイプ void alt_llist_remove(alt_llist* entry)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ×

ISRからの利用 ○

インクルード <sys/alt_llist.h>

説明 alt_llist_remove()関数は、二重のリンク・リスト・エントリ entryを、現在そのエントリがメンバであるリストから除去します。これは、リエントリ操作できません。例えば、リストが他のスレッドから操作される、あるいはアプリケーション・コードと ISRの両方から操作される可能性がある場合、リストへのアクセスを保護する何らかのメカニズムが必要です。割り込みはロックすることができ、また MicroC/OS-IIでは mutexが使用できます。

戻り値 –

関連項目 alt_llist_insert()

Page 37: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–352004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_nticks()

プロトタイプ alt_u32 alt_nticks (void)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ○

インクルード <sys/alt_alarm.h>

説明 alt_niticks()関数。

戻り値 リセット時点から経過したシステム・クロック・チック数を返します。システム・クロックが利用できない場合はゼロを返します。

関連項目 alt_alarm_start()alt_alarm_stop()alt_sysclk_init()alt_tick()alt_ticks_per_second() gettimeofday()settimeofday()times()usleep()

Page 38: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–36 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_read_flash()

プロトタイプ int alt_read_flash(alt_flash_fd* fd, int offset, void* dest_addr, int length)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ×

ISRからの利用 ×

インクルード <sys/alt_flash.h>

説明 alt_read_flash() 関数はフラッシュからデータを読み出します。フラッシュ fd から length バイト(フラッシュの先頭から offset バイト)が読み込まれ、dest_addr位置に書き込まれます。

この関数は、シングル・スレッド・モードで動作しているときにのみ呼び出してください。

fdパラメータの値は、alt_flash_open_dev関数から返された値のみ有効です。その他の値が渡された場合、この関数の動作は不定です。

戻り値 戻り値は、成功した場合はゼロ、そうでない場合はゼロ以外の値です。

関連項目 alt_erase_flash_block()alt_flash_close_dev()alt_flash_open_dev()alt_get_flash_info()alt_write_flash()alt_write_flash_block()

Page 39: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–372004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_remap_cached()

プロトタイプ void* alt_remap_cached (volatile void* ptr, alt_u32 len);

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ×

インクルード <sys/alt_cache.h>

説明 alt_remap_cached()関数は、キャッシュ・アクセスのためのメモリ領域を再マップします。マップするメモリは、アドレス ptrから lenバイトです。

データ・キャッシュのないプロセッサは、非キャッシュ・メモリを返します。

戻り値 この関数の戻り値は再マップされたメモリ領域です。

関連項目 alt_dcache_flush()alt_dcache_flush_all()alt_icache_flush()alt_icache_flush_all()#alt_remap_uncached()alt_uncached_free()alt_uncached_malloc()

Page 40: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–38 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_remap_uncached()

プロトタイプ volatile void* alt_remap_uncached (void* ptr, alt_u32 len);

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ×

インクルード <sys/alt_cache.h>

説明 alt_remap_uncached() 関数は、非キャッシュ・アクセスのためのメモリ領域を再マップします。マップするメモリは、アドレス ptr から len バイトです。

データ・キャッシュのないプロセッサは、非キャッシュ・メモリを返します。

戻り値 この関数の戻り値は、再マップされたメモリ領域です。

関連項目 alt_dcache_flush()alt_dcache_flush_all()alt_icache_flush()alt_icache_flush_all()#alt_remap_cached()alt_uncached_free()alt_uncached_malloc()

Page 41: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–392004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_sysclk_init()

プロトタイプ int alt_sysclk_init (alt_u32 nticks)

一般的な呼び出し元 デバイス・ドライバ

スレッド・セーフ ×

ISRからの利用 ×

インクルード <sys/alt_alarm.h>

説明 alt_sysclk_init()関数は、システム・クロック・ドライバを登録します。入力引数は、システム・クロック動作時の 1秒あたりのクロック数です。

この関数は、alt_sys_init()から、つまりシステムがシングル・スレッド・モードで動作している間にのみ呼び出されると想定されます。この関数を同時に呼び出すと、予測できない結果になることがあります。

戻り値 この関数は、成功した場合はゼロを返し、それ以外は負の値を返します。システム・クロック・ドライバが既に登録されている場合、呼び出しは失敗します。

関連項目 alt_alarm_start()alt_alarm_stop()alt_nticks()alt_tick()alt_ticks_per_second() gettimeofday()settimeofday()times()usleep()

Page 42: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–40 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_tick()

プロトタイプ void alt_tick (void)

一般的な呼び出し元 デバイス・ドライバ

スレッド・セーフ ×

ISRからの利用 ○

インクルード <sys/alt_alarm.h>

説明 システム・クロック・ドライバしか alt_tick() 関数を呼び出してはなりません。ドライバは、alt_sysclk_init()の呼び出しで指定されたレートで、周期的にこの関数を呼び出す必要があります。この関数は、システム・クロック・チックが発生したことをシステムに通知します。この関数は、システム・クロック・ドライバに対する ISRの一部として動作します。

戻り値 –

関連項目 alt_alarm_start()alt_alarm_stop()alt_nticks()alt_sysclk_init()alt_ticks_per_second() gettimeofday()settimeofday()times()usleep()

Page 43: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–412004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_ticks_per_second()

プロトタイプ alt_u32 alt_ticks_per_second (void)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ○

インクルード <sys/alt_alarm.h>

説明 alt_ticks_per_second() 関数は、1 秒ごとに経過するシステム・クロック・チック数を返します。システム・クロックが利用できない場合、戻り値はゼロです。

戻り値 1秒ごとに経過するシステム・クロック・チック数を返します。

関連項目 alt_alarm_start()alt_alarm_stop()alt_nticks()alt_sysclk_init()alt_tick()gettimeofday()settimeofday()times()usleep()

Page 44: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–42 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_timestamp()

プロトタイプ alt_u32 alt_timestamp (void)

一般的な呼び出し元 C/C++プログラム

スレッド・セーフ 説明を参照。

ISRからの利用 説明を参照。

インクルード <sys/alt_timestamp.h>

説明 alt_timestamp() 関数は、タイムスタンプ・カウンタの現在の値を返します(4–12ページの「高精度時間測定」を参照)。この関数は、タイムスタンプ・ドライバによって実行されます。したがって、この関数がスレッド・セーフかどうか、割り込みレベルで利用できるかどうかは、基本ドライバによって決まります。

alt_timestamp_start()関数は、必ず alt_timestamp()を呼び出す前に呼び出してください。そうしない場合、alt_timestamp()の動作は不定になります。

戻り値 タイムスタンプ・カウンタの現在の値を返します。

関連項目 alt_timestamp_freq()alt_timestamp_start()

Page 45: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–432004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_timestamp_freq()

プロトタイプ alt_u32 alt_timestamp_freq (void)

一般的な呼び出し元 C/C++プログラム

スレッド・セーフ 説明を参照。

ISRからの利用 説明を参照。

インクルード <sys/alt_timestamp.h>

説明 alt_timestamp_freq()関数は、タイムスタンプ・カウンタが増加するレートを返します(4–12 ページの「高精度時間測定」を参照)。この関数は、タイムスタンプ・ドライバによって実行されます。したがって、この関数がスレッド・セーフかどうか、割り込みレベルで利用できるかどうかは、基本ドライバによって決まります。

戻り値 戻り値は 1秒あたりのカウンタ・チック数です。

関連項目 alt_timestamp()alt_timestamp_start()

Page 46: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–44 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_timestamp_start()

プロトタイプ int alt_timestamp_start (void)

一般的な呼び出し元 C/C++プログラム

スレッド・セーフ 説明を参照。

ISRからの利用 説明を参照。

インクルード <sys/alt_timestamp.h>

説明 alt_timestamp_start()関数はシステム・タイムスタンプ・カウンタを開始します(4–12 ページの「高精度時間測定」を参照)。この関数は、タイムスタンプ・ドライバによって実行されます。したがって、この関数がスレッド・セーフかどうか、割り込みレベルで利用できるかどうかは、基本ドライバによって決まります。

この関数はカウンタをゼロにリセットして、カウンタの動作を開始します。

戻り値 戻り値は、成功した場合はゼロ、そうでない場合はゼロ以外の値です。

関連項目 alt_timestamp()alt_timestamp_freq()

Page 47: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–452004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_uncached_free()

プロトタイプ void alt_uncached_free (volatile void* ptr)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ×

インクルード <sys/alt_cache.h>

説明 alt_uncached_free()関数を実行すると、ptrが示すメモリが割り当て解除されます。すなわち、alt_uncached_malloc()呼び出しによってメモリ割り当てが可能になります。入力ポインタ ptrは、以前に alt_uncached_malloc()呼び出しによって割り当てられたメモリの領域を指します。そうでない場合、動作は不定です。

戻り値 –

関連項目 alt_dcache_flush()alt_dcache_flush_all()alt_icache_flush()alt_icache_flush_all()#alt_remap_cached()alt_remap_uncached()alt_uncached_malloc()

Page 48: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–46 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_uncached_malloc()

プロトタイプ volatile void* alt_uncached_malloc (size_t size)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ×

インクルード <sys/alt_cache.h>

説明 alt_uncached_malloc() 関数は、長さ size バイトの非キャッシュ・メモリ領域を割り当てます。これにより割り当てられたメモリの領域は、alt_uncached_free()関数を使用して解放できます。

データ・キャッシュのないプロセッサは、非キャッシュ・メモリを返します。

戻り値 この関数は、十分なメモリを割り当てできない場合は null を返し、それ以外は割り当てた空間へのポインタを返します。

関連項目 alt_dcache_flush()alt_dcache_flush_all()alt_icache_flush()alt_icache_flush_all()#alt_remap_cached()alt_remap_uncached()alt_uncached_free()

Page 49: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–472004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

alt_write_flash()

プロトタイプ int alt_write_flash(alt_flash_fd* fd, int offset, const void* src_addr, int length)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ×

ISRからの利用 ×

インクルード <sys/alt_flash.h>

説明 alt_write_flash() 関数はデータをフラッシュに書き込みます。書き込まれるデータは src_addr アドレスにあり、length バイト分のデータがフラッシュ fd(フラッシュの先頭から offsetバイト)に書き込まれます。

この関数はシングル・スレッド・モードで動作しているときにのみ呼び出してください。この関数は、この書き込みによってフラッシュ・セクタの非書き込み領域が影響を受ける場合でも、その領域の内容を保存しません(4–15ページの「シンプル・フラッシュ・アクセス」を参照)。

fdパラメータの値は、alt_flash_open_dev関数から返された値のみ有効です。その他の値が渡された場合、この関数の動作は不定です。

戻り値 戻り値は、成功した場合はゼロ、そうでない場合はゼロ以外の値です。

関連項目 alt_erase_flash_block()alt_flash_close_dev()alt_flash_open_dev()alt_get_flash_info()alt_read_flash()alt_write_flash_block()

Page 50: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–48 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

alt_write_flash_block()

プロトタイプ int alt_write_flash_block(alt_flash_fd* fd, int block_offset,int data_offset,const void *data, int length)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ×

ISRからの利用 ×

インクルード <sys/alt_flash.h>

説明 alt_write_flash_block() 関数は、フラッシュの 1 つの消去ブロックに書き込みます。フラッシュ・デバイスは fdで指定され、block_offsetはフラッシュ内におけるこのブロックの先頭位置のオフセット、data_offset はフラッシュ内でデータの書き込みを開始する位置のオフセット、data は書き込むデータ、length は書き込むデータ量です。どのパラメータにもチェックが行われないことに注意してください(4–18ページの「高精度フラッシュ・アクセス」を参照)。

この関数は、シングル・スレッド・モードで動作しているときにのみ呼び出してください。

fdパラメータの値は、alt_flash_open_dev関数から返された値のみ有効です。その他の値が渡された場合、この関数の動作は不定です。

戻り値 戻り値は、成功した場合はゼロ、そうでない場合はゼロ以外の値です。

関連項目 alt_erase_flash_block()alt_flash_close_dev()alt_flash_open_dev()alt_get_flash_info()alt_read_flash()alt_write_flash()

Page 51: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–492004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

close()

プロトタイプ int close (int filedes)

一般的な呼び出し元 C/C++プログラムNewlib Cライブラリ

スレッド・セーフ 説明を参照。

ISRからの利用 ×

インクルード <unistd.h>

説明 close() 関数は、ファイル・ディスクリプタ filedes をクローズする標準UNIX形式の close()関数です。

操作対象のドライバが提供する close() の実装がスレッド・セーフである場合のみ、close()呼び出しはスレッド・セーフになります。

fd パラメータの有効な値は、STDOUT_FILENO、STDIN_FILENO、およびSTDERR_FILENO、または open()呼び出しから返された値です。定数STDOUT_FILENO、STDIN_FILENO、および STDERR_FILENOは、<unistd.h>で定義されています。

戻り値 戻り値は、成功した場合はゼロ、それ以外は –1 です。エラーが発生した場合、errnoはエラーの原因を示す値に設定されます。

関連項目 Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 52: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–50 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

execve()

プロトタイプ int execve(const char *path, char *const argv[], char *const envp[])

一般的な呼び出し元 Newlib Cライブラリ

スレッド・セーフ ○

ISRからの利用 ○

インクルード <unistd.h>

説明 execve()関数は、Newlibとの互換性を確保するためだけに提供されています。

戻り値 execve()呼び出しは、常にリターン・コード –1で、errnoを ENOSYSに設定して失敗します。

関連項目 Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 53: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–512004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

fork()

プロトタイプ pid_t fork (void)

一般的な呼び出し元 Newlib Cライブラリ

スレッド・セーフ ○

ISRからの利用 ×

インクルード <unistd.h>

説明 fork()関数は、Newlibとの互換性を確保するためだけに提供されています。

戻り値 fork()呼び出しは、常にリターン・コード –1で、errnoを ENOSYSに設定して失敗します。

関連項目 Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 54: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–52 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

fstat()

プロトタイプ int fstat (int filedes, struct stat *st)

一般的な呼び出し元 C/C++プログラムNewlib Cライブラリ

スレッド・セーフ 説明を参照。

ISRからの利用 ×

インクルード <sys/stat.h>

説明 fstat()関数は、オープン・ファイル・ディスクリプタの機能に関する情報を取得します。基本デバイス・ドライバは、入力 st 構造体にその機能に関する情報を入れます。利用可能なオプションについては、コンパイラとともに提供されるヘッダ・ファイル sys/stat.hを参照してください。

基本ドライバが fstat() 関数の独自の実装を提供しない場合、デフォルトではファイル・ディスクリプタはキャラクタ・デバイスとしてマークされます。

操作対象のドライバが提供する fstat() の実装がスレッド・セーフである場合のみ、fstat()呼び出しはスレッド・セーフになります。

fdパラメータに対する有効な値は、STDOUT_FILENO、STDIN_FILENO、および STDERR_FILENO、または open() 呼び出しから返された値です。定数STDOUT_FILENO、STDIN_FILENO、および STDERR_FILENOは、<unistd.h>で定義されています。

戻り値 戻り値は、成功した場合はゼロ、それ以外は –1です。呼び出しが失敗した場合、errnoはエラーの原因を示す値に設定されます。

関連項目 close()ioctl()isatty()lseek()open()read()stat()write()Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 55: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–532004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

getpid()

プロトタイプ pid_t getpid (void)

一般的な呼び出し元 Newlib Cライブラリ

スレッド・セーフ ○

ISRからの利用 ×

インクルード <unistd.h>

説明 getpid()関数は、Newlibとの互換性を確保するために用意されており、現在のプロセス idを取得します。

戻り値 HALシステムは複数のプロセスを含むことができないため、getpid()は常に同じ id番号を返します。

関連項目 Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 56: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–54 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

gettimeofday()

プロトタイプ int gettimeofday(struct timeval *ptimeval, struct timezone *ptimezone)

一般的な呼び出し元 C/C++プログラムNewlib Cライブラリ

スレッド・セーフ 説明を参照。

ISRからの利用 ○

インクルード <sys/time.h>

説明 gettimeofday() 関数は、現在のウォール・クロック・タイムを示す時間構造体を取得します。この時刻は、システム・クロック・チックの経過数、および最新のsettimeofday()呼び出しによって設定された現在の時刻を使用して計算されます。

この関数が、settimeofday()呼び出しと同時に呼び出された場合、gettimeofday() が返す値の信頼性は低くなりますが、gettimeofday()は同時に呼び出しても問題ありません。

戻り値 戻り値は、成功した場合はゼロ、それ以外は –1です。呼び出しが失敗した場合、errnoはエラーの原因を示す値に設定されます。

関連項目 alt_alarm_start()alt_alarm_stop()alt_nticks()alt_sysclk_init()alt_tick()alt_ticks_per_second() settimeofday()times()usleep()Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 57: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–552004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

ioctl()

プロトタイプ int ioctl (int file, int req, void* arg)

一般的な呼び出し元 C/C++プログラム

スレッド・セーフ 説明を参照。

ISRからの利用 ×

インクルード <sys/ioctl.h>

説明 ioctl()関数を使用すれば、アプリケーション・コードから、デバイス・ドライバの I/O機能をドライバ固有の方法で操作できます。この関数は、UNIXの標準 ioctl() 関数に相当します。入力引数 file は操作するデバイスのオープン・ファイル・ディスクリプタ、req は操作要求を定義する列挙です。またargの解釈は、要求によって異なります。

一般に、この実装では、要求を適切なドライバ ioctl() 関数(ドライバのalt_dev構造体での登録に従って)に振り分けます。ただし、デバイスの場合(ファイル・サブシステムとは異なり)、TIOCEXCL要求と TIOCNXCL要求は、ドライバを参照しないで処理されます。これらの要求は、デバイスを排他的アクセスに対してロックおよびリリースします。

操作対象のドライバが提供する ioctl() の実装がスレッド・セーフである場合のみ、ioctl()呼び出しはスレッド・セーフになります。

fdパラメータに対する有効な値は、STDOUT_FILENO、STDIN_FILENO、および STDERR_FILENO、または open() 呼び出しから返された値です。定数STDOUT_FILENO、STDIN_FILENO、および STDERR_FILENOは、<unistd.h>で定義されています。

戻り値 戻り値の解釈は要求によって異なります。呼び出しが失敗した場合、errnoはエラーの原因を示す値に設定されます。

関連項目 close()fstat()isatty()lseek()open()read()stat()write()Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 58: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–56 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

isatty()

プロトタイプ int isatty(int file)

一般的な呼び出し元 C/C++プログラムNewlib Cライブラリ

スレッド・セーフ 説明を参照。

ISRからの利用 ×

インクルード <unistd.h>

説明 isatty()関数は、オープン・ファイル・ディスクリプタ fileに関連付けられたデバイスが、ターミナル・デバイスかどうかを判断します。この実装では、ドライバ fstat()関数を使用してその応答を判断します。

操作対象のドライバが提供する fstat() の実装がスレッド・セーフである場合のみ、isatty()呼び出しはスレッド・セーフになります。

戻り値 戻り値は、デバイスがキャラクタ・デバイスの場合は 1、それ以外はゼロです。エラーが発生した場合、errnoはエラーの原因を示す値に設定されます。

関連項目 close()fstat()ioctl()lseek()open()read()stat()write()Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 59: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–572004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

kill()

プロトタイプ int kill(int pid, int sig)

一般的な呼び出し元 Newlib Cライブラリ

スレッド・セーフ ○

ISRからの利用 ○

インクルード <signal.h>

説明 kill() 関数は、プロセスにシグナルを送信するために Newlib が使用します。入力引数 pidはシグナルを送信するプロセスの id、sigは送信するシグナルです。HALにはプロセスが 1つしか存在しないため、pidに対して有効な値は、getpid() で返される現在のプロセス id、またはブロードキャスト値のみです。つまり、pidはゼロ以下でなければなりません。

シグナル SIGABRT、SIGALRM、SIGFPE、SIGILL、SIGKILL、SIGPIPE、SIGQUIT、SIGSEGV、SIGTERM、SIGUSR1、SIGUSR2、SIGBUS、SIGPOLL、SIGPROF、SIGSYS、SIGTRAP、SIGVTALRM、SIGXCPU、または SIGXFSZが発生すると、システムは exit()を呼び出すことなく、すぐにシャットダウンします。

シグナル SIGCHLDおよび SIGURGは無視されます。

その他のシグナルはすべてエラーとして扱われます。

戻り値 戻り値は、成功した場合はゼロ、それ以外は –1です。呼び出しが失敗した場合、errnoはエラーの原因を示す値に設定されます。

関連項目 Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 60: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–58 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

link()

プロトタイプ int link(const char *_path1, const char *_path2)

一般的な呼び出し元 Newlib Cライブラリ

スレッド・セーフ ○

ISRからの利用 ○

インクルード <unistd.h>

説明 link()関数は、Newlibとの互換性を確保するためだけに提供されています。

戻り値 link()呼び出しは、常にリターン・コード –1で、errnoを ENOSYSに設定して失敗します。

関連項目 Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 61: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–592004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

lseek()

プロトタイプ off_t lseek(int file, off_t ptr, int whence)

一般的な呼び出し元 C/C++プログラムNewlib Cライブラリ

スレッド・セーフ 説明を参照。

ISRからの利用 ×

インクルード <unistd.h>

説明 lseek() 関数は、ファイル・ディスクリプタ file に関連付けられた読み出し / 書き込みポインタを移動します。この関数は、ファイル・ディスクリプタに関連付けられたドライバが提供する lseek() 関数に呼び出しを振り分けます。ドライバが lseek()の実装を提供しない場合は、エラーになります。

lseek()は、UNIXの標準 lseek()関数に相当します。

入力パラメータ whenceに対して、次の値が使用できます。

● whenceの値● インタプリテイション● SEEK_SET-オフセットが ptrバイトに設定されます。● SEEK_CUR-オフセットが ptrバイトだけ増加されます。● SEEK_END-オフセットがファイルの終端から ptrバイト加えた位置に設定されます。

操作対象のドライバが提供する lseek() の実装がスレッド・セーフである場合のみ、lseek()呼び出しはスレッド・セーフになります。

fd パラメータに対する有効な値は、STDOUT_FILENO、STDIN_FILENO、および STDERR_FILENO、または open() 呼び出しで返された値です。定数 STDOUT_FILENO、STDIN_FILENO、および STDERR_FILENOは、<unistd.h>で定義されています。

戻り値 成功した場合、戻り値は負でないファイル・ポインタです。エラーが発生した場合、戻り値は –1 です。呼び出しが失敗した場合、errno はエラーの原因を示す値に設定されます。

関連項目 close()fstat()ioctl()isatty()open()read()stat()write()Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 62: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–60 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

open()

プロトタイプ int open (const char* pathname, int flags, mode_t mode)

一般的な呼び出し元 C/C++プログラム

スレッド・セーフ 説明を参照。

ISRからの利用 ×

インクルード <unistd.h>

説明 open() 関数は、ファイルまたはデバイスをオープンし、ファイル・ディスクリプタ(読み出し、書き込みなどに使用する負でない小さな整数)を返します。

flagは、それぞれリード・オンリ、ライト・オンリ、リード /ライトでファイルのオープンを要求する O_RDONLY、O_WRONLY、O_RDWRのいずれかです。

ビット単位の ORフラグを O_NONBLOCKと組み合わせて、ファイルを非ブロック・モードでオープンすることもできます。返されたファイル・ディスクリプタに対する open()操作または後続の操作によって、呼び出し中のプロセスが待機することはありません。

必ずしもすべてのファイル・システム / デバイスが、このオプションを認識しないことに注意してください。

mode は、新規ファイルが作成された場合に使用許可を指定します。これは現在のファイル・システムでは使用されていませんが、互換性のために維持されています。

操作対象のドライバが提供する open()の実装がスレッド・セーフである場合のみ、open()呼び出しはスレッド・セーフになります。

戻り値 戻り値は、成功した場合は新しいファイル・ディスクリプタ、それ以外は -1です。エラーが発生した場合、errnoはエラーの原因を示す値に設定されます。

関連項目 close()fstat()ioctl()isatty()lseek()read()stat()write()Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 63: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–612004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

read()

プロトタイプ int read(int file, void *ptr, size_t len)

一般的な呼び出し元 C/C++プログラムNewlib Cライブラリ

スレッド・セーフ 説明を参照。

ISRからの利用 ×

インクルード <unistd.h>

説明 read() 関数は、ファイルまたはデバイスからデータのブロックを読み出します。この関数は、入力のオープン・ファイル・ディスクリプタ file に関連付けられたデバイス・ドライバに要求を振り分けます。入力引数 ptrは読み込まれたデータを格納する位置、lenは読み込むデータのバイト長です。

操作対象のドライバが提供する read()の実装がスレッド・セーフである場合のみ、read()呼び出しはスレッド・セーフになります。

fdパラメータに対する有効な値は、STDOUT_FILENO、STDIN_FILENO、および STDERR_FILENO、または open() 呼び出しから返された値です。定数STDOUT_FILENO、STDIN_FILENO、および STDERR_FILENOは、<unistd.h>で定義されています。

戻り値 戻り引数は読み込まれたバイト数ですが、これは要求した長さより短い場合もあります。

戻り値の –1 はエラーを示します。エラーが発生した場合、errno はエラーの原因を示す値に設定されます。

関連項目 close()fstat()ioctl()isatty()lseek()open()stat()write()Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 64: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–62 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

sbrk()

プロトタイプ caddr_t sbrk(int incr)

一般的な呼び出し元 Newlib Cライブラリ

スレッド・セーフ ×

ISRからの利用 ×

インクルード <unistd.h>

説明 sbrk()関数は、アプリケーションのデータ・セグメントを動的に拡張します。入力引数 incrは、割り当てるブロックのサイズです。sbrk()は直接呼び出さないでください。メモリを動的に割り当てる場合は、malloc()関数を使用します。

戻り値 –

関連項目 Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 65: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–632004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

settimeofday()

プロトタイプ int settimeofday (const struct timeval *t, const struct timezone *tz)

一般的な呼び出し元 C/C++プログラム

スレッド・セーフ ×

ISRからの利用 ○

インクルード <sys/time.h>

説明 settimeofday()関数が gettimeofday()と同時に呼び出された場合、gettimeofday()が返す値の信頼性は低下します。

戻り値 戻り値は、成功した場合はゼロ、それ以外は –1です。現在の実装は常に成功します。

関連項目 alt_alarm_start()alt_alarm_stop()alt_nticks()alt_sysclk_init()alt_tick()alt_ticks_per_second() gettimeofday()times()usleep()

Page 66: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–64 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

stat()

プロトタイプ int stat(const char *file_name, struct stat *buf);

一般的な呼び出し元 C/C++プログラムNewlib Cライブラリ

スレッド・セーフ 説明を参照。

ISRからの利用 ×

インクルード <sys/stat.h>

説明 stat() 関数は、fstat() 関数と同様に、ファイルに関するステータス情報を取得します。fstat()のように、オープン・ファイル・ディスクリプタを使用する代わりに、stat()はファイルの名前を入力引数として受け取ります。

操作対象のドライバが提供する stat()の実装がスレッド・セーフである場合のみ、stat()呼び出しはスレッド・セーフになります。

内部では、stat()関数は fstat()呼び出しとして実行されます(10–52ページの「fstat()」を参照)。

戻り値 –

関連項目 close()fstat()ioctl()isatty()lseek()open()read()write()Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 67: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–652004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

times()

プロトタイプ clock_t times (struct tms *buf)

一般的な呼び出し元 C/C++プログラムNewlib Cライブラリ

スレッド・セーフ ○

ISRからの利用 ○

インクルード <sys/times.h>

説明 times() 関数は、Newlib との互換性を確保するために提供されています。リセット後のクロック・チック数を返します。さらに、入力引数 bufが示す構造体に時間計算に関する情報を格納します。tms 構造体の定義は以下のとおりです。

typedef struct {

clock_t tms_utime;clock_t tms_stime;clock_t tms_cutime;clock_t tms_cstime;

};この構造体には次の要素が含まれています。

● tms_utime:ユーザ命令の実行に要した CPU時間● tms_stime:プロセスに代わってシステムが実行に要した CPU時間● tms_cutime:子プロセスのすべての tms_utimeおよび tms_cutimeの合計

● tms_cstime:子プロセスの tms_stimesおよび tms_ctimesの合計

実際には、すべての経過時間はシステム時間として計算されます。ユーザ時間として考慮される時間はありません。また、子プロセスは HALから生成できないため、子プロセスに時間は割り当てられません。

戻り値 システム・クロックが利用できない場合、戻り値はゼロです。

関連項目 alt_alarm_start()alt_alarm_stop()alt_nticks()alt_sysclk_init()alt_tick()alt_ticks_per_second() gettimeofday()settimeofday()usleep()Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 68: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–66 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

unlink()

プロトタイプ int unlink(char *name)

一般的な呼び出し元 Newlib Cライブラリ

スレッド・セーフ ○

ISRからの利用 ○

インクルード <unistd.h>

説明 unlink()関数は、Newlibとの互換性を確保するためだけに提供されています。

戻り値 unlink()呼び出しは、常にリターン・コード –1で、errnoを ENOSYSに設定して失敗します。

関連項目 Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 69: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–672004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

usleep()

プロトタイプ int usleep (int us)

一般的な呼び出し元 C/C++プログラムデバイス・ドライバ

スレッド・セーフ ○

ISRからの利用 ×

インクルード <unistd.h>

説明 usleep()関数は、usマイクロ秒単位で実行を遅延します。

戻り値 usleep()関数は、成功した場合はゼロ、それ以外は –1を返します。エラーが発生した場合、errnoはエラーの原因を示す値に設定されます。現在の実装は常に成功します。

関連項目 alt_alarm_start()alt_alarm_stop()alt_nticks()alt_sysclk_init()alt_tick()alt_ticks_per_second() gettimeofday()settimeofday()times()

Page 70: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–68 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

wait()

プロトタイプ int wait(int *status)

一般的な呼び出し元 Newlib Cライブラリ

スレッド・セーフ ○

ISRからの利用 ○

インクルード <sys/wait.h>

説明 Newlibは、wait()関数を使用して、すべての子プロセスが終了するのを待ちます。HAL は子プロセスの生成をサポートしていないため、この関数はすぐに復帰します。

戻り値 復帰すると、status の内容はゼロに設定され、子プロセスが存在しないことを示します。

戻り値は常に –1になり、errnoは ECHILDに設定され、待機する子プロセスが存在しないことを示します。

関連項目 Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 71: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 10–692004年 12月 Nios II ソフトウェア開発ハンドブック

HAL APIリファレンス

write()

プロトタイプ int write(int file, const void *ptr, size_t len)

一般的な呼び出し元 C/C++プログラムNewlib Cライブラリ

スレッド・セーフ 説明を参照。

ISRからの利用 ×

インクルード <unistd.h>

説明 write() 関数は、ファイルまたはデバイスにデータのブロックを書き込みます。この関数は、要求を入力のファイル・ディスクリプタ file に関連付けられたデバイス・ドライバに振り分けます。入力引数 ptrは書き込むデータ、lenはデータのバイト長です。

操作対象のドライバが提供する write() の実装がスレッド・セーフである場合のみ、write()呼び出しはスレッド・セーフになります。

fdパラメータに対する有効な値は、STDOUT_FILENO、STDIN_FILENO、および STDERR_FILENO、または open() 呼び出しから返された値です。定数STDOUT_FILENO、STDIN_FILENO、および STDERR_FILENOは、<unistd.h>で定義されています。

戻り値 戻り引数は書き込まれたバイト数ですが、これは要求した長さより短い場合もあります。

戻り値の –1 はエラーを示します。エラーが発生した場合、errno はエラーの原因を示す値に設定されます。

関連項目 close()fstat()ioctl()isatty()lseek()open()read()stat()Newlib の資料。(Windows のスタート・メニューから)プログラム > Altera >Nios II Development Kit > Nios II Documentationの順にクリックしてください。

Page 72: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

10–70 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

標準型 移植性を高めるために、HALは ANSI C組み込み型の代わりに標準型定義のセットを使用しています。表 10–2に、ヘッダ alt_types.hで定義されるこれらの型を示します。

表 10–2.標準型

型 説明

alt_8 符号付 8ビット整数

alt_u8 符号なし 8ビット整数

alt_16 符号付 16ビット整数

alt_u16 符号なし 16ビット整数

alt_32 符号付 32ビット整数

alt_u32 符号なし 32ビット整数

Page 73: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 11–12004年 12月 Preliminary

11. アルテラの開発ツール

はじめにこの章では、アルテラが Nios® IIプロセッサ用に提供するすべての開発ツールを紹介します。これらのツールは、次のカテゴリに分類されます。

■ Nios II統合開発環境(IDE)および関連ツール■ アルテラのコマンドライン・ツール■ GNUコンパイラ・ツール・チェイン■ ライブラリおよびエンベデッド・ソフトウェア・コンポーネント

この章では、これらのツールの詳細な使用方法については説明せず、最適な資料を紹介します。

Nios II IDEツール

表 11–1は、Nios II IDEユーザ・インタフェースで提供されるツールを説明しています。

表 11–1. Nios II IDEおよび関連ツール (1 /2 )

ツール 機能説明

Nios II IDE Nios II IDEは Nios IIプロセッサ用ソフトウェア開発ユーザ・インタフェースです。プログラムの編集、構築、デバッグなど、すべてのソフトウェア開発作業を IDE内で行うことができます。詳細については、Nios II IDEオンライン・ヘルプ・システムを参照してください。

Flash Programmer Nios II IDEには、ターゲット・ボード上のフラッシュ・メモリ・チップのプログラミングを可能にする Flash Programmerユーティリティが用意されています。Flash Programmerは、アルテラの開発ボードやユーザ独自のカスタム・ボードを含むあらゆるボード上のフラッシュのプログラミングをサポートします。Flash Programmer は、フラッシュに以下のコードやデータを簡単にプログラミングできます。

● 実行可能コードおよびデータ● フラッシュから RAMにコードをコピーし、RAMから実行するためのブートストラップ・コード

● HALファイル・サブシステム● FPGAハードウェア・コンフィギュレーション・データ詳細については、「Nios II Flash Programmer User Guide」を参照してください。

NII520011-1.1

myoshida
Text Box
この資料は、更新された最新の英語版が存在します。こちらの日本語版は参考用としてご利用下さい。 設計の際は、必ず最新の英語版で内容をご確認下さい。
Page 74: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

11–2 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

アルテラのコマンドライン・ツール

アルテラのコマンドライン・ツール

ここでは、アルテラが提供するコマンドライン・ツールについて説明します。これらのツールを Nios II Software Development Kit (SDK) Shellコマンド・プロンプトから実行して、例えばコンパイル作業を自動化するためのスクリプトを書くことができます。アルテラのコマンドライン・ツールは、<Nios II インストール・パス >/bin/ ディレクトリに格納されています。

各ツールは、コマンドラインからアクセスできるヘルプ・ページ形式の独自の資料を提供します。ヘルプを表示するには、Nios II SDK Shellを開いて、以下のコマンドを入力します。

<ツール名 > --help

表 11–2に、Nios II IDEグラフィカル・ユーザ・インタフェース(GUI)を起動せずにNios II IDEプロジェクトの作成とビルドを行うコマンドライン・ユーティリティを示します。これらのユーティリティによって、コマンドライン・スクリプトを使用してNios II IDEの処理を自動化できます。例えば、これらのユーティリティを利用すると、スクリプトでソース・コントロールからNios II IDEプロジェクトを点検し、プロジェクトをNios II IDEのワークスペースにインポートして、プロジェクトをビルドすることができます。

これらのユーティリティのそれぞれが GUIを表示せずに、バックグラウンドでNios II IDEを起動します。一度にアクティブにできる Nios II IDEのインスタンスは 1つに限られるため、IDEが動作している間はこれらのユーティリティを使用できません。

インストラクション・セット・シミュレータ

アルテラは Nios IIプロセッサ用インストラクション・セット・シミュレータ(ISS)を提供します。ISSは Nios II IDE内で使用でき、ISSでのプログラムの実行およびデバッグ・プロセスは、ターゲット・ハードウェア上での実行およびデバッグ・プロセスと同じです。詳細については、Nios II IDEオンライン・ヘルプ・システムを参照してください。

Quartus IIプログラマ

Quartus IIプログラマは、Quartus IIソフトウェアの一部ですが Nios II IDEから直接起動できます。Quartus II プログラマを使用して、新しい FPGA コンフィギュレーション・ファイルをボードにダウンロードすることができます。詳細については、Nios II IDEオンライン・ヘルプ・システムを参照するか、または Quartus IIプログラマが開いているときに [F1]キーを押してください。

表 11–1. Nios II IDEおよび関連ツール (2 /2 )

ツール 機能説明

Page 75: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 11–32004年 12月 Nios II ソフトウェア開発ハンドブック

アルテラの開発ツール

表 11–3 に、Nios II プログラム開発用にアルテラが提供するその他のコマンドライン・ツールを示します。

表 11–2. Nios II IDEコマンドライン・ツール

ツール 機能説明

nios2-create-system-library 新しいシステム・ライブラリ・プロジェクトを作成します。

nios2-create-application-project 新しいC/C++アプリケーション・プロジェクトを作成します。

nios2-build-project Nios II IDE managed-make機能を使用して、プロジェクトをビルドします。makefileを作成または更新してプロジェクトをビルドし、任意にmakeを実行します。nios2-build-projectは、現在のNios II IDEのワークスペースに存在するプロジェクト上でのみ動作します。

nios2-import-project 以前に作成した Nios II IDE プロジェクトを現在のワークスペースにインポートします。

nios2-delete-project Nios II IDEのワークスペースからプロジェクトを削除し、任意にファイル・システムからファイルを削除します。

表 11–3.アルテラのコマンドライン・ツール

ツール 機能説明

nios2-download デバッグまたは実行のために、ターゲット・プロセッサにコードをダウンロードします。

nios2-flash-programmer ターゲット・ボード上のフラッシュ・メモリにデータをプログラムします。

nios2-gdb-server ターゲットの Nios II プロセッサを使用し、TCP 経由で GNU デバッガ(GDB)リモート・シリアル・プロトコル・パケットを JTAG(Joint TestAction Group)トランザクションに変換します。

nios2-terminal Nios IIシステムの JTAG UART(Universal Asynchronous Receiver/Transmitter)で端末 I/Oを実行します。

validate_zip 指定された zipファイルが、アルテラのリード・オンリ zipファイル・システムと互換性があるかどうかを検証します。

Page 76: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

11–4 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

アルテラのコマンドライン・ツール

あるユーティリティから別のユーティリティにデータを渡すときに、ファイル・フォーマットの変換が必要になる場合があります。表 11–4に、ファイル・フォーマットを変換するためのアルテラが提供するユーティリティを示します。

表 11–5に、第 1 世代の Niosプロセッサ SDK およびツール・フローとの下位互換性をサポートする、アルテラのツールを示します。

詳細については、「 AN 350: Upgrading Nios Processor Systems to theNios II Processor」を参照してください。

表 11–4.ファイル変換ユーティリティ

ユーティリティ 機能説明

bin2flash バイナリ・ファイルをフラッシュ・メモリにプログラムするために、.flashファイルに変換します。

elf2dat .elf 実行可能ファイル・フォーマットを、Verilog HDL ハードウェア・シミュレータに適した .datファイル・フォーマットに変換します。

elf2flash .elf実行可能ファイルをフラッシュ・メモリにプログラムするために、.flash ファイルに変換します。

elf2hex .elf実行可能ファイルを Intel .hexファイル・フォーマットに変換します。

elf2mem 特定の Nios IIシステム内のメモリ・デバイス用のメモリ内容を生成します。

elf2mif .elf実行可能ファイルを Quartus IIメモリ初期化ファイル (.mif)フォーマットに変換します。

flash2dat .flash ファイルを、Verilog HDL ハードウェア・シミュレータに適した .dat ファイル・フォーマットに変換します。

mk-nios2-signaltap-mnemonic-table

.elfファイルと SOPC Builderのシステム・ファイル (.ptf)を取り込み、Nios II命令のニーモニック・テーブルとアルテラの SignalTap® II ロジック・アナライザ用のシンボルを含む .stpファイルを作成します。

sof2flash FPGAのコンフィギュレーション・ファイル(.sof)を、フラッシュ・メモリにプログラムするための .flashファイルに変換します。

表 11–5.下位互換性サポート・ツール (1 /2 )

ツール 機能説明

nios2-build レガシー SDK ライブラリに基づき、ソフトウェア・プロジェクトをコンパイルおよびリンクします。

nios2-run プログラムを Nios IIプロセッサにダウンロードし、プログラムに対して端末 I/Oを実行します。

Page 77: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 11–52004年 12月 Nios II ソフトウェア開発ハンドブック

アルテラの開発ツール

GNUコンパイラ・ツール・チェイン

アルテラはNios IIプロセッサ用標準 GNUコンパイラ・ツール・チェインを提供し、サポートしています。GNUツールに関する HTMLの資料一式は、Nios IIインストール・ディレクトリにあります。GNUツールは、<Nios IIインストール・パス >/bin/nios2-gnutoolsディレクトリに格納されています。

Nios IIプロセッサ用 GNUツールの名前は、一般にnios2-elf-<ツール名 >になります。以下にいくつかの例を示します。

■ nios2-elf-gcc■ make■ nios2-elf-as■ nios2-elf-ld■ nios2-elf-objdump■ nios2-elf-size

完全なリストについては、GNU HTMLの資料を参照してください。

ライブラリおよびエンベデッド・ソフトウェア・コンポーネント

表 11–6 に、Nios II 開発キット・ライブラリとソフトウェア・コンポーネントを示します。

nios2-debug プログラムを Nios IIプロセッサにダウンロードし、Insightデバッガを起動します。

nios2-console FS2コマンドライン・インタフェース(CLI)を開いて、Nios IIプロセッサに接続し、コードをダウンロードします(オプション)。

表 11–5.下位互換性サポート・ツール (2 /2 )

ツール 機能説明

表 11–6.開発キット・ライブラリおよびソフトウェア・コンポーネント (1 /2 )

名称 概要

HAL(Hardware Abstraction Layer)システム・ライブラリ

3–1ページの「HALシステム・ライブラリの概要」を参照してください。

MicroC/OS-II RTOS 8–1ページの「MicroC/OS-IIリアルタイム・オペレーティング・システム」を参照してください。

Lightweight IP TCP/IPスタック 9–1ページの「イーサネットと Lightweight IP」を参照してください。

Page 78: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

11–6 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 12月

ライブラリおよびエンベデッド・ソフトウェア・コンポーネント

Newlib ANSI C標準ライブラリ 3–1 ページの「HAL システム・ライブラリの概要」を参照してください。Newlib に関する HTML の資料一式は、Nios II インストール・ディレクトリにあります。

リード・オンリ zip ファイル・システム

12–1ページの「リード・オンリ zipファイル・システム」を参照してください。

デザイン例 Nios II開発キットでは、Nios IIプロセッサと開発環境の優れた特長を実証できるように、ソフトウェア事例が用意されています。

表 11–6.開発キット・ライブラリおよびソフトウェア・コンポーネント (2 /2 )

名称 概要

Page 79: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 12–12004年 5月 Preliminary

12. リード・オンリ zipファイル・システム

はじめに アルテラは、HAL ( Hardware Abstraction Layer)システム・ライブラリで使用するリード・オンリ(読み取り専用)zip ファイル・システムを提供します。リード・オンリ zip ファイル・システムは、フラッシュ・メモリに格納されたシンプルなファイル・システムへのアクセスを提供します。このドライバは、ファイル・サブシステム用の HAL 汎用デバイス・ドライバ・フレームワークを利用しています。したがって、fopen()やfread()などのANSI C標準ライブラリI/O関数を使用して、zipファイル・サブシステムにアクセスすることができます。

アルテラのリード・オンリ zipファイル・システムは、Nios II統合開発環境(IDE)で使用するソフトウェア・コンポーネントとして提供されます。HALドライバ用のソース・ファイルおよびヘッダ・ファイルはすべて、<Nios IIインストール・パス >/components/altera_ro_zipfs/HAL/ディレクトリに置かれます。

プロジェクトでのzipファイル・システムの使用

リード・オンリ zipファイル・システムは、Nios II IDEユーザ・インタフェースでサポートされています。ファイル・システム使用に際して、ソース・コードの編集をする必要はありません。zip ファイル・システムを使用するには、Nios II IDEグラフィカル・ユーザ・インタフェース(GUI)を使用して、zip ファイル・システムをシステム・ライブラリ・プロジェクトのソフトウェア・コンポーネントとして指定します。

以下の 4つのパラメータを指定して、ファイル・システムをコンフィギュレーションする必要があります。

■ ファイリング・システムをプログラムするフラッシュ・デバイスの名前■ このフラッシュのオフセット■ HAL ファイル・システム内のこのファイル・サブシステムのマウント・ポイントの名前。例えば、マウント・ポイントの名前が /mnt/zipfsの場合、HALベースのプログラム内から呼び出された以下のコードが zipファイル内で hello ファイルを開きます。 fopen(“/mnt/zipfs/hello”, “r”)

■ 使用する zipファイルの名前。Nios II IDEシステム・ライブラリ・プロジェクトに zipファイルをインポートした後、その zipファイル名を指定することができます。

NII520012-1.0

myoshida
Text Box
この資料は、更新された最新の英語版が存在します。こちらの日本語版は参考用としてご利用下さい。 設計の際は、必ず最新の英語版で内容をご確認下さい。
Page 80: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

12–2 Altera CorporationNios II ソフトウェア開発ハンドブック 2004年 5月

プロジェクトでの zipファイル・システムの使用

インポートの詳細については、Nios II IDEオンライン・ヘルプを参照してください。

これらの設定を行った後、次にプロジェクトをビルドするときに、Nios II IDEはファイル・サブシステムをプロジェクトに取り込んでリンクします。ビルド後、system.h ファイルへ、このソフトウェア・コンポーネントの存在がシステムに反映されます。

zipファイルの準備zip ファイルは非圧縮ファイルでなければなりません。アルテラのリード・オンリ zip ファイル・システムは、複数のファイルをバンドルする目的にのみ zip フォーマットを使用しており、zip ユーティリティで有名なファイル解凍機能は提供していません。

非圧縮の zip ファイルの作成は、WinZip GUI を使用すれば簡単です。あるいは、コマンドラインから winzipまたは pkzipを使用するときに、-e0オプションを使用して圧縮を無効にします。

フラッシュへの zipファイルのプログラミングプログラムで zip ファイル・サブシステム内のファイルにアクセスするには、まず zip データをフラッシュにプログラムする必要があります。Nios II IDEは、プロジェクト・ビルドの過程で、zipファイル・システム用のデータを含む .flashファイルを作成します。このファイルは、プロジェクトの Releaseディレクトリにあります。

これで、Nios II IDE Flash Programmerを使用して、zipファイル・システムのデータをボード上のフラッシュ・メモリにプログラムすることができます。

フラッシュへのプログラミングの詳細については、「Nios II FlashProgrammer User Guide」を参照してください。

Page 81: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 索引 –1Preliminary

索引

_exit() 4–30, 10–2_irq_entry 6–3_rename() 10–3

Aalt_alarm_start() 10–4alt_alarm_stop() 10–5alt_dcache_flush() 10–6alt_dcache_flush_all() 10–7alt_dev_reg() 10–8alt_dma_rxchan_close() 10–9alt_dma_rxchan_depth() 10–10alt_dma_rxchan_ioctl() 10–11alt_dma_rxchan_open() 10–13alt_dma_rxchan_prepare() 10–14alt_dma_rxchan_reg() 10–15alt_dma_txchan_close() 10–16alt_dma_txchan_ioctl() 10–17alt_dma_txchan_open() 10–18alt_dma_txchan_reg() 10–19alt_dma_txchan_send() 10–20alt_dma_txchan_space() 10–21alt_erase_flash_block() 10–22alt_flash_close_dev() 10–23alt_flash_open_dev() 10–24alt_fs_reg() 10–25alt_get_flash_info() 10–26alt_icache_flush() 10–27alt_icache_flush_all() 10–28alt_irq_disable_all() 10–29alt_irq_enable_all() 10–30alt_irq_enabled() 10–31alt_irq_handler() 6–3alt_irq_register() 6–7, 10–32alt_irq_register()を使用した ISRの登録 6–7alt_llist_insert() 10–33alt_llist_remove() 10–34alt_lwip_dev_list 5–15alt_nticks() 10–35alt_read_flash() 10–36

alt_remap_cached() 10–37alt_remap_uncached 10–38alt_sysclk_init() 10–39alt_tick() 10–40alt_ticks_per_second() 10–41alt_timestamp() 10–42alt_timestamp_freq() 10–43alt_timestamp_start() 10–44alt_uncached_free() 10–45alt_uncached_malloc() 10–46alt_write_flash() 10–47alt_write_flash_block() 10–48

Cclose() 10–49Cの例 6–11

Ddev/null 4–27DMA受信チャネル 4–23, 5–13DMA送信チャネル 4–21, 5–12DMAデバイス

DMA受信チャネル 4–23DMA送信チャネル 4–21HALを使用したプログラムの開発 4–20メモリ間 DMA転送 4–24

DMAデバイス・ドライバ 5–11DMAデバイスの使用

HALを使用したプログラムの開発 4–20

Eexecve() 10–50

Ffork() 10–51fstat() 10–52

Page 82: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

索引 –2 Altera CorporationPreliminary

Nios II ソフトウェア開発ハンドブック

Gget_ip_addr() 9–7get_mac_addr() 9–7getpid() 10–53gettimeofday() 10–54GNU tool chainツール 1–2

GNUコンパイラ・ツール・チェインアルテラ提供の開発ツール 11–5

HHAL API統合 5–1HAL APIへの統合 5–1HAL APIリファレンス

_exit() 10–2_rename() 10–3alt_alarm_start() 10–4alt_alarm_stop() 10–5alt_dcache_flush() 10–6alt_dcache_flush_all() 10–7alt_dev_reg() 10–8alt_dma_rxchan_close() 10–9alt_dma_rxchan_depth() 10–10alt_dma_rxchan_ioctl() 10–11alt_dma_rxchan_open() 10–13alt_dma_rxchan_prepare() 10–14alt_dma_rxchan_reg() 10–15alt_dma_txchan_close() 10–16alt_dma_txchan_ioctl() 10–17alt_dma_txchan_open() 10–18alt_dma_txchan_reg() 10–19alt_dma_txchan_send() 10–20alt_dma_txchan_space() 10–21alt_erase_flash_block() 10–22alt_flash_close_dev() 10–23alt_flash_open_dev() 10–24alt_fs_reg() 10–25alt_get_flash_info() 10–26alt_icache_flush() 10–27alt_icache_flush_all() 10–28alt_irq_disable_all() 10–29alt_irq_enable_all() 10–30alt_irq_enabled() 10–31alt_irq_register() 10–32alt_llist_insert() 10–33alt_llist_remove() 10–34

alt_nticks() 10–35alt_read_flash() 10–36alt_remap_cached() 10–37alt_remap_uncached() 10–38alt_sysclk_init 10–39alt_tick() 10–40alt_ticks_per_second() 10–41alt_timestamp() 10–42alt_timestamp_freq() 10–43alt_timestamp_start() 10–44alt_uncached_free() 10–45alt_uncached_malloc() 10–46alt_write_flash() 10–47alt_write_flash_block() 10–48close() 10–49execve() 10–50fork() 10–51fstat() 10–52getpid() 10–53gettimeofday() 10–54ioctl() 10–55isatty() 10–56kill() 10–57link() 10–58lseek() 10–59open() 10–60read() 10–61sbrk() 10–62settimeofday() 10–63stat() 10–64times() 10–65unlink() 10–66usleep() 10–67wait() 10–68write() 10–69はじめに 10–1標準型 10–70

HALsystem.hを使用したプログラムの開発 4–3

HALアーキテクチャHALシステム・ライブラリの概要 3–2newlib 3–5サービス 3–2

HAL関数 - 置き換え 4–38HAL関数の置き換え 4–38HAL型の定義

HALを使用したプログラムの開発 4–4

Page 83: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 索引 –3Preliminary

HALシステム・クロック 4–10HALシステム・ライブラリ・ユーザマルチ・マスタ /マルチ CPUシステムでの

キャッシュの管理 7–8HALシステム・ライブラリツール 1–3

HALシステム・ライブラリの概要HALアーキテクチャ 3–2サポートされているペリフェラル 3–6はじめに 3–1

HALシステム・ライブラリ・ファイルHALを使用したプログラムの開発 4–38

HALシステム・ライブラリ・ファイルへのパス

HAL関数の置き換え 4–38HALファイルの格納場所 4–38HALを使用したプログラムの開発 4–38

HALシステム・ライブラリ・ユーザデバイス・ドライバの記述 7–5プログラム・ローダの記述 7–6リセット後のキャッシュの初期化 7–4

HAL実装_irq_entry 6–3alt_irq_handler() 6–3software_exception 6–4例外処理 6–2

HALデバイス・クラス・ドライバDMAデバイス・ドライバ 5–11イーサネット・デバイス・ドライバ 5–14キャラクタ・モード・デバイス・

ドライバ 5–5タイマ・デバイス・ドライバ 5–9ファイル・サブシステム・ドライバ 5–8フラッシュ・デバイス・ドライバ 5–10

HALデバイス・クラス用ドライバの作成HAL用デバイス・ドライバの開発 5–5

HALデバイス・ディレクトリ構造 5–17HALデバイス・ドライバ・ファイル 5–17HAL標準型 10–70HALファイルの格納場所 4–38HALへのデバイス・ドライバの統合

HAL用デバイス・ドライバの開発 5–17HAL用デバイス・ドライバ・

ファイル 5–17要約 5–21

HALベース・プログラムのブート・シーケンス 4–32

HAL用デバイス・ドライバの開発HALデバイス・クラス用ドライバの

作成 5–5HALへのデバイス・ドライバの統合 5–17SOPC Builderの概念 5–3デバイス・ドライバ作成の開発フロー 5–2デフォルト・デバイス・ドライバの

置き換え 5–23ドライバ・フットプリントの削減 5–22ネーム空間の割り当て 5–22ハードウェアへのアクセス 5–3はじめに 5–1

HAL用デバイス・ドライバ・ファイル 5–17HALを使用したプログラムの開発

DMAデバイス 4–20DMAデバイスの使用 4–20HAL型の定義 4–4HALシステム・ライブラリ・

ファイル 4–38HALシステム・ライブラリ・ファイルへの

パス 4–38Nios Ⅱ IDEプロジェクト構造 4–1UNIX形式のインタフェース 4–5エントリ・ポイント 4–31キャラクタ・モード・デバイス 4–7キャラクタ・モード・デバイスの使用 4–7コード・フットプリント 4–26コード・フットプリントの削減 4–26システム記述ファイル 4–3タイマ・デバイス 4–10タイマ・デバイスの使用 4–10データ幅 4–4はじめに 4–1ファイル・サブシステム 4–9ファイル・サブシステムの使用 4–9ファイル・システム 4–6フラッシュ・デバイス 4–14フラッシュ・デバイスの使用 4–14ブート・シーケンス 4–31メモリの使用 4–34

Iinit_done_func() 9–5init_routine() 5–15ioctl() 10–55isatty() 10–56

Page 84: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

索引 –4 Altera CorporationPreliminary

Nios II ソフトウェア開発ハンドブック

ISRCの例 6–11ISRのイネーブル 6–10ISRの記述 6–8ISRのディセーブル 6–10ISRの登録 6–7ISR用HAL API 6–7例外処理 6–6

ISR記述に関する提案例外処理 6–15

ISRのイネーブル 6–10ISRの記述 6–8ISRの性能データ例外処理 6–13

ISRのディセーブル 6–10ISR用HAL API 6–7ISRを使用したデバッグ例外処理 6–14

Kkill() 10–57

LLightweight IP

ARPオプション 9–12DHCPオプション 9–12IPオプション 9–11Lightweight TCP/IPスタックの一般的な

設定 9–11Nios IIポート 9–1TCPオプション 9–12UDPオプション 9–12ファイル 9–2メモリ・オプション 9–13

Lightweight IPのNios IIポート 9–1link() 10–58linkoutput() 5–16lseek() 10–59lwip_devices_init() 9–7lwip_stack_init() 9–5LWIPプロトコル・スタックの使用イーサネットと Lightweight IP 9–3

MMicroC/OS-II リアルタイム・

オペレーティング・システムアルテラによるMicroC/OS-IIの移植 8–2Newlib ANSI C標準ライブラリ 8–6Nios II IDEでのプロジェクトの実装 8–7アーキテクチャ 8–3一般オプション 8–8イベント・フラグ 8–8キューの設定 8–10時間管理の設定 8–12スレッド対応デバッグ 8–3セマフォの設定 8–9相互排除の設定 8–9その他の RTOSプロバイダ 8–2その他の情報 8–1その他の設定 8–11タスク管理の設定 8–12デバイス・ドライバ 8–4はじめに 8–1メールボックスの設定 8–10メモリ管理の設定 8–11ライセンス 8–2

MicroC/OS-IIリアルタイム・オペレーティング・システム

概要 8–1

NNewlib ANSI C標準ライブラリ

MicroC/OS-II リアルタイム・オペレーティング・システム 8–6

Newlib Cライブラリ 4–28Nios II IDEツール 1–2

Nios II IDEツアーアルテラ提供の開発ツール 11–1

Nios II IDEでの LWIPのコンフィギュレーション

イーサネットと Lightweight IP 9–10Nios II IDEでのMicroC/OS-IIプロジェクトの

実装 8–7Nios II IDEワークベンチ

Nios Ⅱ IDEの紹介 2–1エディタ 2–2パースペクティブ 2–2ビュー 2–2

Page 85: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 索引 –5Preliminary

Nios IIのキャッシュ実装 7–1Nios II例外の概要例外処理 6–1

Nios Ⅱ IDEの紹介Nios II IDEワークベンチ 2–1オンライン・ヘルプ 2–10新規プロジェクトの作成 2–2はじめに 2–1フラッシュのプログラミング 2–9プログラムの実行とデバッグ 2–6プロジェクトの構築と管理 2–4

Nios Ⅱ IDEプロジェクト構造HALを使用したプログラムの開発 4–1

Oopen() 10–60output() 5–16

Rread() 10–61RTOSおよび TCP/IPスタックツール 1–3

rx_routine() 5–16

Ssbrk() 10–62settimeofday() 10–63software_exception 6–4SOPC Builderと system.hの関係 5–3SOPC Builderの概念

HAL用デバイス・ドライバの開発 5–3最適ハードウェア・

コンフィギュレーション 5–3SOPCの概念コンポーネント、ドライバおよび

ペリフェラル 5–3stat() 10–64stderr 4–8stdin 4–8stdout 4–8system.h

HALを使用したプログラムの開発 4–3system.hと SOPC Builderの関係 5–3

Ttimes() 10–65

UUNIX形式のインタフェース

HALを使用したプログラムの開発 4–5unlink() 10–66usleep() 10–67

Wwait() 10–68write() 10–69

Zzipファイルの準備リード・オンリ zipファイリング・

システム 12–2zipファイルのプログラミングリード・オンリ zipファイリング・

システム 12–2

あアーキテクチャ

MicroC/OS-II リアルタイム・オペレーティング・システム 8–3

アラーム 4–11アルテラ提供の開発ツール

GNUコンパイラ・ツール・チェイン 11–5Nios II IDEツアー 11–1アルテラのコマンドライン・ツール 11–2エンベデッド・ソフトウェア・

コンポーネント 11–5はじめに 11–1ライブラリ 11–5

アルテラによるMicroC/OS-IIの移植MicroC/OS-II リアルタイム・

オペレーティング・システム 8–2アルテラのコマンドライン・ツールアルテラ提供の開発ツール 11–2

Page 86: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

索引 –6 Altera CorporationPreliminary

Nios II ソフトウェア開発ハンドブック

いイーサネット・デバイス・ドライバ 5–14

alt_lwip_dev_list 5–15init_routine() 5–15linkoutput() 5–16output() 5–16rx_routine() 5–16

イーサネットと Lightweight IPLWIPのNios IIポート 9–1LWIPファイル 9–2LWIPプロトコル・スタックの使用 9–3Nios II IDEでの LWIPの

コンフィギュレーション 9–10確認されている制限事項 9–13システム要件 9–4スタックの初期化 9–5その他の TCP/IPスタック・

プロバイダ 9–3はじめに 9–1ライセンス 9–3

一般オプションMicroC/OS-II リアルタイム・

オペレーティング・システム 8–8イベント・フラグ

MicroC/OS-II リアルタイム・オペレーティング・システム 8–8

インストラクション・セット・シミュレータツール 1–2

えエントリ・ポイントブート・シーケンスのカスタマイズ 4–33HALを使用したプログラムの開発 4–31独立型アプリケーション 4–31ホスト型アプリケーション 4–31

エンベデッド・ソフトウェア・コンポーネントアルテラ提供の開発ツール 11–5

おオンライン・ヘルプ

Nios Ⅱ IDEの紹介 2–10

か開発環境概要 1–2

確認されている制限事項イーサネットと Lightweight IP 9–13

概要MicroC/OS-IIリアルタイム・

オペレーティング・システム 8–1Nios Ⅱに関するその他の情報 1–5開発環境 1–2サードパーティ・サポート 1–4第 1世代のNiosプロセッサ・ユーザ 1–4入門 1–1はじめに 1–1

きキャッシュ管理用 HAL API関数 7–2キャッシュ実装 7–1キャッシュの管理 7–2キャッシュ・メモリ

Nios IIのキャッシュ実装 7–1キャッシュ管理用 HAL API関数 7–2デバイス・ドライバの記述 7–4はじめに 7–1プログラム・ローダまたは

自己書き換えコードの記述 7–6マルチ・マスタ /マルチ CPUシステムでの

キャッシュの管理 7–7リセット後のキャッシュの初期化 7–3

キャラクタ・モード・デバイスC++ストリーム 4–9dev/null 4–9HALを使用したプログラムの開発 4–7アクセス 4–8標準入力、標準出力、標準エラー 4–8

キャラクタ・モード・デバイス・ドライバ 5–5

作成 5–5登録 5–7

キャラクタ・モード・デバイスの使用HALを使用したプログラムの開発 4–7

キューの設定MicroC/OS-II リアルタイム・

オペレーティング・システム 8–10

Page 87: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 索引 –7Preliminary

こ高精度時間測定 4–12高精度フラッシュ・アクセス 4–18高速 ISR処理例外処理 6–12

コード・フットプリント_exit() 4–30dev/null 4–27HALを使用したプログラムの開発 4–26Newlib Cライブラリ 4–28スモール・フットプリント・デバイス・

ドライバ 4–26ファイル記述子プール 4–27未使用デバイス・ドライバ 4–30

コード・フットプリントの削減HALを使用したプログラムの開発 4–26

さサードパーティ・サポート概要 1–4

最適ハードウェア・コンフィギュレーション 5–3

サポートされているペリフェラルHALシステム・ライブラリの概要 3–6

しシステム記述ファイル

HALを使用したプログラムの開発 4–3システム・クロック・ドライバ 5–9システム要件

Lightweight IP 9–4使用開始にあたって

HALシステム・ライブラリの概要 3–1新規プロジェクトの作成

Nios Ⅱ IDEの紹介 2–2シンプル・フラッシュ・アクセス 4–15時間管理の設定

MicroC/OS-II リアルタイム・オペレーティング・システム 8–12

自己書き換えコードの記述HALシステム・ライブラリ・ユーザ 7–6

すスタックの初期化

Lightweight IP 9–5スタックの配置 4–37スモール・フットプリント・デバイス・

ドライバ 4–26スレッド対応デバッグ

MicroC/OS-II リアルタイム・オペレーティング・システム 8–3

せセマフォの設定

MicroC/OS-II リアルタイム・オペレーティング・システム 8–9

そ相互排除の設定

MicroC/OS-II リアルタイム・オペレーティング・システム 8–9

その他の RTOSプロバイダMicroC/OS-II リアルタイム・

オペレーティング・システム 8–2その他の情報

MicroC/OS-II リアルタイム・オペレーティング・システム 8–1

Nios Ⅱ 1–5その他の設定

MicroC/OS-II リアルタイム・オペレーティング・システム 8–11

その他の TCP/IPスタック・プロバイダイーサネットと Lightweight IP 9–3

たタイマ・デバイス

HALシステム・クロック 4–10HALを使用したプログラムの開発 4–10アラーム 4–11高精度時間測定 4–12

タイマ・デバイス・ドライバ 5–9システム・クロック・ドライバ 5–9タイムスタンプ・ドライバ 5–9

タイマ・デバイスの使用HALを使用したプログラムの開発 4–10

タイムスタンプ・ドライバ 5–9

Page 88: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

索引 –8 Altera CorporationPreliminary

Nios II ソフトウェア開発ハンドブック

タスク管理の設定MicroC/OS-II リアルタイム・

オペレーティング・システム 8–12第 1世代のNiosプロセッサ・ユーザ概要 1–4

つツール 1–2

GNU tool chain 1–2HALシステム・ライブラリ 1–3Nios II IDE 1–2RTOSおよび TCP/IPスタック 1–3インストラクション・セット・

シミュレータ 1–2

てデータ幅

HALを使用したプログラムの開発 4–4デバイス・ドライバ

MicroC/OS-II リアルタイム・オペレーティング・システム 8–4

デバイス・ドライバ作成の開発フローHAL用デバイス・ドライバの開発 5–2

デバイス・ドライバの記述HALシステム・ライブラリ・ユーザ 7–5キャッシュ・メモリ 7–4

デフォルト・デバイス・ドライバの置き換えHAL用デバイス・ドライバの開発 5–23

と独立型アプリケーション 4–31ドライバ・フットプリントの削減

HAL用デバイス・ドライバの開発 5–22

に入門概要 1–1

ねネーム空間の割り当て

HAL用デバイス・ドライバの開発 5–22

はハードウェアへのアクセス

HAL用デバイス・ドライバの開発 5–3はじめに

HAL APIリファレンス 10–1HALシステム・ライブラリの概要 3–1HAL用デバイス・ドライバの開発 5–1HALを使用したプログラムの開発 4–1MicroC/OS-II リアルタイム・

オペレーティング・システム 8–1Nios Ⅱ IDEの紹介 2–1アルテラ提供の開発ツール 11–1イーサネットと Lightweight IP 9–1概要 1–1キャッシュ・メモリ 7–1リード・オンリ zipファイリング・

システム 12–1例外処理 6–1

破壊 4–17

ひヒープの配置 4–37必要な知識

HAL用デバイス・ドライバの開発 5–2標準エラー 4–8標準出力 4–8標準入力 4–8

ふファイル記述子プール 4–27ファイル・サブシステム

HALを使用したプログラムの開発 4–9ファイル・サブシステム・ドライバ 5–8作成 5–8登録 5–8

ファイル・サブシステムの使用HALを使用したプログラムの開発 4–9

ファイル・システムHALを使用したプログラムの開発 4–6

フラッシュ・デバイスHALを使用したプログラムの開発 4–14高精度フラッシュ・アクセス 4–18シンプル・フラッシュ・アクセス 4–15破壊 4–17ブロックの消去 4–17

Page 89: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

Altera Corporation 索引 –9Preliminary

フラッシュ・デバイス・ドライバ 5–10作成 5–10登録 5–11

フラッシュ・デバイスの使用HALを使用したプログラムの開発 4–14

フラッシュのプログラミングNios Ⅱ IDEの紹介 2–9

ブート・シーケンス 4–32HALを使用したプログラムの開発 4–31独立型アプリケーション 4–31ブート・シーケンスのカスタマイズ 4–33ホスト型アプリケーション 4–31

ブート・シーケンスのカスタマイズ 4–33ブート・モード 4–37ブロックの消去 4–17プログラムの実行とデバッグ

Nios Ⅱ IDEの紹介 2–6プログラム・ローダの記述

HALシステム・ライブラリ・ユーザ 7–6プログラム・ローダまたは

自己書き換えコードの記述キャッシュ・メモリ 7–6

プロジェクトでの zipファイル・システムの使用

リード・オンリ zipファイリング・システム 12–1

プロジェクトの構築と管理Nios Ⅱ IDEの紹介 2–4

へペリフェラル固有の API 5–2

ほホスト型アプリケーション 4–31

まマルチ・マスタ /マルチ CPUシステムでの

キャッシュの管理HALシステム・ライブラリ・ユーザ 7–8キャッシュ・メモリ 7–7

み未使用デバイス・ドライバ 4–30

めメールボックスの設定

MicroC/OS-II リアルタイム・オペレーティング・システム 8–10

メモリ間 DMA転送 4–24メモリ管理の設定

MicroC/OS-II リアルタイム・オペレーティング・システム 8–11

メモリ・セクション 4–34メモリの使用

HALを使用したプログラムの開発 4–34スタックの配置 4–37ヒープの配置 4–37ブート・モード 4–37メモリ・セクション 4–34メモリ・パーティションへのコードと

データの割り当て 4–35メモリ・パーティションへのコードと

データの割り当て 4–35

らライセンス

Lightweight IP 9–3MicroC/OS-II リアルタイム・

オペレーティング・システム 8–2ライブラリアルテラ提供の開発ツール 11–5

りリード・オンリ zipファイリング・システム

zipファイルのプログラミング 12–2プロジェクトでの zipファイル・システムの

使用 12–1zipファイルの準備 12–2はじめに 12–1

リセット後のキャッシュの初期化HALシステム・ライブラリ・ユーザ 7–4キャッシュ・メモリ 7–3

Page 90: Nios II ソフトウェア開発ハンドブック Version 1.2 セクション IV. … · 部からはすべてのNewlib API も利用できることに注意してください。例

索引 –10 Altera CorporationPreliminary

Nios II ソフトウェア開発ハンドブック

れ例外処理

HAL実装 6–2ISR 6–6ISR記述に関する提案 6–15

ISRの性能データ 6–13ISRを使用したデバッグ 6–14Nios II例外の概要 6–1高速 ISR処理 6–12はじめに 6–1