バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回はPyXCPでSYNCHとGET_COMM_MODE_INFOのコマンドを投げた。
SYNCHは想定通りERR_CMD_SYNCHを受け取り、
GET_COMM_MODE_INFOではinterleavedMode、masterBlockModeの有無や関連パラメータとXCP仕様Versionの取得ができた。
今回はメモリアクセス系コマンドである、DOWNLOAD、UPLOADを試す予定。
登場人物
博識フクロウのフクさん
イラスト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
メモリアクセス系コマンド
次はお待ちかねのメモリアクセス系コマンドだね。
とりあえず、DOWNLOADからかな?
まぁ一個ずつ試すのもアリだが、
DOWNLOADが本当に成功したかはUPLOADを試すまでわからないんだよねー。
以前のXCP Basicの実験の時がまさにそんな感じだったね。
と言うわけで、
UPLOADで0値なのを確認
↓
DOWNLOADで値書き換え
↓
UPLOADで書き替えられた値を確認。
を一気にやってしまうかと思ってる。
なるほど。
そっちの方が手っ取り早いね。
使うコマンドとそれに対するメソッドは以下になる。
SET_MTA → setMta
UPLOAD → upload
DOWNLOAD → download
これらもそのまんまだね。
DOWNLOAD、UPLOADによるverify
じゃー、以下のコードでやってしおう。
xm.setMta(0x0000、0xff)
bhv = xm.upload(4)
print(bhv.hex())
bhv = bytearray(bhv)
bhv[0] = 0xAA
bhv[1] = 0x55
xm.setMta(0x0000, 0xff)
xm.download(bhv)
xm.setMta(0x0000, 0xff)
bhv = xm.upload(4)
print(bhv.hex())
結果
00000000 ※ UPLOADの結果
aa550000 ※ DOWNLOAD後のUPLOADの結果
うん。
ちゃんと書けてるし読めてるね。
今回は一気にSET_MTA、UPLOAD、DOWNLOADが片付いてしまった。
次からは魔境なDAQになるな。
XCP Basicの時は結構大変だったねー。
PyXCPを使った場合だとどうなるんだろう・・・。
投げるコマンドの数は変わらないが、まぁメソッドを経由するから分かり易い感じにはなると思うけどねー。
まぁそこらへんは期待かな。
まとめ
まとめだよ。
- メモリアクセス系コマンドということでSET_MTA、DOWNLOAD、UPLOADを実施。
- DOWNLOADの結果がUPLOADするまで分からないということと、一個ずつ試すがめんどいので一気に流した。
- UPLOAD→DOWNLOAD→UPLOADの流れでverifyすることで読み書きが正常に行われていることが確認できた。
バックナンバーはこちら。
コメント