-
- Делал переопределение оператора new, работало нормально. - Михаил Е.(05.01.2014 12:48)
- Поподробнее, пожалуйста. VVB(116 знак., 05.01.2014 13:00)
- К сожалению не нашел, не сохранилось. Но посмотреть можно например тут --> - Михаил Е.(05.01.2014 13:48, ссылка)
- Как я подозревал, всё так как описано в стандарте. VVB(707 знак., 05.01.2014 16:23)
- У вас дичайшая каша в голове. Библиотеки содержатся в виде библиотек. Т.е. при компоновке в них находятся нужные функции (отдельные .o файлы в архиве .a библиотеки, содержащие буквально отдельную функцию) и компонуются к проекту. Соответственно, fk0(1521 знак., 05.01.2014 21:49)
- По пунктам. VVB(1342 знак., 08.01.2014 14:14)
- Отвечаю: fk0(4726 знак., 08.01.2014 14:43)
- Да, действительно, так можно переопределить глобальный new, в том числе из библиотек. Не подозревал. Спасибо за советы. - VVB(08.01.2014 19:20)
- Попробую на работе ваш пример с кросс-компилятором. Может, действительно, я чего не допонимаю. - VVB(08.01.2014 15:02)
- Самое главное -- нет смысла, скорей, переопределять new. Например в libstdc++ он реализован через malloc: fk0(254 знак., 08.01.2014 15:09)
- Отвечаю: fk0(4726 знак., 08.01.2014 14:43)
- По пунктам. VVB(1342 знак., 08.01.2014 14:14)
- У вас дичайшая каша в голове. Библиотеки содержатся в виде библиотек. Т.е. при компоновке в них находятся нужные функции (отдельные .o файлы в архиве .a библиотеки, содержащие буквально отдельную функцию) и компонуются к проекту. Соответственно, fk0(1521 знак., 05.01.2014 21:49)
- Как я подозревал, всё так как описано в стандарте. VVB(707 знак., 05.01.2014 16:23)
- new это не метод класса, это оператор языка. Ну так что мешает написать void *operator new(size_t size) { return malloc(size)...} Одно но. new должен исключение bad_alloc давать. Что собственно тянет за собой уже исключения и опять же TLS. - fk0(05.01.2014 13:32)
- К сожалению не нашел, не сохранилось. Но посмотреть можно например тут --> - Михаил Е.(05.01.2014 13:48, ссылка)
- Поподробнее, пожалуйста. VVB(116 знак., 05.01.2014 13:00)
- Задача в принципе решима... Но для начала следует понимать некоторые вещи, после чего придёт также понимаение, что не стоит пытаться её решать таким путём. fk0(3973 знак., 02.01.2014 22:29)
- Требуемый объём работы впечатляет. VVB(903 знак., 03.01.2014 10:30)
- Отказ от динамической памяти -- сомнительное занятие, подходящее лишь для маленьких программок: в системе физической памяти обычно меньше, чем используется всеми программами в разные моменты времени. Либо придётся изобретать свой самодельный fk0(3486 знак., 03.01.2014 13:00)
- напомнило использование Nucleus в мобилках - kaaaaa(03.01.2014 14:34, )
- Где пруфлинк? Для иронии надо быть в теме создания и доказывания сертифицирующим организациям того, что программа выполняет заложенные требования, и не выполняет чего-либо другого. Вот это доказательство и приводит к удорожанию на порядок-другой. - VVB(03.01.2014 18:32)
- тут AlexandrY о таком краешком затрагивал caxapa.ru/76030.html caxapa.ru/37899.html - kaaaaa(05.01.2014 22:45, )
- Понимаю, что педивикия конечно не очень доверительна, но даже для ипхоноф указано использование. оно как бы для фторого кристалла, но никто не говорит о приоритетах - может рюшечки как раз и рулятся как мусор в системной юзермоде. раньше (до kaaaaa(84 знак., 05.01.2014 01:46, )
- Насколько я помню, сертифицирующим организациям нужна оценка рисков. А что она там делает или не делает - неважно :) - Vladimir Ljaschko(03.01.2014 18:38)
- Не только оценка рисков, но и связь конкретного риска с мероприятиями (кодом) по его устранению, и результаты, подтверждающие работу кода. VVB(147 знак., 03.01.2014 21:21 - 17.03.2014 13:25)
- В тойоте такая штука тоже была на 100% соблюдена и лучшим образом засертифицирована. Да и Therac в своё время, я уверен, на 146% был сертифицирован на соответстием лучшим стандартам. И это не отменяло адского говнокода внутри, 11000 глобальных fk0(258 знак., 03.01.2014 23:40)
- Я придерживаюсь другой точки зрения: именно из-за таких аварий и развиваются стандарты, востребованные в современном мире. Вряд ли тогда были стандарты на ПО. - VVB(04.01.2014 12:30)
- А разве стандарты гарантируют от ошибок? Стандарты отчасти защищают от небросовестного производителя, но лишь отчасти. Хотя и не могу согласиться, что если пустить эти деньги на оплату труда программистов то это решит проблему. Задача эта должна Codavr(388 знак., 04.01.2014 21:18)
- Это детская, наивная, точка зрения... звучит как построить коммунизм. Нет, всё исключительно из-за денег. - fk0(04.01.2014 13:52)
- Я придерживаюсь другой точки зрения: именно из-за таких аварий и развиваются стандарты, востребованные в современном мире. Вряд ли тогда были стандарты на ПО. - VVB(04.01.2014 12:30)
- Есть стандарты, а есть жизнь :( Когда я узнал, что продавцы (EU+US) впаривают продукцию с заведомо известными ошибками, перестал верить стандартам. - Vladimir Ljaschko(03.01.2014 21:30)
- А ещё есть требования, без выполнения которых нельзя продавать продукцию. - VVB(03.01.2014 21:37)
- Отвечаю для Vladimir Ljaschko. Стандарты существуют отнюдь не (только) для повышения качества продукции (номинальное следование стандартам...), а в основном для огораживания рынка для своих производителей и зарабатывания денег на собственно fk0(34 знак., 03.01.2014 23:36)
- О, я хорошо знаю, как сейчас, после введения таможенного союза российские сертификаторы зарабатывают на белорусских производителях :) - Vladimir Ljaschko(04.01.2014 10:59)
- Отвечаю для Vladimir Ljaschko. Стандарты существуют отнюдь не (только) для повышения качества продукции (номинальное следование стандартам...), а в основном для огораживания рынка для своих производителей и зарабатывания денег на собственно fk0(34 знак., 03.01.2014 23:36)
- А ещё есть требования, без выполнения которых нельзя продавать продукцию. - VVB(03.01.2014 21:37)
- В тойоте такая штука тоже была на 100% соблюдена и лучшим образом засертифицирована. Да и Therac в своё время, я уверен, на 146% был сертифицирован на соответстием лучшим стандартам. И это не отменяло адского говнокода внутри, 11000 глобальных fk0(258 знак., 03.01.2014 23:40)
- Не только оценка рисков, но и связь конкретного риска с мероприятиями (кодом) по его устранению, и результаты, подтверждающие работу кода. VVB(147 знак., 03.01.2014 21:21 - 17.03.2014 13:25)
- Где пруфлинк? Для иронии надо быть в теме создания и доказывания сертифицирующим организациям того, что программа выполняет заложенные требования, и не выполняет чего-либо другого. Вот это доказательство и приводит к удорожанию на порядок-другой. - VVB(03.01.2014 18:32)
- Вариант с двумя операционками и штатно запущенном MPU хорош, надо подумать. TDD для микроконтроллеров предполагает три типа тестов (по частоте запуска: модульные, интеграционные, в "железе"; первые два типа запускаются на ПК). - VVB(03.01.2014 14:17)
- Вдогонку о другой теме. _Как-нибудь_ отладим это неспроста. Это некоторые люди не сделав свою работу пытаются спихнуть на программистов. Имею мнение, что разработку систем со сколько-нибудь сложным ПО и начинать нужно с ПО на макете, на PC. - fk0(03.01.2014 13:07)
- Кстати, кто-нибудь пользовался C++test? VVB(325 знак., 03.01.2014 18:46, ссылка)
- В последнее время я наблюдаю много мифов. Мол можно взять волшебную программу и она сама всё сделает. При этом не имея никакой методики работы с ней. Что куда важней, как мне думается. И уж совершенно десятое дело, будет ли она запускаться fk0(558 знак., 04.01.2014 00:03)
- Вы работали с трассировщиками? Возможность получить трассу без вмешательства в код больше никто (никакая методика, никакой отладчик) не обеспечит, любой компорт это вмешательство и использование библиотек Си, без которых в ином случае можно VVB(336 знак., 04.01.2014 12:35)
- Ужос! Любой отладчик - вмешательство в алгоритм работы программы. Точка останова - уже жопа. Временные параметры нарушены. Пока ты сидишь в точке останова, таймер тикает, по USART-у (USB, Ethernet) данные прут, и что ты с этим сделаешь? Сбрасывая _basile(206 знак., 04.01.2014 17:05 - 17:23)
- Снимаю лапшу с ушей. Цитирую документ по ссылке, начиная с раздела 8 (стр. 30): fk0(3963 знак., 04.01.2014 14:42 - 14:47, ссылка)
- И что делать с этой трассой? А главное как (100мБайт в секунду, например) этот поток передать в компьютер, и как там обрабатывать? И что вообще понимается под трассой? (если то, что понимает микрочип -- это издевательство над здравым смыслом и fk0(1261 знак., 04.01.2014 14:03 - 14:06)
- Я так думаю, что критерий "степень покрытия кода" 100% (без использования всяких там ущербных аналогов gprof) это доказуемый критерий того, что все ветки программы выполнились; сей факт не является доказательством правильной работы ветки, а VVB(626 знак., 04.01.2014 15:21 - 15:39, ссылка, ссылка)
- Покрытие тестами можно и без железа проверять, на PC, и без сложной трассировки. Нужно же лишь проверить, что тест вызывает исполнение кода, не более того. Если код не связан тесно с железом. Можно и на железе даже сделать без поддержки fk0(1343 знак., 04.01.2014 15:49)
- Вариант с таймером это аналог gprof, применяемый в GHS MULTI. VVB(575 знак., 04.01.2014 18:24)
- Покрытие тестами можно и без железа проверять, на PC, и без сложной трассировки. Нужно же лишь проверить, что тест вызывает исполнение кода, не более того. Если код не связан тесно с железом. Можно и на железе даже сделать без поддержки fk0(1343 знак., 04.01.2014 15:49)
- Я так думаю, что критерий "степень покрытия кода" 100% (без использования всяких там ущербных аналогов gprof) это доказуемый критерий того, что все ветки программы выполнились; сей факт не является доказательством правильной работы ветки, а VVB(626 знак., 04.01.2014 15:21 - 15:39, ссылка, ссылка)
- Вы работали с трассировщиками? Возможность получить трассу без вмешательства в код больше никто (никакая методика, никакой отладчик) не обеспечит, любой компорт это вмешательство и использование библиотек Си, без которых в ином случае можно VVB(336 знак., 04.01.2014 12:35)
- В последнее время я наблюдаю много мифов. Мол можно взять волшебную программу и она сама всё сделает. При этом не имея никакой методики работы с ней. Что куда важней, как мне думается. И уж совершенно десятое дело, будет ли она запускаться fk0(558 знак., 04.01.2014 00:03)
- Кстати, кто-нибудь пользовался C++test? VVB(325 знак., 03.01.2014 18:46, ссылка)
- напомнило использование Nucleus в мобилках - kaaaaa(03.01.2014 14:34, )
- Отказ от динамической памяти -- сомнительное занятие, подходящее лишь для маленьких программок: в системе физической памяти обычно меньше, чем используется всеми программами в разные моменты времени. Либо придётся изобретать свой самодельный fk0(3486 знак., 03.01.2014 13:00)
- щетаю, что пока нет возможности запуска программ извне, то с защитой на MPU без MMU заморачиваться - себе же дороже. - Mahagam(02.01.2014 22:57)
- Не соглашусь. MPU позволяет выявлять сбои в ПО (vs тихо глючить). Причём в многозадачной системе, и с ростом объёмов системы это становится важным. Хотя бы потому, что, допустим, любая программа имеет 0.1 вероятность сбоя. И в большой системе эти fk0(663 знак., 02.01.2014 23:23)
- MPU выявит только один тип ошибок: запись мимо правильного места. а это либо кривая работа с указателями, либо выход за пределы массива. моя статистика говорит что я давно так не ошибался ) Mahagam(238 знак., 02.01.2014 23:32)
- Обращение по NULL-указателю -- это уже, наверное, половина ошибок. Хоть на чтение, хоть на запись. Не стоит того? Исполнение с неправильного места (попортили стек и сделали return) -- тоже. Чтение по неправильному указателю -- тоже весьма fk0(939 знак., 02.01.2014 23:52)
- запись по NULL даёт data abort от контроллера памяти. а вообще для начала стоит придумать ошибку, которая даёт запись мимо правильного места. - Mahagam(03.01.2014 11:11)
- Обращение по NULL-указателю -- это уже, наверное, половина ошибок. Хоть на чтение, хоть на запись. Не стоит того? Исполнение с неправильного места (попортили стек и сделали return) -- тоже. Чтение по неправильному указателю -- тоже весьма fk0(939 знак., 02.01.2014 23:52)
- MPU выявит только один тип ошибок: запись мимо правильного места. а это либо кривая работа с указателями, либо выход за пределы массива. моя статистика говорит что я давно так не ошибался ) Mahagam(238 знак., 02.01.2014 23:32)
- Не соглашусь. MPU позволяет выявлять сбои в ПО (vs тихо глючить). Причём в многозадачной системе, и с ростом объёмов системы это становится важным. Хотя бы потому, что, допустим, любая программа имеет 0.1 вероятность сбоя. И в большой системе эти fk0(663 знак., 02.01.2014 23:23)
- Требуемый объём работы впечатляет. VVB(903 знак., 03.01.2014 10:30)
- Полагаю, что вместо FreeRTOS следует использовать SafeRTOS - vmp(02.01.2014 14:47, ссылка, ссылка)
- Ну это настолько очевидно, что я даже не стал заострять внимание, думал, что из приведённой ссылки в корневом посте станет ясно. Тем более что озвученная проблема останется при любой RTOS. VVB(141 знак., 02.01.2014 16:10, ссылка, ссылка)
- Не при любой! Если РТОС использует ММУ, то задачи разделены по разным, защищенным областям памяти. _basile(315 знак., 02.01.2014 16:29)
- Вы, похоже, не в курсе, что такое MPU. VVB(417 знак., 02.01.2014 16:40 - 16:46)
- Так вы задаром хотели, и что бы сертифицированная. Бывает. - _basile(02.01.2014 16:13)
- Ешё раз. Сертифицированные тулчейны это урезанное по функциональности и ограниченное множество несертифицированных. А поднятая мною проблема будет и там проявляться в полной мере. Для использования MPU надо отказываться от CRT и стандартных VVB(15 знак., 02.01.2014 16:18)
- Не при любой! Если РТОС использует ММУ, то задачи разделены по разным, защищенным областям памяти. _basile(315 знак., 02.01.2014 16:29)
- ТС, вообще, похоже не в курсах, какой ему сертификейшн нужен. Вот, РТОС по ISO 62304 Class A up to Class C (медикал). А че за 63204 - хз. _basile(69 знак., 02.01.2014 15:46 - 15:52, ссылка)
- Опечатался, исправил. - VVB(02.01.2014 16:21)
- Ну это настолько очевидно, что я даже не стал заострять внимание, думал, что из приведённой ссылки в корневом посте станет ясно. Тем более что озвученная проблема останется при любой RTOS. VVB(141 знак., 02.01.2014 16:10, ссылка, ссылка)
- Не знаю, что там с FreeRTOS, но под UCOS malloc() нормально работает, правда, без MPU. _basile(554 знак., 02.01.2014 13:05)
- Делал переопределение оператора new, работало нормально. - Михаил Е.(05.01.2014 12:48)