ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
13 июля
464081 Топик полностью
LightElf (16.11.2013 17:21 - 17:29, просмотров: 88) ответил Vit на А Вам, сударь, какая печаль?(C) По п2 - Всемирный день философии был позавчера. По п1 - смотрим на С51, AVR, MSP430 и наблюдаем афигенную макроячеистую повторябельность. Да делать однотипное однотипно это удобно и как бы логично, но какого-то
По макроячейкам: Смотрим на C51 или AVR (с MSP430 знаком шапочно) и пытаемся найти у них хотя бы два одинаковых таймера. Хрен там, они все разные. Разрабатывались порознь, постепенно. Нет там макроячеек, каждый гейт экономили. Смотрим на мотороловские камни: с древних времен периферия макроблоками и регистры сидят кучно. Смотрим на древний ADUC7020 - периферия макроблоками, обращение - структурами. По дню философа: Смотрим в архитектуру/систему команд и обнаруживаем, что у AVR, C51, HC08/HC12 есть специальные "короткие" команды, которыми можно компактно и быстро обращаться к регистрам периферии. Использование структур никакого выигрыша по скорости или компактности не дает. Их и не используют обычно. Хотя на HCS12 как-то использовал как раз для UART. У колдфайров есть абсолютная адресация с 32-битным адресом и непосредственная адресация с 32-битным операндом. Хотя через указатель на структуру будет быстрее, потому и пользуют и так и эдак. У кортезов нет команд для непосредственной или абсолютной адресации вообще. Но зато есть косвенно-регистровая адресация с 12-битным смещением. Очень удобно как раз работать со структурами, загрузил указатель на структуру в регистр и обращаешься относительно этого регистра со смещением. Так что работа с модулем периферии как со структурой определяется эффективностью, а уж никак не удобством копирования настроек из одного UART в другой. PS. Что же до вашего примера, то на STM32 сделать *USART2 = *USART1 будет очень забавно. Регистры статуса и данных тоже копировать будем? :))
Не надо делать мне как лучше, оставьте мне как хорошо