1 Reply Latest reply on Apr 9, 2020 9:48 PM by JuyoungJ_06

    Community Translation - PSoC 4 Custom Bootloader - KBA229075

    YoOb_1790021

      Hi,

       

      I tried to translate this KBA229075 into Japanese.

       

      PSoC 4 Custom Bootloader - KBA229075

      https://community.cypress.com/docs/DOC-18649

      ----------------------------------

       

      タイトル:PSoC 4 カスタム ブートローダーについて

       

      PSoC® 4 ブートローダー コンポーネント は、独自の ブートローダー インターフェースを開発するための カスタム インタフェースを提供します。図1が、その設定です。

       

      図1.ブートローダー カスタム インターフェイス

       

      I2C 或いは UART インターフェースを ブートローダー プロジェクト の開発に使用する場合、図2にリストされている関数が PSoC Creator によって自動生成されます。

       

      しかしながら、ブートローダー コンポーネント のブートローディング プロトコルに従ってブートローダー コンポーネント のカスタム インタフェースを使用する場合には、図2に記載されている関数の定義とコードを追加する必要がありあます。ブートローダーのフローと関数の詳細については、Bootloader and Bootloadable コンポーネントのデータシートを参照してください。

       

      図2.デフォルトブートローダーに必要な機能

       

      ブートローダー コンポーネントによって生成された関数の使用に加えて、独自ののブートローディング プロトコルを定義できます。この場合、簡単な方法は次の様になります:

      • ブートローダー コンポーネント(カスタム インターフェースとして構成)をリンクファイルにブートローダー とアプリケーション のROM セクションとスタートポインタを確定するために使用します。
      • 図2のダミー関数を定義します

       

      基本ブートローディング フローは、図3になります。

       

      図3.ブートローディング フローの概要

       

      ハンドシェイク、データの読み込み、フラッシュへのデータ書き込み、およびチップリセットを行う独自の API を定義しなくてはならないことに注意してください。

       

      ホストとPSoCデバイスのハンドシェイク用のAPIは、CyDelay() またはタイマー コンポーネントを使用してタイムアウトを設定できます。

       

      ホストからデータを読み取るAPIは、通信インターフェースによって異なります。ほとんどの PSoC 4シリーズでは、内部フラッシュは128バイトを最小ブロックとして構成されています。つまり、コードフラッシュのアトミックなプログラム単位(不可分プログラム単位)と消去単位は、128バイトです。

       

      フラッシュにデータを保存する APIは、PSoC Creator によって生成された CySysWriteFlashRow() 関数を使用できます。

       

      デバイスをリセットする APIは、PSoC Creator によって生成された CySoftwareReset() 関数を使用できます。

       

      詳細については、サイプレスコミュニティにアクセスするか、サイプレスセールスにお問い合わせください。

       

      参照文書:

       

      ----------------------------------

       

      Best regards,

      obana