
Origin : piece-me.org
File :
Original description :
P/ECE開発環境付属の「isd.exe」及び「run.bat」には、以下の不具合があります。
P/ECEのプログラムが、pceAppProc()の中で長時間の処理を行い、5秒間ぐらい処理を返さない時に、PC上で「run.bat」を実行すると、P/ECEがハングアップする。
不具合の原因は、「isd.exe」が、P/ECEのプログラムが終了するのをきちんと待たずに、見切り発車でsrfファイルを書き込み、実行開始してしまっていることでした。
具体的には、「\usr\PIECE\tools\isd\isdsub.c」のismWriteSrfFile()の処理が、適切ではありません。
厳密には、「isd.exe」や「run.bat」の不具合ではなく、「pieceif.dll」の不具合なのですが、今回は、「run.bat」を代替する修正プログラムを作ることにしました。
理由は、「pieceif.dll」を差し替えると影響が大きいですし、「pieceif.dll」は32ビット環境と64ビット環境で異なるので、差替えの手間がわずらわしいからです。
「r.exe」の使用方法は、P/ECE開発環境付属の「run.bat」と同じです。
「r.exe」を、実行パスの通ったフォルダに、置いておいてください。
srfファイルが在るフォルダで、「r」を実行すると、srfファイルをP/ECEに転送し実行します。srfファイル名の指定は不要です。
P/ECE開発環境の「run.bat」で転送しようとすると、P/ECEがハングアップしてしまうようなプログラムでも、「r.exe」ならば、ハングアップせずに転送し実行できます。