Причина: # 1546-D: (ULP 15.1) Обнаружены последовательные назначения битовых полей.Рекомендую вместо этого использовать битовую маску - PullRequest
1 голос
/ 05 июля 2019

Я работаю с CCS8, использую структуру и инициализирую переменные, как показано в коде ниже.CCS дает мне замечания в строках 15, 16 и 17, которые гласят:

# 1546-D: (ULP 15.1) Обнаружены последовательные назначения битовых полей.Рекомендую вместо этого использовать битовую маску

Я не очень понимаю, какую выгоду вы получите от использования битовых масок в этом случае.Я предполагаю, что это замечание является более общей вещью, которая вступает в действие только в странных крайних случаях (?) Эта теория несколько подкреплена этим вопросом по E2E .

Код прилагается:

#include <msp430.h>

typedef struct
{
    unsigned char var1;
    unsigned int var2;
    unsigned char var3;
    unsigned char var4;
} Test;

void main ( void )
{
    Test BOB;
    BOB.var1 = 1;
    BOB.var2 = 1;
    BOB.var3 = 3;
    BOB.var4 = 1;
}

Мне бы очень хотелось понять это замечание, чтобы я мог соответствующим образом изменить свои привычки кодирования, если это предотвратит проблемы, которые могут возникнуть в будущем.

Заранее спасибо за любые отзывы /ответы.

1 Ответ

1 голос
/ 05 июля 2019

РЕДАКТИРОВАТЬ: Я почти уверен, что это ошибка, и вы должны считать это ложным срабатыванием. Смотрите ссылки внизу.

Я не вижу битовых полей в коде, который вы вставили?

Это имело бы смысл, если бы код выглядел так:


struct s
{
  char a : 4;
  char b : 4;
};

int main()
{
  struct s S;
  S.a = 0;
  S.b = 0;

  return 0;
}

Я заметил сообщения о ложных срабатываниях, касающихся этого же предупреждения, на форуме TI: https://e2e.ti.com/support/tools/ccs/f/81/t/317480?ULP-15-1-Question https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/317382?ULP-15-1-Question

Я знаю, что они старые, но если вы не используете последнюю версию CCS, это может быть ложным срабатыванием?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...