Публикации по теме '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 просмотров
schedule
13.04.2023
Где специфичные для 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