- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
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
(↑終了処理)
解決済! 解決策の投稿を見る。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
こんばんは、
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 と数字の間は半角スペース一つである必要があるのかも知れません。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
ご連絡ありがとうございます。
エラーとなっている箇所についてご確認下さい。
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
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
早速のご回答ありがとうございます。
HEX_ReadFileのpathは日本語表記のフォルダを通っていました。
DAP_Acruireを使用でエラー回避できました。
次の機会にはまたどうぞよろしくお願い致します。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
こんばんは、
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 と数字の間は半角スペース一つである必要があるのかも知れません。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
早速のご回答ありがとうございます。
記載いただきましたコマンドリストを参考にさせていただきましたら
書き込む事ができました。
PSoC1以外では書き込むためにはrowを指定しないといけないのですね。
PSoC4_GetFlashInfoの結果とデータシートからrowの数を割り出してその数だけ
PSoC4_ProgramRowFromHexとPSoC4_VerifyRowFromHexを続けるコマンドを作成しました。
row数が多くなるとこれは大変ですね。
次の機会にはまたどうぞよろしくお願い致します。