|
|
|
|
Тут тема заряжена важная, и бесконечная... Ну, например, контроль внутренним таймером времени отработки каждой ветви программы... Например, контроль после входа в прерывание (по адресу возврата в стеке) того, в какой ветви случилось прерывание..т.е. допустимо-ли было в то время там находиться..... Например, контроль последовательности выполнения, через предусмотренный список флагов/результатов успешно выполненных процедур..... Например, чем чаще контроллер будет начинать работу с перезапуска (с чистого листа.. , тем лучше.К сожалению, это легко реализуется только в простых задачках.. Каждый тут ваяет по своему разумению и опыту. Основная сложность в том, что, как правило, эти приемы необходимо реализовывать при жестком ограничении ресурсов выбранного контроллера. Описывать приемы никакого времени не хватит...писать конкретности об этом не любят, поэтому не сложился общепринятый стандарт, у каждого свои приемы и, (полная анархия!!) СВОЯ ТЕРМИНОЛОГИЯ, поэтому обьяснять очень долго и хлопотно....
|
|
|
Влезу с суконным рылом в калашный ряд, т.к. не программист  Конкретная ситуация: навороченные электронные часы с коррекцией по GPS, DCF, с выходом на вторичные стрелочные часы, выпускаются серийно. Пошли отказы - при вкл. дрели и пр. в соседнюю розетку часики сбрасываются в нули и идут с нулей дальше. Да, потом они спутник словят, синхронизируются, восстановят время и всё ОК. Ну и как тут можно программными методами победить сбой? ИМХО никак... |
|
|
NPI: Ну и как тут можно программными методами победить сбой? ИМХО никак... Тут программно никак. Причина на поверхности-пролезание помехи от питающей сети. С ней и надо бороться.
|
|
|
Vlad_Petr: Причина на поверхности-пролезание помехи от питающей сети. Если бы было так просто Помеха была по эфиру!
|
|
|
а некоторые родились 18 фев и хотят зачем-то иметь за месяц эту тысячу сообщений. Проблемы решаются в рабочем порядке на работе, а не на базаре.У всех условия разные. |
|
|
Дон Амброзио: Делаю..Это называется "контроль временной логики". Дон Амброзио: Делаю. Это называется "контроль запланированности прерываний". Дон Амброзио: Делаю. Это называется "контроль завершённости транзакций" И если все это минимизировано по потребным ресурсам, уже можно пойти попить пивка, а затем прийти и внимательно проверить оставшееся: т.е. топологию платы, необходимость/достаточность экранировки, способы подключения внешних сигнальных цепей и цепей питания...все это c учетом электромагнитной обстановки в месте будущей жизни девайса... |
|
|
потом приходит "некто"(тоже из пяти букв) и подаёт контроллеру вместо нормального сигнала все 220 В....и самая отличная программа становится смешной и мёртвой( только в Пт такое сотворили нам )...... |
|
|
Crot2: контроллеру вместо нормального сигнала все 220 В А мы этого парня ожидаем с оптопарой на входе.. Меняем оптопару..составляем акт, ищем этого Буратино...далее по принятой в тех кругах схеме.. |
|
|
Дон Амброзио: Существуют основанные на теории и подкреплённые практикой принципы разработки программы, которые позволяют с некоторой долей вероятности успеха отслеживать правильность работы программы. Все равно не понимаю как это работает. Например: команда "goto" модифицирует счетчик команд, если в этот момент происходит его сбой, и мы улетаем в неизвестность, как мы узнаем, где мы? И самое главное, куда нам вернуться для корректного продолжения программы? У Вас есть пример реализации данной функции, или конкретный алгоритм, можно посмотреть, если не военн. тайна, конечно ? Дон Амброзио: Странный Вы какой-то Возможно |
|
|
AlexAlcoa: Например: команда "goto" модифицирует счетчик команд, если в этот момент... если не военн. тайна, конечно? Военная тайна состоит в использовании ассемблера. Ибо, в случае С или других языков выше assm, программа непрерывно ныряет в черные ящички операторов языка,а для учета всех нюансов реализации конкретного оператора надо устраивать его разбор по командам assm. Много проще сразу на assm все делать.. Master_153: Это весьма хитрый и профессиональный вопрос Все зависит от стиля программирования идеально подходит только ASM а в библиотеках С много ненадежных дырок |
|
|
|
|