Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
12.02.2011, 19:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Atmel - в цинковый ящик?!!!
Сообщение от omercury
|
Этот параметр ещё на 43 станице проконтролирован
|
Осталось понять относительно чего его контроллировать. Придется ввести второй такт и считать что оба одновременно они не сбрендят. Но ведь могут. Появляется третий такт и мажоритарный выбор. Это и есть расти как снежный ком.
Можно так до маразма дойти. Если WDT исправен при старте, где гарантия что он работает спустя минуту? Нету. И...
Последний раз редактировалось kison; 12.02.2011 в 19:19.
|
|
|
|
12.02.2011, 19:17
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Atmel - в цинковый ящик?!!!
Сообщение от kison
|
Осталось понять относительно чего его контроллировать.
|
Тактовая частота относительно частоты WDT(аппаратного, со своим генератором). Согласитесь, вероятность "сбрендивания" сразу двух генераторов заметно ниже, чем одного.
Недостаточно точно выразился - WDT внешний.
Последний раз редактировалось omercury; 12.02.2011 в 19:23.
|
|
|
|
12.02.2011, 19:19
|
|
Прописка
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
|
Re: Atmel - в цинковый ящик?!!!
Сообщение от kison
|
Если бы. В этом МЭК открытым текстом:
Не рекомендуется использовать:
...
-параметры процедур.
Прочитать это как нибудь иначе сложно.
|
"Не читайте за обедом советских газет." (c)
В оригинале стандарта (откуда наши передрали МЭК) этот пункт называется "procedural parameters", а это уже вполне определенный термин.
Цитата:
|
На самом деле смысл отказа от параметров есть, именно в аспекте безопасности. Параметр передается или в регистрах или на стеке. В обоих случаях они могут быть испорчены. Передача параметров через глобальные переменные куда надежнее.
|
А глобальные переменные находятся в другом месте? Не в той же памяти, через которую передаются параметры?
С ошибками при передаче параметров борются другим способом: в теле самой функции проверяют область допустимых значений и область применения.
Цитата:
|
Тогда и с Паскалем так же? Выходит Дельфи прямо эталон безопасности, в нем ведь столько надстроек...
|
За Дельфи не скажу, не сталкивался. Если понадобится, надо к IEC1991 обратиться.
Цитата:
|
Если меня прижмет до соответствия этому МЭК - буду учить ADA. Вариантов то мало. Или ADA или Paskal.
|
А Си+Мисра не нравится? Сложно, конечно, но можно. (Я думаю, если прижмет когда-то делать по этому МЭК, то у Вас вариантов не будет: все уже будет выбрано за Вас).
Цитата:
|
Например контроль частоты возникновения прерываний, а за опору взят такт контроллера. Дальше неплохо контроллировать и сам этот такт, а то не дай бог частота будет другой. И поехало расти как снежный ком.
|
Да, сам такт тоже контролируется. Про оконные сторожевые таймеры знаете? (Плюс к этому Fail Safe Clock Monitor) Иногда рекомендуют для опорной частоты использовать сетевую (50/60 гц)
Цитата:
|
Что то еще противоречия есть. Если следовать МЭК буквально, то его требования приводят к нехилым усложнениям. Например требование иметь одну точку выхода из функции. Блок SWITCH совместно с return уже не катит, нужно завести переменную, записывать в нее значение и после выхода делать return result;
Иногда это приведет к очень неслабому нагромождение if/else/switch и прочим условиям. Либо.. использовать goto, что и запрещено и вообще говностиль почти всегда.
|
А в чем противоречие? Да, все усложняется, но не более того.
Кстати, основной документ, касающийся программного, обеспечения - это третья часть стандарта (61508-3), а седьмая - это приложения и пояснения. Заодно, если интересно, можете заглянуть в МЭК 60730, приложение H.
|
|
|
|
12.02.2011, 19:21
|
|
Прописка
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
|
Re: Atmel - в цинковый ящик?!!!
Сообщение от kison
|
Вообще это лучше в отдельную тему вынести.
|
Щас dosikus'а попрошу.
|
|
|
|
12.02.2011, 19:24
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: Atmel - в цинковый ящик?!!!
Сообщение от kison
|
Пентагон вот считает, что надежные программы могут писаться на любом языке, если он конечно называется ADA. И создавали его именно для этого.
|
Я слышал, что пентагон уже допускает использование С++.
|
|
|
|
12.02.2011, 19:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Atmel - в цинковый ящик?!!!
Сообщение от testerplus
|
В оригинале стандарта (откуда наши передрали МЭК)
|
Дело в том, что мне плевать на оригинал. Вы никогда не сдавали что нибудь ПЗ? Там соответствие вплоть до букв. И если МЭК не изменят - параметры вне закона. Любые.
Сообщение от testerplus
|
А глобальные переменные находятся в другом месте? Не в той же памяти, через которую передаются параметры?
|
Это отдельная секция. Случайный доступ туда маловероятен, а вот испортить что на стеке милое дело.
Сообщение от testerplus
|
С ошибками при передаче параметров борются другим способом: в теле самой функции проверяют область допустимых значений и область применения.
|
Это не поможет. Можно подпортить в допустимых пределах, но в данной ситуации это приведет к катастрофе.
Сообщение от testerplus
|
А Си+Мисра не нравится? Сложно, конечно, но можно.
|
Не нравится. Если там нет указателей, то Си мне не мил
Сообщение от testerplus
|
А в чем противоречие? Да, все усложняется, но не более того.
|
Как в чем? Там есть требование не усложнять исходный текст - программа должна быть читаемой. Несколько выходов из процедуры не добавят красоты однозначно.
Это почему? Я 7 лет системами защиты занимался ![Улыбка](images/smilies/icon_smile.gif) Только там были несколько другие стандарты. Некоторые мне даже не давали - допуска не хватало.
Сообщение от testerplus
|
то у Вас вариантов не будет: все уже будет выбрано за Вас
|
|
|
|
|
12.02.2011, 19:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Отказоустойчивость ПО
Сообщение от kison
|
Если WDT исправен при старте, где гарантия что он работает спустя минуту? Нету. И...
|
Используются очень вежливые WDT. Они на пожелание "спокойного сна" всегда отвечают "спасибо"...
|
|
|
|
12.02.2011, 20:10
|
|
Прописка
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
|
Re: Atmel - в цинковый ящик?!!!
Сообщение от kison
|
Дело в том, что мне плевать на оригинал. Вы никогда не сдавали что нибудь ПЗ? Там соответствие вплоть до букв. И если МЭК не изменят - параметры вне закона. Любые.
|
Да, насчет букв Вы правы. И они приведены в C.2.5
" Ниже перечислены некоторые из рекомендаций по защите:
- проверка диапазона значений переменных;
- проверка значений переменных на их достоверность (если возможно);
- проверка типа, размерности и диапазона значений параметров процедур на входе процедур."
Не хотелось бы пускаться в демагогию, но на мой взгляд, с точки зрения русского языка, если бы речь шла о том, о чем Вы говорите, то должно было быть записано так: "параметры процедур" (без Ы на конце).
Цитата:
|
Это отдельная секция. Случайный доступ туда маловероятен, а вот испортить что на стеке милое дело.
|
разработчики языка позаботились о нас и увеличили эту вероятность с помощью указателей.
Цитата:
|
Это не поможет. Можно подпортить в допустимых пределах, но в данной ситуации это приведет к катастрофе.
|
Возможно и такое. Но глобальные переменные - это как раз то, что делает код сложнее.
Цитата:
|
Не нравится. Если там нет указателей, то Си мне не мил
|
Есть они там не переживайте. Раздел 6.11 мисра описывает правила работы с указателями.
Цитата:
|
Как в чем? Там есть требование не усложнять исходный текст - программа должна быть читаемой. Несколько выходов из процедуры не добавят красоты однозначно. Это почему?
|
Потому что при исследовании листинга программы, вы один из выходов можете не заметить. Это первое. Второе: функция может на время выполнения захватить какой-нибудь ресурс контроллера, перед выходом она должна его отдать. Делать это сторого рекомендуется в одном месте, а не разбрасывать по телу всей функции. Так что с лишним ретурном код становится намного сложнее (и для чтения и для отладки).
Наверное, Вам знакомы фамилии Е.Дейкстра, Н.Вирт, С.Макконнел, А.Голуб, П.Гудлиф, Д.Ван Тассел. Все они говорят о единственной точке выхода из функции.
|
|
|
Сказали "Спасибо" testerplus
|
|
|
12.02.2011, 21:02
|
|
Прописка
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
|
Re: Atmel - в цинковый ящик?!!!
Сообщение от Gnider
|
Кроме того у любого компаратора есть гистерезис,смещение и тд. Все это описано в мануале.
|
Как Вам картинка? Это из фирменного описания PIC16F628. Нет там никакого гистерезиса (и быть не может, это же компаратор, а не триггер Шмитта). Гистерезис может быть только в пределах напряжения смещения, а оно меньше 10мВ (параметр D300) (у Атмеля, кстати, того же порядка). А RC цепочка - ну задавите Вы шум входного сигнала, а шум внутренней опоры останется.
Да и фиг с ним, с этим компаратором, он - не единственная причина, способная вызвать зависание в обработчике прерываний. Но ни сам камень, ни средства разработки не имеют возможности ее устранить на этапе проектирования. Только программным способом.
В личку загляните.
Последний раз редактировалось testerplus; 12.02.2011 в 21:11.
|
|
|
|
12.02.2011, 21:16
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Отказоустойчивость ПО
Сообщение от testerplus
|
Не хотелось бы пускаться в демагогию, но на мой взгляд, с точки зрения русского языка, если бы речь шла о том, о чем Вы говорите, то должно было быть записано так: "параметры процедур"
|
Здорово! Запрещено значит для одной, но какой не указано ![Улыбка](images/smilies/icon_smile.gif) Но, то что это не запрет использования указателя на функцию в качестве параметра это точно. Запрет указателей выше по тексту, так что их и так нет. Зачем запрещать что то дважды?
Сообщение от testerplus
|
разработчики языка позаботились о нас и увеличили эту вероятность с помощью указателей.
|
Ну мы же следуем этому МЭК. У нас уже нет указателей. Вообще полумеры бесполезны, надо или все принимать или вообще забить на этот документ. Так что действительно передача параметров через глобальные переменные + запрет указателей повышают надежность. С этим трудно спорить.
Сообщение от testerplus
|
Есть они там не переживайте. Раздел 6.11 мисра описывает правила работы с указателями.
|
Значит мисра эта ни фига не безопасна. И не соответствует нашим гостам.
Сообщение от testerplus
|
Наверное, Вам знакомы фамилии Е.Дейкстра, Н.Вирт, С.Макконнел, А.Голуб, П.Гудлиф, Д.Ван Тассел. Все они говорят о единственной точке выхода из функции.
|
Все эти люди не пробовали создавать системы в условиях хронической нехватки ресурсов. Как быстродействия, так и памяти. Иногда нужны три массива по 500 байт, ОЗУ всего 1К и крутись как хочешь. Это не о ретурн, а о динамической памяти и указателях. Кроме того есть и другие люди типа Ричи с Страуструпом - они говорят множественный ретурн вполне допустим. Он упрощает понимание программы и иногда в разы увеличивает быстродействие. И вообще Голуб это клоун какой то. Хотя кроме одной дурацкой книжки я ничего не читал.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:12.
|
|