реклама на сайте
подробности

 
 
> Защита секция кода во FLASH в ATmega, Как защититься от несанкционированного выполнения кода
Дон Амброзио
сообщение Feb 11 2008, 17:42
Сообщение #1


Местный
***

Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947



А кто как защищает код в MCU от несанкционированного выполнения в результате случайного перехода из одной точки программы в другую от воздействия помехонесущего электромагнитного поля (искажения записанного в счётчике команд значения). А?

Приведу пример
--------------------
lab_1_input: ldi R16 , $00
mov R16 , $98
...
lab_1_output: mov R17 , R5
-----------------------
lab_2_1_input: mov R18, R17


Т.е. допустим программа предусматривает переход к выполнению кодового фрагмента, начинающегося с метки lab_2_1_input только после отработки до конца фрагмента [lab_1_input;lab_1_output]

А представим , что от помехи произошёл случайный переход из произвольной точки 1-го фрагмента кода в произвольную точку 2-го фрагмента кода....

Как вы ПРОГРАММНО отлавливаете такие ситуации?

Т.е. как Вы реализовываете в своих программах для микроконтроллеров ATmega механизм защиты FLASH-памяти от несанкционированного выполнения кода. Ну т.е. как контролировать, что в данный фрагмент кода вошли не где попало, а через строго определённые на этапе проектирования программы, точки

Цитата(Дон Амброзио @ Feb 11 2008, 20:36) *
А кто как защищает код в MCU от несанкционированного выполнения в результате случайного перехода из одной точки программы в другую от воздействия помехонесущего электромагнитного поля (искажения записанного в счётчике команд значения).

Кстати, причины такого случайного джампа могут быть не только в разрушении PC.
Может также случайным образом измениться содержимое ячейки FLASH или содержимое хранимой в ОЗУ таблицы переходов... В любом случае МОЖЕТ произойти переход в точку некоторого логического сегмента кода, которая не предусмотрена данным логическим сегментом FLASH


--------------------
После устранения бага в программе она стала работать....хуже
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kris2007
сообщение Feb 12 2008, 13:21
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 75
Регистрация: 15-03-07
Пользователь №: 26 193



А че такое бывает чтобы из-за электромагнитных помех грохнулся счетчик команд?
По моему это неудачные попытки нати существующую ошибку в коде. Не нашли списали на э.м помехи.

Импульсник на 3квт делали на атмеге. Там тАкие помехи идут и все ок. Я уж не говорю о других устройствах. Если некая помеха по питанию и на пине это еще понятно но случайная запись в PC ..

Сообщение отредактировал Kris2007 - Feb 12 2008, 13:26
Go to the top of the page
 
+Quote Post
Дон Амброзио
сообщение Feb 12 2008, 16:18
Сообщение #3


Местный
***

Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947



Цитата(Kris2007 @ Feb 12 2008, 16:21) *
А че такое бывает чтобы из-за электромагнитных помех грохнулся счетчик команд?

Бывает, бывает. Молодой человек. Я написал тестовую прогу для ATmega8 которая представляет собой следующее:

.cseg
.org 0
;-----------------
.set Number = 0
;-----------------
Begin_Loop :
.set Number = Number +1
ldi R16 , Number
nop
...
nop
cpi R16 , Number
breq PC+0x02
rjmp Crash
;-----------------
.set Number = Number +1
ldi R16 , Number
nop
...
nop
cpi R16 , Number
breq PC+0x02
rjmp Crash
;-----------------
.set Number = Number +1
ldi R16 , Number
nop
...
nop
cpi R16 , Number
breq PC+0x02
rjmp Crash
;-----------------------
......
......
......
;-----------------
.set Number = Number +1
ldi R16 , Number
nop
...
nop
cpi R16 , Number
breq PC+0x02
rjmp Crash
;-----------------------
rjmp Begin_Loop
;-----------------------
Crash :

; Зажечь светодиод
...

; Остановиться
;------------------------
После подачи помехи в виде электромагнитной наводки от пьёзозажигалки мне удавалось как зажечь светодиод

