saigusa
2020年10月2日 9時50分
お世話になります。
三枝です。
Armadillo-X1に自社製モジュールを接続し、
UART1を使用してシリアル通信をしております。
接続先製品の通信仕様の都合で、1バイト目と2バイト目以降のパリティを変更して通信しなくてはいけないのですが、
1バイト目と2バイト目の間隔が最大で30[ms]程度空いてしまいます。
バイト間隔を10[ms]以内に収めたいのですが、何らかの方法がございましたら、ご教授していただけませんでしょうか。
Linuxカーネルは、v4.9-x1-at12 を使用しており、こちらを使用して製品にする予定です。
送信処理は、添付資料「シリアル送信処理.jpg」のような記述をしております。(pythonで記述しております。)
製品の量産時期が迫っておりまして、大変恐縮ですが、お早めにご回答いただければ幸いです。
よろしくお願い致します。
ファイル | ファイルの説明 |
---|---|
シリアル送信処理.jpg |
コメント
saigusa
三枝です。
ご回答ありがとうございます。
添付いただいた3つのパッチをカーネルに適用し、
PREEMPT_RT_FULLを有効にした状態でビルドを実施し、
生成物のuImageとarmadillo_x1.dtbを使用しましたが、
結果は変わりませんでした。
その他に、何らかの方法が有りましたら、ご教授していただけますでしょうか。
なお、関係しているかは分かりませんが、
こちらの環境では、
下記フォーラムに記載されているドライバソース(imx.c)のRXTL_UARTのdefine値を「16」から「1」に変更しております。
https://armadillo.atmark-techno.com/forum/armadillo/3892
at_akihito.irie
saigusa
at_akihito.irie
saigusa
at_mizo
at_akihito.irie
2020年10月2日 18時29分
入江です。
LinuxのRT-Preemptパッチは試されましたでしょうか?
添付の.tar.gzアーカイブを展開し出てきた3つのパッチをカーネルに適用して
いただき、x1_defconfig適用の上お使いください。
お客様の方でconfigを変更されている場合は、手動でPREEMPT_RT_FULLを有効
にした上でビルドしてください。
当方で linux-4.9-at12 でビルド、起動確認済みです。