SDLX1100 仕様書 改版 No. 日付 変更箇所 1 2011/3/30 初版 2 2011/5/18 ・FCONFIG の設定項目の追加 Enable Display Display Type Enable Touchscreen ・アプリケーション 最大 ROM サイズの変更 64K → 128K ・アプリケーションの ROM セクションアドレスの変更 0xFFFE8000 → 0xFFFD8000 3 2011/6/27 ・LCD 表示関数の追加 ・MP3 デコード用関数の追加 ・周期実行関数登録の追加 4 2011/7/12 ・イーサネットのリンク確立の注意事項の追加 ・DNS の初期化関数の追加 5 2011/7/21 ・モジュール アクティブ/ストップ 割込み関係、日付・時刻設定の関数の追加 ・J2コネクタのピン配置の追加 ・拡張基板のピン配置の追加 ・mp3、vol、date コマンドの追加 6 7 2011/08/25 2011/09/13 ・malloc で使用可能なメモリの修正 RX62N 最大 72KByte RX63N 最大 102KByte ・メイン基板の USB コネクタに関する注意事項の追加 ・USB キーボートに関する注意事項の追加 ・RX62N でも RTC 使用可能。但し、時計の保持は出来ない。 時計保持をするには、RX63N のオプションで、時計保持用電池を追加する必要がある。 ・コマンド追加、修正 ・関数の追加 8 2011/11/25 ・関数の追加 9 2011/12/1 ・再生可能な MP3 ファイルの条件の追加 10 2011/12/9 ・load コマンドの説明の修正 ・アプリケーションのダウンロードコマンドの修正 11 2012/1/18 ・使用可能な LCD のサイズ等の説明を追加 ・ハードウェア仕様にメモリマップを追加 著作権と免責について Copyright© 2011 SYSTEM DESIGN Co.,Ltd.. この文書の著作権は株式会社システムデザインが保有します。 この文書は「現状のまま(as is)」で提供され、明示的であるかどうかを問わず、内容について保証する ものではありません。 -1- この文書には、技術的な誤り、誤植、不適格な表現や未完成部分等を含む可能性があります。従って、 この文書は予告無しに追加、変更、削除される可能性があります。 -2- ―目次― 1. ハードウエア仕様 2. IO ポート対応表 3. データフラッシュ 4. USB ホスト 5. コマンド一覧 6. アプリケーション 7. API 一覧 8. LCD について 9. 拡張基板のピン配置 10. 再生可能な MP3 ファイルの条件 -3- 1.ハードウエア仕様 電源 5V (消費電流 150mAh 以下) PoE 対応可能(オプション) 基板サイズ 52mm × 33.5mm(突起物含まず) MPU Renesas RX62N or RX63N 動作速度 100MHz メモリ RX62N 使用時 ROM 512KB/RAM 96KB RX63N 使用時 ROM 1MB/RAM 128KB ペリフェラル データフラッシュ 32KB Ethernet 100Base-T USB USB2.0(FullSpeed) Host RS232C 2ch+1ch(無線通信モジュール用 オプション) パラレルポート 36 ポート AD DA 機能有 RTC RX62N でも RTC の使用可能。但し、時計保持は不可。 (RX63N 使用時は、オプションで時計保持用電池の追加可能) SCI0 USB HOST SCI1 Ethernet Renesas RTC RX62N or RX63N (SCI2) 100MHz DC IN AD DA 5V IO ポート オプション 0x00000000 0x00004000 0x00017000 0x007F8000 0xFFF80000 0xFFFD8000 0xFFFF8000 ∼ ∼ ∼ ∼ ∼ ∼ ∼ 0x00003FFF 0x00016FFF 0x00017FFF 0x007F9FFF 0xFFFE7FFF 0xFFFF7FFF 0xFFFFFFFF OS 使用 alloc 使用 OS 使用 FCU RAM 領域 OS 使用 アプリケーション OS 使用 RAM 領域 RAM 領域 RAM 領域 or ROM 領域 格納 ROM 領域 約 76K byte アプリケーション ROM 領域 グローバル変数領域 128K byte -4- 2.IO ポート対応表 J3コネクタ 端子 No ポート名 端子 No ポート名 26 GND 25 PE5/D13/RSPCKB-B/IRQ5 24 PE4/D12/SSLB0-B 23 PE3/D11/POE8# 22 PE2/D10/SSLB3-B/POE9# 21 PE1/D9/SSLB2-B 20 PE0/D8/SSLB1-B 19 PD7/D7/MTIC5U/POE0# 18 PD6/D6/MTIC5V/POE1# 17 PD5/D5/MTIC5W/POE2# 16 PD4/D4/MTIC11U-B/POE3# 15 PD3/D3/MTIC11V-B/POE4# 14 PD2/D2/MTIC11W-B/POE5# 13 PD1/D1/POE6# 12 PD0/D0/POE7# 11 P47/AN7/IRQ15-B 10 P46/AN6/IRQ14 9 P45/AN5/IRQ13-B 8 P44/AN4/IRQ12 7 P43/AN3/IRQ11 6 P42/AN2/IRQ10 5 P41/AN1/IRQ9 4 P40/AN0/IRQ8 3 P07/ADTRG0#-A/IRQ15-A 2 P05/DA1/IRQ13-A 1 P35/NMI J3- 2 ∼ 3 : スピーカアンプ搭載時、使用不可 J3- 4 ∼ 7 : タッチパネル接続時、使用不可 J3-12 ∼ 25 : LCD 有の場合、使用不可 -5- J7コネクタ 端子 No ポート名 端子 No ポート名 1 GND 2 PE6/D14/MOSIB-B/IRQ6-A 3 PE7/D15/MISOB-B/IRQ7 4 PA0/A0/BC0#/PO16/MTIOC6A/SSLA1-B 5 PA1/A1/PO17/MTIOC6B/SSLA2-B 6 PA2/A2/PO18/MTIOC6C/SSLA3-B 7 PA6/A6/PO22/MTIOC8A/MOSIA-B/ET_EXOUT 8 PA7/A7/PO23/MTIOC8B/MISOA-B/ET_WOL 9 P50/WR0#/WR#/TxD2-B/SSLB1-A 10 P51/WR1#/BC1#/WAIT#-D/SCK2/SSLB2-A 11 P52/RD#/RxD2-B/SSLB3-A 12 P53/BCLK 13 P54/MTIOC4B-B 14 USB0_DP 15 USB0_DM 16 P12/TMCI1/RxD2-A/SCL0/IRQ2-B 17 P13/ADTRG1#/PO13/MTIOC0B/TMO3/TxD2-A/SDA0/IRQ3-B 18 P20/PO0/MTIOC1A/TMRI0/TxD0/USB0_ID 19 P21/PO1/MTIOC1B/TMCI0/RxD0/USB0_EXICEN 20 P32/PO10/MTIOC0C/TxD6/CTX0/IRQ2-A/RTCOUT 21 P33/PO11/MTIOC0D/RxD6/CRX0/IRQ3-A 22 12∼24V option 23 電源 5V 24 電源 3.3V 25 外部クロック 26 GND J7- 3 ∼ 6 : 無線通信モジュール使用時、使用不可 J7- 8 : LCD 有の場合、LCD 輝度コントロールに使用 J7-15 : USB HUB IC 搭載時、使用不可 J7-16 : COM0 使用時、RxD2 J7-17 : COM0 使用時、TxD2 J7-18 : COM2 使用時、TxD0(無線通信モジュール専用) J7-19 : COM2 使用時、RxD0(無線通信モジュール専用) J7-20 : COM1 使用時、TxD6。もしくは、COM0 フロー制御有時、RTS J7-21 : COM1 使用時、RxD6。もしくは、COM0 フロー制御有時、CTS J5コネクタ 端子 No ポート名 1 COM1 TxD(但し、COM0 フロー制御有時、RTS) 2 COM1 RxD(但し、COM0 フロー制御有時、CTS) 3 COM0 TxD 4 COM0 RxD 5 GND J2コネクタ 端子 No ポート名 1 EMLE 2 MD1, MD0 3 RES# 4 P34/PO12/MTIOC0A/TMCI3/SCK6/IRQ4-A/TRST# 5 P31/PO9/MTIOC4D-A/TMCI2/SSLB0-A/IRQ1/TMS 6 P30/PO8/MTIOC4B-A/TMRI3/RxD1/MISOB-A/IRQ0/TDI 7 P27/CS7#/PO7/MTIOC2B/SCK1/RSPCKB-A/TCK 8 P26/CS6#/PO6/MTIOC2A/TMO1/TxD1/MOSIB-A/TDO -6- 3.データフラッシュ Renesas RX600 シリーズには、32K byte のデータフラッシュが搭載されている。 データフラッシュ 1block:2K byte で 16 block に分割されている。 データフラッシュ開始アドレス:0x00100000 データフラッシュへの書込み:8byte 単位、もしくは、128byte 単位 データフラッシュの消去:ブロック単位 アドレス 0x00107800 から始まるデータフラッシュ最終ブロックは、IP アドレス、MAC アドレス等の設定保存 領域なので、fconfig コマンド以外で書込みや削除を行わないこと。 3.1.SDLX1100 の設定内容 データフラッシュ最終ブロックには SDLX1100 の設定は以下の設定が保存されている Console BaudRate 0:38400 1:57600 2:115200 : シリアルコンソールの通信速度の設定 Run script at boot : 起動時に実行するかどうかの設定 Boot script : 起動時に実行するスクリプトの設定 Boot script timeout (100ms resolution) : 起動時に実行するスクリプト実行待ち時間の設定 Enable Display : LCD を使用するかどうかの設定 Display Type 0:SG12864A 1:WF57DTIBCDB 2:WG320240CX 3:WG240128B : LCD のタイプの設定 LCD Brightness(0:min-256:max) : LCD の輝度の設定 WF57DTIBCDB output upside-down : WF57DTIBCDB の表示向きの設定 Enable Touchscreen: false : タッチパネルを使用するかどうかの設定 Network hardware address [MAC] for eth0 : MAC アドレスの設定 Use BOOTP for network configuration : DHCP で IP アドレスを取得するかの設定 Local IP address : IP アドレスの設定(固定の場合のみ) Local IP address mask : ネットマスクの設定(固定の場合のみ) Gateway IP address : ゲートウェイの設定(固定の場合のみ) Default server IP address : TFTP サーバの IP アドレスの設定 Default DNS server IP address : DNS サーバの IP アドレスの設定 Use NTP function : NTP サーバから日付・時刻を取得するかの設定 NTP server IP address : NTP サーバのドメイン名 or IP アドレスの設定 NTP get interval(unit:hour)(1:min-100:max) : NTP サーバに日付・時刻を取得する時間間隔 *シリアルコンソールは、COM0(出荷時ボーレートは、38400bps)を使用します。 パソコンとの接続は、クロスのシリアルケーブルを使用してください。 *接続したネットワークの状況によって、SDLX1100 を起動してからイーサネットのリンクの 確立に時間が掛かる場合があります。DHCP での IP アドレスの取得や DNS の初期化は、イーサ ネットのリンクが確立されてから実行されます。 また、リンクが確立する前に、関数 ip_socket でソケットを呼んだ場合、エラー(戻り値=-2) で戻ります。DNS 関連の関数(getaddrinfo 等)も同様にエラーで戻ります。 *DNS 関連を使用するアプリケーションをイーサネットのリンクが確立される前に起動した場合 は、関数 ip_dns_init を使用して DNS の初期化をして下さい。 -7- *LCD を接続する前には、必ず LCD のタイプを確認して下さい。もし、接続しようとしている LCD と設定が異なっている場合は、設定を変更して下さい。 変更をしたら電源を切ってから LCD を接続し、電源を再投入してください。 もし、設定と異なる LCD を接続した場合、不具合の原因となりうる可能性があります。 -8- 4.USB ホスト 接続可能なデバイスは、USB ハブ、USB メモリ、USB キーボード。接続可能なデバイス数は、USB ハブ、USB キー ボードは、1つまで。USB メモリは、最大で4本接続可能です。 USB メモリ :接続すると自動的に認識され、第1パーティションがマウントされます。 遅延書込みは無し。オートアンマウントにも対応。 接続した USB コネクタの位置に従って、 /dev/usbmemA /usb1 /dev/usbmemB /usb2 /dev/usbmemC /usb3 /dev/usbmemD /usb4 にマウントされます。 USB キーボード :接続すると自動認識し、コンソールへの入力が USB キーボードに切替わります。 *多機能拡張ボードを接続している場合、メイン基板の USB コネクタ(J6)の通常使用は出来ません。 USB プロトコルアナライザを接続して USB 通信データ解析の用途には使用可能です。 *USB キーボードのオートアンマウントには対応しておりません。 -9- 5.コマンド一覧 free 現在使用中のメモリと残りのメモリを表示する history 使用したコマンドの履歴を表示する ifconfig 現在の IP アドレス、ネットマスク、ゲートウェイを表示する load [-r] [-v] [-p <TCP port>] [-f <flash_address>] [-b <base_address>] <file_name> TFTP サーバーから指定のファイルをロードする。 -r : RAW データとして扱う -v : verbose モード -p : 使用するポートを指定する(デフォルト:69) -f : TFTP サーバーからロードしたデータの書込み開始アドレスを指定する。 -b : ファイルをロードする開始アドレスを指定する。 -m : ファイルのダウンロード方法を指定する(デフォルト:tftp) < file_name > : TFTP サーバーからロードするファイル名を指定する。 *TFTP サーバからロードする場合、電源投入直後でイーサネットのリンクが完了していない場合 は、エラーとしてコマンドは終了します。 *オプションの m を指定しない場合は、TFTP サーバからダウンロードを行います。 USB メモリからダウンロードする場合は、 -m usb とオプションを指定してください。 mount -d <device> -t <fstype> <mountpoint> ファイルシステムをマウントする。 マウント可能なパーティションは1つ。 オートマウントでは、第1パーティションがマウントされる。 -d : デバイス(パーティション)を指定する 第1パーティション:/dev/usbmemA1 第2パーティション:/dev/usbmemA2 様に指定する。 デバイス名は接続した USB コネクタ位置によって変わります。 /dev/usbmemA /dev/usbmemB /dev/usbmemC /dev/usbmemD -t : ファイルシステムタイプ fatfs のみ使用可能 <mountpoint> : マウントポイントを指定する / を指定する - 10 - umount <mountpoint> ファイルシステムをアンマウントする <mountpoint> : アンマウントするマウントポイントを指定する mkdir <directory> ディレクトリを作成する(USB メモリ内のみ) <directory> : 作成するディレクトリ名を指定する deldir <directory> ディレクトリを削除する(USB メモリ内のみ) <directory> : 削除するディレクトリ名を指定する *ディレクトリ内にファイルやサブディレクトリが有る場合は 削除出来ない。 del <file> ファイルを削除する(USB メモリ内のみ) <file> : 削除するファイル名を指定する。 mv <from> <to> ファイルを移動させる(USB メモリ内のみ) <from> : 移動前のパスを指定する <to> : 移動後のパスを指定する cd [<directory>] 指定されたディレクトリにカレントディレクトリを変更する <directory> : カレントディレクトリを指定する ls [<directory>] ディレクトリの内容の表示 <directory> : 内容を表示するディレクトリを指定する info ファイルシステムの情報を表示する help [<topic>] コマンド一覧を表示する <topic> : 指定したコマンドを表示する ping [-n <count>] [-l <length>] [-t <timeout>] [-r <rate>] -h <IP_addr> ネットワーク接続テストをする。 -n : 送信回数を指定する(デフォルト:10) -l : 送信するデータのバイト数を指定する(デフォルト:40) -t : タイムアウト時間(単位:ミリ秒) (デフォルト:1000) -r : 送信間隔(単位:ミリ秒) (デフォルト:1000) -h : 送信先を指定する - 11 - fconfig [-i] [-l] [-n] [-f] ¦ nickname [value] IP アドレス等を設定、表示する(保存先は、データフラッシュの最終ブロック) -i : 設定データを初期化する -l : 設定データを一覧表示する -n : 略式設定項目名を一覧表示する -f : 設定項目名を一覧表示する Nickname : 項目名を指定してデータを設定する go [-w <timeout>] [-v] [-c] [-f] [-b] 保存したアプリケーションを実行する(アプリケーション終了後、プロンプトに戻る)。 -w : アプリケーション起動までのウエイト時間を指定する -v : ヴァーチャルコンソールを閉じてからアプリケーションを起動する -c : シリアルコンソールを閉じてからアプリケーションを起動する -f : アプリケーションでデータフラッシュの削除/書込みをする -b : アプリケーションをバックグラウンドで実行する。 *ウインドウを使う様なアプリケーションを実行する場合は、オプション ‒v を 必ず指定してください。 exec [-w <timeout>] [-v] [-c] [-f] アプリケーションを実行する(アプリケーション終了後、プロンプトに戻らない)。 -w : アプリケーション起動までのウエイト時間を指定する -v : ヴァーチャルコンソールを閉じてからアプリケーションを起動する -c : シリアルコンソールを閉じてからアプリケーションを起動する -f : アプリケーションでデータフラッシュの削除/書込みをする *ウインドウを使う様なアプリケーションを実行する場合は、オプション ‒v を 必ず指定してください。 ver ファームウェアのバージョン、オプション等を表示する。 mp3 [file name] USB メモリに保存されている mp3 ファイルを再生する。 *再生可能な mp3 ファイルは、 モノラル、オーディオサンプルレート 44.1KHz、ビットレート vol [value(min:0 - max:100)] mp3 ファイル再生時の音量を設定する。 date [-s MM/DD hh:mm YYYY] 日付・時刻を設定する reset リセットをして再起動をする。 - 12 - 40Kbps 6.アプリケーション プログラムサイズ 最大 128K byte のユーザーアプリケーションを動作させることが可能です。 load コマンド使用して、アプリケーション格納エリアに保存したアプリケーションを go コマンド、exec コマ ンドで実行することが出来ます。 プログラムサイズ :最大 128K byte アプリケーション スタックサイズ :2K byte メモリ アロケート 使用可能サイズ:RX62N 使用時 最大 72K byte RX63N 使用時 最大 104K byte グローバル変数領域 :8K byte *但し、アプリケーションでデータフラッシュの書込み、削除をする場合は、 グローバル変数は使用出来ません。 アプリケーションは、ルネサスの統合開発環境 High-performance Embedded Workshop を使用して作成します。 作成したアプリケーション(モトローラ S レコードフォーマット)は、Ethernet 経由(TFTP サーバから)でダウ ンロード出来ます。 アプリケーションを保存するには、以下の様に load コマンドを実行してください。 TFTP サーバーからダウンロードする場合 > load sample.mot もしくは、 > load ‒m tftp sample.mot USB メモリからダウンロードする場合 > load ‒m usb sample.mot アプリケーションを実行するには、以下の様に go コマンド、もしくは、exec コマンドを実行してください go コマンド > go go コマンド > exec - 13 - 7.API 一覧 機能 関数名 名前なしセマフォを初期化 sem_init セマフォのロックを解除する sem_post セマフォをロックする sem_wait, sem_trywait, sem_timedwait セマフォの値を取得する sem_getvalue セマフォを破棄する sem_destroy 動的なメモリの割り当てを行う malloc 割り当てた動的なメモリを解放する free 新しいスレッドを生成する pthread_create 指定したスレッドの終了を待つ pthread_join 実行しているスレッド自身を終了する pthread_exit スレッドの取り消し pthread_cancel 実行中のスレッドをデタッチ状態にする pthread_detach 時間を取得する clock_gettime ファイルやデバイスのオープン、作成 open ファイルディスクリプタをクローズ close ファイルを削除 unlink ファイルディスクリプタの操作を行う fcntl ファイルディスクリプタに書込む write ファイルディスクリプタから読込む read ディレクトリを開く opendir ディレクトリを読込む readdir ディレクトリを読込む readdir_r ディレクトリストリームの初期化 rewinddir ディレクトリを閉じる closedir ファイルの読み書きオフセットの位置を変更 lseek デバイスを制御する ioctl メモリ上にあるファイルの内容をストレージデバイ fsync, fdatasync ス上のものと同期させる ファイルの状態を取得する fstat, stat ファイルの設定値を取得する fpathconf, pathconf ファイルディスクリプタが端末を参照しているかを isatty チェックする ファイルに対する実ユーザーでのアクセス権をチェ access ックする カレントワーキングディレクトリ名の取得する getcwd ファイルのモードを変更する chmod ファイル・ディスクリプタを複製する dup, dup2 ファイルシステムをマウントする mount ファイルシステムをアンマウントする umount ディレクトリを作成する mkdir ディレクトリを削除する rmdir - 14 - ファイルの名前や位置を変更する rename ファイル(path1)への新しいリンクを作成する link 作業ディレクトリの変更 chdir 指定された書式に変換して出力を行う sprintf, snprintf, vsnprintf, vprintf, printf fprinf ソケットへの接続を受ける ip_accept ソケットに名前をつける ip_bind 全二重接続の一部を閉じる ip_shutdown 通信のための端点(endpoint)を閉じる ip_close ソケットの接続を行う ip_connect ソケットの名前を取得する ip_getsockname 接続している相手ソケットの名前を取得する ip_getpeername ソケットのオプションの設定をする ip_setsockopt ソケットのオプションを取得する ip_getsockopt ソケット(socket)上の接続を待つ ip_listen ソケットからメッセージを受け取る ip_recv, ip_read, ip_recvfrom ソケットへメッセージを送る ip_send, ip_write, ip_sendto 通信のための端点(endpoint)を作成する ip_socket 同期をとる ip_select Ethernet デバイスを制御する ip_ioctl ネットワークのアドレスとサービスを変換する ip_getaddrinfo ip_getaddrinfo で取得したリンクリストに対して動 ip_freeaddrinfo 的に割り当てられたメモリを解放する エラーコードを人間に可読な文字列に変換する ip_gai_strerror アドレスから名前への変換をプロトコルに依存しな ip_getnameinfo いかたちで行う プロトコル名にマッチするエントリを データベー ip_getprotobyname スから探す プロトコル番号にマッチするエントリを データベ ip_getprotobynumber ースから探す プロトコルを用いるサービスの名前にマッチするエ ip_getservbyname ントリをデータベースから探す プロトコルを用いるサービスのポート番号にマッチ ip_getservbyport するエントリをデータベースから探す アドレスをバイナリ形式からテキスト形式に変換す ip_inet_ntop る アドレスをテキスト形式からバイナリ形式に変換す ip_inet_pton る インターネットホストのアドレスを IPv4 の数値と ip_inet_aton ドットによる表記からバイナリ値へ変換する バイナリ値からインターネットホストのアドレスを ip_inet_ntoa IPv4 の数値とドットによる表記へ変換する - 15 - unsigned short をホストバイトオーダーからネット ip_htons ワークバイトオーダーに変換する unsigned short をネットワークバイトオーダーから ip_ntohs ホストバイトオーダーに変換する unsigned integer をホストバイトオーダーからネッ ip_htonl トワークバイトオーダーに変換する unsigned integer をネットワークバイトオーダーか ip_ntohl らホストバイトオーダーに変換する 関数は与えられたホスト名に対応する構造体 ip_gethostbyname hostent を返す 与えられたホストアドレス(長さ、タイプ)に対応す ip_gethostbyaddr る構造体 hostent を返す 指定の秒数の間だけ休止する sleep 指定したデータフラッシュのアドレスにデータを長 flash_program_buf さ(len)だけ書き込む 指定したデータフラッシュのブロックを削除する flash_erase_block 指定したデータフラッシュのブロックがブランクか flash_blank_check チェックする エラーコードを可読な文字列に変換する flash_errmsg 指定のエリアへ表示するデータを書き込む LcdWriteData 指定のエリアから表示するデータを読み出す LcdReadData 指定のエリアを指定の色で塗り潰す LcdWriteArea 指定のエリアに四角を描画する LcdRect 指定の位置に指定の色で点を描画する LcdPset 指定の行数だけスクロールアップする LcdScrollUp 指定の行数だけスクロールダウンする LcdScrollDown 指定の位置に指定の色で小型フォント文字列の LcdPutSmallStr 描画する 指定の位置に指定の色で 16x16 フォント文字列の LcdPut16Str 描画する 指定のエリアへ指定したパターンを描画する LcdPutPattern 線を描画する LcdLine 円を描画する(中を塗り潰し無し) LcdCircle 円を描画する(中を塗り潰す) LcdSCircle 表示をクリアする LcdClear MP3 の再生開始準備をする mp3_init MP3 の再生用バッファポインタと、書込可能バイト mp3_get_buf_pt 数取得する MP3 の再生データの追加バイト数を設定する mp3_set_buf_siz MP3 の再生終了処理をする term_mp3 周期実行関数登録、削除 periodic_object モジュール アクティブ/ストップ コントロール module_activate 割込み処理と割込みプライオリティの設定 interrupt_attach - 16 - 割込み処理と割込みプライオリティの解除 interrupt_detach 割込みのプライオリティの設定 interrupt_set_level 指定の割込みをマスクする interrupt_mask 指定の割込みマスクを解除する interrupt_unmask 日付・時刻の設定をする RTCset 日付・時刻を取得する RTCread メモリブロックのサイズを変更する realloc ファイルやディレクトリを削除する remove 秒単位の時間を得る time 日付と時刻を要素別の時刻に変換する mktime 日付と時刻を要素別の時刻に変換する localtime ストリームを開く fopen ストリームを閉じる fclose ストリームに対応したディスクリプタを返す fileno ストリームの読み書きオフセットの位置を変更 fseeko ストリームの内容を強制的に出力する fflush 文字の出力 fputc 文字の入力 fgetc 文字列の入力 fgets バイナリストリームの入力 fread バイナリストリームの出力 fwrite ファイルディスクリプタの操作を行う(ソケット用) ip_fcntl - 17 - int sem_init( unsigned short *sem, // セマフォ番号を格納する変数のポインタ int pshared, // プロセス内スコープ=0 のみサポート unsigned int value); // カウント値 名前なしセマフォを初期化する。 戻り値: 正常終了 : 0 エラー発生: EINVAL :使用出来るカウント数を超えている ENOSPC :使用出来るセマフォ数を超えている int sem_post( unsigned short *sem); // セマフォ番号を格納されている変数のポインタ セマフォのロックを解除する。 戻り値: 正常終了 : 0 エラー発生: EINVAL :指定したセマフォは初期化されていない int sem_wait( unsigned short *sem); // セマフォ番号を格納されている変数のポインタ セマフォをロックする。 戻り値: 正常終了 : 0 エラー発生: EINVAL :指定したセマフォは初期化されていない int sem_trywait( unsigned short *sem); // セマフォ番号を格納されている変数のポインタ セマフォをロックする。 戻り値: 正常終了 : 0 エラー発生: EINVAL :指定したセマフォは初期化されていない int sem_timedwait( unsigned short *sem, // セマフォ番号を格納されている変数のポインタ const struct timespec *abstime); // 絶対時間を格納している変数のポインタ セマフォをロックする。 戻り値: 正常終了 : 0 エラー発生: EINVAL :指定したセマフォは初期化されていない - 18 - int sem_getvalue( unsigned short *sem, // セマフォ番号を格納されている変数のポインタ int *sval); // セマフォ値を格納する変数のポインタ セマフォの値を取得する。 戻り値: 正常終了 : 0 エラー発生: EINVAL :指定したセマフォは初期化されていない int sem_destroy( unsigned short *sem); // セマフォ番号を格納されている変数のポインタ 名前なしセマフォを破棄する。 戻り値: 正常終了 : 0 エラー発生: EINVAL :指定したセマフォは初期化されていない void *malloc( unsigned long siz); // メモリの割り当てをするバイト数 動的なメモリの割り当てを行う。 戻り値: 正常終了 : 0 以外 :割り当てられたメモリのアドレス エラー発生: 0 :メモリを割り当て出来なかった void free( void *phy); // 開放するメモリのアドレス 割り当てた動的なメモリを解放する。 戻り値: なし int pthread_create( unsigned long *thread, // スレッドハンドルのポインタ const struct pthread_attr *attr, // 属性を設定する場合 void *fnc, // 関数 void *par); // 関数のパラメータ 新しいスレッドを生成する。 戻り値: 正常終了 : 0 エラー発生: 0 以外 - 19 - int pthread_join( unsigned long th, // 指定するスレッドのハンドル void **dat); // NULL のみ 指定したスレッドの終了を待つ。 戻り値: 正常終了 : 0 エラー発生: 0 以外 int pthread_exit( void *value_ptr); // NULL のみ 実行しているスレッド自身を終了する。 戻り値: 正常終了 : 0 エラー発生: 0 以外 int pthread_cancel( unsigned long th); // 指定するスレッドのハンドル スレッドの取り消し。 戻り値: 正常終了 : 0 エラー発生: 0 以外 int pthread_detach( unsigned long th); // 指定するスレッドのハンドル 実行中のスレッドをデタッチ状態にする。 戻り値: 正常終了 : 0 エラー発生: 0 以外 int clock_gettime( int clock_id, struct timespec *tp); // 未対応 // 時間データを格納する timespec ポインタ 時間を取得する 戻り値: 0 のみ - 20 - int open( const char *path, // ファイル、デバイス名を指定する int oflag); // アクセスモードを指定する const char *path, // ファイル、デバイス名を指定する int oflag, // アクセスモードを指定する mode_t mode); // ファイル作成時、アクセス許可を指定する int open( ファイルやデバイスのオープン、作成を行う。 戻り値: 正常終了 : 新しいファイル・ディスクリプタを返す。 エラー発生: -1 int close( int fd); // ファイルディスクリプタを指定する ファイルディスクリプタをクローズする。 戻り値: 正常終了 : 0 エラー発生: -1 int unlink( const char *path); // ファイル名を指定する 名前を削除し、場合によってはそれが参照しているファイルも削除する。 戻り値: 正常終了 : 0 エラー発生: -1 int fcntl( int fd, int cmd, ...); // ファイルディスクリプタを指定する 現在、未対応。 ファイルディスクリプタの操作を行う。 戻り値: 正常終了 : 0 エラー発生: -1 ssize_t write( int fd, // ファイルディスクリプタを指定する const void *buf, // バッファのポインタを指定する size_t len); // 書込むバイト数を指定する ファイル・ディスクリプタに書き込む。 戻り値: 正常終了 : 書き込まれたバイト数 エラー発生: -1 - 21 - ssize_t read( int fd, // ファイルディスクリプタを指定する void *buf, // バッファのポインタを指定する size_t len); // バッファのサイズを指定する ファイル・ディスクリプタから読み込む。 戻り値: 正常終了 : 読み込んだバイト数(0 はファイルの終わり) エラー発生: -1 DIR *opendir( const char *dirname); // ディレクトリ名を指定する ディレクトリをオープンする。 戻り値: 正常終了 :ディレクトリエントリのポインタを返す エラー発生: 0 struct dirent *readdir( DIR *dirp); // ディレクトリエントリを指定する ディレクトリを読み込む 戻り値: 正常終了 :次のディレクトリエントリのポインタを返す ディレクトリストリームの末尾に達した場合には、NULL が返される エラー発生: 0 int readdir_r( DIR *dirp, // ディレクトリエントリを指定する struct dirent *entry, // ディレクトリエントリを格納する変数のポインタを指定する struct dirent **result); // 返されるエントリのポインタを格納するポインタ ディレクトリを読み込む 戻り値: 正常終了 : 0。次のディレクトリエントリのポインタを返す ディレクトリストリームの末尾に達した場合、*result は NULL エラー発生: エラー番号 void rewinddir( DIR *dirp ); // ディレクトリエントリを指定する ディレクトリストリームの初期化。 戻り値: なし - 22 - int closedir( DIR *dirp); // ディレクトリエントリを指定する ディレクトリをクローズする 戻り値: 正常終了 : 0 エラー発生: -1 off_t lseek( int fd, // ファイルディスクリプタを指定する off_t offset, // オフセットするバイト数を指定する int whence); // オフセットの基準位置を指定する ファイルの読み書きオフセットの位置を変える 戻り値: 正常終了 : ファイル位置をファイルの先頭からのバイト数で返す エラー発生: -1 int ioctl( int fd, // ファイルディスクリプタを指定する void *com, // リクエストコードを指定する ...); // 型無しポインタ デバイスを制御する 戻り値: 正常終了 : 0 エラー発生: -1 int fsync( int fd); // ファイルディスクリプタを指定する メモリ上にあるファイルの内容をストレージデバイス上のものと同期させる 戻り値: 正常終了 : 0 エラー発生: -1 int fdatasync( int fd); // ファイルディスクリプタを指定する メモリ上にあるファイルの内容をストレージデバイス上のものと同期させる 戻り値: 正常終了 : 0 エラー発生: -1 - 23 - int fstat( int fd, // ファイルディスクリプタを指定する struct stat *buf ); // ファイル情報を格納する変数のポインタ ファイルの状態を取得する 戻り値: 正常終了 : 0 エラー発生: -1 int stat( const char *path, // ファイル名を指定する struct stat *buf ); // ファイル情報を格納する変数のポインタ ファイルの状態を取得する 戻り値: 正常終了 : 0 エラー発生: -1 long fpathconf( int fd, // ファイルディスクリプタを指定する int name); // 設定オプションヲ指定する ファイルの設定値を取得する 戻り値: 正常終了 : 制限値 エラー発生: -1 long pathconf( const char *path, // ファイル名を指定する int name); // 設定オプションヲ指定する ファイルの設定値を取得する 戻り値: 正常終了 : 制限値 エラー発生: -1 int isatty( int fd); // ファイルディスクリプタを指定する ファイルディスクリプタが端末を参照しているかをチェックする 戻り値: 正常終了 : 1 エラー発生: -1 - 24 - int access( const char *path, // ファイル名を指定する int amode); // チェックするアクセス権を指定する ファイルに対する実ユーザーでのアクセス権をチェックする 戻り値: 正常終了 : 0 エラー発生: -1 char *getcwd( char *buf, // 絶対パスを格納する文字列バッファのポインタ size_t size); //絶対パスを格納する文字列バッファのサイズ カレントワーキングディレクトリ名の取得 戻り値: 正常終了 : カレントワーキングディレクトリの絶対パスが入った文字列のポインタ エラー発生: 0 int chmod( const char *path, // ファイル名を指定する mode_t mode); // ファイル許可モードを指定する ファイルのモードを変更する 戻り値: 正常終了 : 0 エラー発生: -1 int dup( int fd); // ファイルディスクリプタを指定する ファイル・ディスクリプタを複製する 戻り値: 正常終了 : 新しいディスクリプタ エラー発生: -1 int dup2( int fd, // ファイルディスクリプタを指定する int fd2); // fd の複製ファイルディスクリプタ ファイル・ディスクリプタを複製する 戻り値: 正常終了 : 新しいディスクリプタ エラー発生: -1 - 25 - int mount( const char *devname, // デバイス名を指定する const char *dir, // マウントポイントを指定する const char *fsname); // ファイルシステム名を指定する ファイルシステムをマウントする 戻り値: 正常終了 : 0 エラー発生: -1 int umount( const char *name); // マウントポイントを指定する ファイルシステムをアンマウントする 戻り値: 正常終了 : 0 エラー発生: -1 int mkdir( const char *path, // ディレクトリ名を指定する mode_t mode); // アクセス許可属性を指定する ディレクトリを作成する 戻り値: 正常終了 : 0 エラー発生: -1 int rmdir( const char *path); // ディレクトリ名を指定する ディレクトリを削除する 戻り値: 正常終了 : 0 エラー発生: -1 int rename( const char *path1, // 変更前のファイル、ディレクトリ名を指定する const char *path2); // 変更後のファイル、ディレクトリ名を指定する ファイルの名前や位置を変更する 戻り値: 正常終了 : 0 エラー発生: -1 - 26 - int link( const char *path1, // リンク先のファイル、ディレクトリ名を指定する const char *path2); // リンク元のファイル、ディレクトリ名を指定する ファイル(path1)への新しいリンクを作成する 戻り値: 正常終了 : 0 エラー発生: -1 int chdir( const char *path); // 移動先のディレクトリ名を指定する 作業ディレクトリの変更 戻り値: 正常終了 : 0 エラー発生: -1 int sprintf( char *buf, // 出力先のバッファのポインタを指定する const char *fmt, // 出力フォーマットを指定する ...); // 出力するデータを指定する 指定された書式に変換して出力を行う 戻り値: 出力先に書き込まれた文字数 int snprintf( char *buf, // 出力先のバッファのポインタを指定する size_t len, // 出力先のバッファのサイズを指定する const char *fmt, // 出力フォーマットを指定する ...); // 出力するデータを指定する 指定された書式に変換して出力を行う 戻り値: 出力先に書き込まれた文字数 int vsprintf( char *buf, // 出力先のバッファのポインタを指定する const char *fmt, // 出力フォーマットを指定する va_list ap); // 出力するデータのポインタリストを指定する 指定された書式に変換して出力を行う 戻り値: 出力先に書き込まれた文字数 - 27 - int printf( const char *fmt, ...); // 出力フォーマットを指定する // 出力するデータを指定する コンソールへ指定された書式に変換して出力を行う 戻り値: 出力先に書き込まれた文字数 int vprintf( const char *fmt, // 出力フォーマットを指定する va_list ap); // 出力するデータのポインタリストを指定する コンソールへ指定された書式に変換して出力を行う 戻り値: 出力先に書き込まれた文字数 int vsnprintf( char *str, // 出力先バッファのポインタを指定する size_t size, // 出力先バッファのポインタのサイズ const char *format, // 出力フォーマットを指定する va_list ap); // 出力するデータのポインタリストを指定する 指定された書式に変換して出力を行う 戻り値: 出力先に書き込まれた文字数 int fprintf( FILE *stream, // 出力先を指定する const char *format, // 出力フォーマットを指定する ...); // 出力するデータを指定する 指定された書式に変換して出力を行う 戻り値: 出力先に書き込まれた文字数 - 28 - int ip_accept( int s, // ソケットを指定する struct sockaddr *addr, // sockaddr 構造体へのポインタ socklen_t // sockaddr 構造体のサイズ *addrlen); ソケットへの接続を受ける 戻り値: 正常終了 : 受け付けたソケットのディスクリプタ エラー発生: -1 int ip_bind( int s, // ソケットを指定する struct sockaddr *name, // ソケットに割り付けるアドレスのポインタ socklen_t // ソケットに割り付けるアドレスのサイズ namelen); ソケットに名前をつける 戻り値: 正常終了 : 0 エラー発生: -1 int ip_shutdown( int s, // ソケットを指定する int how); // 閉じる方向を指定 全二重接続の一部を閉じる 戻り値: 正常終了 : 0 エラー発生: -1 int ip_close( int s); // ソケットを指定する 通信のための端点(endpoint)を閉じる 戻り値: 正常終了 : 0 エラー発生: -1 int ip_connect( int s, // ソケットを指定する struct sockaddr *name, // ソケットに接続するアドレスのポインタ socklen_t // ソケットに接続するアドレスのサイズ namelen); ソケットの接続を行う 戻り値: 正常終了 : 0 エラー発生: -1 - 29 - int ip_getsockname ( int s, // ソケットを指定する struct sockaddr *name, // アドレスを格納するバッファのポインタ socklen_t // アドレスを格納するバッファのサイズ *namelen); ソケットの名前を取得する 戻り値: 正常終了 : 0 エラー発生: -1 int ip_getpeername ( int s, // ソケットを指定する struct sockaddr *name, // アドレスを格納するバッファのポインタ socklen_t // アドレスを格納するバッファのサイズ *namelen); 接続している相手ソケットの名前を取得する 戻り値: 正常終了 : 0 エラー発生: -1 int ip_setsockopt ( int s, // ソケットを指定する int level, // 操作する level を指定する int optname, // 操作するオプション名を指定する const void *optval, // 設定するオプション値のポインタ socklen_t optlen); // 設定するオプション値のサイズ ソケットのオプションの設定をする 戻り値: 正常終了 : 0 エラー発生: -1 int ip_getsockopt ( int s, // ソケットを指定する int level, // 取得する level を指定する int optname, // 取得するオプション名を指定する void *optval, // 取得するオプション値を格納する変数のポインタ socklen_t *optlen); // 取得するオプション値を格納する変数サイズ ソケットのオプションを取得する 戻り値: 正常終了 : 0 エラー発生: -1 - 30 - int ip_listen( int s, // 接続待ちソケットを指定する int backlog); // 保留中の接続のキューの最大長を指定 ソケット(socket)上の接続を待つ 戻り値: 正常終了 : 0 エラー発生: -1 int ip_recv( int s, // ソケットを指定する void *mem, // 受信データを格納するバッファのポインタ int len, // 受信データを格納するバッファのサイズ unsigned int flags); // 受信オプションを設定する ソケットからメッセージを受け取る 戻り値: 正常終了 : 受信したバイト数 接続先が正しくシャットダウンを実行した場合は、0 が返る。 エラー発生: -1 int ip_read( int s, // ソケットを指定する void *mem, // 受信データを格納するバッファのポインタ int len); // 受信データを格納するバッファのサイズ ソケットからメッセージを受け取る 戻り値: 正常終了 : 受信したバイト数 接続先が正しくシャットダウンを実行した場合は、0 が返る。 エラー発生: -1 int ip_recvfrom( int s, // ソケットを指定する void *mem, // 受信データを格納するバッファのポインタ int len, // 受信データを格納するバッファのサイズ unsigned int flags, // 受信オプションを設定する struct sockaddr *from, // 送信元の sockaddr 構造体のポインタ socklen_t // 送信元の sockaddr 構造体のサイズ *fromlen); ソケットからメッセージを受け取る 戻り値: 正常終了 : 受信したバイト数 接続先が正しくシャットダウンを実行した場合は、0 が返る。 エラー発生: -1 - 31 - int ip_send( int s, // ソケットを指定する void *dataptr, // 送信データを格納しているバッファのポインタ int size, // 送信データのバイト数 unsigned int flags); // 送信オプションを設定する ソケットへメッセージを送る 戻り値: 正常終了 : 送信したバイト数 エラー発生: -1 int ip_sendto( int s, // ソケットを指定する void *dataptr, // 送信データを格納しているバッファのポインタ int size, // 送信データのバイト数 unsigned int flags, // 送信オプションを設定する struct sockaddr *to, // 送信先の sockaddr 構造体のポインタ socklen_t // 送信先の sockaddr 構造体のサイズ tolen); ソケットへメッセージを送る 戻り値: 正常終了 : 送信したバイト数 エラー発生: -1 int ip_write( int s, // ソケットを指定する void *dataptr, // 送信データを格納しているバッファのポインタ int size); // 送信データのバイト数 ソケットへメッセージを送る 戻り値: 正常終了 : 送信したバイト数 エラー発生: -1 int ip_socket( int domain, // プロトコルファミリーを指定 int type, // 利用する通信方式を指定 int protocol); // 指定されたファミリーに属するプロトコルを指定 通信のためのソケット(endpoint)を作成する 戻り値: 正常終了 : ソケットディスクリプタ エラー発生: -1 -2(イーサネットのリンク未確立) - 32 - int ip_select( int maxfdp1, // 3 つの fd_set に含まれるディスクリプタの最大値に 1 を足した値 fd_set *readset, // 読込み可能かどうかを監視するソケットディスクリプタリストのポインタ fd_set *writeset, // 書込み可能かどうかを監視するソケットディスクリプタリストのポインタ fd_set *exceptset, // 例外の監視するソケットディスクリプタリストのポインタ struct timeval *timeout); // タイムアウト時間を設定した変数のポインタ 同期をとる 戻り値: 正常終了 : 更新されたディスクリプタの数 エラー発生: -1 int ip_ioctl( int s, // ファイルディスクリプタを指定する long cmd, // リクエストコードを指定する void *argp); // 型無しデータバッファポインタ Ethernet デバイスを制御する 戻り値: 正常終了 : 0 エラー発生: -1 int ip_getaddrinfo( const char *nodename, // ホスト名または数値のホストアドレス文字列へのポインタ const char *servname, // サービス名やポート番号の文字列へのポインタ const struct addrinfo *hints, // ソケットタイプのヒントを提供する addrinfo へのポインタ struct addrinfo **res); // インターネットアドレスを格納する addrinfo リストへのポインタ ネットワークのアドレスとサービスを変換する 戻り値: 正常終了 : 0 エラー発生: 0 以外のエラーコード void ip_freeaddrinfo( struct addrinfo *ai); // 開放する addrinfo リストへのポインタ ip_getaddrinfo で取得したリンクリストに対して動的に割り当てられたメモリを解放する 戻り値: なし char *ip_gai_strerror( int err); // エラーコード番号 エラーコードを人間に可読な文字列に変換する 戻り値: エラーコードに対応した可読な文字列のポインタ - 33 - int ip_getnameinfo( const struct sockaddr *sa, // ソケットアドレス構造体へのポインタ socklen_t salen, // ソケットアドレス構造体のサイズ char *host, // ホスト名を格納するバッファのポインタ socklen_t hostlen, // ホスト名を格納するバッファのサイズ char *serv, // サービス名を格納するバッファのポインタ socklen_t servlen, // サービス名を格納するバッファのサイズ unsigned int flags); // 動作を指定 アドレスから名前への変換をプロトコルに依存しないかたちで行う 戻り値: 正常終了 : 0 エラー発生: 0 以外のエラーコード struct protoent *ip_getprotobyname( const char *name); // プロトコル名を指定する プロトコル名にマッチするエントリを データベースから探す 戻り値: 正常終了 : 指定したプロトコル名に対する protoent 構造体へのポインタ エラー発生: 0 struct protoent *ip_getprotobynumber( const int num); // プロトコル番号を指定する プロトコル番号にマッチするエントリを データベースから探す 戻り値: 正常終了 : 指定したプロトコル番号に対する protoent 構造体へのポインタ エラー発生: 0 struct servent *ip_getservbyname( const char *name, // proto が使用するサービス名を指定する const char *proto); // プロトコル名を指定する プロトコルを用いるサービスの名前にマッチするエントリをデータベースから探す 戻り値: 正常終了 : 指定したサービス名、プロトコル名に対する servent 構造体へのポインタ エラー発生: 0 struct servent *ip_getservbyport( const int num, // proto が使用するポート番号を指定する const char *proto); // プロトコル名を指定する プロトコルを用いるサービスのポート番号にマッチするエントリをデータベースから探す 戻り値: 正常終了 : 指定したポート番号、プロトコル名に対する servent 構造体へのポインタ エラー発生: 0 - 34 - struct hostent *ip_gethostbyname( const char *hostname); // ホスト名を格納したバッファへのポインタ 関数は与えられたホスト名に対応する構造体 hostent を返す 戻り値: 正常終了 : 対応する hostent 構造体へのポインタ エラー発生: 0 struct hostent *ip_gethostbyaddr( const char *addr, // IP アドレスを格納したバッファへのポインタ int len, // 格納した IP アドレスの長さ int type); // アドレスタイプを指定 与えられたホストアドレス(長さ、タイプ)に対応する構造体 hostent を返す。 戻り値: 正常終了 : 対応する hostent 構造体へのポインタ エラー発生: 0 const char *ip_inet_ntop( int af, // アドレスファミリーを指定する const void *src, // 変換するネットワークアドレス構造体へのポインタ char *dst, // 変換後の文字列を格納するバッファへのポインタ size_t size); // 変換後の文字列を格納するバッファのサイズ アドレスをバイナリ形式からテキスト形式に変換する 戻り値: 正常終了 : dst へのポインタ エラー発生: 0 int ip_inet_pton( int af, // アドレスファミリーを指定する const char *src, // 変換する文字列を格納するバッファへのポインタ void *dst); // 変換後のデータを格納するネットワークアドレス構造体へのポインタ アドレスをテキスト形式からバイナリ形式に変換する 戻り値: 正常終了 : 1 エラー発生: ネットワークアドレス文字列が正しくない:0 アドレスファミリーがサポートされていない:-1 s8_t ip_inet_aton( const char *cp, // ドット付き IP アドレスの文字列へのポインタ struct in_addr *addr); // 変換後のアドレスを格納するバッファのポインタ インターネットホストのアドレスを IPv4 の数値とドットによる表記からバイナリ値へ変換する 戻り値: 正常終了 : 0 以外 エラー発生: 0 - 35 - char *ip_inet_ntoa( struct in_addr addr); // ネットワークバイトオーダの IP アドレスを指定 バイナリ値からインターネットホストのアドレスを IPv4 の数値とドットによる表記へ変換する 戻り値: ドット付き IP アドレスの文字列へのポインタ u16_t ip_htons( u16_t x); // 変換する値を指定する unsigned short をホストバイトオーダーからネットワークバイトオーダーに変換する。 戻り値: ネットワークバイトオーダーに変換した値 u16_t ip_ntohs( u16_t x); // 変換する値を指定する unsigned short をネットワークバイトオーダーからホストバイトオーダーに変換する。 戻り値: ホストバイトオーダーに変換した値 u32_t ip_htonl( u32_t x); // 変換する値を指定する unsigned integer をホストバイトオーダーからネットワークバイトオーダーに変換する。 戻り値: ネットワークバイトオーダーに変換した値 u32_t ip_ntohl( u32_t x); // 変換する値を指定する unsigned integer をネットワークバイトオーダーからホストバイトオーダーに変換する。 戻り値: ホストバイトオーダーに変換した値 u32_t ip_dns_init( void); DNS の初期化を行う 戻り値: 正常終了 : 0 エラー発生: -1 -2 ソケット関連のエラー イーサネットのリンクが未確立 *DNS 関連を使用するアプリケーションをイーサネットのリンクが確立される前に起動した場合 は、この関数を使用して DNS の初期化をしてください。 - 36 - int sleep( unsigned short time); // 単位時間 指定の秒数の間だけ休止する 戻り値: 正常終了 : 0 エラー発生: 0 以外 int flash_program_buf( void *addr, // 書込み先の先頭アドレス void *data, // 書込むデータを格納しているバッファのポインタ int len); // 書込むデータのバイト数 指定したデータフラッシュのアドレスにデータを長さ(len)だけ書き込む 戻り値: 正常終了 : 0 エラー発生: 0 以外 int flash_erase_block( void *block, // 削除するブロックの先頭アドレス unsigned int block_size); // 削除するブロックのサイズ 指定したデータフラッシュのブロックを削除する 戻り値: 正常終了 : 0 エラー発生: 0 以外 int flash_blank_check( void *block, // ブランクチェックをするブロックの先頭アドレス unsigned int block_size, // ブランクチェックをするブロックのサイズ unsigned short *blank); // ブランクチェックの結果を格納する変数のポインタ blank=0 : blank blank=1 : not blank 指定したデータフラッシュのブロックがブランクかチェックする 戻り値: 正常終了 : 0 エラー発生: 0 以外 const char *flash_errmsg( const int err); // エラーコード番号を指定する エラーコードを人間に可読な文字列に変換する。 戻り値: エラーコードに対応した可読な文字列のポインタ - 37 - extern void LcdWriteData( short x, // 開始位置 x 座標 short ex, // 終了位置 x 座標 short y, // 開始位置 y 座標 short ey, // 終了位置 y 座標 unsigned char *data, // 書込みデータ short size); // 書込みデータのデータバイト数 LCD へ表示データの書込 戻り値: なし extern void LcdReadData( short x, // 開始位置 x 座標 short ex, // 終了位置 x 座標 short y, // 開始位置 y 座標 short ey, // 終了位置 y 座標 unsigned char *data, short // 読込み先バッファ size); // 読込みデータのバイト数 LCD から表示データの読込 戻り値: なし extern void LcdWriteArea( short x, // 開始位置(X 座標) short y, // 開始位置(Y 座標) short cx, // X 幅 short cy, // Y 幅 unsigned long color); // 線の色の指定 指定した色で四角を塗り潰す 戻り値: なし extern void LcdRect( short x, // 開始位置(X 座標) short y, // 開始位置(Y 座標) short cx, // X 幅 short cy, // Y 幅 unsigned long line_color, // 線の色の指定。 // 但し、モノクロ LCD の場合は、 // 0x00=白 / 0x01=黒 / 0x02 (塗りつぶす) unsigned long rect_color); // 塗り潰す色の指定。塗り潰さない場合、INVALID_COLOR 指定 // 矩形描画 戻り値: - 38 - 但し、モノクロ LCD の場合は、使用しない なし extern void LcdPset( short x, // X 座標 short y, // Y 座標 unsigned long color); // 色の指定 但しモノクロ LCD の場合は、0=白 / 1=黒 1px の点を描く 戻り値: なし extern void LcdScrollUp( unsigned short up, unsigned long // スクロールアップする数。 但し、モノクロ LCD の場合は、使用しない color); // 塗り潰す色の指定。 // 塗り潰さない(そのまま下部に表示)場合は、INVALID_COLOR を指定 // 但し、モノクロ LCD の場合は、使用しない スクロールアップ 戻り値: なし extern void LcdScrollDown( unsigned short down, unsigned long // スクロールダウンする数。 但し、モノクロ LCD の場合は、使用しない color); // 塗り潰す色の指定。 // 塗り潰さない(そのまま下部に表示)場合は、INVALID_COLOR を指定 // 但し、モノクロ LCD の場合は、使用しない スクロールダウン 戻り値: なし extern void LcdPutSmallStr( short x, // 文字描画開始位置(X 座標) short y, // 文字描画開始位置(Y 座標) unsigned char *str, // 文字列 unsigned long color); // 色の指定。但し、モノクロ LCD の場合は、使用しない 小型フォント文字列の描画 戻り値: なし extern void LcdPut16Str( short x, // 文字描画開始位置(X 座標) short y, // 文字描画開始位置(Y 座標) unsigned char *str, // 文字列 unsigned long color); // 色の指定。但し、モノクロ LCD の場合は、使用しない 16x16 フォント文字列の描画 戻り値: なし - 39 - extern void LcdPutPattern( short x, // 文字描画開始位置(X 座標) short y, // 文字描画開始位置(Y 座標) short ptn_wid, // 表示するパターンの幅(ビット数) const unsigned char *ptn, // 表示するパターン long size, // 表示するパターン バッファサイズ unsigned long color); // 色の指定。但し、モノクロ LCD の場合は、使用しない パターンの描画 戻り値: なし extern void LcdLine( short sx, // 開始位置(X 座標) short sy, // 開始位置(Y 座標) short ex, // 終了位置(X 座標) short ey, // 終了位置(Y 座標) unsigned long color); // 色の指定, 但し、モノクロ LCD の場合は、0=白 / 1=黒 線を描く 戻り値: なし extern void LcdCircle( short xo, // 円の中心点(X 座標) short yo, // 円の中心点(Y 座標) short r, // 円の半径 unsigned long color); // 色の指定, 但し、モノクロ LCD の場合は、0=白 / 1=黒 円を描く(中は空) 戻り値: なし extern void LcdSCircle( short xo, // 円の中心点(X 座標) short yo, // 円の中心点(Y 座標) short r, // 円の半径 unsigned long color); // 色の指定, 円を描く(塗りつぶす) 戻り値: なし extern void LcdClear(void); 表示をクリアする 戻り値: なし - 40 - 但し、モノクロ LCD の場合は、0=白 / 1=黒 extern int mp3_init(void); mp3 デコーダー 初期化 戻り値: MP3 再生制御用ハンドル エラー:-1 extern short mp3_get_buf_pt( unsigned char **pt); // 再生用バッファポインタのポインタ MP3 の再生用バッファポインタと書込可能バイト数取得する 戻り値: 書込可能バイト数 extern void mp3_set_buf_siz( short siz); // 追加バッファサイズ 再生追加バッファサイズの設定 戻り値: なし extern int term_mp3( int sound_fd, // MP3 再生制御用ハンドル int amp); // FALSE アンプ off mp3 デコーダー終了 戻り値: 正常:1 エラー:0 extern int periodic_object( unsigned char *handle, // 周期実行関数ハンドラのポインタ void *isr, // 処理ルーチン (NULL 指定で、周期実行関数解除) unsigned short usec); // カーネルタイマーからのオフセット μsec 範囲(20∼9980) 周期実行関数登録(最大 5 つ。OSでの使用分の含む) 戻り値: エラーステータス - 41 - extern int module_activate( unsigned short module, // モジュール指定 int // TRUE:動作 enable); LX1100_MSTP_TMR2_3.... FALSE:停止 モジュール アクティブ/ストップ コントロール 電源投入時、Renesas RX600 シリーズの周辺モジュールは停止状態なので、使用する際には、 そのモジュールをアクティブにする必要がある。 *OS 側でモジュールを使用しているものがあります。 *モジュールによっては、モジュール アクティブ/ストップが共通のとなっている 場合があります(Renesas RX62 シリーズ、もしくは、RX63 シリーズの仕様書を参照) 戻り値: 正常:0 エラー:-1 extern int interrupt_attach( int vector, // ベクタ番号 int level, // 割込プライオリティ void *isr); // 割込み処理ルーチン 0∼15(0:割込み禁止) 指定のベクタ番号に割込み処理と割込みプライオリティを設定する。 *OS 側で使用しているベクタ番号があります。 *ベクター番号は、Renesas RX62 シリーズ、もしくは、RX63 シリーズの仕様書を参照。 戻り値: 正常:0 エラー:-1 extern int interrupt_detach( int vector); // ベクタ番号 指定のベクタ番号に設定されている割込み処理と割込みプライオリティを解除する。 *OS 側で使用しているベクタ番号があります。 *ベクター番号は、Renesas RX62 シリーズ、もしくは、RX63 シリーズの仕様書を参照。 戻り値: 正常:0 エラー:-1 extern int interrupt_set_level( int vector, // ベクタ番号 int level); // 割込プライオリティ 0∼15(0:割込み禁止) 指定のベクタ番号の割込みプライオリティを設定する。 *OS 側で使用しているベクタ番号があります。 *ベクター番号は、Renesas RX62 シリーズ、もしくは、RX63 シリーズの仕様書を参照。 戻り値: 正常:0 - 42 - extern int interrupt_mask( int vector); // ベクタ番号 指定のベクタ番号の割込みをマスクする *OS 側で使用しているベクタ番号があります。 *ベクター番号は、Renesas RX62 シリーズ、もしくは、RX63 シリーズの仕様書を参照。 戻り値: 正常:0 extern int interrupt_unmask( int vector); // ベクタ番号 指定のベクタ番号の割込みをマスクを解除する *OS 側で使用しているベクタ番号があります。 *ベクター番号は、Renesas RX62 シリーズ、もしくは、RX63 シリーズの仕様書を参照。 戻り値: 正常:0 extern int RTCset( struct syl_tm *tm); // 設定する日付時刻 日付、時刻の設定をする 戻り値: 正常:0 extern void RTCread( struct syl_tm *tm); // 日付時刻を格納するバッファのポインタ 日付、時刻を取得する 戻り値: なし extern void *realloc( void *ptr, // サイズを変更するバッファのポインタ size_t size); // 変更後のバッファサイズ ポインタ ptr が示すメモリブロックのサイズを変更して size バイトにする 戻り値: 正常:新たに割り当てられたメモリへのポインタを返す エラー:NULL extern int remove( const char *pathname); // 削除するファイル、もしくはディレクトリ名 ファイルやディレクトリを削除する 戻り値: 正常:0 エラー:−1 - 43 - extern time_t time( time_t *t); // 紀元(Epoch:1970-01-01 00:00:00 (UTC))からの秒数を格納するバッファポインタ 秒単位の時間を得る 戻り値: 正常:紀元(the Epoch)からの経過秒数を返す エラー:−1 extern time_t mktime(struct tm *tm); // 要素別の日付と時刻 要素別の日付と時刻を時刻に変換する 戻り値: 正常:紀元(the Epoch)からの経過秒数に変換した値 エラー:−1 extern struct tm *localtime(const time_t *timep); 日付と時刻を要素別の時刻に変換する 戻り値: 正常:tm 構造体のポインタ エラー:NULL extern FILE *fopen( const char *path, const char *mode); // モード // ファイル名を指定する path で指定された名前のファイルを開き、ストリームと結びつける。 戻り値: 正常:FILE 型のポインタ エラー:NULL extern int fclose( FILE *fp); // ストリームのポインタ ストリームを閉じる 戻り値: 正常:0 エラー:EOF extern int fileno( FILE *stream); // ストリームのポインタ ストリームに対応したディスクリプタを返す 戻り値: 正常:ファイルディスクリプタ エラー:−1 - 44 - extern int fseek( FILE *stream, // ストリームのポインタ off_t offset, // オフセットするバイト数を指定する int whence); // オフセットの基準位置を指定する ストリームの読み書きオフセットの位置を変更 戻り値: 正常:0 エラー:−1 extern int fflush( FILE *stream); // ストリームのポインタ ストリームの内容を強制的に出力する 戻り値: 正常:0 エラー:EOF extern int fputc( int c, // 出力する文字 FILE *stream); // ストリームのポインタ ストリームへ文字を出力する 戻り値: 正常:出力した文字(unsigned char へキャスト) エラー:EOF extern int fgetc( FILE *stream); // ストリームのポインタ ストリームから 1 文字、unsigned char として読込み、int にキャスト 戻り値: 正常:読込んだ文字 エラー:EOF extern char *fgets( char *s, // 格納先バッファポインタ int size, // 格納先バッファポインタのサイズ FILE *stream); // ストリームのポインタ ストリームから最大で size - 1 個の文字を読み込み、s が指すバッファに格納する み込みは EOF または改行文字を読み込んだ後で停止する 戻り値: 正常:格納先バッファポインタ エラー:EOF - 45 - extern size_t fread( void *ptr, // バッファのポインタ size_t size, // 読込むデータの単位(バイト) size_t nmemb, // 読込むデータの個数 // ストリームのポインタ ストリームから指定の単位のデータを指定した個数だけ読込む *stream); FILE 戻り値: 正常:読込んだ要素数 エラー:EOF extern size_t fwrite( const void *ptr, // バッファのポインタ size_t size, // 書込むデータの単位(バイト) size_t nmemb, // 書込むデータの個数 // ストリームのポインタ ストリームへ指定の単位のデータを指定した個数だけ書込む *stream); FILE 戻り値: 正常:書込んだ要素数 エラー:EOF extern int ip_fcntl( int fd, int cmd, ...); // ソケットを指定する ソケットの操作を行う。 戻り値: 正常終了 : 0 エラー発生: -1 - 46 - 8. LCD について 組込み済みの LCD ドライバは、 SG12864ASLB-GB(モノクロ) 128× 64 ドット 外形サイズ : 93.0× 70.0mm 液晶ビューサイズ: 72.0× 40.0mm WG240128B(Winstar 製、モノクロ) 240×128 ドット タッチパネル付 外形サイズ : 144.0×104.0mm 液晶ビューサイズ: 114.0× 64.0mm WG320240CX(Winstar 製、グレースケール 4 階調) 320×240 ドット タッチパネル付 外形サイズ : 148.0×120.2mm 液晶ビューサイズ: 120.1×92.1mm WF57DTIBCDB(Winstar 製、24bit カラー) 320×240 ドット タッチパネル付 外形サイズ : 126.0×101.5mm 液晶ビューサイズ: 117.9×89.1mm の4種類です。 LCD を接続する場合は、fconfig での設定内容を必ず確認してください。また、使用する LCD 毎にケーブルも 異なるので注意が必要です。間違ったケーブルを接続すると、LCD の故障の原因となります。 - 47 - 9.多機能拡張基板のピン配置 拡張基板 表面 拡張基板 裏面 J2コネクタ、J5コネクタ、J6コネクタ、J7コネクタは、USB コネクタ J15コネクタ、J16コネクタは、USB ミニコネクタ J4コネクタは、DC ジャック J1コネクタ、J18コネクタ(スピーカー接続用) 端子 No ポート名 2 スピーカー 2 1 スピーカー 1 - 48 - J10コネクタ 端子 No ポート名 端子 No ポート名 16 GND 15 PE5/D13/RSPCKB-B/IRQ5 14 PE4/D12/SSLB0-B 13 PE3/D11/POE8# 12 PE2/D10/SSLB3-B/POE9# 11 PE1/D9/SSLB2-B 10 PE0/D8/SSLB1-B 9 PD7/D7/MTIC5U/POE0# 8 PD6/D6/MTIC5V/POE1# 7 PD5/D5/MTIC5W/POE2# 6 PD4/D4/MTIC11U-B/POE3# 5 PD3/D3/MTIC11V-B/POE4# 4 PD2/D2/MTIC11W-B/POE5# 3 P20/PO0/MTIOC1A/TMRI0/TxD0/USB0_ID 2 P21/PO1/MTIOC1B/TMCI0/RxD0/USB0_EXICEN 1 電源 3.3V J11コネクタ 端子 No ポート名 2 電源 5V(AC アダプタ) 1 電源 5V J12コネクタ(タッチパネル接続用 J12 か J14 のどちらかが実装されている) 端子 No ポート名 4 P40/AN0 (X AD 読込み) 3 P42/AN2 (X 起動) 2 P43/AN3 (Y 起動) 1 P41/AN1 (Y AD 読込み) タッチパネルが上手く動作しない時、表裏がどちらでも挿し込めるコネクタが実装されている場合は、 表裏を逆に差し込んで試してみてください。 J14コネクタ(タッチパネル接続用 J12 か J14 のどちらかが実装されている) 端子 No ポート名 4 P42/AN2 (X 起動) 3 P40/AN0 (X AD 読込み) 2 P43/AN3 (Y 起動) 1 P41/AN1 (Y AD 読込み) タッチパネルが上手く動作しない時、表裏がどちらでも挿し込めるコネクタが実装されている場合は、 表裏を逆に差し込んで試してみてください。 J19コネクタ(LCD バックライト用) 端子 No ポート名 2 GND 1 電源 10V J20コネクタ 端子 No ポート名 2 電源 5V 1 GND - 49 - J17コネクタ 端子 No ポート名 5 P47/AN7/IRQ15-B 4 P46/AN6/IRQ14 3 P45/AN5/IRQ13-B 2 P44/AN4/IRQ12 1 P35/NMI - 50 - J9コネクタ 端子 No ポート名 端子 No ポート名 26 GND 25 PE5/D13/RSPCKB-B/IRQ5 24 PE4/D12/SSLB0-B 23 PE3/D11/POE8# 22 PE2/D10/SSLB3-B/POE9# 21 PE1/D9/SSLB2-B 20 PE0/D8/SSLB1-B 19 PD7/D7/MTIC5U/POE0# 18 PD6/D6/MTIC5V/POE1# 17 PD5/D5/MTIC5W/POE2# 16 PD4/D4/MTIC11U-B/POE3# 15 PD3/D3/MTIC11V-B/POE4# 14 PD2/D2/MTIC11W-B/POE5# 13 PD1/D1/POE6# 12 PD0/D0/POE7# 11 P47/AN7/IRQ15-B 10 P46/AN6/IRQ14 9 P45/AN5/IRQ13-B 8 P44/AN4/IRQ12 7 P43/AN3/IRQ11 6 P42/AN2/IRQ10 5 P41/AN1/IRQ9 4 P40/AN0/IRQ8 3 P07/ADTRG0#-A/IRQ15-A 2 P05/DA1/IRQ13-A 1 P35/NMI J9- 2 ∼ 3 : スピーカアンプ搭載時、使用不可 J9- 4 ∼ 7 : タッチパネル接続時、使用不可 J9-12 ∼ 25 : LCD 有の場合、使用不可 J8コネクタ 端子 No ポート名 端子 No ポート名 1 GND 2 PE6/D14/MOSIB-B/IRQ6-A 3 PE7/D15/MISOB-B/IRQ7 4 PA0/A0/BC0#/PO16/MTIOC6A/SSLA1-B 5 PA1/A1/PO17/MTIOC6B/SSLA2-B 6 PA2/A2/PO18/MTIOC6C/SSLA3-B 7 PA6/A6/PO22/MTIOC8A/MOSIA-B/ET_EXOUT 8 PA7/A7/PO23/MTIOC8B/MISOA-B/ET_WOL 9 P50/WR0#/WR#/TxD2-B/SSLB1-A 10 P51/WR1#/BC1#/WAIT#-D/SCK2/SSLB2-A 11 P52/RD#/RxD2-B/SSLB3-A 12 P53/BCLK 13 P54/MTIOC4B-B 14 USB0_DP 15 USB0_DM 16 P12/TMCI1/RxD2-A/SCL0/IRQ2-B 17 P13/ADTRG1#/PO13/MTIOC0B/TMO3/TxD2-A/SDA0/IRQ3-B 18 P20/PO0/MTIOC1A/TMRI0/TxD0/USB0_ID 19 P21/PO1/MTIOC1B/TMCI0/RxD0/USB0_EXICEN 20 P32/PO10/MTIOC0C/TxD6/CTX0/IRQ2-A/RTCOUT 21 P33/PO11/MTIOC0D/RxD6/CRX0/IRQ3-A 22 12∼24V option 23 電源 5V 24 電源 3.3V 25 外部クロック 26 GND J8- 3 ∼ 6 : 無線通信モジュール使用時、使用不可 J8- 8 : LCD 有の場合、LCD 輝度コントロールに使用 J8-15 : USB HUB IC 搭載時、使用不可 J8-16 : COM0 使用時、RxD2 J8-17 : COM0 使用時、TxD2 J8-18 : COM2 使用時、TxD0(無線通信モジュール専用) J8-19 : COM2 使用時、RxD0(無線通信モジュール専用) J8-20 : COM1 使用時、TxD6。もしくは、COM0 フロー制御有時、RTS J8-21 : COM1 使用時、RxD6。もしくは、COM0 フロー制御有時、CTS - 51 - J13コネクタ J3コネクタ J3コネクタ (LCD 接続用 WF57DTIBCDB) (LCD 接続用 WG240128B) (LCD 接続用 SG12464A) (LCD 接続用 WG320240CX) 端子 No ポート名 端子 No ポート名 端子 No ポート名 20 GND 20 GND 20 GND 19 電源 3.3V 19 電源 3.3V 19 電源 3.3V 18 NC 18 コントラスト調 18 コントラスト調整 整 17 PE5 17 PE5 17 PE5 16 PE0 16 PE0 16 PE0 15 PE1 15 PE1 15 PE1 14 PD0 14 PD0 14 PD0 13 PD1 13 PD1 13 PD1 12 PD2 12 PD2 12 PD2 11 PD3 11 PD3 11 PD3 10 PD4 10 PD4 10 PD4 9 PD5 9 PD5 9 PD5 8 PD6 8 PD6 8 PD6 7 PD7 7 PD7 7 PD7 6 PE2 6 PE2 6 PE2 5 PE3 5 PE3 5 PE3 4 NC 4 -Vee 4 電源 5V 3 NC 3 NC 3 Reset Signal 2 PE4 2 PE4 2 PE4 (LED-A) 1 NC 1 1 (LED-K) 2011/11/25 現在、WG240128B、WG320240CX の場合、2 番を 1 番にジャンパする必要がある - 52 - 10. 再生可能な MP3 ファイルの条件 LX1100 で再生可能な MP3 ファイルの条件は、以下の条件を満たしたファイルのみとなります。 ・モノラル ・オーディオサンプリングレート 44KHz ・ビットレート 40Kbps - 53 -
© Copyright 2024 Paperzz