Юрий_СВ (04.02.2012 00:46 - 00:52, просмотров: 140) ответил AD на По порядку
2) Запись с разрядностью менее 32 бита. В описании RM0041 для каждого вида периферии ОТДЕЛЬНО указаны возможности адресации:
4.4 Power control registers
can be accessed by half-words (16-bit) or words (32-bit).
5.4 BKP registers
can be accessed by half-words (16-bit) or words (32-bit).
6.3.1 Clock control register (RCC_CR)
Access: no wait state, word, half-word and byte access
7.2 GPIO registers
have to be accessed by words (32-bit).
7.4 AFIO registers
have to be accessed by words (32-bit).
9.4 DMA registers
can be accessed by bytes (8-bit), half-words (16-bit) or words (32-
bit).
10.11 ADC registers
have to be accessed by words (32-bit).
2.4.21 TIM1 register map
TIM1 registers are mapped as 16-bit addressable registers
19.6.1Control register (WWDG_CR)
Address offset: 0x00
Reset value: 0x7F
Т.е., регистры бывают с такими видами адресации:
1)только 32 (GPIO, AFIO, ADC)
2)только 16 (TIM)
3)возможно, 8 (WWDG)
4)32 и 16 (Power control, BKP)
5)32 и 16 и 8 (RCC_CR, DMA)
Это значит, что в разной периферии задействован разный набор сигналов
HSIZE[2:0] и HADDR[1:0]. Минимальный для 1-го случая и максимальный - для пятого.
Т.е. для 5-го случая имя полный набор сигналов(дешифрация байтовых трактов)+фокус с перестановками/повторами (duplicate) можно выполнять настоящую невыровненную байтовую и выровненную только по полусловам полусловную запись.
Есть и промежуточные варианты.
Но ПАРАДОКС в том, что в описании (раздел 9.3.4) фокусы с перестановками предлагается для 1-го случая (минимальный набор сигналов) - там, где они бесполезны.
Запись всегда будет выровнена и всегда пословно. А при запись с разрядностью менее 32 - будет что попало.
Долго не мог вьехать - почему так. Видимо, .. это ошибка.