MPLABXの不具合が解決した
意外な結末でした。
comm.cを組み込むとMPLABXの動作がおかしくなることが分かって、調査は一気に進みました。先ずはcomm.cのコードの殆どをコメント・アウトして試してみると 問題なし(まぁ当然の結果です)。前半分のコメントを外しても問題なし(これで後半分に絞られました)
これを繰り返して不具合が再現する箇所を絞り込んで行くと・・・
以下の行(これ↓)に辿り着きました。
short stack[16];
変数名をstackからstack_buffに変更すればO.K.だと分かりました。
試しにmain.cに以下の記述を加えると不具合が再現しました。
int stack;
void main(void)
{
stack = 0;
コンパイル・エラーにならないのですが、stackという変数名がMPLABXの不具合を引き起こしていたようです。
やれやれ・・・