Bu soru daha önce yanıtlandıysa beni affet, ancak bu sayfada veya daha geniş İnternette bir cevap bulamadım.
Düşük düzeyli programlama konusunda iyi bilgiye sahip, ancak gömülü geliştirme konusunda nispeten yeni olan deneyimli bir geliştiriciyim. Kendime, STM32F746ZG MCU içeren bir ST-NUCLEO144 kartı kullanarak gömülü sistem geliştirme öğretiyorum. Benim için açık olmayan bir soru, bir kayıttaki mantıksal olarak ilişkili bit alanlarının neden farklı yerlerde olabileceğidir.
Bunun bir örneği USART_CR1
STM32746ZG'deki kayıttır. M0
Ve M1
bit alanları birlikte USART TX / RX sözcük uzunluğu, bir araya getirilir, 2-bit değerini kontrol 0b00
belirlediği 8-bit 0b01
dışında belirtir 9-bit, vs. Bu tüm oldukça basittir M0
bit 12 olduğu ve M1
bit olan 28 ... bu neden?
Bu, daha önce ayrılmış alana yeni bir özellik eklendiği gibi eski tasarım nedenleriyle mi? Çip tasarımı ile ilgili nedenlerden dolayı düşünmediğim mi, yoksa görmediğim daha büyük bir amacı var mı?
Açıkçası bu, bit maskeleme ile üstesinden gelmek oldukça önemsiz, ama sadece merak ediyorum.