ADSP324-00A

Size: px
Start display at page:

Download "ADSP324-00A"

Transcription

1 ADSP シリーズ ADSP324-00A ソフトウェア ユーザーズ マニュアル

2

3 目 次 1 付属ソフトウェア概要 付属ディスクの詳細 モニタ 概要 機能一覧 供給形態 メモリマップ コマンド番号一覧表 付属コマンド 概要 コマンド詳細 LOAD324.EXE: プログラムダウンローダー RESET324.EXE: リセットコマンド HOLD324.EXE: ホールドコマンド RUN324.EXE: ブートコマンド DUMP324.EXE: メモリダンプ EDIT324.EXE: メモリエディット ROM324.EXE:ROM 書き込み CSTM324.EXE: ユーティリティーカスタマイザ STGEN324.EXE:C30 用スタートアップモジュールジェネレータ 付属ライブラリ 概要 ライブラリの使用方法 ライブラリ使用上の注意 ライブラリ関数一覧 関数使用可能状態一覧表 関数詳細 BIOS 概要 機能概略 使用方法 BIOS 機能一覧 BIOS 詳細 詳細のフォーマット凡例 BIOS の詳細 プログラム開発手順 プログラム構成 開発言語 プログラミング ダウンロード デバッグと実行 運用... 71

4 7 プログラム開発と実行例 概要 開発環境と実行環境 コンパイラのインストール 付属コマンドのインストール 付属ライブラリのインストール BIOS のインストール プログラミング ホストプログラムの記述 DSP プログラムの記述 サンプルプログラムの説明 DSP プログラムのコンパイル DSP プログラムのアセンブル DSP プログラムのリンク ホストプログラムのコンパイル ホストプログラムのリンク プログラムの実行 Q&A Q: 付属コマンドを使用したら ボードが異常です と表示されたのですが Q: ボードが実装してあるのに ボードが未実装です と表示されたのですが Q: プログラムが走っているかどうか見る方法はありませんか? Q: スモールモデルだとプログラムが動かないのですが Q: 付属ライブラリが動作しないのですが Q: ボードにプログラムをロードするにはどうすればいいのですか? Q:MS-DOS のバッチコマンドでボードを起動できますか? Q: プログラムを ROM 化してボード単体で動作させたいのですが Q: ボードを単体で使用する場合 電源はどのように供給するのですか? Q: モニタは何にどうやって使うのですか? Q: メモリは全て RAM! では DSP はどうやって走るのですか? Q:C で書いたプログラムはどうやって実行されるのですか? Q: 処理速度に不満があり さらに高速化をしたいのですが Q: プログラムをオンチップ RAM に載せる方法はありますか? Q: データをオンチップ RAM に載せる方法はありますか? Q: オンチップ RAM には何を載せたらよいのですか? Q: キャッシュを効果的に利用する方法はありますか? Q:C 言語とアセンブラ言語の混在はできますか?... 92

5 1 付属ソフトウェア概要 ADSP324-00A に付属しているサポートソフトウェアは次の通りです 1 モニタ付属ライブラリとペアでユーザプログラムの起動をするほか オプションのソフト ADS P324-20( ソースレベルデバッガ ) とペアでユーザプログラムの実行やユーザーのレジスタの管理を行います 2 付属コマンド ADSP324 付属コマンドは MS-DOS のコマンドモードから ADSP324 をコントロールする DOS コマンドです DSP ボードにプログラムをダウンロードしたり DSP の実行をコントロールするなどのコマンドが用意されています キーボードより直接行ったり バッチコマンドに組み込むなどの使い方ができます 3 付属ライブラリ付属ライブラリはホスト上で動作するユーザプログラムから ADSP324 ボードをコントロール ( 又はアクセス ) したり DSP の実行をコントロールするなどの各種機能を実現する関数が用意されています 4BIOS ADSP324 ボード上で動作するユーザプログラムから使用するサブルーチン群です D SP ボード用のアセンブラまたは C 言語によるプログラムから呼び出して使用します IO の制御 ホストとの通信などの IO に関するハンドリングのほか 浮動小数点フォーマットの I EEE と DSP 間の変換の機能もサポートしています 以上のサポートソフトウェアは 付属のディスクに次のようなディレクトリに分けて格納されています \ Uty Bios Fftlib Lib Mon Sample Umbchk Uty BIOSプログラム FFTライブラリ C 言語用ライブラリ他モニタプログラムサンプルプログラム UMBセットアッププログラムユーティリティプログラム 1

6 1.1 付属ディスクの詳細 ファイルの詳細は次の通りです ( 注 : サポートソフトウェアのバージョンにより ファイルの内容 明細などが異なる場合があります その場合には ルートディレクトリにドキュメントファイルが格納されていますので そちらを参照して下さい ) サポートソフトウェアバージョン \ UTY LOAD324.EXE RESET324.EXE HOLD324.EXE RUN324.EXE DUMP324.EXE EDIT324.EXE CSTM324.EXE STGEN324.EXE ROM324.EXE SAMPLE SIN.C SIN.LNK SIN.MAP USER.CMD READ.DOC BIOS CBIOS324.H CBIOS324.LIB USER.CMD USERB.CMD SAMPLE INT3.C SIO.C TIM.C SMPL.C SMPL.LNK SMPL.DOC GEN.BAT MON 次ページへ続く前ページの続き MON324.MAP MON324.OUT SOURCE MON324.ASM HNDL.INC BREAK.INC 2

7 HOST.INC MACRO.INC REG.INC USHNDL.INC WORK.INC MON324.LNK MON324.CMD LIB SAMPLE FFTLIB 次ページへ続く LIB324L.LIB LIB324.H LIB.DOC READ.DOC SOURCE LIB324.C LIB324.H LIBGEN.BAT ALONE.C ALONE.OBJ ALONE.EXE LIB324.H HOST.C HOST.LNK HOST.OBJ HOST.EXE DSP.C DSP.LNK DSP.OBJ DSP.MAP DSP.OUT MON324.OUT USER.CMD HOSTGEN.BAT DSPGEN.BAT SAMPLE.DOC RFFT.ASM CFFT.ASM IFFT.ASM RWIN.ASM CWIN.ASM WINSETUP.ASM POWER.ASM 前ページの続き 3

8 POWER2.ASM FFT2SUB.ASM SINTBL.ASM GLOBAL.ASM SINGEN.C MAIN1D.MK MAIN1D.LNK MAIN2D.MK MAIN2D.C MAIN2D.LNK FFTLIB.LIB FFTLIB.H FFTLIB.DOC WINDOWS UBMCHK LIB32X.CPP LIB32X.H LIB32X.LIB UTY32X.EXE UMBCHK.DOC UMBCHK.EXE 4

9 2 モニタ 2.1 概要 ADSP324 モニタは DSP 用の IPL( イニシャル プログラム ロダー ) を兼ねた基本モニタプログラムです オプションソフト ADSP ソースレベルデバッガ とペアでユーザプログラムの実行やユーザレジスタの管理をします モニタを単体で使用することはありませんが モニタを用いればユーザーのプログラムからモニタ経由でオンチップ RAM をアクセスできます また RUN324.EXE とペアでユーザプログラムの実行を開始するのにも使用します 2.2 機能一覧 モニタには次の機能があります 1 モニタのリセットとボードの初期化 2 ユーザプログラムの実行 3 ユーザプログラムのステップ実行 4 BIOS の実行 5 メモリの読み出し 6 メモリの書き込み 7 メモリのクリア 8 メモリの転送 2.3 供給形態 COFF ファイルフォーマットの実行形式ファイルで供給されます LOAD324.EXE またはデバッガでロードして使用します ファイル名は MON32x.OUT です 2.4 メモリマップ ADSP324 モニタの使用しているメモリ領域は次のとおりです ユーザプログラムをリンクする際にモニタとアドレスが重複しないように注意してください アドレス 用途 h~00003Fh 割り込みベクタとトラップベクタ h~000FFFh モニタプログラム領域 h~2001FFh モニタ作業領域 h~2007FFh ホストとの通信領域 (BIOS 使用時 ) または ユーザー使用可能領域 但し モニタをロード後は 0h 番地 ( リセットベクタ ) と 20h 番地 (TRAP0) 以外の割り込み トラップベクタは書き換えても差し支えありません 以上のメモリ配置を決定するリンカーコマンドファイル USER?.CMD が付属ディスク内にありますのでリンク時にはこれを使用して下さい 5

10 2.5 コマンド番号一覧表 番号 機能名 パラメータ リザルト 0 NOP なし RS1: バージョン番号 1 RESET なし なし 2 GO なし なし 3 STEP なし なし 4 ( 予約 ) 5 BIOS CALL なし なし 6 RESET STEP なし なし 7 RESET BREAK なし なし 8 READ MEMORY OP1: アドレス RS1: メモリ値 9 ( 予約 ) 10 WRITE MEMORY OP1: アドレス なし OP2: 書き込み値 11 ( 予約 ) 12 FILL MEMORY OP1: 先頭アドレス なし OP2: 長さ OP3: 書き込み値 13 MOVE MEMORY OP1: 先頭アドレス なし OP2: 長さ OP3: 転送先アドレス 14 ( 予約 ) 15 ( 予約 ) 3 付属コマンド 3.1 概要 ADSP324 付属コマンドは MS-DOS のコマンドモードから ADSP324 をコントロールする DOS コマンドです DSP ボードにプログラムをダウンロードしたり DSP の実行をコントロールするなどのコマンドが用意されています ( キーボードから直接実行したり バッチコマンドに組み込むなどの使い方が出来ます ) 以下に用意されているコマンドの一覧を示します LOAD324.EXE RESET324.EXE HOLD324.EXE RUN324.EXE DUMP324.EXE EDIT324.EXE CSTM324.EXE ROM324.EXE STGEN324.EXE プログラムのダウンロードをします ボードをリセットします ボードをホールドします DSPの実行を開始します DSPのメモリをダンプ ( アップロード ) します DSPメモリの表示修正をします 付属コマンドをカスタマイズします オプションのROMボードへプログラムを書き込みます ブートモジュールを生成します 6

11 3.2 コマンド詳細 LOAD324.EXE: プログラムダウンローダー * オブジェクトファイルを ADSP324 にダウンロードします 書式 :A>LOAD324 <file name1> <file_name2...> <switch> ロードできるオブジェクトファイルは COFF または HEX ファイルです ファイル名は最大 1 6 個まで同時に指定できます ファイル名の拡張子は不要です.OUT または.B0~.B3 を付加したファイル名を自動的に生成します スイッチを次に示します /0~/15 : ボード番号を指定します ( デフォルトは0) /g : ロード後 実行を開始します ( デフォルトは停止のままです ) /b : ロード後 ブートベクタをセットします /o : ロードアドレス重複チェックを禁止します /r : ロード前にDSPをリセットします /c : セグメント I/Oアドレスのデフォルトをカスタマイズします /s:xxxx : セグメントアドレス指定 ( 出荷時のデフォルトは E000) /i:xxxx : I/Oアドレス指定 ( 出荷時のデフォルトは 0300) RESET324.EXE: リセットコマンド *ADSP324 をリセットします 書式 :A>RESET324 <switch> スイッチを次に示します /0~/15 : ボード番号を指定します ( デフォルトは0) /a : 全ボード番号 (0~15のうち実装されているもの) を指定 /h : リセット後 ホールド ( 実行待機 ) 状態にします /r : 実装メモリの0クリアを行います /c : セグメント I/Oアドレスのデフォルトをカスタマイズします /s:xxxx : セグメントアドレス指定 ( 出荷時のデフォルトは E000) /i:xxxx : I/Oアドレス指定 ( 出荷時のデフォルトは 0300) 7

12 3.2.3 HOLD324.EXE: ホールドコマンド *ADSP324 の実行状態を表示 / 制御します 書式 :A>HOLD324 <switch> スイッチを次に示します HOLD : ボードを停止状態 (HOLD) にします RUN : ボードを実行状態にします RUN/HOLD いずれの指定もない場合は 現在の状態を表示します /0~/15 : ボード番号を指定します ( デフォルトは0) /a : 全ボード番号 (0~15のうち実装されているもの) を指定します /c : セグメント I/Oアドレスのデフォルトをカスタマイズします /s:xxxx : セグメントアドレス指定 ( 出荷時のデフォルトは E000) /i:xxxx : I/Oアドレス指定 ( 出荷時のデフォルトは 0300) RUN324.EXE: ブートコマンド *ADSP324 を任意のアドレスから実行開始します ( このコマンドの実行にはユーザプログラムのほか ADSP モニタのロードが必要です ) 書式 :A>RUN324 address <switch> address は実行開始番地を 16 進数で指定します スイッチを次に示します /0~/15 : ボード番号を指定します ( デフォルトは0) /a : 全ボード番号 (0~15のうち実装されているもの) を指定します /c : セグメント I/Oアドレスのデフォルトをカスタマイズします /s:xxxx : セグメントアドレス指定 ( 出荷時のデフォルトは E000) /i:xxxx : I/Oアドレス指定 ( 出荷時のデフォルトは 0300) 8

13 3.2.5 DUMP324.EXE: メモリダンプ *ADSP324 のメモリ内容を表示 ( アップロード ) します 書式 :A>DUMP324 top_address data_length <switch> top_address は 16 進数 10 進数 ラベルが使用できます data_length は 16 進数または 10 進数で指定します スイッチを次に示します /0~/15 : ボード番号を指定します ( デフォルトは0) /h : インテル ヘキサ フォーマットで表示します /h:name : インテル ヘキサ フォーマットでファイル化します /t:name : 拡張 Tek ヘキサ フォーマットでファイル化します ファイル名に拡張子は不要です 自動的に.B0~.B3 を付加します /e : データをIEEE 単精度浮動小数形式で表示します /f : データをTI 単精度浮動小数形式で表示します /b : データをバイト単位で表示します /d : データを10 進数で表示します /@:file : ラベルを検索するマップファイル (.map) を指定します /c : セグメント I/Oアドレスのデフォルトをカスタマイズします /s:xxxx : セグメントアドレス指定 ( 出荷時のデフォルトは E000) /i:xxxx : I/Oアドレス指定 ( 出荷時のデフォルトは 0300) EDIT324.EXE: メモリエディット *ADSP324 のメモリを表示 手入力による編集をします 書式 :A>EDIT324 <address> <switch> address は 16 進数で指定します 省略も可能です スイッチを次に示します /0~/15 : ボード番号を指定します ( デフォルトは0) /c : セグメント I/Oアドレスのデフォルトをカスタマイズします /s:xxxx : セグメントアドレス指定 ( 出荷時のデフォルトは E000) /i:xxxx : I/Oアドレス指定 ( 出荷時のデフォルトは 0300) 9

14 3.2.7 ROM324.EXE:ROM 書き込み * ユーザプログラムを ROM へ書き込みます 書式 1:A>ROM324 xxx.out <switch> 書式 xxx.out...coff ファイル resp_file... レスポンスファイル COFF ファイルの拡張子は省略可能です 省略した場合は.out になります レスポンスファイルは引き数とスイッチをファイルから与えることができます COFF ファイル名の拡張子部分が.rom のファイルを作業ファイルとして使用しますので xxx.rom がカレントにある場合は注意して下さい スイッチを次に示します /0~/15 : ボード番号を指定します ( デフォルトは0) /k : 作業ファイルとして作成される xxx.rom ファイルを保存します /l : 作業ファイル xxx.rom をROMに書き込みます この時 入力 COFFファイルの指定は無視されます.rom ファイルはROM 書き込みイメージそのものなので 処理時間が短縮されます /cn : キャッシュの制御を行います (n=0 で無効 n=1 で有効です ) デフォルトは /c1( 有効 ) です /s:ssss : スタック領域をエントリします デフォルトは h です /d:ssss : DINT 処理ルーチンをエントリします /x:ssss : SIO 送信ルーチンをエントリします /r:ssss : SIO 受信ルーチンをエントリします /pn:ssss : トラップ (0~31) 処理ルーチンをエントリします /tn:ssss : タイマ0/1 割り込み処理ルーチンをエントリします /in:ssss : 外部割り込み (0~3) 処理ルーチンをエントリします /ct : セグメント I/Oアドレスのデフォルトをカスタマイズします /se:xxxx : セグメントアドレス指定 ( 出荷時のデフォルトは E000) /io:xxxx : I/Oアドレス指定 ( 出荷時のデフォルトは 0300) xxxx は 16 進数 4 桁で指定して下さい ssss は 16 進数または処理ルーチンのラベルです 全ての割り込みエントリのデフォルトは スタートアップのダミーベクタを示しています ( 内部は空 ) 10

15 3.2.8 CSTM324.EXE: ユーティリティーカスタマイザ *ADSP324 ユーティリティをカスタマイズします カスタマイズする目的は ADSP ボードの I/O アドレスとメモリ ベースアドレスの設定を変更した場合 各コマンドのデフォルトをこれに合わせて変更します 書式 :A>CSTM324 uty_name <switch> uty_name 特定の付属コマンドをカスタマイズする場合はこの引き数を指定します 全コマンドをカスタマイズする場合にはこの引き数は省略し 次の /a スイッチを指定します スイッチを次に示します /a : ADSP324 付属ユーティリティをカスタマイズします /k : セグメント I/Oアドレスのキー入力による指定 /s:xxxx : セグメントアドレスのスイッチによる指定 /i:xxxx : I/Oアドレスのスイッチによる指定 但し /k と /s,/i は同時に指定できません 11

16 3.2.9 STGEN324.EXE:C30 用スタートアップモジュールジェネレータ * リンカーの出力したマップファイルの情報を基にロードモジュール用のスタートアップモジュール (COFF ファイル ) を出力します 書式 1:A>STGEN324 xxx.map ooo <switch> 書式 xxx.map... リンカーマップファイル ooo...coff ファイル ( 省略可能 ) resp_file... レスポンスファイル マップファイルの拡張子は省略可能です 省略時は上記拡張子が採用されます COFF ファイルの拡張子は不要です 自動的に.OUT が付加されます COFF ファイル名省略時のファイル名は START.OUT が採用されます レスポンスファイルは引数とスイッチをファイルから与えることができます 書式 1 の方法と併用が可能です スイッチを次に示します /cn : キャッシュの制御を行います (n=0 で無効 n=1 で有効です ) デフォルトは /c1( 有効 ) です /s:nnnn : 確保するスタック領域をエントリします デフォルトは h です /d:nnnn : DINT 処理ルーチンをエントリします /x:nnnn : SIO 送信ルーチンをエントリします /r:nnnn : SIO 受信ルーチンをエントリします /pn:nnnn : トラップ (0~31) 処理ルーチンをエントリします /tn:nnnn : タイマ0/1 割り込み処理ルーチンをエントリします /in:nnnn : 外部割り込み (0~3) 処理ルーチンをエントリします nnnn は 16 進数または処理ルーチンのラベルです 全ての割り込みエントリのデフォルトは スタートアップのダミーベクタを示しています ( 内部は空 ) 12

17 4 付属ライブラリ 4.1 概要 付属ライブラリはホスト上で動作するユーザプログラムから ADSP324 ボードをコントロールしたり アクセスしたい場合に使用する関数ライブラリです DSP ボードにプログラムをダウンロードしたり DSP の実行をコントロールする機能など各種機能の関数が用意されています 初期化関数 ボード関連関数 ボード制御関数 ダウン / アップロード関数 特殊制御関数 通信関数 オフライン関数 付属ライブラリは C 言語 (MS-C) によるバージョンが用意されています 4.2 ライブラリの使用方法 付属ライブラリは次の要素から構成されています インクルードファイル ライブラリ モジュール ソースファイル (C) インクルードファイルはユーザプログラムにてインクルードして下さい 関数のプロトタイプ宣言のほか データの構造体 定義定数などが宣言されています ライブラリ モジュールはラージモデルで作成されています リンカーでリンクする際に一緒にリンクして下さい ソールファイルは改変してユーザプログラムの一部として使用頂いて結構です ( 但し 改変された関数については動作の保証は致しかねます ) 13

18 4.3 ライブラリ使用上の注意 ライブラリをより効果的かつ的確に使用して頂くためには注意すべき点がいくつかあります 以下に記しますので プログラミングの際のご参考にして下さい 1 このライブラリには ライブラリの初期化関数があります (A324_libinit( )) ほかのどの関数の実行よりも先にこの初期化関数を実行する必要があります これを行わないとライブラリが正しく動作しないほか 思わぬ動作をする場合がありますので注意して下さい 2 ADSP324 ボードはホストから見た場合 マルチボード構成になります 従ってライブラリもそれに対応しています ホストからボードをアクセスする場合の基本的な手順は 1 アクセスする対象のボードを選択する 2 ボードをアクセスするといった手順になります ところが ボードを 1 枚しか使用しない場合には対象ボードの選択は初めに 1 回のみ行えばよく 毎回行う必要はありません そこで ライブラリの使いやすさとオーバーヘッドの低減を考慮し ボードをアクセスする関数には A: 対象ボードを選択してからアクセスするタイプ B: 対象ボードを選択せず ( 現在選択されているボードに対して ) アクセスするタイプの 2 種類があります また 対象ボードの台数 アクセスするボードを切り換えるタイミングなどユーザプログラムの構造に応じて 適当なタイプを選択して使用して下さい ボードが 1 台の場合初期化時に対象ボード番号を選択し 以後上記 B タイプの関数を使用する ボードが複数の場合で 全ボードを平均的にアクセスする場合初期化後 上記 A タイプの関数を使用する ボードが複数で 特定のボードにアクセスが集中する場合ボードごとの手続きを関数化し 関数の初めに対象ボードを選択します 関数内では B タイプの関数を使用します * なお A/B の関数の名称は ほぼ同名で A タイプの関数名の先頭に _ を付けた名称が B タイプの関数の名称となります 3 ボードの状態には停止 ( ホールド ) 状態と実行 ( ラン ) 状態があります ライブラリにはこの状態について 1 停止状態でのみ実行可能なもの 2 実効状態でのみ実行可能なもの 3 どちらでも実行可能なものの 3 種類があります 各関数の説明または使用可能状態一覧表を参照の上 注意して使用して下さい ボードの 2 つの状態はコントロールする関数がありますので 状態を適時コントロールしながら使用します 14

19 4.4 ライブラリ関数一覧 初期化関数 int A324_libinit(UI,UI); 関数ライブラリの初期化 ボード関連関数 int A324_valid(UI); ボード実装確認 void A324_bdsel(UI); ボード選択 void A324_bdinit(UI); ボード初期化 void A324_bnksel(UI,UL); メモリバンク選択 ボード制御関数 int A324_hold(UI); ボード停止 int A324_run(UI); ボード実行開始 int A324_start(UI,UL); ユーザプログラム実行開始 int A324_startm(UI,C *); ユーザプログラム実行開始 int A324_boot(UI,UL); 実行開始番地設定 void A324_reset(UI); ボードリセット void A324_holdstus(UI); 実行停止確認 ダウン / アップロード関数 int A324_putmem(UI,UL,UL); メモリからのダウンロード void A324_getmem(UI,UL,UL); メモリへのアップロード int A324_loadc(UI,C *); COFFファイルのダウンロード int A324_loadm(UI,UL,UL,UL *); メモリからのダウンロード int A324_savec(UI,UL,UL,UL,C *); COFFファイルへのアップロード int A324_savem(UI,UL,UL,UL *); メモリへのアップロード 特殊制御関数 int A324_ini0(UI); DSPボードへの割り込み発生 int A324_moniter(UI,A324_mon_prm *); モニタコマンド実行 int A324_bios(UI,A324_bios_prm *); DSP-BIOS 実行 通信関数 void A324_hinit(UI); 関数初期化 int A324_htxst(UI); 送信ステータス確認 int A324_htfr(UI,UL); コード送信 int A324_htfrdt(UI,UL,UI,C *); データ送信 int A324_hwit(UI); 送信相手完了確認 int A324_hrxst(UI); 受信ステータス確認 int A324_hrcv(UI,UL *); コード受信 int A324_hrcvdt(UI,UL *,UI *,C *); データ受信 void A324_hrdy(UI,I); 受信完了報告 15

20 オフライン関数 int A324_symbolm(C *,C *,UL *); int A324_symbolc(C *,C *,UL *); int A324_entrym(C *,C *,UL *); int A324_entryc(C *,UL *); マップからのシンボル取り出し COFFからのシンボル取り出しマップからのエントリ取り出し COFFからのエントリ取り出し C : char I : int UI : unsigned int UL : unsigned long 16

21 4.5 関数使用可能状態一覧表 凡例 : 使用可能 : 使用不可能 : 使用可能かつ実行後この状態に移行する : 実行可能だが 本来はこの状態で実行すべき関数ではありません 関数名 関数の機能 停止状態 実行状態 A324_bdinit( ) ボード初期化 A324_bdsel( ) ボード選択 A324_bios( ) DSP-BIOS 実行 A324_bnksel( ) メモリバンク選択 A324_boot( ) 実行開始番地設定 A324_entryc( ) COFFからのエントリ取り出し A324_entrym( ) マップからのエントリ取り出し A324_getmem( ) メモリへのアップロード A324_hinit( ) 関数初期化 A324_hold( ) ホールド停止 A324_holdstus( ) 実行停止確認 A324_hrxst( ) 受信ステータス確認 A324_hrcv( ) コード受信 A324_hrcvdt( ) データ受信 A324_hrdy( ) 受信完了報告 A324_htfr( ) コード送信 A324_htfrdt( ) データ送信 A324_htxst( ) 送信ステータス確認 A324_hwit( ) 送信相手完了確認 A324_int0( ) DSPボードへ割り込み発生 A324_libinit( ) 関数ライブラリの初期化 A324_loadc( ) COFFファイルのダウンロード A324_loadm( ) メモリからのダウンロード A324_moniter( ) モニタコマンド実行 A324_putmem( ) メモリからのダウンロード A324_reset( ) ボードリセット A324_run( ) ボード実行開始 A324_savec( ) COFFファイルへアップロード A324_savem( ) メモリへのアップロード A324_start( ) ユーザプログラム実行開始 A324_startm( ) ユーザプログラム実行開始 A324_symbolc( ) COFFからのシンボル取り出し A324_symbolm( ) マップからのシンボル取り出し A324_valid( ) ボード実装確認 17

22 4.6 関数詳細 関数名ボード初期化 記述 void A324_bdinit(board); /* 任意ボード */ void _A324_bdinit( ); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ 説明 戻り値 ADSP324 ボードをリセットし 初期化状態に保持します ボードリセット関数 A324_reset( ) との違いは リセット関数はリセット後ボードは実行を開始するのに対し 初期化関数はリセット後 停止したままの状態を保持しています 電源の投入後 まだ一度もプログラムをロードしていない場合 DSP のメモリは不定になっています この状態でボードを実行させると DSP の暴走により以後ボードのコントロール ( ホールドなど ) が出来なくなる場合があります 電源投入後 初めてボードをアクセスする場合には まずこの関数を実行します ありません 参考 A324_reset( ),A324_hold( ) 使用例 A324_bdinit( ); /* 初期化 */ A324_hold( ); /* ホールドします */ 18

23 関数名ボード選択 記述 void A324_bdsel(board); /* 任意ボード */ void _A324_bdsel( ); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ 説明 アクセスの対象となるボードを選択します ボード指定機能の付いていない関数を使用するのに先立ち 対象ボードを決定します 戻り値ありません 使用例ボード番号 0~3 に同じプログラムをロードして起動する例です ( 注 : エラー処理は省略してあります ) 関数 func_1( ) と func_2( ) は同じ処理をしますが func_2( ) のほうがオーバーヘッドが小さく また func_2( ) のほうが直感的で分りやすいでしょう func_1( ) { unsigned int bn; /* ボード番号 */ for( bn = 0 ; bn < 4 ; ++bn){ { A324_bdsel(bn); /* ボードを選択する */ _A324_hold( ); /* 現在のボードに対して */ _A324_loadc( TEST ); _A324_reset( ); _A324_run( ); } } func_2( ) { unsigned int bn; /* ボード番号 */ for( bn = 0 ; bn < 4 ; ++bn){ { A324_hold(bn); /* 各関数毎に指定 */ A324_loadc(bn, TEST ); A324_reset(bn); A324_run(bn); } } 19

24 関数名 DSP-BIOS の実行 記述 void A324_bios(board,prms); /* 任意ボード */ void _A324_bios(prms); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ A324_bios_prm *prms; /* BIOS 引数と戻り値 */ 説明 ADSP324 のモニタに組み込まれた BIOS とモニタ経由でホストから実行します BIOS へ渡す機能番号と引数は構造体で渡します 構造体はインクルードファイルに定義されています モニタを使用して BIOS を実行しますので この関数を実行する時には ADSP324 は次の状態にセットアップします 1) BIOS の組み込まれているモニタをロードする 2) ボードをリセットする 3) ボードを実行状態にする 戻り値 0 (NO_ERROR) 実行完了しました 1 (ERROR) モニタをハンドリングができません 参考 A324_monitor( ) 使用例 #define BNO 0 /* ボード番号 */ #include lib324.h A324_bios_prm prms; /* まずここでモニタをロードします */ /* 詳細は A324_loadc( ) を参照してください */ A324_reset(BNO); A324_run(BNO); /* エラー処理省略 */ /* パラメータセットアップ */ prms.ro = 75 /* IEEE から TI 浮動小数へ */ prms.r2 = 0x ; /* アドレス */ prms.r3 = 100; /* 長さ */ if(a324_bios(bno,&prms)) printf( BIOS(monitor) exec error\n ); else printf( function complete\n ); 20

25 関数名メモリバンク選択 記述 void A324_bnksel(board,address);/* 任意ボード */ void _A324_bnksel(address); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ unsigned long address; /* メモリアドレス */ 説明 戻り値 使用例 停止モードで DSP の外部メモリをアクセスする場合のアドレスをボードに対して設定します DSP を停止した状態で使用してください ありません DSP の外部メモリをホストが直接アクセスします #include <dos.h> #include <stdio.h> #define A324_offset(ad) (ad & 0xfff) unsigned long _far *ptr; unsigned long Address,offset,data; ptr =(long _far *)((unsigned long)adsp_seg * 0x10000L); Address = 0x12345; /* メモリアドレス */ A324_bdsel(BN0); /* 対象ボードを選択する */ _A324_hold( ); /* 停止モードにする */ _A324_bnksel(Address); /* メモリバンクを選択 */ offset = A324_offset(Address) /* オフセットを計算 */ data = *(ptr + offset); /* データを取得 */ 21

26 関数名実行開始番地設定 記述 int A324_boot(board,address); /* 任意ボード */ int _A324_boot(address); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ unsigned long address; /* メモリアドレス */ 説明 戻り値 使用例 DSP ボードのリセットベクタを設定し 実行を開始します 次回からはリセットのみで再起動できます この関数を用いて DSP を任意の番地から実行させることができます 実行させるのにモニタを使用しないでリセットと同時に実行を開始します 但し DSP の初期化などをユーザプログラムが行う必要があり とくにプライマリ バス制御レジスタの初期化はメモリアクセスのウェイト数を決定する重要なレジスタで 必ず初期化が必要です 従って その点を考慮したプログラムに対してのみ使用してください C で記述したプログラムの場合には main( ) の最初の部分でその初期化をすることも可能です 0 (NO_ERROR) 正常に終了しました -1(ERROR) 異常が発生しました 原因は次のいずれかです 1) ボードの停止実行状態の切り替えができない 2) ボードのメモリにデータが書き込めない #define BN0 0 unsigned long adrs; adrs = BOOT_ADRS; A324_boot(BN0,adrs); 22

27 関数名 COFF ファイルからのエントリ取り出し 記述 int A324_entryc(name,entry); 引数 char *name; /* COFFファイル名 */ unsigned long entry; /* エントリ番地 */ 説明 戻り値 COFF フォーマットのオブジェクトファイルから起動番地を取得します COFF ファイルにはオブジェクトコードの他にプログラムの実行開始番地情報も格納されています これを取り出し モニタに与えることにより COFF ファイルを正確に起動できます マップファイルからも同様にエントリ番地が取り出せます 0 (NO_ERROR) 正常に終了しました -1(ERROR) 異常終了しました 原因は次のいずれかです 1) ファイルが見つからない 2) ファイルが異常である 3) ファイルはCOFFファイルではない 参考 A324_entrym( ) 使用例 char *name; unsigned long adrs; name = TEST.OUT ; if(a324_entryc(name,&adrs)) printf( entry get error\n ); else printf( entry address is %08lX\n,adrs); 23

28 関数名マップからのエントリ取り出し 記述 int A324_entrym(file_name,entry_name,entry); 引数 char *file_name; /* ファイル名 */ char *entry_name; /* エントリシンボル名 */ unsigned long entry; /* エントリ番地 */ 説明 戻り値 DSP プログラムのマップファイルから起動番地を取得します SDP のプログラム開発時にリンカーが出力したマップファイルを取り込み エントリポイントのシンボルとアドレスを取得します COFF ファイルからも同様にエントリ番地が取り出せます 0 (NO_ERROR) 正常に終了しました -1(ERROR) 異常終了しました 原因は次のいずれかです 1) ファイルが見つからない 2) ファイルが異常である 3) ファイルはマップファイルではない 参考 A324_entryc( ) 使用例 char *file_name; /* ファイル名 */ char entry_name[120]; /* エントリシンボル名 */ unsigned long adrs; /* エントリアドレス */ file_name = TEST.MAP ; if(a324_entrym(file_name,entry_name,&adrs)) printf( entry get error\n ); else{ printf( entry symbol[%s]\n,entry_name); printf( entry address %08lX\n,adrs); } 24

29 関数名 DSP メモリからアップロード 記述 void A324_getmem(board,adrs,buff); /* 任意ボード */ void _A324_getmem(adrs,buff); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ unsigned long adrs; /* メモリのアドレス */ unsigned long *buff; /* メモリバッファ */ 説明 DSP の外部メモリからホストへのメモリへデータをアップロードします データ長は 1 ワードです 戻り値 ありません 参考 A324_putmem( ) 使用例 #include <malloc.h> #define BN0 0 #define LEN 100 unsigned long *buff,*ptr; unsigned long adrs; int c; if(buff = (unsigned long *)malloc(sizeof(long)*len))= = NULL){ printf( no more memory.\n ); exit(1); A324_bdsel(BN0); for(ptr = buff,c = 0;c < LEN;++c) _A324_getmem(adrs++,ptr++); 25

30 関数名関数初期化 記述 void A324_hinit(board); /* 任意ボード */ void _A324_hinit( ); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ 説明 戻り値 対 DSP 通信関数の初期化をします DSP プログラムとオンラインで通信をする場合 最初にこの関数にて初期化する必要があります ありません 参考 A324_hrv( ),A324_hrcvdt( ),A324_htfr( ),A324_htfrdt( ) 使用例 #define BN0 0 A324_hinit(BN0); 26

31 関数名ボード停止 記述 int A324_hold(board); /* 任意ボード */ int _A324_hold( ); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ 説明 戻り値 DSP ボードを停止状態にします DSP の外部メモリを直接ホストからアクセスする場合にこの機能を使用します DSP 自体はホールド機能により一旦停止されるのみで 後に実行状態にすることにより実行を継続できます 0 (NO_ERROR) 正常に終了しました -1(ERROR) ボードが異常です 参考 A324_run( ),A324_holdstus( ) 使用例 if(a324_hold(bn0)) printf( board hold error.\n ); else printf( board hold.\n ); 27

