【XCP】最小構成のMBD事例 第2章 その157【XCP Basic⑪】

【XCP】最小構成のMBD事例 第2章 その157【XCP Basic⑪】 事例
【XCP】最小構成のMBD事例 第2章 その157【XCP Basic⑪】

バックナンバーはこちら。
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アドレスとする。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました