WINAVR

Reply to
Vladimir Vassilevsky
Loading thread data ...
Reply to
Dimmy Timchenko
Reply to
Dimmy Timchenko
Reply to
Dimmy Timchenko
Reply to
Dimmy Timchenko
Reply to
Ruslan Mohniuc
Reply to
Dimmy Timchenko
Reply to
Dimmy Timchenko

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

formatting link

Reply to
Dmitry Orlov

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

formatting link

Reply to
Dmitry Orlov
Reply to
Dimmy Timchenko
Reply to
Dimmy Timchenko
Reply to
Anatoly Mashanov
Reply to
Michael Belousoff
Reply to
Andrey Solomatov
Reply to
Ruslan Mohniuc
Reply to
Dimmy Timchenko
Reply to
Andrey Solomatov
Reply to
George Shepelev

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.