32 関数名実行停止確認 記述 int A324_holdstus(board); /* 任意ボード */ int _A324_holdstus( ); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ 説明 ボードの停止状態を取得します ボードがホールドしているか または実行しているかをテストし結果を返します A324_run ( ) A324_hold( ) により正しく制御された後にこの関数を実行した場合はそれぞれ停止 実行状態が回答されます 停止 実行状態が A324_run( ) A324_hold( ) 関数または同等の機能の関数を使用せず DSP が勝手に状態を遷移することはありません 従って シーケンシャルなプログラムの場合には特にこの関数を使用する必要はありません この関数の用途は未知のボード状態を取得したい時などです 戻り値 1(TRUE) 停止しています 0(FALSE) 実行しています 参考 A324_hold( ),A324_run( ) 使用例 #define BN0 0 unsigned int bn; if(a324_holdstus(bn)) printf( board number %d is HOLDing\n,bn); else printf( board number %d is RUNing\n,bn); 28

33 関数名受信ステータス確認 記述 int A324_hrxst(board); /* 任意ボード */ int _A324_hrxst( ); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ 説明 DSP がホストへのデータ送信を開始しているかを確認します ホストと DSP 間のハンドリングは CPU でソフト的に行っています ホスト側が受信関数を実行しない場合 DSP 側の送信処理は完了しません ランダムなタイミングで DSP からホストへデータの送信が行われる場合 この関数で DSP の送信開始をしていた場合は受信処理を実行し そうでない場合は別の処理を行ってもかまいません 戻り値 0 DSPは送信を開始していません 0 以外 DSPは送信を開始しています 参考 A324_hrcv( ),A324_hrcvdt( ) 使用例 #define BN0 0 A324_hinit(BN0); if(a324_hrcv(bn0)) A324_hrcv(BN0,code); else { /* */ } 29

34 関数名コード受信 記述 int A324_hrcv(board,code); /* 任意ボード */ int _A324_hrcv(code); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ 説明 DSPから1ワードのコードを受信します DSPからホストへ渡すデータが1ワードの場合 この関数を使用します 機能的には A324_hrcvdt( ) 関数のデータ長が0の場合と同じですが あらかじめデータ長が0とわかっている場合にはこの関数の方がオーバーヘッドが小さくなります 受信処理中にソフトタイマでタイムアップを監視する機能とCTRL+Cによる中断を検出する機能があります ソース上に定数になっていて任意による変更が可能です それぞれ次の定数定義を変更してください CTRL_C_LOOP 1でCTRL+Cの検出をします 出荷時には1になっています ENDLESS_LOOP 1でハンドリングを完了するまで関数を終了しません 出荷時には0になっています 戻り値 0(NO_ERROR) 正常に受信しました -1(ERROR) 受信中にタイムアップしました DSPが送信を開始していないか または停止しています 参考 A324_hrcvdt( ) 使用例 unsigned long code; if(a324_hrcv(bn0,&code)) printf( recieve error\n ); else printf( receive %08lx\n,code); 30

35 関数名データ受信 記述 int A324_hrcvdt(board,code,len,data); /* 任意ボード */ int _A324_hrcvdt(code,len,data); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ unsigned long *code; /* コード受取り */ unsigned int *len; /* データ長受取り */ unsigned long *data; /* データ受取バッファ */ 説明 DSPから1ワードのコードと任意の長さのデータを受信します DSPからホストへ渡すデータが複数ワードの場合この関数を使用します データは1ワード 4バイトのデータ すなわちlongまたはfloatに限られます DSPのワード幅が4 バイトであり DSPのワード数が転送データ長の単位になります データ長はDSP 側が送信をする時点で指定します データ長はMAX1700ワードです データ受取バッファは予め充分な長さを確保しておく必要があります 受信処理中にソフトタイマでタイムアップを監視する機能とCTRL+Cによる中断を検出する機能があります ソース上に定数になっていて 任意に変更が可能です それぞれ次の定数定義を変更してください CTRL_C_DETECT 1で CTRL+C の検出をします 出荷時には1になっています ENDLESS_LOOP 1でハンドリングを完了するまで関数を終了しません 出荷時には0になっています 戻り値 0(NO_ERROR) 正常に受信しました -1(ERROR) 受信中にタイムアップしました DSPが送信を開始していないか または停止しています 参考 A324_hrcv( ) 使用例 unsigned long code; unsigned int len; float data[1700]; if(a324_hrcvdt(bn0,&code,&len,(unsigned long*)data)) printf( recieve error\n ); else { printf( receive code %08lx\n,code); printf( receive %d datas\n,len); } 31

36 関数名受信完了報告 記述 void A324_hrdy(board,stus); /* 任意ボード */ void _A324_hrdy(stus); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ int stus; 説明 戻り値 DSP からデータ ( またはコード ) を受信したら 次にこの完了報告をします これにより D SP はホストが処理を完了したことを検出できます ありません 参考 A324_hrxst( ),A324_hrcv( ),A324_hrcvdt( ) 使用例 #define BN0 0 unsigned long code; int st; A324_hrcv(BN0,&code); A324_hrdy(BN0) 32

37 関数名コード送信 記述 int A324_htfr(board,code); /* 任意ボード */ int _A324_htfr(code); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ unsigned long code; /* 送信コード */ 説明 DSPへ1ワードのコードを送信します ホストからDSPへ渡すデータが1ワードの場合この関数を使用します 機能的には A324_tfrvdt( ) 関数のデータ長が0の場合と同じですが 予めデータ長が0とわかっている場合にはこの関数の方がオーバーヘッドが小さくなります 送信処理中にソフトタイマでタイムアップを監視する機能とCTRL+Cによる中断を検出する機能があります ソース上に定数になっており任意に変更が可能です それぞれ次の定数定義を変更してください CTRL_C_DETECT 1で CTRL+C の検出をします 出荷時には1になっています ENDLESS_LOOP 1でハンドリングを完了するまで関数を終了しません 出荷時には0になっています 戻り値 0(NO_ERROR) 正常に送信しました -1(ERROR) 送信中にタイムアップしました DSPが受信を開始してなないかまたは停止しています 参考 A324_htfrdt( ) 使用例 #define BN0 0 unsigned long code; code = 0x1234l; if(a324_htfr(bn0,code)) printf( transfer error\n ); else printf( transfer complete\n ); 33

38 関数名データ送信 記述 int A324_htfrdt(board,code,len,data); /* 任意ボード */ int _A324_htfrdt(code,len,data); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ unsigned long code; /* 送信コード */ unsigned int len; /* 送信データ長 */ unsigned long *data; /* 送信データーバッファ */ 説明 DSPへ1ワードのコードと任意の長さのデータを送信します ホストからDSPへ渡すデータが複数ワードの場合この関数を使用します データは1ワード 4バイトのデータ 即ちlongまたはfloatに限られます DSPのワード幅が4バイトであり DSPのワード数が転送データ長の単位になります データ長はホスト側が送信をする時点で指定します データ長はMAX1700ワードです DSP 側のデータ受取バッファは充分な長さが必要です 送信処理中にソフトタイマでタイムアップを監視する機能とCTRL+Cによる中断を検出する機能があります ソース上に定数になっており 任意に変更が可能です それぞれ次の定数定義を変更してください CTRL_C_DETECT 1で CTRL+C の検出をします 出荷時には1になっています ENDLESS_LOOP 1でハンドリングを完了するまで関数を終了しません 出荷時には0になっています 戻り値 0(NO_ERROR) 正常に送信しました -1(ERROR) 送信中にタイムアップしました DSPが受信を開始してなないかまたは停止しています 参考 A324_htfr( ) 使用例 #define BN0 0 unsigned long code; unsigned long data[1700]; unsigned int len; len = 100; for(c = 0;c < 100;++c) data[c]= c; code = 0x1234l; if(a324_htfrdt(bn0,code,len,data)) printf( transfer error\n ); else printf( transfer complete\n ); 34

39 関数名送信ステータス確認 記述 int A324_htxst(board); /* 任意ボード */ int _A324_htxst( ); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ 説明 DSP へのデータ送信のステータスを取得します DSP とのデータ授受は双方向性の同一領域を介して行っています 先に送ったデータをまだ DSP が取り出しを完了していない場合は ホストは次のデータの送信を開始することはできません そのため送信に先だって この関数を使用して通信バッファが空であることを確認します 戻り値 0 DSPへの送信を開始できます (DSPが受信完了報告を行った場合 または次のデータの受信を開始している場合 ) 0 以外 DSPへの送信を開始できません 参考 A324_htfr( ),A324_htfrdt( ) 使用例 35

40 関数名送信相手完了確認 記述 int A324_hwit(board); /* 任意ボード */ int _A324_hwit( ); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ 説明 DSP へのデータの送信後 DSP が受信の後処理を完了したかどうかのタイミングを同期する目的で使用します 例えば DSP 側がデータ受信後 なんらかの処理を行いホストはその完了を待機してから次の処理を開始する場合などに使用します この関数はシーケンシャルにデータを送信するだけの場合には特に実行する必要はありません 戻り値 0 DSPは送信処理を完了しました (DSPが受信完了報告を行った場合 または次のデータの受信を開始している場合 ) 0 以外 DSPは送信後の処理中です 参考 A324_htfr( ),A324_tfrdt( ) 使用例 #define BN0 0 unsigned long code; unsigned long data[1700]; unsigned int len; if(a324_htfrdt(bn0,code,len,data)) exit(1); for(;;) { if(!a324_hwit(bn0))break; } printf( DSP s receive porccess complete\n ); 36

41 関数名 DSP ボードへ割り込み発生 記述 int A324_int0(board); /* 任意ボード */ int _A324_int0( ); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ 説明 ホストから DSP に対して割り込みを発生します ホストから DSP への同期に利用できます ハード的な INT0 割り込みです ADSP324-20( デバッガ ) はこの機能を使用していますので この関数を使用する場合のユーザプログラムのデバッグは行えません ホストと DSP 間の同期が リアルタイムでかつ速度が要求される場合を除いて極力 A324_hxxxx 関数を使用してください 戻り値 0(NO_ERROR) 常に 0 使用例 #define BN0 0 A324_int0(BN0) 37

42 関数名関数ライブラリ初期化 記述 int A324_libinit(seg,io); 引数 unsigned int seg; /* メモリアドレス */ unsigned int io; /* IOポートアドレス */ 説明 ライブラリの初期化とボードの実装確認をします 本ライブラリを使用するのに先だって 必ず実行してください メモリアドレスと IO ポートアドレスはボードのディップスイッチの設定により変更できます ハードウェア ユーザーズマニュアルを参照のうえ ボードの設定と同一にしてください io :DSW102,103 の設定 seg :DSW101 の設定 seg に与えるアドレスはアドレス値の際 下位 14 ビットを除いた 10 ビット分を与えます ボードの工場出荷時設定の場合 DSW の設定は 0E0000h に設定されていますから se g には 0E000h を与えます 戻り値 0(NO_ERROR) 正常終了しました -1(ERROR) 異常終了しました 有効なボードが1 枚も検出できませんでし た ( 注 1) 使用例 #define seg 0xe000 /* メモリアドレス */ #define IO 0xe300 /* IOドレス */ if(a324_libinit(seg,io)) printf( no avtive board detect\n ); exit(1); } else { printf( init complete\n );} ( 注 1) 異常終了する原因として次のような事が考えられます 1 ボードの IO アドレス設定 (DSW102,DSW103) と引数 io が一致していない 2 ボードのメモリベース設定 (DSW101) と引数 seg が一致していない 3 ボードの IO またはメモリとほかのボードとが重複している 4 IO 拡張ラックに接続した場合に ラックのメモリ領域に関するディップスイッチの設定が正しくなされていない 38

43 関数名 COFF ファイルのダウンロード 記述 int A324_loadc(board,name); /* 任意ボード */ int _A324_loadc(name); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ char name; /* ファイル名 */ 説明 COFF フォーマットのオブジェクトファイルを DSP の外部メモリにダウンロードします ロード可能なファイルはリンカーが出力した実行形式のモジュールです ロード可能な領域は DSP の外部メモリ (0 番地からメモリの実装されている範囲 ) です 但し 既にロードされている領域への重複したロードの検出は行いません モニタがすでにロードされている場合など ロードするアドレスには充分注意してください 戻り値 0(NO_ERROR) 正常にロードが完了しました -1(ERROR) ロード異常です 原因は次のいずれかです 1) ファイルが見つからない 2) ファイルはCOFFファイルではない 3) ファイルが異常 4) メモリ書き込みの異常 参考 A324_loadm( ),A324_savec( ) 使用例 #define BN0 0 char *coff_name; coff_name = TEST.OUT; if(a324_loadc(bn0,coff_name)) printf( load error\n ); exit(1); else printf( load complete\n ); 39

44 関数名メモリからのダウンロード 記述 int A324_loadm(board,adrs,len,code); /* 任意ボード */ int _A324_loadm(adrs,len,code); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ unsigned long adrs; /* ロードアドレス */ unsigned long len; /* データ長 */ unsigned long *code; /* データーバッファ */ 説明 ホストのメモリに蓄えられたデータなどを DSP の外部メモリにダウンロードします ロードするデータ長は DSP から見たワード数を指定します ロードするデータの型は float または long です ロード可能な領域は DSP の外部メモリ (0 番地からメモリの実装されている範囲 ) です 但し すでにロードされている領域への重複したロードの検出は行いません モニタがすでにロードされている場合など ロードするアドレスには充分注意してください 戻り値 0(NO_ERROR) 正常にロードが完了しました -1(ERROR) ロード異常です メモリに正しく書き込めません 参考 A324_loadc( ) 使用例 #define BN0 0 #define LEN 1024 unsigned long adrs; unsigned long len; float data[len]; len = LEN; adrs = 0x2000; if(a324_loadm(bn0,adrs,len,(unsigned long*)data)) { printf( load error\n ); exit(1); } else printf( load complete\n ); 40

45 関数名モニタコマンド実行 記述 int A324_moniter(board,prms); /* 任意ボード */ int _A324_moniter(prms); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ A324_mon_prm *prms; /* モニタ引数 戻り値 */ 説明 モニタとハンドリングをし モニタコマンドを実行します モニタを使用したユーザプログラムの起動はこの処理を使用しています モニタチップメモリのアクセスはこの関数を使用します モニタへの引数 戻り値は構造体で与えます 引数構造体はヘッダファイルに定義してあります コマンド番号も同じく構造体に定義されています 戻り値 0(NO_ERROR) 正常に終了しました -1(ERROR) 異常終了しました モニタとのハンドリングができません 原因は次のいずれかです 1) モニタがロードしていない 2) モニタが破壊されている 3) ボードが停止している 使用例 オンチップメモリの読み出しをします #include lib324.h #define BN0 0 unsigned long adrs; unsigned long value; A324_mon_prm prms; /* モニタ引数 戻り値 */ prms.code = MC_READ; /* メモリ読みだし */ prms.prm1 = 0x809800; /* アドレス */ if(a324_moniter(bn0,&prms) { printf( moniter error\n ); exit(1); } printf( address : %81x\n,prms.prm1); printf( data : %81x\n,prms.res1);/* 読みだした値 /* 41

46 関数名 DSP メモリへのダウンロード 記述 int A324_putmem(board,adrs,data); /* 任意ボード */ int _A324_putmem(adrs,data); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ unsigned long adrs; /* メモリのアドレス */ unsigned long data; /* メモリデータ */ 説明 ホストのメモリから DSP の外部メモリへデータをダウンロードします データ長は 1 ワードです 戻り値 0(NO_ERROR) 正常終了しました -1(ERROR) ベリファイエラーです 参考 A324_getmem( ) 使用例 #define BN0 0 #define LEN 100 unsigned long buff[len],*ptr; unsigned long adrs; int c; A324_bdsel(BN0); for(ptr = buff,c = 0;c < LEN;++c) _A324_putmem(adrs++,*ptr++); 42

47 関数名ボードリセット 記述 void A324_reset(board); /* 任意ボード */ void _A324_reset( ); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ 説明 戻り値 使用例 ADSP324 をリセットします ホールドの制御は行っていません 停止状態でリセットした場合はリセット後も停止状態を保持しています また 実行状態でリセットされた場合にはリセットベクタ (0 番地 ) の指標するアドレスから実行を開始します リセットされたかどうかの確認は直接的には行えません ありません #define BN0 0 A324_reset(BN0); 43

48 関数名ボード実行開始 記述 int A324_run(board); /* 任意ボード */ int _A324_run( ); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ 説明 DSP ボードを実行状態にします 戻り値 0(NO_ERROR) 実行開始しました -1(ERROR) ボードの異常です 参考 A324_hold,A324_holdstus( ) 使用例 #define BN0 0 if(a324_run(bn0)) printf( board error\n ); else printf( board running\n ); 44

49 関数名 COFF ファイルへのアップロード 記述 int A324_savec(bd,ad,size,entry,name); /* 任意ボード */ int _A324_savec(ad,size,entry,name); /* 現在ボード */ 引数 unsigned int bd; /* ボード番号 */ unsigned long ad; /* 先頭番地 */ unsigned long size; /* ワードサイズ */ unsigned long entry; /* スタート番地 */ char *name; /* ファイル名 */ 説明 DSP の外部メモリを COFF ファイルに格納します 格納時に必要に応じてプログラムのスタート番地を指示できます プログラムだけでなく データ領域もセーブできます 格納したファイルはダウンロード関数 A324_loadc( ) などでロードできます 戻り値 0(NO_ERROR) -1(ERROR) 正常終了しました 異常終了しました 原因は次のいずれかです 1) ファイル名不正でファイルがオープンできない 2) 同名ファイルがあり かつリードオンリーでファイルがオープンできない 3) ディスクの空き領域が不足している 参考 A324_savem( ),A324_loadc( ) 使用例 #define BN0 0 unsigned long adrs; /* 先頭番地 */ unsigned long size; /* ワードサイズ */ unsigned long entry; /* スタート番地 */ char *name; /* ファイル名 */ adrs = 0x400; size = 0x200; entry = 0; /* 不要なら 0 を指定 */ name = RESULT.OUT ; if(a324_savec(bn0,adrs,size,entry,name)) printf( COFF file write error\n ); else printf( COFF file write complete\n ); 45

