Bitfields

Конструкция C

typedef struct {
   unsigned int p1 : 1;
   unsigned int p2 : 1;
   unsigned int p3 : 1;
} my_struct_type

Процедура

1. Откройте пример модели ex_struct_bitfield_CSC. Модель содержит три блока Constant и три блока Outport.

2. Откройте Model Data Editor. На вкладке Моделирование (Modeling) щелкните Редактор данных модели (Model Data Editor).

3. В Model Data Editor на вкладке Parameters, в столбце Value, наблюдайте, что значение первого блока Constant p1. Рядом со значением параметров нажмите кнопку действия (кнопка с тремя вертикальными точками) и выберите Create.

4. В диалоговом окне «Создание новых данных» установите значение Simulink.Parameter(false). Нажмите кнопку Создать. A Simulink.Parameter объект, p1, появляется в базовом рабочем пространстве. Объект хранит логическое значение, false, и использует тип данных boolean.

5. В Simulink.Parameter Свойство диалоговом окне нажмите кнопку ОК.

6. Используйте Model Data Editor, чтобы сконфигурировать другие блоки Constant для обращения к новым объектам параметров с именем p2 и p3.

7. Откройте приложение Embedded Coder.

8. На вкладке C Code выберите Code Interface > Individual Element Code Mappings.

9. В редакторе Отображения на вкладке Parameters нажмите кнопку Update Code Mappings.

10. Используйте столбец Класс памяти для применения класса памяти BitField ко всем объектам параметров.

10. В Property Inspector просмотрите столбец «Имя Struct», чтобы настроить каждый объект на использование одного и того же типа структуры, my_struct.

11. Сгенерируйте код из модели.

Результаты

Сгенерированный заголовочный файл ex_struct_bitfield_CSC.h определяет тип структуры my_struct_type.

/* Type definition for custom storage class: BitField */
typedef struct myStruct_tag {
  uint_T p1 : 1;                       /* Referenced by: '<Root>/Constant1' */
  uint_T p2 : 1;                       /* Referenced by: '<Root>/Constant2' */
  uint_T p3 : 1;                       /* Referenced by: '<Root>/Constant3' */
} myStruct_type;

Сгенерированный исходный файл ex_struct_bitfield_CSC.c определяет и инициализирует структурную переменную my_struct.

/* Definition for custom storage class: BitField */
myStruct_type myStruct = {
  /* p1 */
  0,

  /* p2 */
  0,

  /* p3 */
  0
};

Похожие темы