- posted
17 years ago
WINAVR
- posted
17 years ago
- posted
17 years ago
- posted
17 years ago
- posted
17 years ago
- posted
17 years ago
- posted
17 years ago
- posted
17 years ago
- posted
17 years ago
Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Tue, 11 Oct 2005 03:23:56
+0400:DT>>>>>>> type Temperature is delta 0.01 range -100..100;
DO>>>>>> А во что скомпилируется работа с таким типом?
DT>>>>> В целое масштабированное (fixed point) и в целочисленную DT>>>>> арифметику.
DO>>>> Ага, и еще в рантайм проверки выхода за диапазон с DO>>>> достаточно громоздким (поскольку стандартным и DO>>>> универсальным) обработчиком исключений...
GS>>> Фокус в том, что если упростится написание софта, могут GS>>> ведь и в "железо" встроить необходимые проверки...
DO>> Вот прямо все производители разогнались в железо громоздкие DO>> проверки пихать... Тем более, что для проверки диапазона DO>> нужно как минимум его границы где-то хранить, причем для DO>> каждой переменной. Это раз.
DT> Ты считаешь, что лучше пусть происходят _непредусмотренные_ ни DT> программистом, ни компилятором последствия?
Да. Программист на то и программист, чтобы предусматривать проверки там, где они нужны.
DT> Hапример, знаменитое сишное переполнение массива и запись данных поверх DT> кода, применяемые в пресловутых "эксплойтах", против которых DT> микрософт выпускает заплатки раз в неделю?
Так как обычно переполняется не статический массив, а динамически выделенный буфер, все эти встроенные проверки все равно не работают. Учитывая, что все популярные ОС написаны на C[++], а не на Аде и выполняются на имеющихся процессорах, а не на гипотетических, сравнить подходы по результату не представляется возможным.
DO>> Два, допустим вышла переменная за свои границы, что делать?
DT> В стандарте описано. Генерится, насколько я помню, DT> исключение.
И что дальше с ним делать?
DT> Hо в нормально написанной программе такого выхода быть не должно, это ситуация DT> аварийная.
Если не должно, зачем проверки?
DT> Которая, конечно, тоже должна быть предусмотрена.
Или не должна, потому как в embedded весьма нередок случай, когда результат обработанной и необработанной ошибки в программе совершенно одинаков и пользы от этих исключений - 0.
dima
- posted
17 years ago
Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Ruslan Mohniuc on Tue, 11 Oct 2005 08:56:20
+0400:AM>>> Hаверное нормальный код получается для всех платформ, AM>>> для которых получается нормальный код на C. RM>> А вот для Пиков я честно говоря не видел ц++, хотя простой си RM>> вполне внятно крутится. Hо это частный случай.
DT> Для 18-x и dsPIC-а есть у IAR-а.
Не думаю, что С для PIC18 у IAR лучше, чем HiTech, тем более, что удобней пользоваться и для PIC16 и для PIC18 одним инструментом.
dima
- posted
17 years ago
- posted
17 years ago
- posted
17 years ago
- posted
17 years ago
- posted
17 years ago
- posted
17 years ago
- posted
17 years ago
- posted
17 years ago
- posted
17 years ago
- posted
17 years ago