50 関数名メモリへのアップロード 記述 int A324_savem(board,adrs,size,buff); /* 任意ボード */ int _A324_savem(adrs,size,buff); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ unsigned long adrs; /* 先頭番地 */ unsigned int size; /* ワードサイズ */ unsigned long *buff; /* データーバッファ */ 説明 DSP の外部メモリのデータなどをホストのメモリにアップロードします アップロードするデータ長は DSP から見たワード数を指定します アップするデータ型は float または long です アップロード可能な領域は DSP の外部メモリ (0 番地からメモリの実装されている範囲 ) です 戻り値 0(NO_ERROR) 常に 0 参考 A324_loadm( ),A324_savec( ) 使用例 #define BN0 0 #define LEN 100 unsigned long adrs; unsigned long buff[len]; unsigned int len; len = LEN; adrs = 0x2000; A324_savem(BN0,adrs,len,buff); 46

51 関数名ユーザプログラム実行開始 (#1) 記述 int A324_start(board,adrs); /* 任意ボード */ int _A324_start(adrs); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ unsigned long adrs; 説明 DSP ボードのモニタとハンドリングをしてユーザプログラムを起動します ユーザプログラムのほか モニタがロードしてあり ボードが実行状態でないと起動できません 戻り値 0(NO_ERROR) 正常終了しました -1(ERROR) 異常終了しました 原因は次のいずれかです 1) ボードが停止している 2) モニタがロードしていない 3) ボードの異常 参考 A324_entryc( ) 使用例 #define BN0 0 unsigned long entry; char *user; user = USER.OUT ; A324_bdsel(BN0); _A324_bdinit( ); _A324_hold( ); _A324_loadc( MON324.OUT ); /* モニタは必要 */ _A324_loadc(user); _A324_reset( ); _A324_run( ); /* ここではモニタが走る */ A324_entryc(user,&entry); if(_a324_start(entry)) printf( start error\n ); else printf( start user program\n ); 47

52 関数名ユーザプログラム実行開始 (#2) 記述 int A324_startm(board,name); /* 任意ボード */ int _A324_startm(name); /* 現在ボード */ 引数 unsigned int board; /* ボード番号 */ char *name; /* ファイル名 */ 説明 DSP プログラムのリンカーが出力したマップファイルから プログラムの起動番地の取得とユーザプログラムの実行を一括して行います この関数は A324_entrym( ) と A324_start( ) を実行しています 本関数は ADSP のライブラリとの互換を保つために用意されたものです 同様の機能が A324_entryc( ) と A324_start( ) で行えます ロードするプログラムは通常 C OFF ファイルですし COFF ファイルには実行開始番地が含まれています 一方 マップファイルは必ずしも COFF ファイルとペアになっているという保証はありません したがって 安全の為に出来れば A324_entryc( ) を使用してください 戻り値 0(NO_ERROR) 正常終了しました -1(ERROR) 異常終了しました 原因は次のいずれかです 1) ボードが停止している 2) モニタがロードしていない 3) ボードの異常 4) マップファイルが見つからない 5) マップファイルの異常 参考 A324_entrym( ),A324_start( ) 使用例 #define BN0 0 unsigned long entry; A324_bdsel(BN0); _A324_bdinit( ); _A324_hold( ); _A324_loadc( MON324.OUT ); /* モニタは必要 */ _A324_loadc( USER.OUT ); _A324_reset( ); _A324_run( ); /* ここではモニタが走る */ if(_a324_startm( USER.MAP )) printf( start error\n ); else printf( start user program\n ); 48

53 関数名 COFF からのシンボル取り出し 記述 int A324_symbolc(file_name,sym_name,value); 引数 char *file_name; /* COFFファイル名 */ char *sym_name; /* シンボル名 */ unsigned long *value; /* 取得した値 */ 説明 DSP プログラムの COFF ファイルから変数などのアドレス情報を取得します DSP プログラムの開発時にリンカーが出力した COFF ファイルを取り込み 変数名を指標にしてアドレス情報を取得します プログラム開発時などでアドレスが流動的な場合に有用です 取り出しの可能なシンボルはグローバル宣言のある変数 関数に限ります C 言語の場合は大域変数でクラスが static でないものおよび static でない関数です C 言語のシンボルはソースで定義した名称の先頭に _ が付いたシンボルになります 戻り値 0(NO_ERROR) 正常に検出しました -1(ERROR) 異常終了しました 原因は次のいずれかです 1) ファイルが見つからない 2) ファイルが異常である 3) ファイルはCOFFファイルではない 参考 A324_symbolm( ),A324_entryc,A324_entrym( ) 使用例 #define BN0 0 unsigned long value; /* 値バッファ */ unsigned long adrs; /* アドレス */ char *sym_name; /* シンボル名 */ char *coff_name; /* COFFファイル名 */ coff_name = TEST.OUT ; sym_name = _value ; if(a324_symbolc(coff_name,sym_name,&adrs)) { printf( symbol get error\n ); exit(1); } A324_getmem(BN0,adrs,&value) printf( symbol %s\n,sym_name); printf( address %81x\n,adrs); printf( value %81x\n,value); 49

54 関数名マップからのシンボル取り出し 記述 int A324_symbolm(file_name,sym_name,value); 引数 char *file_name; /* マップファイル名 */ char *sym_name; /* シンボル名 */ unsigned long *value; /* 取得した値 */ 説明 DSP プログラムのマップファイルから変数などのアドレス情報を取得します DSP プログラムの開発時にリンカーが出力したマップファイルを取り込み 変数名を指標にしてアドレス情報を取得します プログラム開発時などでアドレスが流動的な場合に有用です 取り出しの可能なシンボルはグローバル宣言のある変数 関数に限ります C 言語の場合は大域変数でクラスが static でないものおよび static でない関数です C 言語のシンボルはソースで定義した名称の先頭に _ が付いたシンボルになります 戻り値 0(NO_ERROR) 正常に検出しました -1(ERROR) 異常終了しました 原因は次のいずれかです 1) ファイルが見つからない 2) ファイルが異常である 3) ファイルはマップファイルではない 参考 A324_symbolc( ),A324_entryc,A324_entrym( ) 使用例 #define BN0 0 unsigned long value; /* 値バッファ */ unsigned long adrs; /* アドレス */ char *sym_name; /* シンボル名 */ char *map_name; /* マップファイル名 */ map_name = TEST.MAP ; sym_name = _value ; if(a324_symbolm(map_name,sym_name,&adrs)) { printf( symbol get error\n ); exit(1); } A324_getmem(BN0,adrs,&value) printf( symbol %s\n,sym_name); printf( address %81x\n,adrs); printf( value %81x\n,value); 50

55 関数名ボード実装確認 記述 int A324_valid(board); 引数 unsigned int board; /* ボード番号 */ 説明 指定されたボード番号のボードが実装されているかどうかを取得します ボードが実装されているかどうかはライブラリ初期化関数が確認をし 変数に保存されています この関数はその変数の値を返します 戻り値 1(TRUE) ボードは実装されています 0(FALSE) ボードは実装されていません 使用例 実装されているボードを全てリセットします #define BD_MAX 16 /* ボードMAX */ int bn; for(bn = 0;bn < BD_MAX;++bn) if(a324_valid(bn)) A324_reset(bn); 51

56 5 BIOS 5.1 概要 ADSP324 ボード上で動作するユーザプログラムから使用するサブルーチン群です DSP ボード用のアセンブラまたは C 言語によるプログラムから呼び出して使用します IO の制御 ホストとの通信 DSP ボード間での通信 AD と DA の制御など IO に関するハンドリングのほか 浮動小数点フォーマットの IEEE と DSP 間の変換の機能もサポートしています 5.2 機能概略 BIOS には大別して次のような機能が用意されています 1 タイマー割り込み管理 2 外部割り込み管理 3 ボード間シリアル通信 4 対ホスト間パラレル通信 5 浮動小数フォーマット変換 (IEEE と DSP 間 ) 5.3 使用方法 (1) コーリングシーケンス アセンブラからの呼び出し例 LDI 10,R0 ; 機能番号 LDI 5,R1 ; 引き数 CALL _BIOS ;BIOS 呼び出し C 言語からの呼び出し例 #include cbios324.h unsigned CREGS inregs,outregs; inregs.i.r0 = 10; /* 機能番号 */ inregs.i.r1 = 5; /* 引き数 */ cbios(&inregs,&outregs); (2) リンクの方法 リンクはリンカーコマンドファイルに次の行を追加します cbios324.lib { 例 }tst.c とリンクする場合 -c tst.obj cbios324.lib 5.4 BIOS 機能一覧 52

57 1 BIOS 初期化 機能番号機能名 0 BIOSバージョン番号取得 1 BIOS 初期化 2 IO ポート入出力 機能番号 2~6 システム予約 機能名 3 シリアル入出力 機能番号 機能名 7 SIO 初期化 8 入力開始 9 入力ステータス取得 10 データ入力 11 入力データーバッファ設定 12 入力データーバッファクリア 13 ( 未使用 ) 14 出力開始 15 出力ステータス取得 16 ( 未使用 ) 17 出力データーバッファ設定 18 出力データーバッファクリア 4 タイマー割り込み 機能番号 機能名 19 タイマー初期化 20 ( 未使用 ) 21 タイマー割り込みエントリ番地設定 22 タイマー割り込み制御 5 外部割り込み 機能番号 機能名 23 外部割り込みエントリ番地設定 24 外部割り込み制御 6 対ホスト間割り込み 機能番号 機能名 53

58 25 システム予約 7 A/D 入力 機能番号 26~34 システム予約 機能名 8 D/A 出力 機能番号 35~40 システム予約 機能名 9 A/D+D/A 機能番号 41~47 システム予約 機能名 10 対ホスト間通信 機能番号 48 通信初期化 49 通信ステータスの取得 50 1ワードコードの送信 51 複数データの送信 52 相手処理完了待機 53 受信ステータスの取得 54 1ワードコードの受信 55 複数データの受信 56 受信処理完了報告 機能名 11 対前段 DSP 間通信 機能番号 57~65 システム予約 機能名 12 対後段 DSP 間通信 機能番号 66~74 システム予約 13 浮動小数フォーマット変換機能番号 75 IEEEからTIへ変換 機能名 機能名 54

59 76 TI から IEEE へ変換 55

60 5.5 BIOS 詳細 詳細のフォーマット凡例 機能番号 ** 入力パラメータ出力パラメータ備考 機能名称 : 詳細フォーマット凡例ここでは BIOS 詳細説明の一般的な入出力仕様とコーリングシーケンスについて説明しています R0 : 機能番号を設定します R1 : 必要に応じて引数を設定します R2 : 必要に応じて引数を設定します R3 : 必要に応じて引数を設定します R0 : 保存されます R1 : 結果を返す場合以外は保存されます R2 : 結果を返す場合以外は保存されます R3 : 結果を返す場合以外は保存されます 1) 特に指定しない限りレジスタは全て保存されます 2) 引数は基本的には次の要領で BIOS に渡します 13 ワード以内であればレジスタ R1~R3 で渡す 2 それより多い場合は引数構造体にセットしそのアドレスをレジスタで渡す 3R0 には必ず機能番号を設定します 冗長さを避けるため かく説明ではレジスタ R0 については逐一表示してありません 56

61 5.5.2 BIOS の詳細 機能番号 0 機能説明入力パラメータ出力パラメータ 機能名称 :BIOSバージョン番号の取得 BIOSのバージョン番号の取得とBIOSの常駐の確認をします バーション番号は16 進数 4 桁で V.MM.E を示しています Vはバージョン番号 MMは同一バージョン内でのモディファイ番号 Eは同一モディファイ内のリリース番号です R1 :- R2 :- R3 :- R1 : バージョン番号 (V.MM.E) R2 :- R3 : * * * -----* 機能番号 1 機能説明入力パラメータ出力パラメータ 機能名称 :BIOS 初期化 BIOSが使用している作業領域を初期化します R1 :- R2 :- R3 :- R1 :- R2 :- R3 : * * * -----* 機能番号 2~6 機能説明 機能名称 : システム予約 BIOS1.02.0ではシステム予約になっています 57

62 機能番号 7 機能説明入力パラメータ出力パラメータ備考 機能名称 :SIO 初期化 SIOによる通信の為の初期化をします R1 :SIO の通信モード (0/1) R2 :SIO の通信速度コード (0~13) R3 :- R1 :- R2 :- R3 :- SIO の通信モード 0 : 未定義 ( 動作は保証されません ) 1 : 固定長バッファを用いる SIOの通信速度コード表 コード 速度 (BPS) 0 10 M( 禁止 ) 1 5 M 2 2.5M 3 1 M K K K K 8 50 K 9 20 K K 11 5 K 12 2 K 13 1 K 58

63 機能番号 8 機能説明 機能名称 : 入力開始 SIOの入力を開始します 機能番号 7の設定条件による受信が開始します 入力パラメータ R1 :SIO チャンネル (0/1)[0 に固定 ] R2 :- R3 :- 出力パラメータ 備考 R1 :- R2 :- R3 :- 入力開始処理はデータの受信バッファのクリアと受信割り込みの許可処理がまず行われます その後 SIO のハードウェアにより 1 ワード受信が完了するごとに割り込みが発生し この割り込みにて残るデータを 1 ワードずつ次々と受信します 従って メインルーチンで割り込みを禁止 (S T の GIE=0) にすると受信ができません * * * -----* 機能番号 9 機能説明 機能名称 : 入力ステータス取得 SIOの入力のステータスを取得します SIOによりデータが受信完了したかどうかが これにより確認できます 入力パラメータ R1 :SIO チャンネル (0/1)[0 に固定 ] R2 :- R3 :- 出力パラメータ R1 :0= 受信は完了していない 0 以外 = 受信したワード数 R2 :- R3 :- 59

64 機能番号 10 機能説明 機能名称 : データ入力受信したデータのバッファからデータを取り出します ユーザー設定のバッファを使用している場合は この機能を使用せず 直接その領域をアクセスしてもかまいません 入力パラメータ R1 :SIO チャンネル (0/1)[0 に固定 ] R2 : データ読み出しバッファ R3 :- 出力パラメータ R1 : 有効なデータ数 R2 :- R3 : * * * -----* 機能番号 11 機能説明 機能名称 : 入力データーバッファ設定ユーザー設定のデーターバッファを設定します 入力パラメータ R1 :SIO チャンネル (0/1)[0 に固定 ] R2 : データーバッファアドレス R3 : バッファの長さ ( ワード数 ) 出力パラメータ R1 :- R2 :- R3 : * * * -----* 機能番号 12 機能説明 機能名称 : 入力データーバッファクリアエラーの発生などでSIOのデータを途中でクリアする場合に使用します 入力パラメータ R1 :SIO チャンネル (0/1)[0 に固定 ] R2 :- R3 :- 出力パラメータ R1 :- R2 :- R3 : * * * -----* 機能番号 13 機能名称 :( 未使用 ) 機能説明 機能番号 14 機能名称 : 出力開始 60

65 機能説明 データを通信バッファにセットし送信を開始します この機能を実行する前に機能番号 7 の SIO の初期化が必要です また データを繰り返し送る場合は機能番号 15 を使用して 先に送信したデータの送信が完了しているかどうかを確認しなければいけません 入力パラメータ R1 :SIO チャンネル (0/1)[0 に固定 ] R2 : 送信データアドレス R3 : 有効データ長 出力パラメータ 備考 R1 :- R2 :- R3 :- 出力開始処理はデータの送信バッファへのセットと先頭の 1 ワードの送信がまず行われます その後 SIO のハードウェアにより 1 ワード送信が完了するごとに割り込みが発生し この割り込みにて残るデータを 1 ワードずつ次々と送信します 従って メインルーチンで割り込みを禁止 (S T の GIE=0) にすると送信ができません * * * -----* 機能番号 15 機能説明 機能名称 : 出力ステータス取得機能番号 14で開始した送信が完了したかどうかをこの機能で確認します 送信が完了していない間は次の送信は起動してはいけません 入力パラメータ R1 :SIO チャンネル (0/1)[0 に固定 ] R2 :- R3 :- 出力パラメータ R1 :0= 送信は完了している 0 以外 = 送信は完了していない R2 :- R3 : * * * -----* 機能番号 16 機能名称 :( 未使用 ) 機能説明 61

66 機能番号 17 機能説明 機能名称 : 出力データーバッファユーザーが確保した出力データーバッファを今後データ出力バッファとして使用します BIOSの持つバッファは128ワードですからそれ以上長いバッファを使用したい場合この機能でバッファを変更します 入力パラメータ R1 :SIO チャンネル (0/1)[0 に固定 ] R2 : バッファアドレス R3 : バッファの長さ 出力パラメータ R1 :- R2 :- R3 : * * * -----* 機能番号 18 機能説明 機能名称 : 出力データーバッファクリア SIOの送信を中断してバッファをクリアします 通信相手がダウンしている場合以外 通常はこの機能を使用することはありません 入力パラメータ R1 :SIO チャンネル (0/1)[0 に固定 ] R2 :- R3 :- 出力パラメータ R1 :- R2 :- R3 : * * * -----* 機能番号 19 機能説明入力パラメータ出力パラメータ 機能名称 : タイマー初期化オンチップタイマーを使用して一定周期ごとにある処理を行いたい場合のタイマーの初期化をします R1 :- R2 :- R3 :- R1 :- R2 :- R3 : * * * -----* 機能番号 20 機能名称 :( 未使用 ) 機能説明 62