Цитата(Kris2007 @ Feb 12 2008, 16:21) *
Импульсник на 3квт делали на атмеге. Там тАкие помехи идут и все ок. Я уж не говорю о других устройствах. Если некая помеха по питанию и на пине это еще понятно но случайная запись в PC ..

У меня тоже в условиях эксплуатация все девайсы работают нормально. А когда я над ними "издеваюсь" с помощью пьезозажигалки, то порой такие "чудеса" наблюдаю

Цитата(SasaVitebsk @ Feb 12 2008, 16:36) *
А с какими ты работал? Сейчас практически все AVR "такие"

Не звизди.. twak.gif
"Все такие" говоришь? А как же ATmega 8, 8515, 8535, 64, 128..А?

Цитата(Дон Амброзио @ Feb 12 2008, 18:54) *
А как же ATmega 8, 8515, 8535, 64, 128..А?
В них по WDT происходит полноценный сброс, а не прерывание

Цитата(SasaVitebsk @ Feb 12 2008, 16:36) *
Просто к моменту когда ты начал обдумывать свои "правильные" методики борьбы, человечество с этим уже работало и над этим думало не один десяток лет. И WDT оказался одним из самых эффективных методов борьбы с зависаниями и сбоями.

Дык с зависаниями или сбоями? Вы уж определитесь.. Ибо понятие "сбой" гораздо шире понятия "зависание"

Цитата(SasaVitebsk @ Feb 12 2008, 16:36) *
раз уж ты уходишь от переписывания моей процедуры.

Странный ты.. Ну на тебе твою переделанную процедуру (хотя я же объяснял тебе выше как это сделать. Неужели для тебя это так сложно? 07.gif )

...
ldi R25 , high ( Border_Counter)
ldi R24 , low ( Border_Counter)
ReadLptEPP:
sbiw R25:R24 , 1
breq Crash
sbic pinc,LptSTB ; Строб пришёл?
rjmp ReadLptEPP ; иначе повторить
...


--------------------
После устранения бага в программе она стала работать....хуже
Go to the top of the page
 
+Quote Post
adc
сообщение Feb 13 2008, 06:12
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Цитата(Дон Амброзио @ Feb 12 2008, 19:18) *
Странный ты.. Ну на тебе твою переделанную процедуру (хотя я же объяснял тебе выше как это сделать. Неужели для тебя это так сложно? 07.gif )
...
ldi R25 , high ( Border_Counter)
ldi R24 , low ( Border_Counter)
ReadLptEPP:
sbiw R25:R24 , 1
breq Crash
sbic pinc,LptSTB ; Строб пришёл?
rjmp ReadLptEPP ; иначе повторить
...

Всегда пишу именно так, но хочу заметить что попав в результате сбоя, к примеру, на метку ReadLptEPP (не загрузив константы в регистры) можно превысить допустимое значение ожидание со всеми вытекающими из этого последствиями.
Предпочитаю использовать WDT + обязательный выход из цикла по переполнению описанный Вами.


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post
Дон Амброзио
сообщение Feb 13 2008, 09:26
Сообщение #5


Местный
***

Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947



Цитата(adc @ Feb 13 2008, 09:12) *
Всегда пишу именно так, но хочу заметить что попав в результате сбоя, к примеру, на метку ReadLptEPP (не загрузив константы в регистры) можно превысить допустимое значение ожидание со всеми вытекающими из этого последствиями.

Согласен.. Просто я привык уже работать в среде мной же разработанной RTOS, где любой поток может быть вытеснен другим более высокоприоритетным потоком вообще говоря на случайное время. И как в этом случае Вы рассчитаете на сколько должен быть запрограммирован WDT? Поэтому в этом случае счётчик ограничитель количества итераций выглядит более предпочтитетельным. Тем более бывают задачи, где важно именно количество итерация цикла, а не время его выполнения


Цитата(adc @ Feb 13 2008, 09:12) *
Предпочитаю использовать WDT + обязательный выход из цикла по переполнению описанный Вами.

