Публикации по теме 'misra'


Статический анализ кода и MISRA C в автомобильных встраиваемых системах
C для автомобиля  – доминирующий факт в автомобильной промышленности и особенно в автомобильном секторе. Помимо своей популярности, он также является наиболее подходящим языком для создания критически важных систем безопасности в автомобильном секторе, за которым следует C++ (его потомок), и требуется соответствие стандарту сертификации ISO 26262 . Согласно исследовательскому обзору VDC, C использовался в промышленности чуть более чем на 70%. ЭБУ (электронный блок управления)  – это..

Вопросы по теме 'misra'

Приведение аргумента функции указателя NULL привело к нарушению правила Misra 11.3.
Я определяю NULL_PTR как 0U Затем вызовите функцию с этим NULL_PTR в качестве аргумента. read_some_data(2U, (uint8_t *const) NULL_PTR, (uint8_t *const) NULL_PTR); Прототип вызываемой функции: int16_t read_some_data(const uint8_t...
2833 просмотров
schedule 22.09.2022

Почему мой инструмент выдал здесь ошибку MISRA?
Что я могу сделать, чтобы MISRA не выдавала эту ошибку для кода ниже? Я пробовал кастинг с (unit16_t). Но тогда это не позволяло явное преобразование. Недопустимое неявное преобразование базового типа MISRA «unsigned char» в «unsigned int» в...
13526 просмотров
schedule 11.04.2023

Как убрать ошибки / предупреждения MISRA C о побитовых операциях в прошивке?
Я использую стандарты MISRA C 2004 в Code Composer Studio . Я всегда получаю ошибки в отношении побитовых операций во время инициализации периферийных устройств. В файле .h компилятора определение выглядит следующим образом. #define...
2430 просмотров
schedule 29.03.2022

МИСРА C 2004 и c99
Правило 1.1 MISRA C 2004 указывает, что спецификация распространяется на c90, а не на c99. Я хотел бы использовать библиотеки stdint и stdbool вместо того, чтобы писать свои собственные. Кто-нибудь сделал это исключение в своей реализации MISRA?
1537 просмотров
schedule 17.09.2022

Определите массив с помощью команды #define, не соответствующей правилам мисра
У меня есть такое определение: static const char* STRING_ARRAY[NUM_UNITS] = STRING_ARRAY_VALUES; когда #define STRING_ARRAY_VALUES \ { "n/a", \ "bool",...
319 просмотров
schedule 13.11.2023

Как вставить элементы в std::map, не нарушая MISRA C++ 2008 Required Rule 5-2-12?
Я получаю эту ошибку в PC-Lint (au-misra-cpp.lnt): ошибка 1960: (Примечание. Нарушает обязательное правило MISRA C++ 2008 5-2-12, тип массива передается функции, ожидающей указатель) В этом коде: _IDs["key"] = "value"; _ID...
1066 просмотров
schedule 02.01.2023

Операторы условного возврата C/C++ [дубликаты]
Я работаю над встроенной программой, и в некоторых случаях, если условие не подразумевается, я хотел бы вернуться из функции как можно быстрее. если у меня есть следующий код, и я занимаюсь встроенным программированием: foo() { if (a < b)...
10721 просмотров
schedule 19.06.2022

Почему первые 31 символ идентификатора должны быть уникальными?
MISRA 2004 правило 5.1 гласит что все идентификаторы должны иметь уникальные первые 31 символ. В чем причина этого правила? Это техническое ограничение для некоторых компиляторов?
7038 просмотров
schedule 04.04.2023

В чем разница между мертвым кодом и недостижимым кодом?
Я думал, что эти термины синонимичны, но примечание в MISRA относительно мертвого кода указывает на то, что это неправильно? Какая разница? Является ли одно подмножеством другого?
11344 просмотров
schedule 07.09.2022

Каков синтаксис в c для объединения операторов в качестве параметра
У меня есть подозрение, что есть старый неприятный способ запустить функцию при вычислении параметра, но, поскольку я не знаю, как он называется, я не могу найти правила. Пример char dstr[20]; printf("a dynamic string %s\n",...
112 просмотров
schedule 21.09.2023

Чтение значения из необработанной памяти (совместимо с MISRA)
Я пытаюсь прочитать значение переменной, ранее записанной на флэш-память NVM. Мой код: uintptr_t address = getAddress(); //[MISRA C++ Rule 5-2-8] cast from unsigned int to pointer uint16_t value = *(reinterpret_cast<uint16_t*>(address));...
1170 просмотров
schedule 15.05.2024

функции не должны быть объявлены в области блока
Я не мог понять следующее правило мисры: «функции не должны объявляться в области блока». объяснение, данное в документе, таково: «Функция, объявленная в области блока, будет ссылаться на член объемлющего пространства имен, поэтому объявление должно...
827 просмотров
schedule 15.06.2023

Преобразование целого числа в массив символов в C
Я разрабатываю встроенное приложение ARM. Я застрял в глупой проблеме - у меня есть массив беззнаковых 8-битных целых чисел: uint8_t days[42] = { 0 }; Он инициализируется некоторыми данными — алгоритм инициализации вводит множество...
7155 просмотров
schedule 18.01.2023

MISRA C 2004 10.1, подпись printf% x
Я получаю ошибки от нашего инструмента статического анализа по поводу следующего фрагмента: uint8_t value = 24U; char buffer[512]; int chars_printed = snprintf(buffer, sizeof(buffer), "The value in hex is...
792 просмотров

Где специфичные для Cortex функции, такие как __wfi(), определены в Keil?
Я работаю над промышленным кодом для контроллера Cortex-M0, используя uVision Keil 4.71.0.0 IDE. Наш код должен соблюдать правила MISRA и регулярно проверяется QA-C. Моя проблема в том, что некоторые специфичные для контроллера функции, такие как...
1341 просмотров
schedule 06.01.2023

Почему я должен приводить элемент перечисления при назначении его тому же типу переменной перечисления в C?
У меня есть следующее: typedef enum { FLS_PROG_SUCCESS, FLS_PROG_FAIL, FLS_ERASE_SUCCESS2U, FLS_ERASE_FAIL, FLS_READ_SUCCESS, FLS_READ_FAIL, FLS_FORMAT_SUCCESS, FLS_FORMAT_FAIL }FLS_JobResult_t; void Foo(void) {...
1239 просмотров
schedule 21.06.2023

Соответствие MISRA C для арифметического сложения
Учитывая переменные a , b и c : uint32_t a; uint16_t b, c; Согласно стандарту MISRA-C 2012, выражение a+b+c соответствует, тогда как b+c+a не соответствует. Почему?
1219 просмотров
schedule 03.07.2023

Каким был бы альтернативный способ правильно отказаться от содержимого изменчивой переменной в C?
При программировании микроконтроллеров иногда необходимо прочитать регистры, чтобы сбросить некоторые флаги. Эти регистры отображаются в памяти и объявлены в коде как указатели на volatile. В качестве примера возьмем следующий фрагмент:...
321 просмотров
schedule 14.06.2022

Должен ли прототип функции всегда находиться в заголовочном файле?
Допустим, у нас есть несколько исходных файлов C, таких как file1.c , file2.c и main.c . У нас есть функции как: file1.c |---> file1Func1() |---> file1Func2() file2.c |---> file2Func1() |---> file2Func2()...
3752 просмотров
schedule 30.03.2022

const спецификатор для определяемого пользователем типа данных в C
У меня есть пользовательский тип данных typedef Unsigned int8 COMMAND_TYPE[6]; теперь у меня есть функция вроде ConnectCommand(COMMAND_TYPE const command) { } При попытке запустить проверку статического анализатора я получаю...
140 просмотров
schedule 29.05.2023