ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
304591 Топик полностью
AD (03.02.2012 23:18 - 23:21, просмотров: 138) ответил Юрий_СВ на Итого: правильно я понимаю ?
По порядку 1. Исходя из "AHB/APB bridge is an AHB 32-bit slave peripheral that does not take the HSIZE data into account" и дальнейших описаний можно предположить, что _любое_ чтение будет 32-битным по выровненному адресу. Соответственно, 8/16-битное чтение возможно без всяких если, поскольку нужный байт выделяет всегда получатель. При 32-битном чтении по адресу 0 все отличие между 4-мя 8-битными регистрами с адресами 0..3 и одним 32-битным с адресом 0 заключается в самом факте чтения. Т.е. если в регистрах нет битов, изменяющих свое состояние при чтении, то и разницы нет. В исходном случае 32-битное чтение по адресу 0, 16-битное по 0/1 или 8-битное по 0/1/2/3 будут преобразованы в 32-битное чтение по 0 адресу, а затем приемник выделит нужные байты и отбросит ненужные. Разумеется, гарантий, что дело обстоит именно так, я дать не могу, но выглядит все логично. 2. У STM32 нет 8/16-битных регистров на APB, не выровненных на 32 бита. В 9.3.4 всего лишь написано, как все будет происходить. Непонятно, что не должно работать и какую проблему это не решает. Запись 8/16 бит возможна, просто результат может отличаться от ожидаемого. 3. Это невозможно выяснить, не зная внутренностей кристалла. Но мосту делать это нелогично и, скорее всего, не нужно (избыточно). С точки зрения пользователя все равно никакой разницы нет.