Хорошее решение.. Но только для программ не работающих в RTOS с вытесняющей многозадачностью.
Я же использую в многозадачной среде виртуальные таймеры и WDT, которые фактически являются обратными счётчиками CPU_Time потока. Т.е. у меня любой поток может посмотреть в любой момент своё CPU_Time - время, которое бы он выполнялся если бы он были один в системе. Фактически CPU_Time - это счётчик тактов выполнения кода потока. Отсюда можно делать следующее. Вы прикидываете сколько максимальное количество тактов будет выполняться поток от точки A до точки B. Инициализируете в точке A виртуальный WDT, а в точке B его реинициализируете новым значением. Если этот виртуальный WDT обнулиться до прихода CPU в точку B потока, то это сбой и система это отработает. Кроме максимального времени работы некоторого участка кода, которое контролируется виртуальным WDT. Я ещё контролирую минимальное.. Ведь если известно, например, что подсчёт CRC 256-ти байтного пакета не может быть меньше 547788 тактов (цифры взяты просто для иллюстрации примера) и мы попадаем на точку завершения подсчёта и видим, что этот участок кода выполнился за 10790 тактов - то ясно же что имеет место сбой....


Цитата(arttab @ Feb 13 2008, 05:02) *
хорошо что не подрались...

Да млин, всё-таки неприятно, когда человек не врубившись "что почём" начинает меня "мордой тыкать" в такую элементарщину, что создаётся впечатление, что либо человек меня принимает за полного ламера (и это с моим-то более чем 15-ти летним опытом разработчика девайсов на базе MCU) либо сам таковым и является

Цитата(arttab @ Feb 13 2008, 05:02) *
может для начала определить с какими сбоими в работе мк боремся ...

В этой теме я рассматриваю только один вид сбоев: несанкционированное выполнение код во FLASH, вызванное аппаратным сбоем.
Этот сбой проявляется в том, что осуществляется переход в запрещённую точку секции кода , либо в разрешённую, но тогда, когда условия для выполнения этой секции кода не наступили.

Среди основных причин этого сбоя можно назвать следующие:
1) Случайное изменение значение счётчика команд из-за помех
2) Случайное изменение содержимого в ячейке ОЗУ в области, где храниться таблица переходов
3) Случайное изменение ОЗУ стека или указателся стека, в результате чего после команд ret/reri мы "улетаем" не пойми куда


СЮДА Я НЕ ОТНОШУ те сбои в командах перехода, когда в программе содержиться ошибка, проявляющаяся в том, что при не которых наборах данных она вычисляет не верный адрес точки перехода

Цитата(Дон Амброзио @ Feb 13 2008, 12:21) *
В этой теме я рассматриваю только один вид сбоев: несанкционированное выполнение код во FLASH, вызванное аппаратным сбоем.
Этот сбой проявляется в том, что осуществляется переход в запрещённую точку секции кода , либо в разрешённую, но тогда, когда условия для выполнения этой секции кода не наступили.

Среди основных причин этого сбоя можно назвать следующие:
1) Случайное изменение значение счётчика команд из-за помех
2) Случайное изменение содержимого в ячейке ОЗУ в области, где храниться таблица переходов
3) Случайное изменение ОЗУ стека или указателся стека, в результате чего после команд ret/reri мы "улетаем" не пойми куда
СЮДА Я НЕ ОТНОШУ те сбои в командах перехода, когда в программе содержиться ошибка, проявляющаяся в том, что при не которых наборах данных она вычисляет не верный адрес точки перехода



Если сказать короче: здесь рассматривается сбой, проявлящийся в том, что происходит переход от одной точки программы к другой и этот переход не относиться к множеству всех возможных переходов, определённых на этапе разработки программы

Сообщение отредактировал Дон Амброзио - Feb 13 2008, 09:05


--------------------
После устранения бага в программе она стала работать....хуже
Go to the top of the page
 
+Quote Post
adc
сообщение Feb 13 2008, 09:39
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Цитата(Дон Амброзио @ Feb 13 2008, 12:26) *
В этой теме я рассматриваю только один вид сбоев: несанкционированное выполнение код во FLASH, вызванное аппаратным сбоем.
Этот сбой проявляется в том, что осуществляется переход в запрещённую точку секции кода , либо в разрешённую, но тогда, когда условия для выполнения этой секции кода не наступили.
Если сказать короче: здесь рассматривается сбой, проявлящийся в том, что происходит переход от одной точки программы к другой и этот переход не относиться к множеству всех возможных переходов, определённых на этапе разработки программы

