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

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

バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/

はじめに

XCP BasicをPCシミュレーションする場合、
PCならではの課題がある。
主に「各変数のアドレスが起動毎に変わる」と言う点。
これに関しては「配列定義して配列先頭を0アドレスとする」という対処をすることとした。

これらに対する改造をXCP Basicに入れていく。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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

xcp_cfg.hの修正

太郎くん
太郎くん

XCP Basicの修正をしていくわけだけど、
まずはxcp_cfg.hの修正からかな?

フクさん
フクさん

そうだね。

太郎くん
太郎くん

どこに何をすれば良いのかな?
xcp_cfg.hを見た感じだと、いろいろdefine定義されているファイルっぽいけど。

フクさん
フクさん

修正内容としては以下を追記すればOKだ。

#define XCP_ENABLE_CALIBRATION
#define	XCP_ENABLE_MEM_ACCESS_BY_APPL
太郎くん
太郎くん

これだけ?!

太郎くん
太郎くん

で、それぞれどういう効能があるの?

XCP_ENABLE_CALIBRATION

フクさん
フクさん

XCP_ENABLE_CALIBRATION
は、XCPのDOWNLOAD系コマンドを有効にするものだ。

太郎くん
太郎くん

DOWNLOADというと書き込み系のコマンドだね。

フクさん
フクさん

そうそう。
DOWNLOAD系という言い方をしたが、
XCP Basicに限っていうと、DOWNLOADDOWNLOAD_MAXが有効になる
他にはSHORT_DOWNLOAD、DOWNLOAD_NEXTというのもあるが、これらは未対応だ。

太郎くん
太郎くん

DOWNLOADとDOWNLLOAD_MAXって何が違うんだっけ?

DOWNLOADとDOWNLOAD_MAX

フクさん
フクさん

書き込みデータ長が乗ってるのがDOWNLOAD。
書き込みデータ長が無くて無条件にMAX_CTO-1分のサイズを書き込むのがDOWNLOAD_MAXだな。

太郎くん
太郎くん

書き込みデータ長が指定できないDOWNLOAD_MAXって使い勝手悪くない?

フクさん
フクさん

まぁ目的次第かな?
例えば1Kbyteのメモリ空間を無条件に書いていくことを想定すると
DOWNLOAD_MAXの方が1byte分多く書けるってのはあるな。
CANだと1フレームに8byteしか乗らないんで、
DOWNLOADだとコマンド番号、データ長で2byte持っていかれて最大で6byte。
DOWNLOAD_MAXだとコマンド番号の1byteが持っていかれて最大で7byteを書き込める。

太郎くん
太郎くん

6byteと7byteだとあまり大きな差にはならなそうだけど。

フクさん
フクさん

単純計算で14%の速度向上にはなるかな?
例えば、書き込みに10秒かかる場合、8.5秒くらいまで短縮される・・・。
感じ?

太郎くん
太郎くん

そういう言い方されると効能があるように聞こえるから不思議だ。

フクさん
フクさん

確かにあまり積極的に使用されるコマンドでは無いってのは同意だ。

まとめ

フクさん
フクさん

まとめだよ。

  • xcp_cfg.hの修正は以下のdefine定義を追加するだけ。
    • XCP_ENABLE_CALIBRATION。
    • XCP_ENABLE_MEM_ACCESS_BY_APPL。
  • XCP_ENABLE_CALIBRATIONはDOWNLOADとDOWNLOAD_MAXが有効になる。
    • SHORT_DOWNLOAD等は使用不可。

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

コメント

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