uni писал(а):Вижу вы согласились косвенно, что в datasheets полно схем

так ведь?
Конечно! Это же справочник по
микросхеме, так там может не быть схем?
uni писал(а):Если вы будете относиться к ним как к огрызкам, то ваш проект будет похож потом на кучу мусора, если же вы будете относиться к ним как к кирпичикам, то ваш проект будет зданием с прочным фундаментом.
к сожалению, с очень большой вероятностью куча мусора получится в обоих случаях, вне зависимости от того, как мы относимся к этим, скажем нейтрально,
фрагментам. Стройное здание (с прочным фундаментом, разумеется) получится лишь в том случае, когда оно имеет хорошую
архитектуру. А хорошая архитектура крайне редко получается при проектировании "снизу вверх", исходя из формы имеющихся кирпичей (посмотрите для примера на любой панельный дом). Но для ее построения нужно изучать кое-что посерьезнее даташитов (например, знаменитую "архитектурную" серию под редакцией Фаулера).
Если уж использовать аналогию со строительством здания, то в даташитах скорее содержатся инструкции, как правильно замесить цемент или развести обойный клей, т.е. по-своему тоже важные, но второстепенные детали, отнюдь не определяющие архитектуру здания в целом. В
правильном проекте без громадных усилий можно заменить какую-нибудь Atmega на PIC, STM8 или любой другой микроконтроллер общего назначения аналогичного класса; даташит (вместе с огрызками кода) будет совершенно другим, а архитектура системы в целом существенно не изменится.
uni писал(а):Банальный пример - дребезг контакта, если вы не понимаете что это такое, то знание регистров вам не поможет