Вы спрашивали почему тут все уперлись в WDT?. Объясняется это тем что это решение практически на уровни железа. Как можно программными методами отследить случайный переход на случайную точку программы? Даже если в программе большая часть функций направлена на контроль правильности выполнения кода, ни что не защитит программу от перехода на случайный адрес с последующим нарушением нормальной работы устройства.
Как мне кажется решение должно быть на уровне железа.. (внешние контролирующие устройства(тотже только внешний WDT), дублирующий контроллер(возможно выполняющий туже задачу) и т.п.) Это мое ИМХО.


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post
Дон Амброзио
сообщение Feb 13 2008, 09:57
Сообщение #7


Местный
***

Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947



Цитата(adc @ Feb 13 2008, 12:39) *
Как можно программными методами отследить случайный переход на случайную точку программы?

Вы задали вопрос, который собственно и должен "красной нитью" идти через всю тему. Ради того, чтобы услышать ответы участников форума на него я , собственно говоря, и создал эту тему

Цитата(adc @ Feb 13 2008, 12:39) *
Даже если в программе большая часть функций направлена на контроль правильности выполнения кода, ни что не защитит программу от перехода на случайный адрес с последующим нарушением нормальной работы устройства.

Согласен, что программа от таких сбоев не защищает, но она может помочь в их обнаружении и оповещении о них.

Ибо нафига мне "суперпупернадёжная" система, у которой происходит один сбой в год, но он НЕ ОБНАРУЖИВАЕТСЯ СИСТЕМОЙ. Я лучше возьму систему, у которой сбои происходят каждый день, ну у которой эти сбои НЕ ПРОХОДЯТ НЕЗАМЕЧЕННЫМИ СИСТЕМОЙ


Цитата(adc @ Feb 13 2008, 12:39) *
Как мне кажется решение должно быть на уровне железа.. (внешние контролирующие устройства(тотже только внешний WDT), дублирующий контроллер(возможно выполняющий туже задачу) и т.п.) Это мое ИМХО.
Моё ИМХО такое же.. Но всё же лучше "соломки подстелить". Ибо лучше перебдеть, чем недобдеть


Цитата(zltigo @ Feb 13 2008, 12:42) *
За темой следить не вижу ни малейшего смысла.

А я никого и не заставляю читать эту тему или чтото писать в ней. Так же как оставляю за собой право НЕ ЧИТАТЬ и НЕ ОТВЕЧАТЬ в неинтересных мне темах


--------------------
После устранения бага в программе она стала работать....хуже
Go to the top of the page
 
+Quote Post
galjoen
сообщение Feb 13 2008, 10:19
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Дон Амброзио @ Feb 13 2008, 12:57) *
Согласен, что программа от таких сбоев не защищает, но она может помочь в их обнаружении и оповещении о них.

Ибо нафига мне "суперпупернадёжная" система, у которой происходит один сбой в год, но он НЕ ОБНАРУЖИВАЕТСЯ СИСТЕМОЙ. Я лучше возьму систему, у которой сбои происходят каждый день, ну у которой эти сбои НЕ ПРОХОДЯТ НЕЗАМЕЧЕННЫМИ СИСТЕМОЙ

+1

Как можно программными методами отследить случайный переход на случайную точку программы?
Я от этого контролем данных защищаюсь - см. мой предыдущий пост. Подсчётом их CRC, сравнением с инверсией и т.д.
ИМХО в случае несанкционированного перехода, данные и в регистрах и в ОЗУ, несоответствующие программе будут.
Это не 100% конечно. Но и CRC у порченных данных тоже совпасть может!
А если программа хотя-бы диапазоны данных проверяет - то и больших бед не натворит. И восстановиться потом можно будет!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Дон Амброзио   Защита секция кода во FLASH в ATmega   Feb 11 2008, 17:42
- - Liseev   А как вы будете защищать "механизм защиты от ...   Feb 11 2008, 18:05
|- - Дон Амброзио   Цитата(Liseev @ Feb 11 2008, 21:05) Испол...   Feb 11 2008, 18:40
|- - Liseev   Цитата(Дон Амброзио @ Feb 11 2008, 21:40)...   Feb 11 2008, 19:32
|- - SasaVitebsk   Цитата(Дон Амброзио @ Feb 11 2008, 22:40)...   Feb 11 2008, 21:34
|- - Дон Амброзио   Цитата(SasaVitebsk @ Feb 12 2008, 00:34) ...   Feb 11 2008, 21:52
||- - SasaVitebsk   Цитата(Дон Амброзио @ Feb 12 2008, 01:52)...   Feb 11 2008, 22:45
||- - Дон Амброзио   Цитата(SasaVitebsk @ Feb 12 2008, 01:45) ...   Feb 11 2008, 23:08
||- - SasaVitebsk   Цитата(Дон Амброзио @ Feb 12 2008, 03:02)...   Feb 11 2008, 23:11
|||- - Дон Амброзио   Цитата(SasaVitebsk @ Feb 12 2008, 02:11) ...   Feb 11 2008, 23:31
|||- - SasaVitebsk   Цитата(Дон Амброзио @ Feb 12 2008, 03:31)...   Feb 12 2008, 08:41
||||- - Дон Амброзио   Цитата(SasaVitebsk @ Feb 12 2008, 11:41) ...   Feb 12 2008, 12:01
|||- - defunct   Цитата(Дон Амброзио @ Feb 12 2008, 01:31)...   Feb 13 2008, 12:47
|||- - Дон Амброзио   Цитата(defunct @ Feb 13 2008, 15:47) это ...   Feb 13 2008, 16:08
|||- - defunct   ЦитатаА кто как организует код программы, чтобы пр...   Feb 13 2008, 23:51
|||- - Дон Амброзио   Цитата(defunct @ Feb 14 2008, 02:51) Дете...   Feb 14 2008, 00:30
|||- - defunct   Цитата(Дон Амброзио @ Feb 14 2008, 02:13)...   Feb 14 2008, 00:33
||||- - Дон Амброзио   Цитата(defunct @ Feb 14 2008, 03:33) Пото...   Feb 14 2008, 00:49
|||||- - defunct   Цитата(Дон Амброзио @ Feb 14 2008, 02:49)...   Feb 14 2008, 00:55
|||||- - Дон Амброзио   Цитата(defunct @ Feb 14 2008, 03:55) Вооб...   Feb 14 2008, 01:26
|||||- - defunct   Цитата(Дон Амброзио @ Feb 14 2008, 03:21)...   Feb 14 2008, 01:34
||||||- - Дон Амброзио   Цитата(defunct @ Feb 14 2008, 04:34) Поче...   Feb 14 2008, 01:40
||||||- - defunct   Цитата(Дон Амброзио @ Feb 14 2008, 03:40)...   Feb 14 2008, 01:43
|||||- - singlskv   Цитата(Дон Амброзио @ Feb 14 2008, 04:26)...   Feb 14 2008, 09:38
||||- - Дон Амброзио   Цитата(defunct @ Feb 14 2008, 03:33) А во...   Feb 14 2008, 01:05
|||||- - defunct   Цитата(Дон Амброзио @ Feb 14 2008, 02:56)...   Feb 14 2008, 01:06
||||- - galjoen   Цитата(defunct @ Feb 14 2008, 03:33) Ну и...   Feb 14 2008, 07:11
||||- - defunct   Цитата(galjoen @ Feb 14 2008, 09:11) Сове...   Feb 14 2008, 15:18
||||- - Дон Амброзио   Цитата(galjoen @ Feb 14 2008, 10:11) У AR...   Feb 14 2008, 15:35
||||- - singlskv   Цитата(Дон Амброзио @ Feb 14 2008, 18:35)...   Feb 14 2008, 18:10
||||- - Дон Амброзио   Цитата(singlskv @ Feb 14 2008, 21:10) Ой....   Feb 14 2008, 18:45
||||- - singlskv   Цитата(Дон Амброзио @ Feb 14 2008, 21:35)...   Feb 14 2008, 18:51
|||- - Дон Амброзио   Цитата(Дон Амброзио @ Feb 14 2008, 03:30)...   Feb 14 2008, 00:35
|||- - defunct   Цитата(Дон Амброзио @ Feb 14 2008, 02:30)...   Feb 14 2008, 00:45
||- - galjoen   Цитата(Дон Амброзио @ Feb 12 2008, 02:08)...   Feb 12 2008, 00:33
|- - galjoen   Цитата(Дон Амброзио @ Feb 11 2008, 20:42)...   Feb 11 2008, 22:05
- - Непомнящий Евгений   Ну как вариант - расставить assert-ы по всей проге...   Feb 11 2008, 19:26
|- - Дон Амброзио   Цитата(Непомнящий Евгений @ Feb 11 2008, 22...   Feb 11 2008, 20:15
- - arttab   Средства должны оправдывать цели. уровень защиты о...   Feb 12 2008, 01:45
|- - Дон Амброзио   Цитата(arttab @ Feb 12 2008, 04:45) Средс...   Feb 12 2008, 05:05
|- - VladimirYU   Цитата(Дон Амброзио @ Feb 12 2008, 08:05)...   Feb 12 2008, 06:23
||- - Дон Амброзио   Цитата(VladimirYU @ Feb 12 2008, 09:23) К...   Feb 12 2008, 06:35
|- - adc   Цитата(Дон Амброзио @ Feb 12 2008, 08:05)...   Feb 12 2008, 12:49
||- - Дон Амброзио   Цитата(adc @ Feb 12 2008, 15:49) Вот вот....   Feb 12 2008, 13:03
||- - SasaVitebsk   Цитата(Дон Амброзио @ Feb 12 2008, 17:03)...   Feb 12 2008, 13:36
|- - tyro   Цитата(Дон Амброзио @ Feb 12 2008, 08:05)...   Feb 13 2008, 07:56
|- - Дон Амброзио   Цитата(tyro @ Feb 13 2008, 10:56) Обсужда...   Feb 13 2008, 09:39
|- - zltigo   Цитата(Дон Амброзио @ Feb 13 2008, 12:36)...   Feb 13 2008, 09:42
|- - Dog Pawlowa   Цитата(zltigo @ Feb 13 2008, 13:42) За те...   Feb 13 2008, 09:49
|- - zltigo   Цитата(Dog Pawlowa @ Feb 13 2008, 12:49) ...   Feb 13 2008, 10:02
|- - Дон Амброзио   Цитата(zltigo @ Feb 13 2008, 13:02) Для н...   Feb 13 2008, 10:51
- - Непомнящий Евгений   ИМХО, стратегия поведения после обнаружения ошибки...   Feb 12 2008, 06:39
|- - VladimirYU   Цитата(Непомнящий Евгений @ Feb 12 2008, 09...   Feb 12 2008, 06:43
|- - SasaVitebsk   Цитата(Дон Амброзио @ Feb 12 2008, 20:18)...   Feb 12 2008, 17:00
||- - Дон Амброзио   Цитата(SasaVitebsk @ Feb 12 2008, 20:00) ...   Feb 12 2008, 17:14
||- - SasaVitebsk   Цитата(Дон Амброзио @ Feb 12 2008, 21:14)...   Feb 12 2008, 19:16
||- - Дон Амброзио   Цитата(SasaVitebsk @ Feb 12 2008, 22:16) ...   Feb 12 2008, 19:56
||- - SasaVitebsk   Цитата(Дон Амброзио @ Feb 12 2008, 23:56)...   Feb 12 2008, 21:34
||- - Дон Амброзио   Цитата(SasaVitebsk @ Feb 13 2008, 00:34) ...   Feb 12 2008, 21:44
||- - galjoen   Цитата(galjoen @ Feb 13 2008, 13:19) Я т...   Feb 13 2008, 10:53
||- - adc   Цитата(galjoen @ Feb 13 2008, 13:19) Цита...   Feb 13 2008, 11:25
||- - galjoen   Цитата(adc @ Feb 13 2008, 14:25) Но ведь ...   Feb 13 2008, 12:24
|- - galjoen   Цитата(adc @ Feb 13 2008, 09:12) Всегда п...   Feb 13 2008, 09:41
- - Rst7   ЦитатаНе я выбираю MCU: что мне дали, то я и юзаю ...   Feb 12 2008, 18:23
|- - Дон Амброзио   Цитата(Rst7 @ Feb 12 2008, 21:23) Если не...   Feb 12 2008, 18:50
- - arttab   хорошо что не подрались... может для начала оп...   Feb 13 2008, 02:02
- - Schtirlitz   Надо отделить мух от котлет. Ибо проблема надежнос...   Feb 13 2008, 09:31
|- - Дон Амброзио   Цитата(Schtirlitz @ Feb 13 2008, 12:31) И...   Feb 13 2008, 09:41
|- - Дон Амброзио   Цитата(Schtirlitz @ Feb 13 2008, 12:31) Н...   Feb 13 2008, 09:44
|- - Schtirlitz   Цитата(Дон Амброзио @ Feb 13 2008, 12:44)...   Feb 13 2008, 10:01
|- - Дон Амброзио   Цитата(Schtirlitz @ Feb 13 2008, 13:01) А...   Feb 13 2008, 11:14
- - mig2002   Возвращаясь к первоначальному вопросу могу посовет...   Feb 13 2008, 11:01
- - mig2002   В принципе, однозначного решения данного вопроса б...   Feb 13 2008, 11:43
|- - Дон Амброзио   Цитата(mig2002 @ Feb 13 2008, 14:43) В пр...   Feb 13 2008, 12:09
|- - mig2002   Цитата(Дон Амброзио @ Feb 13 2008, 14:09)...   Feb 13 2008, 13:20
- - Дон Амброзио   Вообще сейчас скажу крамольную мысль (только чур н...   Feb 13 2008, 12:16
- - Rst7   ЦитатаА у вас как с ЭМС? С наносекундными импульса...   Feb 13 2008, 12:50
|- - galjoen   Цитата(Rst7 @ Feb 13 2008, 15:50) У меня ...   Feb 13 2008, 14:34
|- - defunct   Цитата(galjoen @ Feb 13 2008, 16:34) Може...   Feb 13 2008, 15:12
|- - Дон Амброзио   Цитата(defunct @ Feb 13 2008, 18:12) угу,...   Feb 13 2008, 15:51
|- - defunct   Цитата(Дон Амброзио @ Feb 13 2008, 17:51)...   Feb 13 2008, 17:16
|- - Дон Амброзио   Цитата(defunct @ Feb 13 2008, 20:16) Я же...   Feb 13 2008, 18:35
|- - galjoen   Цитата(Дон Амброзио @ Feb 13 2008, 21:35)...   Feb 13 2008, 19:17
- - IgorKossak   Считаю своим долгом всем напомнить, что неплохо бы...   Feb 13 2008, 13:26
- - adnega   Недавно дорабатывал текстовое информационное табло...   Feb 13 2008, 13:50
- - defunct   ЦитатаПосле аппаратных доделок табло перестало лов...   Feb 13 2008, 14:09
- - Rst7   ЦитатаУ меня-то пластмассовый корпус 120*60*32 мм....   Feb 13 2008, 14:41
|- - galjoen   Цитата(Rst7 @ Feb 13 2008, 17:41) И в под...   Feb 13 2008, 15:53
|- - Rst7   Цитата(galjoen @ Feb 13 2008, 17:53) Объя...   Feb 14 2008, 06:25
- - Дон Амброзио   Не секрет, что стоимость простых MCU упала до стои...   Feb 14 2008, 15:56
|- - zltigo   Цитата(Дон Амброзио @ Feb 14 2008, 18:56)...   Feb 14 2008, 16:05
- - Rst7   ЦитатаСтранно.. Я читал совершенно другие "ме...   Feb 14 2008, 17:35
3 страниц V   1 2 3 >


Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 14:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01685 секунд с 7
ELECTRONIX ©2004-2016