67 機能番号 21 機能説明入力パラメータ出力パラメータ備考 機能名称 : タイマー割り込みエントリ番地設定タイマー割り込みエントリ番地を設定します R1 : タイマー番号 (0/1) R2 : 処理手続きアドレス R3 : インターバル時間 [μsec] R1 :- R2 :- R3 :- タイマーのチャンネルのうち #0(TIM0) は A/D の自動取り込みに使用します A/D との共用はできません A/D を接続しない場合にのみ TIM0 TIM1 供に使用できます 処理手続きは割り込み処理ですので 次の事項を守って記述してください 1 手続きの終了は RETI 命令で終了してください 2 手続き開始時点の全てのレジスタの値を保存してください C 言語の場合は関数名を 特殊な予約名 c_intnn( ) とすることでこの条件に合うコードが生成されます (nn は 01 から 99) * * * -----* 機能番号 22 機能説明入力パラメータ出力パラメータ備考 機能名称 : タイマー割り込み制御タイマーの割り込みを禁止 許可します R1 : タイマー番号 (0/1) R2 :0= 割り込み禁止 1= 割り込み許可 R3 :- R1 :- R2 :- R3 :- タイマーのチャンネルのうち #0(TIM0) は A/D の自動取り込みに使用します A/D との共用はできません A/D を接続している場合に TIM0 を停止すると A/D の自動取り込みが停止してしまいます 63

68 機能番号 23 機能説明入力パラメータ出力パラメータ備考 機能名称 : 外部割り込みエントリ番地設定外部割り込み (INT3) が発生した時の処理を設定します R1 :- R2 : 割り込み処理手続きアドレス R3 :- R1 :- R2 :- R3 :- 外部割り込み INT3 は A/D+D/A ボードではトリガーの検出に使用します 処理手続きは割り込み処理ですので 次の事項を守って記述してください 1 手続きの終了は RETI 命令で終了してください 2 手続き開始時点の全てのレジスタの値を保存してください C 言語の場合は関数名を 特殊な予約名 c_intnn( ) とすることでこの条件に合うコードが生成されます (nn は 01 から 99) * * * -----* 機能番号 24 機能説明入力パラメータ出力パラメータ 機能名称 : 外部割り込み制御外部割り込みを禁止 許可します R1 :- R2 :0= 割り込み禁止 1= 割り込み許可 R3 :- R1 :- R2 :- R3 : * * * -----* 機能番号 25 機能説明 機能名称 : システム予約 BIOS1.02.0ではシステム予約になっています * * * -----* 機能番号 26~47 機能名称 : システム予約機能説明 BIOS1.02.0ではシステム予約になっています 64

69 機能番号 48 機能名称 : 通信初期化 ( 対ホスト ) 機能説明 対ホスト通信の初期化をします 入力パラメータ 出力パラメータ R1 :- R2 :- R3 :- R1 :- R2 :- R3 : * * * -----* 機能番号 49 機能名称 : 通信のステータスの取得 ( 対ホスト ) 機能説明 対ホスト通信のステータスを取得します これで送信 受信両方の状態が 取得できます 入力パラメータ 出力パラメータ R1 :- R2 :- R3 :- R1 :0= 通信領域は空 1= 送信データをまだ相手が読みだしていない 2= 通信領域には有効な受信データが入っている R2 :- R3 : * * * -----* 機能番号 50 機能名称 :1ワードコードの送信( 対ホスト ) 機能説明対ホスト通信を使って1ワードのコードをホストに送信します 送信を開始する前に機能番号 49で通信領域が空であることの確認を必ず行ってください 入力パラメータ 出力パラメータ R1 : 送信コード R2 :- R3 :- R1 :- R2 :- R3 :- 65

70 機能番号 51 機能名称 : 複数データの送信 ( 対ホスト ) 機能説明対ホスト通信を使って1ワードのコードと複数のデータをホストに送信します 送信を開始する前に機能番号 49で通信領域が空であることの確認を必ず行ってください 送信データは1 次元配列に格納されているものとし その先頭番地を与えます 1 度に通信可能なデータ長は最大 1700ワードです 入力パラメータ 出力パラメータ R1 : 送信コード R2 : 送信データアドレス R3 : 送信データ長 R1 :- R2 :- R3 : * * * -----* 機能番号 52 機能名称 : 相手処理完了待機 ( 対ホスト ) 機能説明対ホスト通信を使ってデータをホストに送信した後 ホスト側の引き続き行われる処理の完了を待機する必要がある場合はこの機能を使用します この機能は相手側が 完了報告 を行ったかどうかを検出するものです 相手が 完了報告 を行うまでこの機能は終了しません 相手がデータを読みだしたかどうかを知るには 通信ステータスの取得 を使用します 入力パラメータ 出力パラメータ R1 :- R2 :- R3 :- R1 :- R2 :- R3 :- 66

71 機能番号 53 機能名称 : 受信ステータスの取得 ( 対ホスト ) 機能説明 この機能は機能番号 49と同じです ADSP320のBIOSと互換を とるため用意されているものです 入力パラメータ 出力パラメータ R1 :- R2 :- R3 :- R1 :0= 通信領域は空 1= 送信データをまだ相手が読みだしていない 2= 通信領域には有効な受信データが入っている * * * -----* 機能番号 54 機能名称 :1ワードコードの受信( 対ホスト ) 機能説明対ホスト通信から1ワードのコードをホストから受信します 受信を開始する前に機能番号 49(53) で通信領域に有効データがあることを確認してから行ってください 入力パラメータ 出力パラメータ R1 :- R2 :- R3 :- R1 : 受信コード R2 :- R3 : * * * -----* 機能番号 55 機能名称 : 複数データの受信 ( 対ホスト ) 機能説明対ホスト通信から1ワードのコード及び複数データをホストから受信します データ受取領域は充分な長さのものを予め用意し そのアドレスを与えます 有効なデータ数はレジスタR3に返ってきます 受信を開始する前に機能番号 49(53) で通信領域に有効データがあることを確認してから行ってください 1 度に通信可能なデータ長は最大 1700ワードです 入力パラメータ 出力パラメータ R1 :- R2 : データ受取アドレス R3 :- R1 : 受信コード R2 :- R3 : 受信データ長 機能番号 56 機能名称 : 受信処理完了報告 ( 対ホスト ) 機能説明 対ホスト通信を使ってデータをホストから受信した後 引き続く処理の完 67

72 了をホストに通知したい場合にこの機能を使用します この機能は相手側が 相手終了待機 を行っている場合に待機を完了させます 入力パラメータ 出力パラメータ R1 :- R2 :- R3 :- R1 :- R2 :- R3 : * * * -----* 機能番号 57~74 機能名称 : システム予約機能説明 BIOS1.02.0ではシステム予約になっています * * * -----* 機能番号 75 機能説明入力パラメータ出力パラメータ 機能名称 :IEEEからTIへ変換 IEEE754フォーマットの単精度浮動小数をTIフォーマットの単精度浮動小数に変換します ホストからデータをもらってDSPで計算する場合に必要です データは1 次元の配列に格納されているものとし そのアドレスと長さを指定します R1 :- R2 :TI 浮動小数のデータアドレス R3 : データ配列の長さ ( ワード数 ) R1 :- R2 :- R3 :- 68

73 機能番号 76 機能説明入力パラメータ出力パラメータ 機能名称 :TIからIEEEへ変換 TIフォーマットの単精度浮動小数をIEEE754フォーマットの単精度浮動小数に変換します DSPで計算した結果をホストへ渡す場合に必要です データは1 次元の配列に格納されているものとし そのアドレスと長さを指定します R1 :- R2 :TI 浮動小数のデータアドレス R3 : データ配列の長さ ( ワード数 ) R1 :- R2 :- R3 :- 69

74 6 プログラム開発手順 6.1 プログラム構成 ADSP の利用方法として次の 2 通りの方法が考えられます 1DSP ボード単体で動作する高速プロセッサ的な使用 2 ホストの処理の一部を DSP ボードで代行するアクセラレータ的な使用 1 例えば DSP に直接接続された AD からデータを取り込み DSP 内部で演算を行った後 DA から出力する といった使用方法でデジタルフィルタ デジタル制御などのアプリケーションに相当します 2 マンマシン インタフェースやディスク ドライブとのインタフェースをホストが処理し 時間のかかる計算量の多い処理を DSP が代行するといった使用方法でニューラルネットワークシミュレーター 振動解析 グラフィック処理などのアプリケーションに相当します まず これらのうちのどの使い方をするかにより ユーザーの記述すべきプログラムが明確になります 1 では DSP ボード用の単一なプログラムを作成します 2 ではホストと DSP の両方のプログラムを作成します 6.2 開発言語 ホスト側プログラムが必要な場合はホスト用の C コンパイラが必要です 付属ライブラリは 年 6 月現在 MS-C Ver.7 MS-VC Ver1.0 MS-VC Ver4.2 Ver5.x 及び MS-VBVer4.x 5.x に対応していますが ライブラリのソースコードが添付されていますので他のコンパイラへの移植は可能です 本マニュアルで説明しているライブラリについては MS-C Ver7.0 のライブラリに対して説明されています MS-VC Ver1.0 のライブラリについては関数名が A324 から A32X に変わるのみの違いです また MS-VC Ver4.x 以降及び MS-VB のライブラリについては 32 ビットボードコントロールライブラリを参照してください DSP 側プログラムは TI 社から C コンパイラ (ANSI 準拠 ) 及びアセンブラが供給されています 6.3 プログラミング プログラミングは通常のプログラム同様 汎用のエディタでソースコードを記述し DSP 用の言語ツールで実行ファイルを作成します DSP 側プログラムはクロス環境で作成されます 即ち DSP 用の言語ツールはホストの MS -DOS 上で動作し ディスク上のソースコードに対して処理をし オブジェクトコードを同じくディスク上に出力します リンカーの出力した実行形式のオブジェクトも同様です このオブジェクトはもちろん MS-D OS では実行できません 従ってファイルの拡張子も MS-DOS の実行ファイルとは異なっています 70

75 6.4 ダウンロード ディスク上に作成された DSP 用実行ファイルは次のいずれかの方法で DSP ボードにダウンロードします 1 付属コマンドのダウンロードコマンドを使用し ディスクからボードにロードする 2 ダウンロードの機能関数をホスト側のユーザ ユーティリティに組み込み ユーザーのユーティリティを実行することによりダウンロードする 3 弊社製デバッガ ADSP を起動し LOAD コマンドでロードする 4 オプション ROM ボードに ROM324 を使用して ROM に書き込み DSP を ROM モードで使用する 6.5 デバッグと実行 DSP 側プログラムのデバッグには別売ソフト ADSP が必要です プログラムの途中経過やその時のレジスタの閲覧 ステップ実行などのデバッグ作業はこのデバッガを用いて行います この時 3.4 で説明したプログラムのダウンロード方法は 1~3 のいずれかです デバッガを用いたデバッグは ROM モードでは行えませんので RAM 上でデバッグし デバッグ完了後 ROM 化することになります 6.6 運用 デバッガでデバッグの完了したプログラムは 6.4 の 124 のいずれかの方法でダウンロードするわけですが この時 付属コマンドのブートモジュール ジェネレーターを使用して 起動用モジュール ( スタートアップルーチン ) を作成し これと一緒にロードします これはデバッガを使用中にモニタが行っている DSP 自身の初期化とユーザプログラムの開始を起動用モジュールに行わせる為です デバッグ完了後の運用時にはユーザプログラムとその起動用モジュールをペアでロードするわけです ロード後はボードのリセットにより自動的に実行を開始します ROM モードの場合にはパワオンと同時にユーザプログラムを実行します 71

76 7 プログラム開発と実行例 7.1 概要 この章では ADSP324-00A を実際に使用し サンプルプログラムを用いてプログラムの開発から実行までを具体的に説明します デバッグの作業については説明いたしませんが デバッガを使用せずに行える簡単な動作確認の方法とデバッガを使用する場合に利用できるアセンブルリストの作成方法について説明します 使用言語は C 言語で TI 社製のコンパイラを使用します 今回使用したバージョンは ANCI 標準の Version4.5 です アセンブラでの開発については特に触れませんが アセンブルの方法の説明がしてあります また アセンブルを完了し リンク以後の操作は C コンパイラドライバを使用せず直接リンカーを起動した場合と同じですから参考にしてください DSP の初期化からプログラムの実行の方法は色々な方法が用意されていますが この説明ではホスト上のユーザプログラムと実行をする場合についてのみ説明しています そのほかの方法は Q &A などを参考にしてください 7.2 開発環境と実行環境 コンパイラのインストール C コンパイラのインストールは次の要領で行います CL30.EXE などの実行ファイルはディレクトリに収納し 環境変数 PATH を通します 例えば C: C30 TIC というディレクトリを作成してその中に収納し 次のように PATH を設定します ( 注 1) PATH=C:\C30\TIC また ライブラリファイルを検索するための環境変数である C_DIR も同様に設定する必要があります SET C_DIR=C:\C30\TIC C_DIR という環境変数はコンパイラがインクルードファイルを捜す場合のデフォルトディレクトリと リンカーがライブラリを捜す場合のデフォルトディレクトリになります 例えば プログラムで #include<math.h> とした場合 math.h は C_DIR が指標するディレクトリ内の C:\C30\TIC\MATH.H が取り込まれます またリンカーコマンドファイルの -1 スイッチで -1rts.lib と指定すると C:\C30\TIC\RTS.LIB をライブラリとしてリンクします ( 注 1) PATH 変数の設定の詳細はお手持ちの MS-DOS のマニュアルを参照の上 必要な PATH は全て設定してください 72

77 7.2.2 付属コマンドのインストール 付属ディスク Support Soft Ware の UTY に収納されているユーティリティは MS-DOS から ADSP324-00A ボードをコントロールするツール類です ボードの実行開始や状態の表示などに使用します これらはいつでも使用できるように PATH の通ったディレクトリに収納します 例えば C:\C30\UTY に収納し 次のように PATH を設定します ( 注 1) PATH=C:\C30\UTY\UTY ( 注 1)PATH 変数の設定の詳細はお手持ちの MS-DOS のマニュアルを参照の上 必要な PATH は全て設定してください 付属ライブラリのインストール 付属ライブラリは MS-C でホストプログラムにリンクします 適当なディレクトリに格納し リンク時に参照可能にします ここでは C:\C700\LIB\ に格納し リンカー レスポンスファイルで指定する方法を採用しています BIOS のインストール 付属ディスク Support Soft Ware の BIOS に収納されている BIOS は C コンパイラの付属ライブラリ (RTS.LIB など ) と同じディレクトリに収納してください ここでは DIR=C:\C30\UTY\BIOS に収納します BIOS のリンクはリンカーコマンドファイルに L で指定を追加するかまたはオブジェクトファイルのリストを記述したレスポンスファイルに指定を追加します ここではレスポンスファイルで指定しています 73

78 7.3 プログラミング ホストプログラムの記述 ホストのプログラムとしては ソースプログラムのほかリンク時に使用するリンカー レスポンスファイルを作成します 付属ディスクの \SAMPLE の中に収納されていますので参考にしてください ソースプログラム HOST.C リンカー レスポンスファイル HOST.LNK DSP プログラムの記述 DSPのプログラムとしてはソースプログラムのほかにリンクに使用するリンカー レスポンスファイルとリンカーコマンドファイルが必要です レスポンスファイルとコマンドファイルはいずれもリンカーに対して種々の指示をファイルから与えるものです この2つのファイルを1つにまとめる事も出来ますが 2つ用意する意義はレスポンスファイルで各プログラム毎に内容が異なるオブジェクトファイル名などを指定し コマンドファイルでプログラムに依存しない項目 ライブラリの指定などをする といった使い分けをするとよいでしょう 付属のディスクの \SAMPLE の中に収納されていますので参考にしてください ソースプログラム DSP.C コマンドファイル USER.CMD レスポンスファイル DSP.LNK サンプルプログラムの説明 サンプルプログラムは次の処理を行います 1. DSP アクセスのためのライブラリ初期化と DSP の初期化をします 2. MON324.OUT と DSP.OUT をロードし MON324 を使用して DSP.OU T を実行開始します 3. テストデータの作成のため データ配列の長さ L と初期値をコンソールから読み込みます 4. 2 個の長さ L の 1 次元配列を初期値でクリアします 5. 時間測定のため システム時間を取得します 6. この 2 個のデータを DSP プログラムとのハンドリングにより DSP に渡します 7. DSP はこの 2 個の配列を 1 次元ベクトルと見てベクトルの内積を求め 結果をホストに返却します 8. ホストはシステム時間を取得し 先の時間との差から所要時間を求め表示します 9. DSP から受け取った値を表示します 実際のプログラムは 3 項から 9 項がループになっています また 計算そのものは速すぎてシステム時間では測定が出来ませんので 同じ計算を指定回数繰り返し計算し そのトータル時間を表示するようにしています 74

