モデルベース開発

事例

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

XCP Basicがサポートしているメモリアクセス系コマンドを列挙。 SET_MTA。 DOWNLOAD。 DOWNLOAD_MAX。 SHORT_UPLOAD。 UPLOAD。 Python-CAN初期化とCONNECTコマンドを発行してからSET_MTAコマンド発行。 正常応答あり。
事例

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

xcp_cfg.hについかしたXCP_ENABLE_MEM_ACCESS_BY_APPLのdefine定義について説明。 XCP経由のメモリアクセスが直接アクセスからフック関数を経由する状態に切り替わる。 ecu.cの修正。 アクセス用の配列を定義。 メモリアクセス用フック関数の定義と実装。
事例

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

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

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

PCシミュレーションの場合、XCP Basicでメモリアクセス系コマンドを実施には課題がある。 各変数のアドレスが起動毎に変わる可能性あり。 よって、以下のどちらかが必要。(後者を採用) 変数のアドレスをファイル出力して、XCPマスタからアクセス毎にファイル参照。 配列定義して配列先頭を0アドレスとする。
事例

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

XCP BasicにGET_STATUSコマンドを送ってみた。 問題無く応答あり。 次にSYNCコマンドを送ってみた。 応答があったがエラー応答? 実は「コマンドプロセッサの同期。」を示す0x00というエラーコードで通常応答になる。 メモリ非依存のコマンド確認は取れた状態。
事例

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

とりあえずXCP Basicのテスト用にメモリアクセスに絡まない以下のコマンドを送ってみる。 CONNECT。 GET_STATUS。 SYNC。 コマンドの送信はPythonの対話モードかJupyter Notebookで実施。まずはCONNECTコマンドを送信。無事送信&受信できた。他のコマンドも同様に試してみる。
事例

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

XCP BasicのVisual Studio 2015から2017へのアップグレードは特に何もなかった。ビルドを実施。warningは出ているが、sscanfをsscanf_sにする話。起動オプションがある。XCPsim -hでヘルプを参照可能。デフォルトはCANでオプションでEthernetへの切り替えもできる。
事例

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

XCP Basicのフォルダ構成を確認。 ドキュメント、EULA、Sample、XCP Basicハード非依存コードなどが配置されている。 Sampleに各物理層のポーティングコードが入っている。 XCPsimがPCシミュレーションを想定。 Ethernet(TCP/UDP)かCAN(VN16xx)を物理層と想定。
事例

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

XCP Basicを入手方法。 Vector社のサイトから入手。 インストール。 最初にEULAが出てくる。 インストール先にはXCP Basicのソースコードが展開されるので好きなところでOK。 ビルド環境は恒例のVisual Studio 2017 express。 Virtual CAN Busのインストール。
事例

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

XCP Basic動作までの方針を決めた。 数点、要否が確定できない作業があるが、実際に確認してみてから決める。 実験構成を提示。 CANの制御はPython-CANを使用。 単純な送受信であればお手軽。 恒例のVirtual CAN Busを使用。 物理的な制約を一旦無視して論理的な正しさを求める場合はこれが一番楽。