4 Replies Latest reply on Oct 6, 2020 4:45 AM by YaMu_4788901

    コマンドラインインターフェース(CLI)の使用法を教えてください。

    YaMu_4788901

      MiniProg3(CY8CKIT-002)をPCとUSB接続で使用して製品「CY8C4247LTI-L475」へコマンドラインインターフェース(CLI)「ppcli.exe」からガイド「PSoC Programmer CLI User Guide.pdf」を参照して書込みを試しています。
      ですが、書込みができません。
      GUI「PSoCProgrammer.exe」から実行すると書込みできます。
      下記に私がCLIで実行したいコマンドを記載します。どこが間違っているのかご指摘ください。または正しいコマンドをご教示ください。
      ダウンロードファイル「PSoCProgrammerSetup_3.29.0_b4610.exe」

       

      ※以下GUIでの項目と同じ内容を行うように設定させているつもりです。
       ***箇所は都合上伏字とさせていただきます。

       

      GetPorts
      (↑Port Selection:ポートの確認)
      >GetPorts
      <MiniProg3/************
      0 OK
      >

       

      OpenPort MiniProg3/************ "C:\\Program Files (x86)\\Cypress\\Programmer"
      (↑Port Selection:製品接続、書込みプログラムの指定)
      >OpenPort MiniProg3/************ "C:\\Program Files (x86)\\Cypress\\Programmer"
      <
      0 OK
      >

       

      HEX_ReadFile "C:\Users\***\***.hex"
      (↑File Path:.hexファイルの指定)
      ※下記のErrorになり実行できない
      >HEX_ReadFile "C:\Users\***\***.hex"
      E0xffffffff
      Hex File parsing failure. Hex file does not exist or cannot be opened.
      HEX_ReadFile "C:\Users\***\***.hex" returned 80004005
      80004005 OK
      >

       

      SetAcquireMode "Power"
      (↑Programming Mode:Power Cycle指定)
      >SetAcquireMode "Power"
      <
      0 OK
      >

       

      Acquire
      (↑??:Sample Outputにあった為に実行)
      ※下記のErrorになり実行できない
      >Acquire
      E
      Device is not in ISSP mode.
      Acquire returned 80004005
      80004005 OK
      >

       

      SetProtocol 8
      (↑Protocol:SWD指定)
      >SetProtocol 8
      <
      0 OK
      >

       

      SetProtocolConnector 0
      (↑Connecter:5p指定)
      >SetProtocolConnector 0
      <
      0 OK
      >

       

      SetPowerVoltage 3.3
      (↑Voltage:3.3V指定)
      >SetPowerVoltage 3.3
      <
      0 OK
      >

       

      Program
      (↑Programボタン押下)
      ※下記のErrorになり実行できない
      >Program
      E
      Device is not in ISSP mode.
      Program returned 80004005
      80004005 OK
      >

       

      ReleaseChip
      (↑??:Sample Outputにあった為に実行)
      ※下記のErrorになり実行できない
      >ReleaseChip
      E
      BulkWrite of EndPoint1 failed!
      ReleaseChip returned 80004005
      80004005 OK
      >

       

      ClosePort
      (↑製品接続切)
      <
      0 OK
      >

       

      quit
      (↑終了処理)

        • 1. Re: コマンドラインインターフェース(CLI)の使用法を教えてください。
          MaMi_1205306

          ご連絡ありがとうございます。

          エラーとなっている箇所についてご確認下さい。

           

          1. ファイルパスの指定やHEXファイル名に2Byte文字(日本語)が含まれていませんか?

           

          HEX_ReadFile "C:\Users\***\***.hex"

          (↑File Path:.hexファイルの指定)
          ※下記のErrorになり実行できない
          >HEX_ReadFile "C:\Users\***\***.hex"
          E0xffffffff
          Hex File parsing failure. Hex file does not exist or cannot be opened.
          HEX_ReadFile "C:\Users\***\***.hex" returned 80004005
          80004005 OK

           

          2. AcquireはPSoC1用のコマンドとなります。

           DAP_Acquireをお使いいただくことでエラーを回避できると思います。

           

          Acquire
          (↑??:Sample Outputにあった為に実行)
          ※下記のErrorになり実行できない
          >Acquire
          E
          Device is not in ISSP mode.
          Acquire returned 80004005
          80004005 OK

           

          恐らく、上記のHEXファイルの設定とISSPモードに設定することで、

          エラーを回避し、正常に書き込めるようになると考えています。

           

          各コマンドに関して、下記のコマンドラインインターフェースガイドをご覧ください。

          コマンドラインによってはPSoC1専用であったり、PSoC4専用などありますので、

          ご使用されるデバイスに合わせてコマンドラインをお使い頂ければと思います。

           

          Command-Line Interface (CLI) Guide

          https://www.cypress.com/file/136431/download

          1 of 1 people found this helpful
          • 2. Re: コマンドラインインターフェース(CLI)の使用法を教えてください。
            MoTa_728816

            こんばんは、

             

            MiniProg3 と CY8CKIT-043 (CY8C4247AZI-M485) で実験をしてみました。

            予め作成した Hex ファイルを C:\Cypress\test\led_test_201005.hex として置きました。

            また、ID は私の使用している MiniProg3 の物を使用していますので、

            GetPorts で取得された実際の ID に置き換えてお試しください。

             

            実験は ppcli.exe と同じフォルダに下記の test_file.txt を作成して

            ppcli.exe のプロンプトから runfile test_file.txt として実行してみました。

             

            また、PSoC4_ProgramFromHex X と PSoC4_VerifyFromHex X の X は

            目的の Hex ファイルの大きさによって変更が必要と思います。

            私の場合、あまり深く考えずに 0 から 19 までとしたところ

            作成した LED 点灯プログラムは正常に動きました。

             

            test_file.txt

            ===================

            GetPorts

            OpenPort MiniProg3/1622DD000508 "C:\\Program Files (x86)\\Cypress\\Programmer"

            HEX_ReadFile "C:\\Cypress\\test\\led_test_201005.hex"

            SetProtocol 8

            SetProtocolConnector 0

            SetPowerVoltage 5.0

            SetProtocolClock 224

            SetAcquireMode "Reset"

            PowerOn

            DAP_Acquire

            PSoC4_EraseAll

            PSoC4_GetFlashInfo

            PSoC4_ProgramRowFromHex 0

            PSoC4_VerifyRowFromHex 0

            PSoC4_ProgramRowFromHex 1

            PSoC4_VerifyRowFromHex 1

            PSoC4_ProgramRowFromHex 2

            PSoC4_VerifyRowFromHex 2

            PSoC4_ProgramRowFromHex 3

            PSoC4_VerifyRowFromHex 3

            PSoC4_ProgramRowFromHex 4

            PSoC4_VerifyRowFromHex 4

            PSoC4_ProgramRowFromHex 5

            PSoC4_VerifyRowFromHex 5

            PSoC4_ProgramRowFromHex 6

            PSoC4_VerifyRowFromHex 6

            PSoC4_ProgramRowFromHex 7

            PSoC4_VerifyRowFromHex 7

            PSoC4_ProgramRowFromHex 8

            PSoC4_VerifyRowFromHex 8

            PSoC4_ProgramRowFromHex 9

            PSoC4_VerifyRowFromHex 9

            PSoC4_ProgramRowFromHex 10

            PSoC4_VerifyRowFromHex  10

            PSoC4_ProgramRowFromHex 11

            PSoC4_VerifyRowFromHex  11

            PSoC4_ProgramRowFromHex 12

            PSoC4_VerifyRowFromHex  12

            PSoC4_ProgramRowFromHex 13

            PSoC4_VerifyRowFromHex  13

            PSoC4_ProgramRowFromHex 14

            PSoC4_VerifyRowFromHex  14

            PSoC4_ProgramRowFromHex 15

            PSoC4_VerifyRowFromHex  15

            PSoC4_ProgramRowFromHex 16

            PSoC4_VerifyRowFromHex  16

            PSoC4_ProgramRowFromHex 17

            PSoC4_VerifyRowFromHex  17

            PSoC4_ProgramRowFromHex 18

            PSoC4_VerifyRowFromHex  18

            PSoC4_ProgramRowFromHex 19

            PSoC4_VerifyRowFromHex  19

            DAP_ReleaseChip

            ClosePort

            ===================

             

            実行結果

            ===================

            >runfile test_file.txt

            GetPorts

            <MiniProg3/1622DD000508

            0 OK

            OpenPort MiniProg3/1622DD000508 "C:\\Program Files (x86)\\Cypress\\Programmer"

            <

            0 OK

            HEX_ReadFile "C:\\Cypress\\test\\led_test_201005.hex"

            <0x00020000

            0 OK

            SetProtocol 8

            <

            0 OK

            SetProtocolConnector 0

            <

            0 OK

            SetPowerVoltage 5.0

            <

            0 OK

            SetProtocolClock 224

            <

            0 OK

            SetAcquireMode "Reset"

            <

            0 OK

            PowerOn

            <

            0 OK

            DAP_Acquire

            <

            0 OK

            PSoC4_EraseAll

            <

            0 OK

            PSoC4_GetFlashInfo

            <0x00000400

            0x00000080

            0 OK

            PSoC4_ProgramRowFromHex 0

            <

            0 OK

            PSoC4_VerifyRowFromHex 0

            <0x00000001

            0 OK

            PSoC4_ProgramRowFromHex 1

            <

            0 OK

            PSoC4_VerifyRowFromHex 1

            <0x00000001

            0 OK

            PSoC4_ProgramRowFromHex 2

            <

            0 OK

            PSoC4_VerifyRowFromHex 2

            <0x00000001

            0 OK

            PSoC4_ProgramRowFromHex 3

            <

            0 OK

            PSoC4_VerifyRowFromHex 3

            <0x00000001

            0 OK

            PSoC4_ProgramRowFromHex 4

            <

            0 OK

            PSoC4_VerifyRowFromHex 4

            <0x00000001

            0 OK

            PSoC4_ProgramRowFromHex 5

            <

            0 OK

            PSoC4_VerifyRowFromHex 5

            <0x00000001

            0 OK

            PSoC4_ProgramRowFromHex 6

            <

            0 OK

            PSoC4_VerifyRowFromHex 6

            <0x00000001

            0 OK

            PSoC4_ProgramRowFromHex 7

            <

            0 OK

            PSoC4_VerifyRowFromHex 7

            <0x00000001

            0 OK

            PSoC4_ProgramRowFromHex 8

            <

            0 OK

            PSoC4_VerifyRowFromHex 8

            <0x00000001

            0 OK

            PSoC4_ProgramRowFromHex 9

            <

            0 OK

            PSoC4_VerifyRowFromHex 9

            <0x00000001

            0 OK

            PSoC4_ProgramRowFromHex 10

            <

            0 OK

            PSoC4_VerifyRowFromHex  10

            <0x00000001

            0 OK

            PSoC4_ProgramRowFromHex 11

            <

            0 OK

            PSoC4_VerifyRowFromHex  11

            <0x00000001

            0 OK

            PSoC4_ProgramRowFromHex 12

            <

            0 OK

            PSoC4_VerifyRowFromHex  12

            <0x00000001

            0 OK

            PSoC4_ProgramRowFromHex 13

            <

            0 OK

            PSoC4_VerifyRowFromHex  13

            <0x00000001

            0 OK

            PSoC4_ProgramRowFromHex 14

            <

            0 OK

            PSoC4_VerifyRowFromHex  14

            <0x00000001

            0 OK

            PSoC4_ProgramRowFromHex 15

            <

            0 OK

            PSoC4_VerifyRowFromHex  15

            <0x00000001

            0 OK

            PSoC4_ProgramRowFromHex 16

            <

            0 OK

            PSoC4_VerifyRowFromHex  16

            <0x00000001

            0 OK

            PSoC4_ProgramRowFromHex 17

            <

            0 OK

            PSoC4_VerifyRowFromHex  17

            <0x00000001

            0 OK

            PSoC4_ProgramRowFromHex 18

            <

            0 OK

            PSoC4_VerifyRowFromHex  18

            <0x00000001

            0 OK

            PSoC4_ProgramRowFromHex 19

            <

            0 OK

            PSoC4_VerifyRowFromHex  19

            <0x00000001

            0 OK

            DAP_ReleaseChip

            <

            0 OK

            ClosePort

            <

            0 OK

            <

            0 OK

            >

            ===================

             

            moto

            P.S. ポスト内容を見直したところ、見やすくしようと桁そろえをおこなった一桁の Row で

            エラーが発生していましたので、修正版と差し替えました。

            xxxxFromHex と数字の間は半角スペース一つである必要があるのかも知れません。

            1 of 1 people found this helpful
            • 3. Re: コマンドラインインターフェース(CLI)の使用法を教えてください。
              YaMu_4788901

              早速のご回答ありがとうございます。

              HEX_ReadFileのpathは日本語表記のフォルダを通っていました。

              DAP_Acruireを使用でエラー回避できました。

              次の機会にはまたどうぞよろしくお願い致します。

              • 4. Re: コマンドラインインターフェース(CLI)の使用法を教えてください。
                YaMu_4788901

                早速のご回答ありがとうございます。

                記載いただきましたコマンドリストを参考にさせていただきましたら

                書き込む事ができました。

                PSoC1以外では書き込むためにはrowを指定しないといけないのですね。

                PSoC4_GetFlashInfoの結果とデータシートからrowの数を割り出してその数だけ

                PSoC4_ProgramRowFromHexとPSoC4_VerifyRowFromHexを続けるコマンドを作成しました。

                row数が多くなるとこれは大変ですね。

                次の機会にはまたどうぞよろしくお願い致します。