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

Оценка аргумента тернарного оператора в C
Я работал с некоторым кодом, чтобы обеспечить соответствие MISRA. Проблема с этим фрагментом кода: Operands shall not be of an inappropriate essential type. The operand of the ? operator is of an inappropriate essential type category unsigned....
353 просмотров

Как я могу привести свой код в соответствие с MISRA 2012 RULE 8.4
Я добавил эту строку в свой код c uint64_t *ab_cd; //Line 1 Выдает ошибку, указывающую, что «внешний символ 'ab_cd' определен без предварительного объявления». ПРАВИЛО 8.4 гласит, что «Совместимое объявление должно быть видимым, когда...
117 просмотров
schedule 28.11.2021

преобразование между указателем на функцию и другим типом [MISRA 2012, правило 11.1, обязательно] | pclint 9074
Я использую массив указателей на функции, как показано ниже, чтобы избежать использования оператора switch в коде. void E_func1(void); void E_func2(void); void E_func3(void); void (*pfGetVal[3])() = { E_func1, E_func2, E_func3...
154 просмотров
schedule 06.09.2021

Скрытие информации структуры C (непрозрачный указатель)
В настоящее время я немного запутался в концепции сокрытия информации в C-структурах. Фоном этого вопроса является встроенный проект c с почти нулевым знанием ООП. До сих пор я всегда объявлял свои структуры typedef внутри файла заголовка...
486 просмотров

Совместимое с MISRA обнаружение порядка следования байтов во время выполнения
(Во-первых, обратите внимание, что я знаю, что определение порядков байтов во время выполнения не является идеальным решением, и есть лучшие идеи. Пожалуйста, не поднимайте этот вопрос) Мне нужно проверить порядок байтов моего процессора во время...
215 просмотров
schedule 09.06.2022

Почему в пределах одной точки следования должно быть не более одного доступа на чтение с типом volatile-qualified?
Учитывая следующий код: static volatile float32_t tst_mtr_dutycycle; static volatile uint8_t tst_mtr_direction; static volatile uint32_t tst_mtr_update; void TST_MTR_Task(void) { if (tst_mtr_update == 1U) { tst_mtr_update = 0;...
861 просмотров
schedule 18.06.2022

Как указать символьный литерал, соответствующий MISRA C ++?
Я организую правила Klocwork и устраняю любые проблемы, обнаруженные статическим анализом. Применяется несколько правил, и в настоящее время у меня проблема с указанием символьных литералов. Рассмотрим этот пример: for (const char* p = str; *p...
386 просмотров
schedule 25.06.2022

Обоснование правил комментариев в MISRA
Правило 2.2 в MISRA гласит, что «исходный код должен использовать только комментарии в стиле /* ... */ ». Кто-нибудь знает, в чем причина этого правила? что не так с комментариями в стиле // ?
4287 просмотров
schedule 04.07.2022

Могу ли я отключить эти два правила MISRA: один оператор для каждой функции и обязательные прототипы функций?
Наша компания теперь соответствует стандарту ISO-13485 (медицинские приборы) и хочет использовать MISRAC2012. Я прочитал стандарт, но не могу понять, разрешено ли мне отключать некоторые правила, если я думаю, что это может улучшить как стабильность,...
1120 просмотров
schedule 09.08.2022

Инициализация массивов символов и ошибки MISRA
У меня есть следующая строка (сокращенная до минимальной демонстрации проблемы): char version_text[64U] = {'\0'}; Эта строка генерирует следующую ошибку MISRA: Error[Pm023]: missing elements - braces shall be used to indicate and match...
2368 просмотров
schedule 16.10.2022

Запретить сообщение 9007 lint
Согласно правилу 13.5 MISRA правый операнд логического && или || оператор не должен содержать стойких побочных эффектов. Наш код проверен с помощью PC-Lint, сообщение 9007 ( http://gimpel-online.com/MsgRef.html#9007 ). У нас есть код вида...
540 просмотров
schedule 15.10.2022

Шаблон статической функции и MISRA C++
Следующий шаблон функции со специализациями должен использоваться только в одном файле .cpp , поэтому я хотел бы сделать его static . Следующий код компилируется (без предупреждений) с использованием как MS Visual C++ 2008, так и GCC 4.8.1 и...
1195 просмотров
schedule 07.10.2022

ОШИБКА MISRA: тип поля должен быть int, unsigned int или signed int
Я использовал следующий код в своей программе, и при запуске PC-Lint он выдает следующую ошибку: несколько маркеров в этой строке - (lint: 46) тип поля должен быть int, unsigned int или signed int [MISRA 2004 Правило 6.4, обязательно] - (lint:960)...
2371 просмотров
schedule 17.01.2023

Говорит ли MISRA C 2012 не использовать bool
Я нахожусь на ранних стадиях создания материала для нового проекта. Я определил функцию с возвращаемым типом "bool" Я получил этот вывод от PC-Lint Including file sockets.h (hdr) bool sock_close(uint8_t socket_id); ^ "LINT: sockets.h...
4687 просмотров
schedule 10.02.2023

MISRA C++-2008 Правило 5-0-15. Индексация массива должна быть единственной формой арифметики указателей.
Мне нужен кто-то, у кого больше опыта работы с MISRA, чтобы помочь мне решить эту проблему. У меня есть следующий код: byte* buf = new(std::nothrow) byte[bufferSize]; ..... for (uint32_t i = 0; i < bufferSize; i+=4) { .................
3018 просмотров
schedule 18.04.2023

Нарушение Misra с побитовым оператором
Я написал следующий фрагмент кода, который не нравится MISRA: UartPtr->C &= ((uint8_t)(~SIO_C2_SBK)); с #define SIO_C2_SBK ((uint8_t)0x01u) и UartPtr определяется как UartPtr = (UartStruct*) 0x12345678; /* I know that...
1136 просмотров
schedule 03.05.2023

Разница в стиле комментариев между C и C++
Есть ли разница между стилем комментирования между C( /*..*/ ) и C++( // )? MISRA C говорит Правило 2.2 (обязательно): Исходный код должен использовать только комментарии в стиле /* … */ . MISRA C++ говорит Правило 2.7.1...
3728 просмотров
schedule 20.11.2022

Как решить это предупреждение lint Неявное двоичное преобразование из int в unsigned int
вот код: test.cpp unsigned short x; bool y; if ((x==1)&& y) { ... } else { ... } Я получил сообщение lint: Note 912 Implicit binary conversion from int to unsigned int [MISRA Rule 48] Почему? и как этого избежать?
779 просмотров
schedule 08.07.2023

Запрос относительно правила 11.6 Misra (MISRA C:2012)
Я не могу решить предупреждение о правиле 11.6 мисры в этой строке: uint32_t * delay = (uint32_t *)0x40086D0C ; [ К сведению: typedef long unsigned int uint32_t;] PC-Lint: Примечание 923: преобразование из int в указатель [правило...
1606 просмотров
schedule 04.01.2023

Зачем нужны прототипы функций в MISRA:2012?
Мне интересно, почему MISRA: 2012 требует прототипы функций. В приведенном ниже примере два прототипа на самом деле не нужны. #include <stdio.h> #include <stdlib.h> // >>> Truly useless in my opinion void display(void); int...
1577 просмотров
schedule 02.07.2023