バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
XCP Basicに対してCONNECT、GET_STATUS、SYNCというメモリアクセス非依存のコマンドを送って、正しい応答を受け取れたところまで実施した。
というわけでこの後はメモリアクセス系コマンドのやり取りをするわけだが・・・。
登場人物
博識フクロウのフクさん
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
メモリアクセス系コマンドのやり取りをするには?
とりあえず、メモリアクセス非依存なコマンドは大丈夫だから
今度はメモリアクセス系コマンドを投げれば良いのかな?
まぁそうなんだけど、
以前も言ったようにPCシミュレーションだとメモリ空間のアドレスが固定にならないんだよねー。
そうか。
そういえばその問題があったか・・・。
毎回アクセスしたいメモリのアドレスをファイル出力して
そのファイルの情報を元にアクセスってのもアリだが、
結構手間なんだよねぇ。
確かにそこらへんの作り込みは面倒そうだ。
最終的には欲しいけど、お試し段階でそこに時間をかけるのもちょっと違う気がするな。
というわけで、
XCP Basic側に適当な配列を定義して
メモリアクセスコマンドの0アドレスをその配列の先頭アドレスって体にしようかと思う。
なるほど。
それだったらその配列に対しては相対的ではあるけど、
アドレスの意味がXCP Basic起動毎に変わったりしないから実験としてはちょうど良さそう。
XCP Basic改造方針
というわけでXCP Basicをちょっと改造していく。
ほう。
具体的にはどんな感じで行くの?
とりあえず、以下をすればOKな見込み。
- xcp_cfg.hの修正
- define定義の追加。
- ecu.cの修正
- 0x1000byteの配列を追加。
- ApplXcpRead、ApplXcpWriteの関数追加。
なんかチョロいのかチョロくないのかわからんな。
修正量としては大したことない感じ?
そうだね。
たぶん、それぞれを数行追加する程度だ。
そうなんだ。
じゃーさっくり修正して、即行で動作確認する感じか。
うん。
まぁちゃんと動けばそれでOKだし、
動かなければ、そこから調査ってところか。
うーん、なんか不安になるようなことを言うなー。
こういうのは動かない局面になった方が、
いろいろ内部を調査することになって
予想以上の収穫を得ることもあるから、それほど悪いことでもないよ。
いや、まぁ言いたいことは分かるけど、
やっぱり手間掛かるのは嫌かなぁ。
(というかその手間はたぶん私がやる手間なんだけどね。)
まとめ
まとめだよ。
- PCシミュレーションの場合、XCP Basicでメモリアクセス系コマンドを実施には課題がある。
- 各変数のアドレスが起動毎に変わる可能性あり。
- よって、以下のどちらかが必要。(後者を採用)
- 変数のアドレスをファイル出力して、XCPマスタからアクセス毎にファイル参照。
- 配列定義して配列先頭を0アドレスとする。
バックナンバーはこちら。
コメント