79 7.4 DSP プログラムのコンパイル DSP のプログラムのコンパイルには 2 通りの方法があります 1 つはコンパイラ ドライバ CL30.EXE を使用する方法です この方法は一般的で UNIX ライクな方法ですし ホストの MS -C などの処理系と同様な使い方ができます 2 つめはコンパイラ ドライバを使用せず バッチファイルを使用します コンパイラは幾つかのフェーズ別に実行プログラムが分かれていますのでバッチファイルで自動的に実行します コンパイルは次のように行います まず ソースファイルの入っているディレクトリに移動します DSP.C ではインクルードファイル CBIOS324.H を取り込みますので DIR コマンドでインクルードファイル CBIOS324.H があるか確認してください もしも無い場合は付属ディスクの \BIOS からコピーします 次にコンパイラを起動します CL30 DSP.C とすると コンパイラのプロンプトに続いて処理された関数が順次表示されます エラーメッセージが無ければ完了です コンパイラ ドライバは最終的にアセンブラまで起動し その結果カレントディレクトリにオブジェクトファイル DSP.OBJ が残ります DSP.OBJ の基となるアセンブラソース DSP.ASM が途中で生成されていますが ドライバにより消去されます これをディスクに残すには次のいずれかの方法で起動します CL30 K DSP.C CL30 S DSP.C 前者は単にアセンブラソースファイルを残します 後者はさらに C のソースプログラムとの対応をコメントとして挿入します 7.5 DSP プログラムのアセンブル コンパイラ ドライバ CL30 でコンパイルした場合はアセンブル作業まで自動的に行われ ユーザーが特にアセンブラを起動する必要はありません しかし アセンブラソースによるプログラムと混在する場合 アセンブラプログラムはユーザーがアセンブルしなければなりません また 後ページで説明するデバッグ用の情報としてアセンブルリストを作成する場合にも必要です アセンブラの起動は次のように行います ASM30 DSP ASM30 DSP L いずれもオブジェクトファイル DSP.OBJ をディスク上に残します 前者は単に DSP.ASM というプログラムのアセンブルのみを行います 後者はアセンブル後にアセンブルリストを出力します 75

adsp324-00a

adsp324-00a ADSP シリーズ ADSP324-00A 32bit サポートソフトウェア ユーザーズ マニュアル 目次 1. 概要...1 2. フォルダー構造...2 3. レジストリ...3 4. 関数一覧...4 (1).C 関数...4 1. ライブラリー初期化関数... 4 2. ボード関連関数... 4 3. ボード制御関数... 4 4. アップ / ダウンロード関数... 5 5. 特殊制御関数...

More information

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ arduino プログラミング課題集 ( Ver.5.0 2017/06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイコンから伝える 外部装置の状態をマイコンで確認する 信号の授受は 入出力ポート 経由で行う (2) 入出力ポートとは?

More information

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用 RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用体型のローカル変数を文字列操作関数で操作する場合の注意事項 (RXC#013) 配列型構造体または共用体の配列型メンバから読み出した値を動的初期化に用いる場合の注意事項

More information

Microsoft PowerPoint - kougi7.ppt

Microsoft PowerPoint - kougi7.ppt C プログラミング演習 第 7 回メモリ内でのデータの配置 例題 1. 棒グラフを描く 整数の配列から, その棒グラフを表示する ループの入れ子で, 棒グラフの表示を行う ( 参考 : 第 6 回授業の例題 3) 棒グラフの1 本の棒を画面に表示する機能を持った関数を補助関数として作る #include "stdafx.h" #include void draw_bar( int

More information

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+) RL78 開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行 ( 統合開発環境編 ) (High-performance Embedded Workshop CS+) 2017/4/7 R20UT2087JJ0103 ソフトウェア事業部ソフトウエア技術部ルネサスシステムデザイン株式会社 はじめに 本資料は 統合開発環境 High-performance Embedded Workshop

More information

Microsoft PowerPoint - 計算機言語 第7回.ppt

Microsoft PowerPoint - 計算機言語 第7回.ppt 計算機言語第 7 回 長宗高樹 目的 関数について理解する. 入力 X 関数 f 出力 Y Y=f(X) 関数の例 関数の型 #include int tasu(int a, int b); main(void) int x1, x2, y; x1 = 2; x2 = 3; y = tasu(x1,x2); 実引数 printf( %d + %d = %d, x1, x2, y);

More information

AquesTalk プログラミングガイド

AquesTalk プログラミングガイド AquesTalk プログラミングガイド ( 株 ) アクエスト 1. 概要 本文書は 規則音声合成ライブラリ AquesTalk をアプリケーションに組み込んで使用するためのプログラミングに関して 方法および注意点を示したものです AquesTalk には 2 種類のライブラリがあります 音声データをメモリ上に生成するものと サウンドデバイスに出力する 2 種類があります 使用するアプリケーションに応じて選択してください

More information

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x CoIDE 用 F4D_VCP の説明 V001 2014/07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x08000000 です デバッグが可能です 目次 1. USB の VCP( 仮想 COM ポート )

More information

型名 RF007 ラジオコミュニケーションテスタ Radio Communication Tester ソフトウェア開発キット マニュアル アールエフネットワーク株式会社 RFnetworks Corporation RF007SDK-M001 RF007SDK-M001 参考資料 1

型名 RF007 ラジオコミュニケーションテスタ Radio Communication Tester ソフトウェア開発キット マニュアル アールエフネットワーク株式会社 RFnetworks Corporation RF007SDK-M001 RF007SDK-M001 参考資料 1 型名 RF007 ラジオコミュニケーションテスタ Radio Communication Tester ソフトウェア開発キット マニュアル アールエフネットワーク株式会社 RFnetworks Corporation RF007SDK-M001 RF007SDK-M001 参考資料 1 第 1 章製品概要本開発キットは RF007 ラジオコミュニケーションテスタ ( 本器 ) を使用したソフトウェアを開発するためのライブラリソフトウェアです

More information

SuperH RISC engineファミリ用 C/C++コンパイラパッケージ V.7~V.9 ご使用上のお願い

SuperH RISC engineファミリ用 C/C++コンパイラパッケージ V.7~V.9 ご使用上のお願い ツールニュース RENESAS TOOL NEWS 2014 年 02 月 01 日 : 140201/tn1 SuperH RISC engine ファミリ用 C/C++ コンパイラパッケージ V.7~V.9 ご使用上のお願い SuperH RISC engine ファミリ用 C/C++ コンパイラパッケージ V.7~V.9の使用上の注意事項 4 件を連絡します 同一ループ内の異なる配列要素に 同一の添え字を使用した場合の注意事項

More information

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき

More information

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート ) TrueSTUDIO 用 F4D_VCP の説明 V001 2014/07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです 無料の試用版開発ツール Atollic TrueSTUDIO for ARM Lite で作成したプロジェクトです ビルド可能なプログラムのコードサイズが 32Kbyte 以内の制限があります プログラムの開始番地は 0x08000000

More information

memo

memo 数理情報工学演習第一 C プログラミング演習 ( 第 5 回 ) 2015/05/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : プロトタイプ宣言 ヘッダーファイル, プログラムの分割 課題 : 疎行列 2 プロトタイプ宣言 3 C 言語では, 関数や変数は使用する前 ( ソースの上のほう ) に定義されている必要がある. double sub(int

More information

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for ARM Lite 4.2.0 で作成した STM32F4 Discovery 基板用のプロジェクトです

More information

gengo1-12

gengo1-12 外部変数 関数の外で定義される変数を外部変数 ( 大域変数 ) と呼ぶ 外部変数のスコープは広域的 ( プログラム全体 ) 全ての関数で参照可能 int a=10; double x=3.14159; printf( a = %d\n, a); sample(); printf( %f\n, x); void sample(void) printf( %f\n, x); x += 1.0; 外部変数

More information

演算増幅器

演算増幅器 ファイルこれまでにデータの入力方法として キーボードからの入力を用いてきた 構造体を習った際に実感してもらえたと思うが 入力データ量が多いときにはその作業は大変なものとなり 入力するデータを間違えた場合には最初からやり直しになる そこで今回はこれらの問題を解決するため あらかじめ入力データをテキストエディタなどで編集し ファイルとして保存したものを入力データとして用いる方法を習っていく さらにプログラムで作成したデータをファイルに出力する方法も併せて習っていく

More information

OS

OS Operatig Systems カーネルとデバイスドライバ 2019-03 1 OS の構成要素 シェル ワープロ ブラウザ さまざまなソフトウェア ] ^ _ Z ` a b c d e ` f Y Z [ \ プロセス管理通信制御ファイルシステム メモリ管理割込み制御タイマ管理 デバイスドライバ 管理プログラム 基本ライブラリ デバイスドライバ CPU メモリ ストレージ さまざまなハードウェア

More information

ユーティリティ 管理番号 内容 対象バージョン 157 管理情報バッチ登録コマンド (utliupdt) のメッセージ出力に対し リダイレクトまたはパイプを使用すると メッセージが途中までしか出 力されないことがある 267 転送集計コマンド (utllogcnt) でファイル ID とホスト名の組

ユーティリティ 管理番号 内容 対象バージョン 157 管理情報バッチ登録コマンド (utliupdt) のメッセージ出力に対し リダイレクトまたはパイプを使用すると メッセージが途中までしか出 力されないことがある 267 転送集計コマンド (utllogcnt) でファイル ID とホスト名の組 レベルアップ詳細情報 < 製品一覧 > 製品名 バージョン HULFT BB クライアント for Windows Type BB1 6.3.0 HULFT BB クライアント for Windows Type BB2 6.3.0 < 対応 OS> Windows2000, WindowsXP, WindowsServer2003 < 追加機能一覧 > HULFT BB クライアント 管理番号 内容

More information

AquesTalk Win Manual

AquesTalk Win Manual AquesTalk Win マニュアル 株式会社アクエスト http://www.a-quest.com/ 1. 概要 本文書は 規則音声合成ライブラリ AquesTalk をアプリケーションに組み込んで使用するためのプログラミングに関して 方法および注意点を示したものです AquesTalk には 2 種類のライブラリがあります 音声データをメモリ上に生成するものと サウンドデバイスに出力する 2

More information

プログラミング実習I

プログラミング実習I プログラミング実習 I 05 関数 (1) 人間システム工学科井村誠孝 m.imura@kwansei.ac.jp 関数とは p.162 数学的には入力に対して出力が決まるもの C 言語では入出力が定まったひとまとまりの処理 入力や出力はあるときもないときもある main() も関数の一種 何かの仕事をこなしてくれる魔法のブラックボックス 例 : printf() 関数中で行われている処理の詳細を使う側は知らないが,

More information

Microsoft Word - Training10_プリプロセッサ.docx

Microsoft Word - Training10_プリプロセッサ.docx Training 10 プリプロセッサ 株式会社イーシーエス出版事業推進委員会 1 Lesson1 マクロ置換 Point マクロ置換を理解しよう!! マクロ置換の機能により 文字列の置き換えをすることが出来ます プログラムの可読性と保守性 ( メンテナンス性 ) を高めることができるため よく用いられます マクロ置換で値を定義しておけば マクロの値を変更するだけで 同じマクロを使用したすべての箇所が変更ができるので便利です

More information

Microsoft PowerPoint - 09.pptx

Microsoft PowerPoint - 09.pptx 情報処理 Ⅱ 第 9 回 2014 年 12 月 22 日 ( 月 ) 関数とは なぜ関数 関数の分類 自作関数 : 自分で定義する. ユーザ関数 ユーザ定義関数 などともいう. 本日のテーマ ライブラリ関数 : 出来合いのもの.printf など. なぜ関数を定義するのか? 処理を共通化 ( 一般化 ) する プログラムの見通しをよくする 機能分割 ( モジュール化, 再利用 ) 責任 ( あるいは不具合の発生源

More information

ADSP674-00/00H

ADSP674-00/00H ADSP シリーズ ADSP674-00/00H スタートアップガイド 目 次 1. 概要... 2 2. 作業手順の概要... 3 3. 作業手順... 4 (1). DSP 用コンパイラ (TI 社製 ) のインストール... 4 (2). サポートソフトウェアのインストール... 4 (3). I/Oボードライブラリーのインストール ( 購入時のみ )... 5 4. ISA USB 接続の切り替え...

More information

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt 基礎演習 3 C 言語の基礎 (5) 第 05 回 (20 年 07 月 07 日 ) メモリとポインタの概念 ビットとバイト 計算機内部では データは2 進数で保存している 計算機は メモリにデータを蓄えている bit 1bit 0 もしくは 1 のどちらかを保存 byte 1byte 1bitが8つ集まっている byte が メモリの基本単位として使用される メモリとアドレス メモリは 1byte

More information

Taro-82ADAカ.jtd

Taro-82ADAカ.jtd デジタル & アナログ絶縁入出力ユニット解説書製品型式 8 2 A D A - K C 製品型式 8 2 A D A - B D 製品型式 D A C S - 8 2 0 0 この解説書は 8 2 A D A または D A C S - 8 2 0 0 の動作と使用方法について簡単に説明したものです D A C S - 8 2 0 0 の場合は この解説書の 8 2 A D A という表現を 一部

More information

Microsoft Word - Cプログラミング演習(10)

Microsoft Word - Cプログラミング演習(10) 第 10 回 (6/25) 3. ファイルとその応用 (3) ファイルの更新 シーケンシャルファイルの更新 シーケンシャルファイルでは, 各レコードが可変長で連続して格納されており, その中の特定のレコードを変更することができない そこで一般的には, マスタファイルからデータを取り出し, 更新処理を行ったあとに新マスタファイルに書き込む 注 ) マスタファイル : 主ファイル, 基本ファイルと呼ばれるファイルで内容は比較的固定的であり,

More information

ブート領域、フラッシュ領域の分割方法 RL78ファミリ用Cコンパイラ CC-RL

ブート領域、フラッシュ領域の分割方法 RL78ファミリ用Cコンパイラ CC-RL ブート領域 フラッシュ領域の分割方法 RL78 ファミリ用 C コンパイラ CC-RL 2016 年 10 月 5 日 Rev.2.00 ソフトウエア事業部 ソフトウエア技術部 ルネサスシステムデザイン株式会社 R20UT3475JJ0200 アジェンダ はじめにページ 3 概要ページ 4 ブート領域 フラッシュ領域共通ページ 12 ブート領域ページ 19 フラッシュ領域ページ 38 デバッグツールページ

More information

AquesTalk for WinCE プログラミングガイド

AquesTalk for WinCE プログラミングガイド AquesTalk for WinCE プログラミングガイド ( 株 ) アクエスト 1. 概要 本文書は 規則音声合成ライブラリ AquesTalk for WinCE ( 以下 AquesTalk) をアプリケーションに組み込んで使用するためのプログラミングに関して 方法および注意点を示したものです AquesTalk には 2 種類のライブラリがあります 音声データをメモリ上に生成するものと

More information

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A STM32L_ADC の説明 V003 2014/03/30 STM32L-Discovery の A/D 入力を行うプログラムです A/D CH0 ~ A/D CH3 の 4 本の入力が可能です 提供する PC のアプリケーション Access_SerialPort を使用して UART( 非同期シリアル通信 ) により A/D 入力の表示を行うことができます 無料の開発ツール Atollic TrueSTUDIO

More information

Microsoft Word - USB2-PCI…V…−†[…Y_04†iWinNt40_PDFŠp†j.doc

Microsoft Word - USB2-PCI…V…−†[…Y_04†iWinNt40_PDFŠp†j.doc Windows NT 4.0 でのインストール手順 (USB2-PCI シリーズ ) 本製品をWindows NT 4.0でご利用になる場合 ServicePack6 以降がインストールされている必要があります もくじ ふろく 13 USB2-PCI シリーズ (Windows NT 4.0) 接続する USB 機器について 本製品に機器を接続する場合 操作方法によっては機器およびディスクの破損もしくはデータの消失

More information

Microsoft Word - プログラムをRAM.doc

Microsoft Word - プログラムをRAM.doc プログラムを RAM 上でデバッグする場合の説明 対象 CPU 1)H8/300H H8S シリーズ H8SX シリーズ SH-2 シリーズが対象になります Rev1.50 DEF バージョン 6.30A 仕様より DEF バージョン 7.10A 仕様より 機能 1)BSC( バスステートコントローラ ) による拡張 RAM でのデバッグに対応しました 2)PBC/UBC 無しタイプの CPU 品種でもプログラムメモリが

More information

2015/04/01 改定 オムロン DeviceNet ユニット CJ1W-DRM21 に関するコンフィグレーション作業について 1. 概要 DeviceNet ユニット CJ1W-DRM21 を装着したオムロン製 CJ2 シリーズと WAGO-I/0-SYSTEM DeviceNet 対応バスカ

2015/04/01 改定 オムロン DeviceNet ユニット CJ1W-DRM21 に関するコンフィグレーション作業について 1. 概要 DeviceNet ユニット CJ1W-DRM21 を装着したオムロン製 CJ2 シリーズと WAGO-I/0-SYSTEM DeviceNet 対応バスカ オムロン DeviceNet ユニット CJ1W-DRM21 に関するコンフィグレーション作業について 1. 概要 DeviceNet ユニット CJ1W-DRM21 を装着したオムロン製 CJ2 シリーズと WAGO-I/0-SYSTEM DeviceNet 対応バスカプラ 750-306 を使ったリモート I/O システムとの接続に関するコンフィグレーション方法について説明いたします 2. システム構成本書で用いるシステム構成例の内容を以下の表に示します

More information

Fortran 勉強会 第 5 回 辻野智紀

Fortran 勉強会 第 5 回 辻野智紀 Fortran 勉強会 第 5 回 辻野智紀 今回のお品書き サブルーチンの分割コンパイル ライブラリ 静的ライブラリ 動的ライブラリ モジュール その前に 以下の URL から STPK ライブラリをインストールしておいて下さい. http://www.gfd-dennou.org/library/davis/stpk 前回参加された方はインストール済みのはず. サブルーチンの分割コンパイル サブルーチンの独立化

More information

gengo1-12

gengo1-12 外部変数 関数の外で定義される変数を外部変数 ( 大域変数 ) と呼ぶ 外部変数のスコープは広域的 ( プログラム全体 ) 全ての関数で参照可能 int a=10; double x=3.14159; printf( a = %d\n, a); sample(); printf( %f\n, x); void sample(void) printf( %f\n, x); x += 1.0; 外部変数

More information

WLAR-L11G-L/WLS-L11GS-L/WLS-L11GSU-L セットアップガイド

WLAR-L11G-L/WLS-L11GS-L/WLS-L11GSU-L セットアップガイド の特長や 動作環境を説明します プロバイダ契約について の特長 動作環境 各部の名称とはたらき 設定ユーティリティについて 第 章 はじめにお読みください 動作確認プロバイダや最新の情報は のホームページからご覧いただけます は次の通りです を使ってインターネットをご利用になるためには 以下の条件を満たしたプロバイダと契約してください ルータを使用して 複数台のパソコンをインターネットに接続できるプロバイダ

More information

CONTEC DIOプロバイダ ユーザーズガイド

CONTEC DIOプロバイダ ユーザーズガイド DIO プロバイダユーザーズガイド - 1 - DIO プロバイダ CONTEC DIO ボード Version 1.1.2 ユーザーズガイド July 17, 2012 備考 ORiN2SDK2.0.14 以降, このプロバイダは CONTEC 社の API-DIO(WDM) を使用しています. 以前 までの API-DIO(98PC) を使用する場合は,DIO98 プロバイダを使用してください.

More information

24th Embarcadero Developer Camp

24th Embarcadero Developer Camp 17 Th Developer Camp B4 Delphi/C++Builder テクニカルワークショップ Delphi / C++Builder 旧バージョンアプリケーションの移行 エンバカデロ テクノロジーズサポートチーム with 高橋智宏 1 17 Th Developer Camp Delphi Q1 2 midas.dll Q. 別々のバージョンで作成したデータベースアプリケーションがあります

More information

プレポスト【解説】

プレポスト【解説】 コース名 : シェルの機能とプログラミング ~UNIX/Linux の効率的使用を目指して ~ 1 UNIX および Linux の主な構成要素は シェル コマンド カーネルです プロセスとは コマンドやプログラムを実行する単位のことなので プロセスに関する記述は誤りです UNIX および Linux のユーザーインターフェースは シェル です コマンドを解釈するという機能から コマンドインタープリタであるともいえます

More information

インテル(R) Visual Fortran コンパイラ 10.0

インテル(R) Visual Fortran コンパイラ 10.0 インテル (R) Visual Fortran コンパイラー 10.0 日本語版スペシャル エディション 入門ガイド 目次 概要インテル (R) Visual Fortran コンパイラーの設定はじめに検証用ソースファイル適切なインストールの確認コンパイラーの起動 ( コマンドライン ) コンパイル ( 最適化オプションなし ) 実行 / プログラムの検証コンパイル ( 最適化オプションあり ) 実行

More information

CommCheckerManual_Ver.1.0_.doc

CommCheckerManual_Ver.1.0_.doc 通信チェックツール (CommChecker) 取扱説明書 (Ver.1.0) 2009 ESPEC Corp. 目次 1. 使用条件 4 2. ダウンロード & インストール 5 3. 環境設定 6 3-1.RS-485 通信 6 3-2.RS-232C 通信 7 3-3.GPIB 通信 8 4. ソフトウェアの使用方法 9 4-1. 起動 9 4-2. 通信設定 10 (1)RS485 通信 10

More information

UIOUSBCOM.DLLコマンドリファレンス

UIOUSBCOM.DLLコマンドリファレンス UIOUSBCOM.DLL UIOUSBCOM.DLL Command Reference Rev A.1.0 2008/11/24 オールブルーシステム (All Blue System) ウェブページ : www.allbluesystem.com コンタクト :contact@allbluesystem.com 1 このマニュアルについて...3 1.1 著作権および登録商標...3 1.2

More information

型名 RF014 デジタル ラジオコミュニケーションテスタ Digital Radio Communication Tester ソフトウェア開発キット マニュアル アールエフネットワーク株式会社 RFnetworks Corporation 参考資料 RF014SDK-M001 第 1 章製品概要本開発キットは RF014 デジタルラジオコミュニケーションテスタ ( 本器 ) を使用したソフトウェアを開発するためのライブラリソフトウェアです

More information

RH850の割り込み/例外実現方法 CC-RHアプリケーションガイド

RH850の割り込み/例外実現方法 CC-RHアプリケーションガイド RH850の割り込み / 例外実現方法 CC-RH アプリケーションガイド R20UT3546JJ0101 2018.10.12 ソフトウェア開発統括部 ソフトウェア技術部ルネサスエレクトロニクス株式会社 アジェンダ 概要ページ 03 割り込み / 例外発生時に実行する関数の定義ページ 10 直接ベクタ方式のベクタの定義ページ 17 テーブル参照方式のベクタの定義ページ 25 その他 割り込み制御ページ

More information

SecureLock Manager Liteの使いかた

SecureLock Manager Liteの使いかた 35005706 ver.15 SecureLock Manager Lite の使いかた 本書は 暗号化機能搭載 USB メモリー用の機能制限版管理者用ソフトウェア SecureLock Manager Lite について説明します SecureLock Manager Lite とは 暗号化機能搭載 USB メモリーの設定を行うソフトウェアです このソフトウェアを使用すれば 管理者の方があらかじめパスワードを設定したり

More information

Prog1_10th

Prog1_10th 2012 年 6 月 20 日 ( 木 ) 実施ポインタ変数と文字列前回は, ポインタ演算が用いられる典型的な例として, ポインタ変数が 1 次元配列を指す場合を挙げたが, 特に,char 型の配列に格納された文字列に対し, ポインタ変数に配列の 0 番の要素の先頭アドレスを代入して文字列を指すことで, 配列そのものを操作するよりも便利な利用法が存在する なお, 文字列リテラルは, その文字列が格納されている領域の先頭アドレスを表すので,

More information

ポインタ変数

ポインタ変数 プログラミング及び実習 5 馬青 1 文字処理 数値処理 : 整数 浮動小数点数 単一の文字は と ( シングルクォーテーション ) で囲んで表現される 文字のデータ型は char または int である int を用いたほうが ライブラリの関数の引数の型と一致する 以下は全部 int の使用に統一する 従って int ch; で文字変数を宣言しておくと ch= A ; のように ch に文字 A

More information

スライド 1

スライド 1 RL78/G13 周辺機能紹介安全機能 ルネサスエレクトロニクス株式会社 ルネサス半導体トレーニングセンター 2013/08/02 Rev. 0.00 00000-A コンテンツ 安全機能の概要 フラッシュ メモリ CRC 演算機能 RAM パリティ エラー検出機能 データの保護機能 RAM ガード機能 SFR ガード機能 不正メモリ アクセス機能 周辺機能を使用した安全機能 周波数検出機能 A/D

More information

PowerTyper マイクロコードダウンロード手順

