この質問にすでに回答している場合はご容赦ください。しかし、このページでも、より広いインターネットでも、回答を見つけることができませんでした。
私は経験豊富な開発者であり、低レベルのプログラミングに関してある程度の知識がありますが、組み込み開発は比較的新しいです。私は、STM32F746ZG MCUを特徴とするST-NUCLEO144ボードを使用して、組み込みシステムの開発を教えてきました。私には自明ではないように見える1つの質問は、レジスタ内の論理的に関連するビットフィールドが異なる場所にある可能性があるということです。
1つの例は、USART_CR1
STM32746ZG のレジスタです。M0
そしてM1
ビットフィールド一緒にUSART TX / RXの合成2ビット値の語長制御0b00
、指定する8ビットの0b01
こと以外はこれは、すべての非常に簡単であるなど、指定9ビットのM0
ビット12にあり、M1
ビットであります28 ...これはなぜですか?
これは、以前に予約されていたスペースに新機能が挿入されたなど、レガシーデザインの理由によるものですか?それは私が考慮していないのは、チップ設計に関連する理由のためですか、それとも私には見られないより大きな目的がありますか?
明らかに、これはビットマスキングで克服するのはかなり簡単ですが、私は興味があります。