Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
12.02.2011, 21:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Отказоустойчивость ПО
Сообщение от testerplus
|
Но ни сам камень, ни средства разработки не имеют возможности ее устранить на этапе проектирования. Только программным способом.
|
Что это за проблема? И почему это вообще проблема? У меня зависнуть в обработчиках невозможно в принципе - там обычно взвод флажка и выход. И ничего не проверяется. Ну не совсем так конечно, но код линеен и и ожиданий нет.
|
|
|
|
12.02.2011, 21:27
|
|
Прописка
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
|
Re: Отказоустойчивость ПО
Сообщение от kison
|
Что это за проблема? И почему это вообще проблема? У меня зависнуть в обработчиках невозможно в принципе - там обычно взвод флажка и выход. И ничего не проверяется. Ну не совсем так конечно, но код линеен и и ожиданий нет.
|
Читайте мой пост внимательнее: речь о "причине" ("ее" - "причину"), а не о проблеме.
|
|
|
|
12.02.2011, 21:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Отказоустойчивость ПО
Сообщение от testerplus
|
Второе: функция может на время выполнения захватить какой-нибудь ресурс контроллера, перед выходом она должна его отдать. Делать это сторого рекомендуется в одном месте, а не разбрасывать по телу всей функции.
|
Я себе завел правило - один ресурс - одна функция. Ресурс нельзя захватить, можно попросить у драйвера этого ресурса что то сделать. Например добавить сообщение в очередь. Он его сам передаст. И сам себе отдать не забудет ![Улыбка](images/smilies/icon_smile.gif)
Нда, но вот если отказаться от указателей, то мой подход рассыплется. Хорошо что ГОСТ не обязателен.
Последний раз редактировалось kison; 12.02.2011 в 21:37.
|
|
|
|
12.02.2011, 21:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Отказоустойчивость ПО
|
|
|
|
12.02.2011, 21:45
|
|
Прописка
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
|
Re: Отказоустойчивость ПО
Сообщение от kison
|
Здорово! Запрещено значит для одной, но какой не указано Но, то что это не запрет использования указателя на функцию в качестве параметра это точно.
|
Ладно, оставим интрепретацию в русскоязычном варианте юристам. Лично мне смысл понятен. В России дел с этим документом не имел (как Вы 7 лет занимаетесь безопасностью, сталкивались с тем, что к некоторым стандартам Вас не подпускали, а этот документ прошел мимо?)
Цитата:
|
Ну мы же следуем этому МЭК. У нас уже нет указателей. Вообще полумеры бесполезны, надо или все принимать или вообще забить на этот документ. Так что действительно передача параметров через глобальные переменные + запрет указателей повышают надежность. С этим трудно спорить.
|
Кстати, в документе оставлена лазейка: в третьей части в приложении B строго рекомендуется "Ограниченное использование указателей" и то же самое о рекурсии (в английском варианте "limited use of pointers"), а вот про goto - однозначно нельзя.
Цитата:
|
Все эти люди не пробовали создавать системы в условиях хронической нехватки ресурсов. Как быстродействия, так и памяти. Иногда нужны три массива по 500 байт, ОЗУ всего 1К и крутись как хочешь. Это не о ретурн, а о динамической памяти и указателях.
|
"Безопасность" и "1.5К в 1К" - понятия несовместимые.
Цитата:
|
Кроме того есть и другие люди типа Ричи с Страуструпом - они говорят множественный ретурн вполне допустим.
|
Так они же разработчики языка. А Кернигана почему не вспомнили? Он был против ![Улыбка](images/smilies/icon_smile.gif) Ладно, не будем про гоуту, а то из одного религиозного спора (про авры) сейчас в другой вольемся.
Последний раз редактировалось testerplus; 12.02.2011 в 21:51.
|
|
|
|
12.02.2011, 21:46
|
|
Прописка
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
|
Re: Отказоустойчивость ПО
Сообщение от kison
|
Я себе завел правило - один ресурс - одна функция.
|
Очень правильное правило.
|
|
|
|
12.02.2011, 21:58
|
|
Прописка
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
|
Re: Отказоустойчивость ПО
Сообщение от kison
|
У меня зависнуть в обработчиках невозможно в принципе - там обычно взвод флажка и выход. И ничего не проверяется. Ну не совсем так конечно, но код линеен и и ожиданий нет.
|
Ну. опять двадцать пять! Начнет источник прерываний выставлять флажок раз в 1 мкс, и повиснете Вы в своем линейном обработчике.
|
|
|
|
12.02.2011, 22:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Отказоустойчивость ПО
Сообщение от testerplus
|
Ну. опять двадцать пять! Начнет источник прерываний выставлять флажок раз в 1 мкс, и повиснете Вы в своем линейном обработчике.
|
А вот это уже задача схемотехника а не программиста - сделать так, чтобы источник прерываний не прыгал раз в 1 мкс. И соответственно морду бить ему
|
|
|
|
12.02.2011, 22:18
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Отказоустойчивость ПО
Сообщение от testerplus
|
как Вы 7 лет занимаетесь безопасностью, сталкивались с тем, что к некоторым стандартам Вас не подпускали, а этот документ прошел мимо?
|
Там не было программируемых вещей. Вообще. Мы только стенды делали с контроллерами, а на это смотрели сквозь пальцы. Вначале хотели и в изделия, но гайки закрутили и импортная комплектация была запрещена. А российской не было. Сейчас вот Миландр есть, вроде у него контроллеры с 5п не только на бумаге. Но мне уже и на ширпотребе хорошо ![Улыбка](images/smilies/icon_smile.gif) Кстати самая дорогая и самая надежная пожарная автоматика для военных пароходов была чисто аналоговой, без программирования. Вот там ошибка в программе бы дорого обошлась - ставилась она туда где ракеты/снаряды хранятся и при срабатывании закрывала двери и накачивала что то типа СО. Если в помещении есть люди, то им каюк.
Сообщение от testerplus
|
Кстати, в документе оставлена лазейка: в третьей части в приложении B строго рекомендуется "Ограниченное использование указателей" и то же самое о рекурсии (в английском варианте "limited use of pointers"), а вот про goto - однозначно нельзя.
|
Странный это документ. Сам по себе goto не опасен. И есть случай, когда его применение красиво. Я правда только один знаю. А вот рекурсия - реальное зло. Куда хуже goto. Указатели же это радость программиста ![Улыбка](images/smilies/icon_smile.gif) Хотя и во вред надежности.
Сообщение от testerplus
|
А Кернигана почему не вспомнили? Он был против
|
Да? Я не знал. Большинство начинающих думают что Керниган - автор Си ![Улыбка](images/smilies/icon_smile.gif) Он же первым автором идет K&R
Сообщение от testerplus
|
Ладно, не будем про гоуту, а то из одного религиозного спора (про авры) сейчас в другой вольемся.
|
Нет-нет, Вы свою позицию обозначьте. GOTO - зло, не всегда зло, обычный прием или самый главный оператор. Мой выбор - два.
|
|
|
|
12.02.2011, 22:21
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Отказоустойчивость ПО
Сообщение от niXto
|
А вот это уже задача схемотехника а не программиста - сделать так, чтобы источник прерываний не прыгал раз в 1 мкс. И соответственно морду бить ему
|
Нет, это может быть внешний сигнал. От другого девайса, который другие люди делают. Можно искать стрелочника конечно, но это долго и неэффективно. Можно забить на этот и отрабатывать остальные, лично я бы так сделал. Если это основной сигнал - то ой
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:12.
|
|