PowerTyper マイクロコードダウンロード手順 必ずお読みください Interface Card 用マイクロコードを Ver 1.3.0 をVer 1.3.1 以降に変更する場合 または Ver 1.4.5 以前のマイクロコードを Ver 1.5.0 以降に変更する場合 ダウンロード前後に必ず以下の作業を行ってください ( バージョンは Webブラウザ上または付属ソフトウェア Print Manager のSystem Status 上で確認できます

More information

gengo1-11

gengo1-11 関数の再帰定義 自然数 n の階乗 n! を計算する関数を定義してみる 引数は整数 返却値も整数 n! = 1*2*3*... * (n 1)*n である ただし 0! = 1 とする int factorial(int n) int i, tmp=1; if( n>0 ) for(i=1; i

More information

AP-RZA-1A シリアルFlashROMの書き込み方法

AP-RZA-1A シリアルFlashROMの書き込み方法 AP-RZA-1A (RZ/A1H CPU BOARD) シリアル FlashROM の書き込み方法 1 版 2015 年 11 月 9 日 1. 概要... 2 1.1 概要... 2 1.2 動作環境ついて... 2 1.3 書き込み手順の概要... 3 2. 準備... 4 2.1 ソフトウェアのダウンロード... 4 3. シリアル FLASHROM の書き込み方法... 5 3.1 microsd

More information

gengo1-12

gengo1-12 外部変数 関数の外で定義される変数を外部変数 ( 大域変数 ) と呼ぶ 外部変数のスコープは広域的 ( プログラム全体 ) 全ての関数で参照可能 int a=10; double x=3.14159; printf( a = %d\n, a); sample(); printf( %f\n, x); void sample(void) printf( %f\n, x); x += 1.0; 外部変数

More information

2006年10月5日(木)実施

2006年10月5日(木)実施 2010 年 7 月 2 日 ( 金 ) 実施 ファイル処理ファイルとはファイル (file) は日常用語では紙などを綴じたものを表すが, コンピュータ用語ではデータの集合体を指す言葉である ファイルは例えば, 文書ファイルやプログラムファイルのように, 用途によって分類されることもあれば, また, テキストファイルやバイナリファイルのように, ファイルの作り方によって分類されることもある なお,

More information

プログラミングI第10回

プログラミングI第10回 プログラミング 1 第 10 回 構造体 (3) 応用 リスト操作 この資料にあるサンプルプログラムは /home/course/prog1/public_html/2007/hw/lec/sources/ 下に置いてありますから 各自自分のディレクトリにコピーして コンパイル 実行してみてください Prog1 2007 Lec 101 Programming1 Group 19992007 データ構造

More information

Microsoft PowerPoint - CproNt02.ppt [互換モード]

Microsoft PowerPoint - CproNt02.ppt [互換モード] 第 2 章 C プログラムの書き方 CPro:02-01 概要 C プログラムの構成要素は関数 ( プログラム = 関数の集まり ) 関数は, ヘッダと本体からなる 使用する関数は, プログラムの先頭 ( 厳密には, 使用場所より前 ) で型宣言 ( プロトタイプ宣言 ) する 関数は仮引数を用いることができる ( なくてもよい ) 関数には戻り値がある ( なくてもよい void 型 ) コメント

More information

PLCシリアル通信 MODBUS通信 データ送信/受信プログラム例

PLCシリアル通信 MODBUS通信 データ送信/受信プログラム例 MODBUS RTU 通信時の配線例 ( 例 )FPΣ と弊社製温調器 KT シリーズ通信します マスタとして使用する FPΣ の MODBUS マスタ機能を使用し スレーブの KT シリーズのデータを読み出し 書き込みを行います マスタ データ書き込み スレーブ データ読み出し RS485 FPΣ の通信カセットは COM3 カセット (FPG-COM3) もしくは COM4 カセット (FPG-COM4)

More information

TFTP serverの実装

TFTP serverの実装 TFTP サーバーの実装 デジタルビジョンソリューション 佐藤史明 1 1 プレゼンのテーマ組み込みソフトのファイル転送を容易に 2 3 4 5 基礎知識 TFTP とは 実践 1 実際に作ってみよう 実践 2 組み込みソフトでの実装案 最後におさらい 2 プレゼンのテーマ 組み込みソフトのファイル転送を容易に テーマ選択の理由 現在従事しているプロジェクトで お客様からファームウェアなどのファイル転送を独自方式からTFTPに変更したいと要望があった

More information

1. はじめに 本書は スプリット演算器 MFS2 用コンフィギュレータソフトウェア の取扱方法 操作手順 注意事項などを説明したものです Windows の操作や用語を理解している方を前提にしています Windows の操作や用語については それぞれのマニュアルを参照してください 1.1. MFS

1. はじめに 本書は スプリット演算器 MFS2 用コンフィギュレータソフトウェア の取扱方法 操作手順 注意事項などを説明したものです Windows の操作や用語を理解している方を前提にしています Windows の操作や用語については それぞれのマニュアルを参照してください 1.1. MFS スプリット演算器 MFS2 用コンフィギュレータソフトウェア MFS2CFG バージョン 0.02 取扱説明書 1/10 NM-9307 改 2 1. はじめに 本書は スプリット演算器 MFS2 用コンフィギュレータソフトウェア の取扱方法 操作手順 注意事項などを説明したものです Windows の操作や用語を理解している方を前提にしています Windows の操作や用語については それぞれのマニュアルを参照してください

More information

Microsoft Word - XPC4ソフトマニュアル.doc

Microsoft Word - XPC4ソフトマニュアル.doc < XPC-4 映像ツール 簡易マニュアル> お試し版 Ver1.0 XPC-4 に USB ケーブルを接続する際の注意事項 ファームウェア アップデートの作業 もしくは XPC-4 映像ツール を使用するときは USB2.0 に対応した USB ケーブル (Type A[ オス ]-Type B[ オス ]) が 1 本必要です USB ケーブルはパソコンの OS(Windows) が完全に起動してから

More information

Microsoft Word - matlab-coder-code-generation-quick-start-guide-japanese-r2016a

Microsoft Word - matlab-coder-code-generation-quick-start-guide-japanese-r2016a MATLAB コードを使用した C コードの生成クイックスタートガイド (R2016a) 最初のスタンドアロン C コードの生成 スタンドアロン C コードを生成するには [ ビルド ] を [ ソースコード ] [ スタティックライブラリ ] [ ダイナミックライブラリ ] または [ 実行ファイル ] のいずれかに切り替えます MATLAB Coder を使用することで MATLAB コードから

More information

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受 STM32L_UART1 の説明 V004 2014/03/30 STM32L-Discovery の UART 1 の送受信を行うプログラムです 無料の開発ツール Atollic TrueSTUDIO for ARM Lite( 試用版 ) で作成したプロジェクトです プログラムの開始番地は 0x08000000 です デバッグが可能です PC アプリケーションの Access_SerialPort

More information

内容 MD00Manager とは?... MD00Manager をインストールする.... ソフトのインストール... MD00Manager の使い方.... 起動をする... 機能説明...7 機能説明 ( メニューバー )...8 機能説明 ( ステータスバー )...8 機能説明 ( コ

内容 MD00Manager とは?... MD00Manager をインストールする.... ソフトのインストール... MD00Manager の使い方.... 起動をする... 機能説明...7 機能説明 ( メニューバー )...8 機能説明 ( ステータスバー )...8 機能説明 ( コ MD00Manager マニュアル このマニュアルでは MD00Manager の詳細設定を行うことが出来ます MD00Manager では MD00 の設定変更や読み取ったデータを CSV に出力 照合用のデータベースの作成を行えます MD00 についてはそれぞれのマニュアルを確認して下さい Ver.0 内容 MD00Manager とは?... MD00Manager をインストールする....

More information

Microsoft PowerPoint - OS07.pptx

Microsoft PowerPoint - OS07.pptx この資料は 情報工学レクチャーシリーズ松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました 主記憶管理 主記憶管理基礎 パワーポイント 27 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 (matsuo@nitech.ac.jp) まで連絡いただければ 編集可能なバージョンをお渡しする事も可能です 復習 OS

More information

Cコンパイラパッケージお知らせ

Cコンパイラパッケージお知らせ 201406-2 CubeSuite+ 版 RX ファミリ用 C/C++ コンパイラパッケージ V1 および High-performance Embedded Workshop 版 RX ファミリ用 C/C++ コンパイラパッケージ ご使用上のお願い CubeSuite+ 版 RX ファミリ用 C/C++ コンパイラパッケージ V1 および High-performance Embedded Workshop

More information

このダイナミックリンクライブラリ GaugeC48.dll は 8CH から 48CH 用の DigitalGaugeCounterDG3000 シリーズ共通の DLL です この説明書は GaugeC48.dll を使ったアプリケーションを作成するためのものです 開発環境は MicrosoftVi

このダイナミックリンクライブラリ GaugeC48.dll は 8CH から 48CH 用の DigitalGaugeCounterDG3000 シリーズ共通の DLL です この説明書は GaugeC48.dll を使ったアプリケーションを作成するためのものです 開発環境は MicrosoftVi DigitalGaugeCounter DG3000 シリーズ ダイナミックリンクライブラリ GaugeC48.dll(DLL) 取扱説明書 このダイナミックリンクライブラリ GaugeC48.dll は 8CH から 48CH 用の DigitalGaugeCounterDG3000 シリーズ共通の DLL です この説明書は GaugeC48.dll を使ったアプリケーションを作成するためのものです

More information

MS5145 USB シリアル エミュレーション モードの設定

MS5145 USB シリアル エミュレーション モードの設定 MS5145-AC-U 補足設定 2010 年 7 月株式会社エイポック http://www.a-poc.co.jp/ USB シリアルエミュレーションモードの設定 1. 概要 USB シリアル エミュレーション モードとはバーコードリーダーを USB で接続していながら RS-232C 接続機器としてパソコンに認識させる設定です 読み取ったバーコード データは COM ポートにシリアルデータとして入力します

More information

スライド 1

スライド 1 東北大学工学部機械知能 航空工学科 2015 年度 5 セメスター クラス D 計算機工学 6. MIPS の命令と動作 演算 ロード ストア ( 教科書 6.3 節,6.4 節 ) 大学院情報科学研究科鏡慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ レジスタ間の演算命令 (C 言語 ) c = a + b; ( 疑似的な MIPS アセンブリ言語 )

More information

Prog1_12th

Prog1_12th 2013 年 7 月 4 日 ( 木 ) 実施 ファイル処理ファイルとはファイル (file) は日常用語では紙などを綴じたものを表すが, コンピュータ用語ではデータの集合体を指す言葉である ファイルは例えば, 文書ファイルやプログラムファイルのように, 用途によって分類されることもあれば, また, テキストファイルやバイナリファイルのように, ファイルの作り方によって分類されることもある なお,

More information

改版履歴 Ver 改版日内容 /02/07 新規作成 2 / 18

改版履歴 Ver 改版日内容 /02/07 新規作成 2 / 18 多目的俯瞰画像合成システム 機能仕様書 Crawler View 画像合成 RTC 発行日 2017 年 3 月 30 日 公立大学法人会津大学 株式会社東日本計算センター 1 / 18 改版履歴 Ver 改版日内容 1.0 2016/02/07 新規作成 2 / 18 1. 内容 1. はじめに... 4 1.1. 対象読者... 4 1.2. 適応範囲... 4 1.3. 開発環境及び使用機器...

More information

Microsoft Word - Setup_Guide

Microsoft Word - Setup_Guide JTOS Version 3.4 セットアップガイド 2017 年 2 月 17 日公益社団法人日本コントラクトブリッジ連盟 1 ご注意...2 2 システム要件...3 3 インストール手順...4 3.1 Microsoft.NET Framework 4.6 について...4 3.2 JTOS 一式のインストール...4 3.3 Excel マスターシートのコピー...5 3.4 ローカルメンバーを扱う場合...5

More information

VP-100C

VP-100C 第 2 章インストール アプリケーションソフトから印刷するには お使いのコンピュータにあらかじめプリンタドライバを組み込んでおく必要があります 以下の手順でインストールを行ってください WindowsNT4.0 Windows2000またはWindowsXPでプリンタドライバの組み込みを行うためには アドミニストレータの権限が必要です 1. プラグアンドプレイによるインストール お使いの環境によっては

More information

GOT機能サンプル バックアップ/リストア機能説明書

GOT機能サンプル バックアップ/リストア機能説明書 GOT 機能サンプルバックアップ / リストア機能説明書 三菱電機株式会社 1 2 1. バックアップ / リストア機能機能の特長 対象データ プログラム パラメータ デバイスコメント デバイス初期値データ ファイルレジスタ 対象機種 MELSEC-Q シリーズ (Q12PRH/Q25PRHCPU は除く ) モーションコントローラ Q シリーズ (SV13/SV22 のみ ) CNC C70 使用可能な接続形態

More information

リモートデバッグモードでのデバッグ 注意!! 外部 RAM を持たない CPU ボードの場合は 次項の RLL 機能を利用したリモートデバッグモードでのデバッグ をごらんください モニタの書き込みまず最初にモニタと呼ばれるプログラムをターゲットのフラッシュ ROM に書き込みます リモートデバッグ中

リモートデバッグモードでのデバッグ 注意!! 外部 RAM を持たない CPU ボードの場合は 次項の RLL 機能を利用したリモートデバッグモードでのデバッグ をごらんください モニタの書き込みまず最初にモニタと呼ばれるプログラムをターゲットのフラッシュ ROM に書き込みます リモートデバッグ中 YellowIDE7 専用イエロースコープはじめの一歩 前提条件 イエローソフトの CPU ボードの場合このマニュアルはイエローソフトの各 CPU ボード用 はじめの一歩 の続編です イエロースコープの使い方を簡単に説明しています このマニュアルを読む前に各 CPU ボード用 はじめの一歩 を読んで サンプルプログラムが正常に動作することを確認しておいて下さい 詳細に関しては イエロースコープスタートアップガイド

More information

Microsoft PowerPoint - kougi6.ppt

Microsoft PowerPoint - kougi6.ppt C プログラミング演習 第 6 回ファイル処理と配列 1 ファイル処理 2 ファイル読み込み ファイル プログラム ファイルの中身は変わらない 3 ファイル書き出し ファイル プログラム ファイルの中身が変わる ファイルは伸び縮みすることがある 4 例題 1. テキストファイル形式の ファイルからのデータ読み込み 次のような名簿ファイル ( テキストファイル形式 ) を読み込んで,1 列目の氏名と,3

More information

Microsoft PowerPoint - 11.pptx

Microsoft PowerPoint - 11.pptx ポインタと配列 ポインタと配列 配列を関数に渡す 法 課題 : 配列によるスタックの実現 ポインタと配列 (1/2) a が配列であるとき, 変数の場合と同様に, &a[0] [] の値は配列要素 a[0] のアドレス. C 言語では, 配列は主記憶上の連続領域に割り当てられるようになっていて, 配列名 a はその配列に割り当てられた領域の先頭番地となる. したがって,&a[0] と a は同じ値.

More information

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一 RX210 グループ IRQ 割り込みを使用したパルス出力 要旨 本サンプルコードでは IRQ 割り込みが発生すると 一定期間タイマでパルスを出力する 方法について説明します 対象デバイス RX210 1 / 25 内容 1. 仕様... 3 2. 動作確認条件... 3 3. ハードウェア説明... 3 3.1 使用端子一覧... 3 4. ソフトウェア説明... 4 4.1 動作概要... 4

More information

Microsoft PowerPoint - kougi2.ppt

Microsoft PowerPoint - kougi2.ppt C プログラミング演習 第 2 回 Microsoft Visual Studio.NET を使ってみよう 説明 例題 1. プログラム実行の体験 コンピュータを役に立つ道具として実感する 次ページのプログラムを使って, Microsoft Visual Studio.NETでの C++ ソースファイル編集, ビルド, テスト実行の一連の過程を体験する 例題 1 のプログラムの機能 計算の繰り返し

More information

問 2 ( 型変換 ) 次のプログラムを実行しても正しい結果が得られない 何が間違いかを指摘し 正しく修正せよ ただし int サイズが 2 バイト long サイズが 4 バイトの処理系での演算を仮定する #include <stdio.h> int main( void ) { int a =

問 2 ( 型変換 ) 次のプログラムを実行しても正しい結果が得られない 何が間違いかを指摘し 正しく修正せよ ただし int サイズが 2 バイト long サイズが 4 バイトの処理系での演算を仮定する #include <stdio.h> int main( void ) { int a = 問 1 配列の宣言整数型配列 data1 にデータが初期設定されている この配列 data1 のデータを下図のように 整数型配列 data2 に代入しなさい また data2 の内容を printf( "data2[0] = %d\n", data2[0] ); printf( "data2[5] = %d\n", data2[5] ); を用いて出力しなさい 実行結果 data2[0] = 76

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 講座準備 講座資料は次の URL から DL 可能 https://goo.gl/jnrfth 1 ポインタ講座 2017/01/06,09 fumi 2 はじめに ポインタはC 言語において理解が難しいとされる そのポインタを理解することを目的とする 講座は1 日で行うので 詳しいことは調べること 3 はじめに みなさん復習はしましたか? 4 & 演算子 & 演算子を使うと 変数のアドレスが得られる

More information

S1C17 Family Application Note S1C17 シリーズ PORT 多重割り込みアプリケーションノート Rev.1.0

S1C17 Family Application Note S1C17 シリーズ PORT 多重割り込みアプリケーションノート Rev.1.0 S1C17 Family Application Note S1C17 シリーズ PORT 多重割り込みアプリケーションノート Rev.1.0 評価ボード キット 開発ツールご使用上の注意事項 1. 本評価ボード キット 開発ツールは お客様での技術的評価 動作の確認および開発のみに用いられることを想定し設計されています それらの技術評価 開発等の目的以外には使用しないで下さい 本品は 完成品に対する設計品質に適合していません

More information

WAGO / / Modbus/RTU対応 バスカプラ クイックスタートガイド

WAGO / / Modbus/RTU対応 バスカプラ クイックスタートガイド クイックスタート WAGO-I/O-SYSTEM 750 750-315/300-000 750-316/300-000 通信設定手順書 Ver 1.0.0 136-0071 東京都江東区亀戸 1-5-7 ワゴジャパン株式会社オートメーション TEL: Web: 03-5627-2059 FAX:03-5627-2055 http://www.wago.co.jp/io WAGO Kontakttechnik

More information

Microsoft PowerPoint - 13th.ppt [互換モード]

Microsoft PowerPoint - 13th.ppt [互換モード] 工学部 6 7 8 9 10 組 ( 奇数学籍番号 ) 担当 : 長谷川英之 情報処理演習 第 13 回 2011 年 1 月 13 日 1 本日の講義の内容 1. 配列データを main 以外の関数とやりとりする方法 2. データの型構造体, 共用体という新しいデータ型を学習します. 2 2 次元ベクトルのノルム ( 長さ ) を計算するプログラム 2 次元ベクトル a(x, y) のノルム (

More information

SP-H6-KC Saison Information Systems CO.,LTD

SP-H6-KC Saison Information Systems CO.,LTD SP-H6-KC-01-03 - 1 - Saison Information Systems CO.,LTD HULFT for K Ver.2.1 移行説明書 1. 概要当説明書では 既にご使用になっている HULFT for K を旧製品からVer.2.1 に移行 ( バージョンアップ レベルアップ リビジョンアップ ) するための手順 注意事項を説明しています また バージョンアップ レベルアップ時は

More information

slide5.pptx

slide5.pptx ソフトウェア工学入門 第 5 回コマンド作成 1 head コマンド作成 1 早速ですが 次のプログラムを head.c という名前で作成してください #include #include static void do_head(file *f, long nlines); int main(int argc, char *argv[]) { if (argc!=

More information

スクールCOBOL2002

スクールCOBOL2002 3. 関連資料 - よく使われる機能の操作方法 - (a) ファイルの入出力処理 - 順ファイル等を使ったプログラムの実行 - - 目次 -. はじめに 2. コーディング上の指定 3. 順ファイルの使用方法 4. プリンタへの出力方法 5. 索引ファイルの使用方法 6. 終わりに 2 . はじめに 本説明書では 簡単なプログラム ( ファイル等を使わないプログラム ) の作成からコンパイル 実行までの使用方法は既に理解しているものとして

More information

NI P1200 Release Notes Cover

NI P1200 Release Notes Cover PEX-H2994W Board Support Package Installation on RedHawk Release Notes July 4, 2019 1. はじめに 本書は Concurrent Real Time IncCCRT) の RedHawk 上で動作する インターフェース社製 PEX- H2994W PCI Express ボードサポートパッケージ用リリースノートです

More information

MSP430 CCSv5 を使い Flash Memory 内容と version 情報を確認する方法 ( テクニック編 ) Rev: PIC Trout 今回は 下記の2 件について説明します 1) CCSv5 を使用して MSP430 の Flash Memory 内容を

MSP430 CCSv5 を使い Flash Memory 内容と version 情報を確認する方法 ( テクニック編 ) Rev: PIC Trout 今回は 下記の2 件について説明します 1) CCSv5 を使用して MSP430 の Flash Memory 内容を MSP430 CCSv5 を使い Flash Memory 内容と version 情報を確認する方法 ( テクニック編 ) Rev:01 10.4.2013 PIC Trout 今回は 下記の2 件について説明します 1) CCSv5 を使用して MSP430 の Flash Memory 内容を確認する方法 JTAG アクセスができるデバイス ( セキュリティ Fuse 断ではできません ) に対して

More information

MMUなしプロセッサ用Linuxの共有ライブラリ機構

MMUなしプロセッサ用Linuxの共有ライブラリ機構 MMU なしプロセッサ用 Linux の共有ライブラリ機構 大谷浩司 高岡正 近藤政雄 臼田尚志株式会社アックス はじめに μclinux には 仮想メモリ機構がないので共有ライブラリ機構が使えない でもメモリ消費抑制 ストレージ消費抑制 保守性の向上のためには 欲しい 幾つかの実装があるが CPU ライセンス 機能の制限のためにそのまま利用できない RidgeRun 社 (Cadenux 社 )

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 2018/10/05 竹島研究室創成課題 第 2 回 C 言語演習 変数と演算 東京工科大学 加納徹 前回の復習 Hello, world! と表示するプログラム 1 #include 2 3 int main(void) { 4 printf("hello, world! n"); 5 return 0; 6 } 2 プログラム実行の流れ 1. 作業ディレクトリへの移動 $ cd

More information

PowerPoint Presentation

PowerPoint Presentation 工学部 6 7 8 9 10 組 ( 奇数学籍番号 ) 担当 : 長谷川英之 情報処理演習 第 7 回 2010 年 11 月 18 日 1 今回のテーマ 1: ポインタ 変数に値を代入 = 記憶プログラムの記憶領域として使用されるものがメモリ ( パソコンの仕様書における 512 MB RAM などの記述はこのメモリの量 ) RAM は多数のコンデンサの集合体 : 電荷がたまっている (1)/ いない

More information

Microsoft Word - Cプログラミング演習(9)

Microsoft Word - Cプログラミング演習(9) 第 9 回 (6/18) 3. ファイルとその応用 外部記憶装置に記録されたプログラムやデータを, ファイルと呼ぶ シーケンシャルファイルやランダムファイルへのデータの記録や読み出し, 更新の手順について学習する (1) ファイルとレコードファイル複数の関連したデータを一つに集めたり プログラムを外部記憶装置に保存したものレコードファイルを構成する一塊のデータ ex. 個人カードフィールドレコードを構成する個別の要素

More information

プリンタドライバのインストール. Windows で使用する場合 Windows プリンタドライバのインストール方法は 接続方法や使用するプリンタドライバによって異なります また コンピュータの OS によってインストール方法が異なります お使いのコンピュータの OS に合わせて 以下の参照ページを

プリンタドライバのインストール. Windows で使用する場合 Windows プリンタドライバのインストール方法は 接続方法や使用するプリンタドライバによって異なります また コンピュータの OS によってインストール方法が異なります お使いのコンピュータの OS に合わせて 以下の参照ページを プリンタドライバのインストール.1 プリンタドライバの種類と対応 OS 本プリンティングシステムを使用するためには プリンタドライバのインストールが必要です プリンタドライバとは 出力するデータの処理などを制御するプログラムで 使用する前に付属の CD からコンピュータにインストールします 付属の CD に含まれるプリンタドライバと 対応しているコンピュータの OS は以下のとおりです 必要なプリンタドライバをインストールしてください

More information

C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf("hello, n"); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a "hello" printf("hello") 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は

C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf(hello, n); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a hello printf(hello) 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は C 言語復習 C 言語の基礎 来週もこの資料を持参してください C 言語, ソースファイルの作成, コンパイル, 実行 1 C 言語 C 言語プログラミングの手順 とは, 計算機を動かす手順を記述したもの. 計算機に命令を与えて動かすには を作成する ことになる. C 言語はプログラミング言語の 1 個 手続き型言語に分類される. C/C++ は非常に多くの場面で使われる言語 C++ は C 言語をオブジェクト指向に拡張したもの

More information

SpreadSheet Interface

SpreadSheet Interface CHAPTER 11 この章では (SSI) 変換プラグインについて説明します これは ネットワーク設計情報を NMT と Microsoft Excel 互換フォーマット間で変換するものです SSI では Microsoft Excel のバージョン 6.2 以降を使うことを前提にしています この章の内容は次のとおりです NMT から Microsoft Excel への変換 Microsoft

More information

CompuSec SW 強制削除手順

CompuSec SW 強制削除手順 CompuSec SW 強制削除手順 CompuSec SW Ver.5.2 Windows 7, Vista 機能 仕様は予告なく変更される場合があります 2012/08/29 - はじめに - CompuSec を導入直後から OS が起動しない USB 機器や SD カードの類は接続されておらず USB に関する BIOS 設定を変更しても回避できないなど PC 固有の問題や原因が特定できない場合は

More information

スライド 1

スライド 1 Multimeter Version 1. 3. 3 簡易取扱説明書 2009 年 9 月 9 日 この簡易説明書は Multimeter Version 1. 3. 3 ( 以後 IntuiLink) の簡易説明書です サポートしておりますマルチメータは 34401A, 34405A, 34410A, 34411A, L4411A, 34420A です IntuiLink Multimeter は

More information

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR 第 回マイクロプロセッサのしくみ マイクロプロセッサの基本的なしくみについて解説する. -1 マイクロプロセッサと周辺回路の接続 制御バス プロセッサ データ バス アドレス バス メモリ 周辺インタフェース バスの基本構成 Fig.-1 バスによる相互接続は, 現在のコンピュータシステムのハードウェアを特徴づけている. バス (Bus): 複数のユニットで共有される信号線システム内の データの通り道

More information

スライド 1

スライド 1 RX ファミリ用コンパイラスタートアップの紹介 ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A コンテンツ スタートアップの概要 スタートアッププログラム例 外部メモリを利用する場合の設定 2 スタートアップの概要 3 処理の流れとファイル構成例 パワーオン リセット Fixed_Vectors ( 固定ベクタテーブル )

More information

Microsoft Word - Cプログラミング演習(12)

Microsoft Word - Cプログラミング演習(12) 第 12 回 (7/9) 4. いくつかのトピック (5)main 関数の引数を利用したファイル処理 main 関数は, 起動する環境から引数を受け取ることができる 例えば 次に示すように,main 関数に引数を用いたプログラムを作成する 01 /* sample */ 02 /* main 関数の引数 */ 03 #include 04 05 main(int argc, char

More information

講習No.12

講習No.12 前回までの関数のまとめ 関数は main() 関数または他の関数から呼び出されて実行される. 関数を呼び出す側の実引数の値が関数内の仮引数 ( 変数 ) にコピーされる. 関数内で定義した変数は, 関数の外からは用いることができない ( ローカル変数 ). 一般に関数内で仮引数を変化しても, 呼び出し側の変数は変化しない ( 値渡し ). 関数内で求めた値は return 文によって関数値として呼び出し側に戻される.

More information

インストーラー 管理番号 内容 対象バージョン 230 HULFT がすでにインストールされているパスに対してサイレントインストールを実行すると インストールされていた HULFT の動作環境が不正な状態になる 7.3.0~7.3.1 ユーティリティ 管理番号 内容 対象バージョン 231 管理情報

インストーラー 管理番号 内容 対象バージョン 230 HULFT がすでにインストールされているパスに対してサイレントインストールを実行すると インストールされていた HULFT の動作環境が不正な状態になる 7.3.0~7.3.1 ユーティリティ 管理番号 内容 対象バージョン 231 管理情報 リビジョンアップ詳細情報 < 製品一覧 > 製品名 バージョン HULFT7 for Windows-EX 7.3.2 HULFT7 for Windows-ENT 7.3.2 HULFT7 for Windows-M 7.3.2 HULFT7 for Windows-L 7.3.2 < 改善一覧 > HULFT 管理番号 内容 対象バージョン説明書参照章 79 履歴削除処理に関する改善 7.0.0~7.3.1-148

More information