ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
26 ноября
464063 Топик полностью
LightElf (16.11.2013 14:42, просмотров: 87) ответил Vit на - Как разделить 0.8 л водки на троих поровну? - Разливаем три по 100, а далее задача сводится к тривиальной:)
"Позвольте я пробью с ноги!" (С) 
В периферии для Cortex, извините, повторюсь, всё заточено для копирования структур настроек в регистры целиком(в идеале), а не частями
Пардон, откуда сие следует? Можно пример микроконтроллера, где можно тупо скопировать регистры UART0 в регистры UART1 и получить идентичные настройки? Или таки как обычно: сначала нужно взвести битик в регистре Base+8, а потом записать значение в Base+4 и только потом можно писать в Base+16? А тактирование модуля включить в совсем третьем месте? Группировка регистров периферии в структуры имеет две причины: 1) Однотипная периферия создается размножением стандартной макроячейки. Никто не проектирует отдельно UART1, а потом UART2. Проектируют просто UART и размножают его в нужном количестве. Естественно при этом у них регистры одинаковы. 2) RISC процессоры очень неэффективно выполняют действие "записать 32битную константу по фиксированному 32 битному адресу". Это туча команд, тактов и памяти.
Не надо делать мне как лучше, оставьте мне как хорошо