t.sugi
2022年11月8日 17時08分
お世話になっております。
標記の件、以下の機器でRS-485通信を行った際に10~20分経過すると接続機器からのデータが取れなくなります。
・ハード:Armadillo-IoT G3L(AGL3100-D10Z)
・OS:Linux4.9.133-at25
以前に投稿されていました以下の内容を参考にLinuxカーネルのDMA転送を無効にすると正常にデータを取得できるようになります。
https://armadillo.atmark-techno.com/forum/armadillo/12826
ただ、以下の投稿でDMA転送を無効にすると処理性能が落ちるため無効にせずに対応した修正を組み込んでいる旨の書き込みがされており、DMA転送を安易に無効化してもよいか懸念しております。
https://armadillo.atmark-techno.com/forum/armadillo/3520?page=1
つきましてはDMA転送を有効にしたまま問題を解消できる方法がありましたらご教授いただけないでしょうか。
コメント
t.sugi
大塩様
ご回答ありがとうございます。
> 上記につきまして、可能であれば以下内容にお答え頂けますでしょうか。
> ・接続機器の情報(型番等)
接続機器は以下になります。
・ECOnectシリーズ リモートI/Oユニット
https://www3.panasonic.biz/ac/j/fasys/eco/cmd/remote-io/index.jsp
> > つきましてはDMA転送を有効にしたまま問題を解消できる方法がありましたらご教授いただけないでしょうか。
> こちらにつきましては、ご参照されているフォーラムを確認しますと全二重では発生しないと記載されているため
> お客様がご使用になられている接続機器が全二重通信可能である場合、全二重にすることで解決となる可能性があります。
接続機器が半二重のみの対応となるため変更できません。他の方法がありましたらご教授いただけないでしょうか。
t.sugi
at_koseki
t.sugi
t.sugi
at_keitaro.takahashi
アットマークテクノ高橋です。
SDMAのファームウェアを更新したuImageを添付いたします。
提供が遅れ誠に申し訳ありません。
ファイル | ファイルの説明 |
---|---|
uImage_dtb_SDMA.zip |
t.sugi
at_keitaro.takahashi
高橋です。
度々申し訳ありません、
提供したイメージに不備があったため、修正し添付いたしました。
修正内容は以下になります。
・SDMAのファームウェアをNXPが提供している最新のものに置き換え
使用したファームウェア(※添付したuImageには既に取り込まれています)は、以下手順で取得及び確認することができます。
[ATDE ~]$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.17.bin (省略) [ATDE ~]$ chmod +x firmware-imx-8.17.bin [ATDE ~]$ ./firmware-imx-8.17.bin (省略) [ATDE ~]$ md5sum firmware-imx-8.17/firmware/sdma/sdma-imx7d.bin eec59b6ed17cda161c5ea4b8ab965338 firmware-imx-8.17/firmware/sdma/sdma-imx7d.bin
お手数おかけしますが、改めてダウンロードいただけると幸いです。
よろしくお願いいたします。
ファイル | ファイルの説明 |
---|---|
uImage_dtb_SDMA_20221202.zip |
t.sugi
t.sugi
at_syunya.ohshio
大塩です。
対応が遅くなり大変申し訳ございません。
カーネルの修正により、DMAを無効化することなくRS485の通信が正常に行えるようになりました。
こちらで24時間以上の連続動作試験を行い、データ通信が不能になることなく通信し続けられることを確認済です。
詳細は以下製品アップデート情報をご確認ください。
https://armadillo.atmark-techno.com/news/20231226/software-update-aiotg…
以上です。
at_syunya.ohshio
2022年11月9日 16時46分
大塩です。
> 標記の件、以下の機器でRS-485通信を行った際に10~20分経過すると接続機器からのデータが取れなくなります。
> ・ハード:Armadillo-IoT G3L(AGL3100-D10Z)
> ・OS:Linux4.9.133-at25
上記につきまして、可能であれば以下内容にお答え頂けますでしょうか。
・接続機器の情報(型番等)
> DMA転送を安易に無効化してもよいか懸念しております。
DMAを無効にした場合、ご参照頂いているフォーラムにもありますが
UART通信のデータ転送時にCPUを使用するようになるため、
CPUの作業量が増え負荷がかかり、パフォーマンスが落ちるということになります。
お客様の使用しているアプリケーションにて短い期間でRS485通信を行わないのであれば影響は少ないと思われますが、
そうでない場合は懸念されている通り影響が大きく出るかもしれません。
パフォーマンスへの影響はお客様の環境にて変化しますので、動作確認の上ご判断ください。
> つきましてはDMA転送を有効にしたまま問題を解消できる方法がありましたらご教授いただけないでしょうか。
こちらにつきましては、ご参照されているフォーラムを確認しますと全二重では発生しないと記載されているため
お客様がご使用になられている接続機器が全二重通信可能である場合、全二重にすることで解決となる可能性があります。