デバイスメモリのトラブルに遭遇!
共有します!
・デバイスメモリの中でも
ファイルレジスタ拡張設定です
問題に遭遇してから
原因追求に1日かかりました
原因はシミュレーションで使用する
ファイルレジスタのアドレス変更でした
変更前はR4000~R5999
↓
変更後はR24000~R25999
GX-Worksのデバッグメニューで
シミュレーションテストではOK
ファイルレジスタの
使用設定範囲内でOKであったが
GOT表示が出来なくなった
現象は、GOTが表示しない
ファイルレジスタの内容が空白です
(1)なぜか?
1.デバイスNoが不正という
R4000~のデバイスへアクセスすると
「デバイスNo.不正」のエラーが発生
原因は不明
R24000~のアドレスはOKのはず
2.Rアドレスが大きくなると
メモリーへの読み出し書込みが
できなくなっていた
3.ファイルレジスタは
拡張設定で使いますが
従来からのアドレス範囲内で
使用している
(2)ポイントは何か?
1.ファイルレジスタは
R32767までを1つのブロック
それ以上は、切り替えて使うか
連番のデバイス名に変更が必要
2.連番のデバイス名とは
ZRになり、
ZR32767までは同じです
3.RレジスタはR32768以上を
使う場合は、
ブロック切替えして使う
切替は、
プログラムで行う必要がある
今回は、R24000からに
変更したので切替は不要のはず
(3)どうやるのか?
1.R32767以下でも
デバイスNoが不正になるので
エラーになる
RレジスタのNoを探索
2.R16384~がエラーになる
R32767の半分
R0~R16383まではOK
3.原因は不明です
GX-Worksデバッグによる
シミュレーション中のためか?
このような事例が
現場でも発生します
ハードウェアの要素も
加わるので常に先行で
調査&テストができると
いいですね
現場でハマる
トラブルは
時間との戦いです
応急処置が精一杯
真の原因を探索するには
時間を要します
現場に行く前に
小さいテストをする
このような事例ベースの
経験を蓄積することは、
大きな財産になるので
共有していきましょう