2013844_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2013844_ja-JP

2013844_ja-JP

LS1043a は、serial1 のレジスタを変更しようとすると、serial0 で意味不明になります

UbootではSerial0(0x21c0500)を使用して問題なくコンソールを作成できます。しかし、レジスタにアクセスして Serial1 (0x21c0600) のボー レートを変更しようとすると、何かが正しく動作しません。起動が完了したときにserial1を変更しようとした後でボードを起動しようとすると、Linuxコンソールのログインプロンプトの前にserial0で小さなバーストの意味不明のバーストが発生します。これは、シリアルが接続されたボードと対話する方法にも干渉します。私は、2つのuartsが互いに独立していると想定されていると思ったのですか?

Uboot では serial0 を 115200 ボー 8n1 に、Serial1 を 38400 ボー 8n1 にする必要があります。私はLinuxからこれらに問題なくアクセスできますが、そこで物事を簡単にするために抽象化の追加レイヤーがあります。

レジスタを正しく読み取っている場合、再起動後、Serial0 が Alternate 関数レジスタに 0xC1 があり、uart 間での同時書き込みが記載されているように見えます。なぜこれがデフォルトとして設定されているのですか?そうであってはなりませんよね?

Re: LS1043a は、serial1 のレジスタを変更しようとすると、serial0 で意味不明な

それを理解しました。QorIQ LS1043Aリファレンス・マニュアル、Rev.6、2020年7月号は誤りです。図/表 20.4.10.3 と 20.4.10.4 では、DLAB が最下位ビットで、ワード長とストップ ビットが最上位ビットであることを示しています。これは逆です。

Re: LS1043a は、serial1 のレジスタを変更しようとすると、serial0 で意味不明な

以下は、両方のシリアル接続が必要なubootの0x21c0500(serial0)と0x21c0600(serial1)のuartレジスタのメモリダンプです。

=> md.b 0x21c0500 0x11
021c0500: 00 00 c1 03 03 00 11 00 00 00 00 00 00 00 00 00 00 ................
021c0510:03 。
=> md.b 0x21c0600 0x11
021c0600: 00 00 01 00 00 60 11 00 00 00 00 00 00 00 00 00 00 .....'..........
021c0610:01

ラッチ・アクセス・ビットが0x21c0503(ライン・コントロール・レジスタ)に設定されているように見えるのはなぜですか?また、0x21c0502(代替関数レジスタ)では、なぜ並行書き込みが設定されているのですか?115200 で serial0 が必要で、38400 で serial1 が必要な場合、ボー クロックをオフまたはオンにする必要がありますか?また、値は、リセットから出てくると想定されているものと一致していないようです。Serial0 は FIFO モードのようですが、それが問題かどうかはわかりません。デバッグ中に特定のレジスタを切り替えると、0x21c0600に書き込むと0x21c0500に表示されますが、これは非常に間違っています。

これを修正するには、どこを探すべきですか?

Tags (1)
No ratings
Version history
Last update:
‎11-21-2025 12:30 PM
Updated by: