Как стать автором
Обновить
1
0

Пользователь

Отправить сообщение

Может глупый вопрос, но для чего объединение включать в отдельную структуру?

typedef struct 
{
  union 
  {
...
	};
} counter_value_t;

Это такой стиль или в этом есть скрытый смысл?

ваша ошибка в том, что считаете что сертифицируется ПО, а на самом деле сертифицируется процесс создания ПО.
Вы должны гарантировать безошибочность написание текста исходного кода за все время. Мало того, вы так же должны доказать правильность работы компилятора, например, у нас имеется правило запрета использования прописной буквы я даже в комментариях, вы знаете откуда это идёт, думаю что нет. Вы можете написать правильно работающую программу, но вот использовать вам ее не разрешат, так как вы не сможете доказать ее правильность.
давно для себя усвоил, если память позволяет, то нужно работать в родной размерности вычислительной системы, уменьшать смысла нет. Это я про МК
тогда уж добавлять случайную задержку, но когда данная техника разрабатывалась, такие атаки не афишировались. статья великолепна хотя бы тем, что не стоит бояться сложных задач, автор и опубликовал, за что жирный плюс
Тем не менее для систем с повышенными требованиями к надежности программное обеспечение пишут преимущественно на таких языках как си, ассемблер и Ада, главное придерживаться определенным правилам при проектировании и тестировании.
Здравствуйте, можете по подробнее рассказать про связку PVS-Studio и Keil Embedded Development. Каким образом происходит взаимодействие: имеется некая интеграция в среду разработки или через внешний скрипт?
Большое количество скобок увеличивает вероятность ошибки. Лучше разделять операции по строчкам, по идеи для компилятора это не имеет смысла.

Пример 1
bool Predicate;

Predicate  = (CONST1 < a) && (CONST2 > a);

Predicate |= (CONST3 < a) && (CONST4 > a);

Predicate |= (CONST5 < a) && (CONST6 > a);

if (false != Predicate)
{
...
}; 

и
Пример 2
bool PredicateA, PredicateB, PredicateC;
bool Predicate;

PredicateA = (CONST1 < a) && (CONST2 > a);

PredicateB = (CONST3 < b) && (CONST4 > b);

PredicateC = (CONST5 < c) && (CONST6 > c);

Predicate = PredicateA || PredicateB || PredicateC;

if (false == Predicate)
{
...
};

Так же лучше не использовать строки длиннее какого-то значения, у меня не более 100 символов.
ну да, что-то я отправила ошибся с ядром, тогда остаётся только качественное выполнение целевой программы и контроль указателя стека при входе в прерывание, можно реализовать даже вставку на асме, это 4-5 инструкций, можно и на си. это 100% вариант.

Имея отладочный комплект так же можно поиграться с конфигурацией внешней шиной, пытаясь вызвать Hard Fault.

Существует такая книжка от TI "Ядро Cortex-M3 компании ARM" под авторством Джозеф Ю. 15-ая и 16-ая глава посвящена режиму отладки/трассировки и модулям отладки и трассировки. Нас интересует модуль DWT и регистр DEMCR.


Задача состоит в том, чтобы его настроить на генерацию прерывания DebugMon_Handler (на удивление в спецификации на МК оно отсутствует (как и многое чего), а в библиотеке на устройство присутствует, в любом случае отладка и трассировка как-то работает). Если же оно все таки не функционирует, в 15-ой главе описан способ получения прерывания HardFault из-за не правильно настройки.


Информация о регистрах модуля DWT можно найти здесь


К сожалению процессором 1986ВЕ1Т не обладаю, а отладочная под 1986ВЕ94Т на данный момент занята, так что проверить теорию не могу. Но мне кажется вектор верный, осталось только попрактиковаться, главное не забывать о безопасности, чтобы не убить МК вставляя подушку безопасности перед включением защитного кода.

Использование конструкций «довольно безопасное» или «крайне маловероятное» уже не комильфо. Данный подход если не сейчас, то в будущем обязательно приведет к малоприятным событиям. То что провели эксперимент, вы молодец, но смысла в нем не вижу, мало того, это даже опасно для неокрепших умов.
Закладка вещь интересная, но думаю на первое место встает вопрос возможность производства. Как показал пример санкций, многое в Россию уже просто так не попадет.
у нас везде так, ту никто практически бесплатно не предоставляют, хочешь попробовать применить элемент — оформи заказ на ту и только потом узнаешь подходит он или нет.
Подобный алгоритм есть у некоторых спецслужб.

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность