-
- Блинн, дошло, тебе тупо нужно передавать маску, ну так и передавай её явно, иначе читатели твоего кода будут тупить так-же как и я =AlexD=(372 знак., 23.07.2015 10:47)
- Я использую номер бита в виртуальном порту. На вход это отфильтрованное, очищенное от дребезга, на выход - просто "отвязанное" от фактических регистров. Скрипач(203 знак., 23.07.2015 11:16 - 11:18)
- Тогда ты пишешь не по теме, изначальная тема была именно про аппаратные порты, а виртуализировать устройство можно 100500 разными способами, и это уже другой слой абстракции. - =AlexD=(23.07.2015 11:19)
- Если это другой слой абстракции, то что абстрагирует этот? - Скрипач(23.07.2015 11:21 - 11:26)
- "Абстрагируй это!" Млин, уже ногой дёрнуть не могут без псевдофилософических дискуссий об "абстракциях". Страшно подумать, сколько уровней абстракции наслоится, если придётся ещё и мигать лампочкой :-))) - SciFi(23.07.2015 11:59)
- Вот и я о том же. Регистры UART это явно не то, что нужно абстрагировать. - Скрипач(23.07.2015 12:03)
- Почему это нельзя проабстрагировать регистры UART ? что такого уникального они делают? десяток макросов! VL(492 знак., 23.07.2015 14:54, )
- Можно абстрагировать арифметические операторы! SciFi(83 знак., 23.07.2015 15:31)
- не, ну я серьезно. Есть протокол, который поддерживается на 6 семействах контроллеров, напрашивается абстрагировать низкий уровень работы с портами, что и было сделано. - VL(23.07.2015 15:34, )
- Можно абстрагировать арифметические операторы! SciFi(83 знак., 23.07.2015 15:31)
- А если это внешний UART на параллельной шине? ;-) - =AlexD=(23.07.2015 12:27)
- ...подключенный в облаке через GSM-модем? :) - Скрипач(23.07.2015 12:33)
- Почему это нельзя проабстрагировать регистры UART ? что такого уникального они делают? десяток макросов! VL(492 знак., 23.07.2015 14:54, )
- Вот и я о том же. Регистры UART это явно не то, что нужно абстрагировать. - Скрипач(23.07.2015 12:03)
- А можно не менять смысл сообщения? ИМХО ответ очевиден и вытекает из корневого топика - абстрагирует физические адреса конкретных периферийных устройств. Физических устройств, а не виртуальных. Вся абстракция этого уровня влезает в один хедер и =AlexD=(18 знак., 23.07.2015 11:32)
- Вот в виде трёхуровневых вложенных макросов - вреден и бесполезен, а простейшие инлайновые функции заметно улучшают восприятие кода, не внося никакой неразберихи или накладных расходов. И упрощают портирование на другую плату. =AlexD=(48 знак., 23.07.2015 11:28)
- С этим не спорю. - Скрипач(23.07.2015 11:29 - 11:31)
- "Абстрагируй это!" Млин, уже ногой дёрнуть не могут без псевдофилософических дискуссий об "абстракциях". Страшно подумать, сколько уровней абстракции наслоится, если придётся ещё и мигать лампочкой :-))) - SciFi(23.07.2015 11:59)
- Если это другой слой абстракции, то что абстрагирует этот? - Скрипач(23.07.2015 11:21 - 11:26)
- Тогда ты пишешь не по теме, изначальная тема была именно про аппаратные порты, а виртуализировать устройство можно 100500 разными способами, и это уже другой слой абстракции. - =AlexD=(23.07.2015 11:19)
- Идея с маской вообще не умная, т.к. тот кто будет разводить печатную плату может перекинуть биты между разными портами. Если это не параллельная шина конечно. - fk0(23.07.2015 10:59)
- Ну разумеется, тут же нет printf , значит априори неумное решение. Пыонер, иди вжопу. - =AlexD=(23.07.2015 11:06)
- Одни абстракции заменяются на другие, которые тоже нужно учить, документировать и запоминать, учитывать возможные побочные эффекты. Всё превращается в bloatware. Не нужно плодить лишних сущностей, сверх необходимого. Должен быть один слой HAL и в fk0(475 знак., 23.07.2015 10:52, ссылка)
- Я использую номер бита в виртуальном порту. На вход это отфильтрованное, очищенное от дребезга, на выход - просто "отвязанное" от фактических регистров. Скрипач(203 знак., 23.07.2015 11:16 - 11:18)
- Блинн, дошло, тебе тупо нужно передавать маску, ну так и передавай её явно, иначе читатели твоего кода будут тупить так-же как и я =AlexD=(372 знак., 23.07.2015 10:47)