Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob

PSoC 3/ PSoC 5LP ブートローダのカスタムコミュニケーションインターフェース - KBA203609- Community Translated (JA)

PSoC 3/ PSoC 5LP ブートローダのカスタムコミュニケーションインターフェース - KBA203609- Community Translated (JA)

ChaitanyaV_61
Employee
Employee
50 questions asked 25 likes received 25 sign-ins

Community Translated by oTa_728816         Version: **

Translation - English: Custom communication interface support for PSoC 3 and PSoC 5 bootloaders - KBA203609

質問:

PSoC Creator 1.0 SP2 で PSoC 3/ PSoC 5LP ブートローダのカスタムコミュニケーションインターフェースを使用するのにはどうしたら良いですか?

回答:

ブートローダのカスタムコミュニケーションインターフェースを使用するのには、下記3ステップの手順に従ってください:

1. ブートローダプロジェクトで、ブートローディングに使用されるコンポーネントを配置してください。次に下図のように、そのブートローダプロジェクトのデザインワイドリソース (DWR) 内の‘Systems’タブで、Bootloader >  IO Component に ‘Custom_Interface’を選択してください。

001-PSoC+creater.png

2. cybtldr.h の最後の方になる下記の 5つの関数プロトタイプを、それらを実装する C ファイルにコピーしてください。

実際のコメントは英語ですが、ここでは和訳してあります。

  (1) void CyBtldrCommStart(void);

  /* コミュニケーションコンポーネントを開始します */

  (2) void CyBtldrCommStop (void);

  /* コミュニケーションコンポーネントを停止します */

  (3) void CyBtldrCommReset(void);

  /* コミュニケーションコンポーネントをリセットして、バッファを初期状態に戻します */

  (4) cystatus CyBtldrCommWrite(uint8* buffer, uint16 size, uint16* count, uint8 timeOut);

  /* この関数はバッファからデータを取得して選択された通信プロトコルでブートローダホストに送信します。引数の“buffer”と“size”がホストへ送信されるデータ配列へのポインタとデータのバイト数となります。この関数はそのデータをコミュニケーションコンポーネントに渡して引数 “timeOut” で指定された時間 (10 ms の倍数)の間待ちます。実際にホストに送信されたデータのバイト数は引数“count”に書き戻されます。

引数:

buffer - ホストへ送信されるデータへのポインタ

size - データバッファのバイト数での大きさ

count - この関数は timeout 時間内にホストが読んだデータ数でこの値を更新します

timeout - この引数は 10 ms 単位で timeout を設定します。この関数は通信が終了するのを timeout で指定された時間待ちます

 戻り値:

CYRET_EMPTY - 通信は timeout で指定された時間に完了しませんでした

CYRET_SUCCESS - 通信は timeout で指定された時間内に問題なく完了しました */

  (5) cystatus CyBtldrCommRead (uint8* buffer, uint16 size, uint16* count, uint8 timeOut);

  /* この関数は選択された通信プロトコルでブートローダホストから受信されたデータを読みます。

受信されたデータは引数“buffer”のポインタで示された入れるにコピーする必要があります。

関数はホストから受信されたバイト数で引数“count”を更新する必要があります。

引数“size”はホストから受信することを期待していたデータのバイト数です。

この関数は N データバイトを“buffer”で示された配列にコピーします;ここで N は実際に受信されたデータバイト数か“size”の内で小さい方の値となります。

この関数は引数“timeout”で指定された時間 (10 ms の倍数) だけ通信終了を待ちます。

 引数:

buffer - コミュニケーションインターフェースから受信されたデータをコピーするバッファへのポインタ

size   - 期待するデータバッファのバイト数

count  - この関数はホストから受信したバイト数でこの値を更新します

timeout - この引数はタイムアウトの時間を 10 ms 単位で設定します。

  この関数は timeout で指定された時間、ホストのデータ書込み終了を待ちます。

 戻り値:

CYRET_EMPTY - 通信は timeout で指定された時間内に完了しませんでした

CYRET_SUCCESS - 通信は timeout で指定された時間内に問題なく完了しました */

3. 上記のコメントと使用する通信プロトコルに合わせてこれらの関数を実装します。

0 件の賞賛
116 件の閲覧回数
寄稿者