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

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

cross mob
YaMu_4788901
Level 1
Level 1
First question asked First reply posted First like received

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
(↑終了処理)

0 件の賞賛
1 解決策
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

こんばんは、

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 と数字の間は半角スペース一つである必要があるのかも知れません。

元の投稿で解決策を見る

4 返答(返信)
MiNe_85951
Level 7
Level 7
Distributor - TED (Japan)
50 likes received 500 replies posted 50 solutions authored

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

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

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

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

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

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

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

0 件の賞賛
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

こんばんは、

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 と数字の間は半角スペース一つである必要があるのかも知れません。

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

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

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

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

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

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

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

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