Это схемотехника, которая встречается в каждом втором проекте.
Давайте не будем называть высоким штилем ("схемотехника") прописные истины. Если то, о чем мы говорим, -"схемотехника", то задача "у Пети было два яблока, у Маши - на три яблока больше..." - это высшая математика. Непонимание дребезга контакта - это уже ниже самого нижнего уровня профпригодности инженера. Такие страшилки лучше оставить для первоклассника, впервые пришедшего в сельский клуб юных техников. Мы ведь именно об
инженерии говорим, если я не ошибаюсь?
uni писал(а):По этой причине, чего вы явно не понимаете, нельзя взять и их и разделить.
...
если для вас датчик температуры - это удалённый регистр, то для эмбеддера такой датчик - это datasheet с всеми его электрическими и эксплуатационными параметрами, включая корпус изделия. Чувствуете разницу?
Вы действительно
твердо уверены, что явно понимаете, чего я явно не понимаю?
На всякий случай, чтобы не было дальнейших подобных недоразумений, немного проясню ситуацию (исключительно для информации, убедительно прошу не воспринимать как приглашение к фаллометрии). Я попал в мир электроники через аналоговую схемотехнику (проектировал прецизионные измерительные приборы, которых нет в спектре серийной продукции) для экспериментаторов в разных областях - астрономов, атомщиков, химиков, специалистов по физике твердого тела... Когда стали доступны аналоги сначала 8080, а немного погодя 8048 и 8051, они поселились в наших приборах. Довелось также поработать в конторе, которая производила (буквально штучно) заказные микросхемы на арсениде галлия и где частоты ниже 10 гигагерц в шутку называли "постоянным током". Посчастливилось и излазить с паяльником и логическим анализатором "потроха" легендарного некогда VAX-11 (тогдашнего фаворита Пентагона), после которого огрызки схем из даташита по какой-нибудь Atmega не вызывают священного трепета.
Повторяю, это никоим образом не самореклама; поясняю лишь, что многочисленные упомянутые "проблемы" (вроде дребезга контактов или подтягивающих резисторов) я не воспринимаю вовсе не потому, что являюсь "абстрактным программистом в вакууме" и не имею понятия об их существовании; я просто не считаю их
реальными проблемами; это лишь обычная каждодневная рутина разработчика, и заострять на них внимание не вижу смысла. Также в курсе, что у термодатчика есть корпус. Ну и рассказ про его "электрические и эксплуатационные параметры" - лишь двойная трата времени: Вам - написать, мне - прочитать, поскольку мы оба в курсе (честное-пречестное слово).
Реальные, действительно интересные проблемы находятся несколькими этажами выше.
uni писал(а):Непонятно что ваш пример означает. Кто-то за заводе не протестировал флешку и нужно её протестировать самому, а также любую другу микросхему, с которой имеешь дело? Так?
Хорошо, давайте сделаем еще одну попытку немного "понизить градус". Видимо, рассказчик из меня никакой, если такие элементарные вещи не могу четко сформулировать.
Нет.
Не так. Совершенно
не нужно тестировать любую микросхему. Речь идет совершенно о другом.
В процессе взаимодействия с внешним миром система может столкнуться с нештатным поведением, не оговоренном в спецификациях: злосчастная флешка, не входящая изначально в поставку прибора и купленная потребителем на блошином рынке, не держит обещанные временные диаграммы или вообще молчит; кабель передачи данных порвали (или разместили рядом с источником помех, которые регулярно портят данные); сервер баз данных вместо запрошенных данных выдает ошибку, потому что болван-администратор удалил нашу учетную запись... Этот список можно продолжать бесконечно. Вы просто физически не в состоянии протестировать все флешки, кабели и серверы, сидя в своей лаборатории.
Я говорил лишь о том, что разработчику бывает достаточно трудно воспроизвести некоторые нештатные ситуации, чтобы проверить правильность реакции системы на них. Если вырвать провод из разъема или заблокировать пользователя базы данных вполне реально, организовать наводку на кабель тоже можно при разумных затратах, то добыть флешку, на которой, скажем, отказала область, куда записывается пароль, весьма проблемно, если не располагать эмулятором флешки (лично у меня такого нет, и даже не представляю, где его взять, кроме как сделать самому). Это значит, что ветка кода, которая обрабатывает подобные ошибки, без использования
специального инструментария и соответствующих методик, так и останется непротестированной, будь у Вас хоть десять отладчиков и двадцать осциллографов, поскольку Вы не сможете создать условия, при которых она получит управление.
Если я и в этот раз не смог внятно объяснить, лучше на этом завязывать и не тратить на эту писанину свое время, а также не воровать Ваше на ее чтение.
Увы, не открывается... Возможно, временные трудности. Не подскажете автора и точное название? Может, у меня уже есть такая, я их давно собираю.
Хотя в общем-то я немного в курсе, кто такие эмбеддеры. Общаюсь (к сожалению, пока только заочно, через письма и форумы) с Jack Ganssle, James Grenning, ребятами из Atomic Objects (преимущественно Mark VanderVoord), ну и за прессой слежу, само собой. Полагаю, это не самые худшие представители эмбеддинга, по ним можно представить общую картину.
P.S. Вообще ко всему вышесказанному прямо напрашивается эпиграф из классики:
В каюте первого класса Остап, лежа на кожаном диване и задумчво глядя на пробочный пояс, обтянутый зеленой парусиной, допрашивал Ипполита Матвеевича:
-- Вы умеете рисовать? Очень жалко. Я, к сожалению, тоже не умею.
Он подумал и продолжал:
-- А буквы вы умеете рисовать? Тоже не умеете? Совсем нехорошо! Ведь мы-то попали сюда как художники. Ну, дня два можно будет мотать, а потом выкинут.
Давайте все же говорить о художниках, которые
умеют рисовать. Хотя бы буквы. А то мы как-то все больше о всякой мелочи для дошколят - дребезг, резисторы подтяжки, корпуса... Максимум два дня помотаем, но потом ведь как пить дать выкинут.
P.P.S. Ох и дофигища получилось... Но короче уже пробовал - нет ясности. Сделаю последнюю попытку. Заранее прошу прощения у всех утомленных чтением.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle