Перейти к содержимому

Заголовочные файлы в Embedded C

Embedded Software for Dummies

0:00 / 0:00

Заголовочные файлы в Embedded C

255 просмотров · 3 мес. назад
Embedded Software for Dummies
1,09 тыс. подписчиков
255 просмотров · 3 мес. назад
Как правильно разделять файлы `.h` и `.c` в Embedded C? Небольшие проекты могут начинаться с одного файла `main.c`, но реальное программное обеспечение быстро разрастается до драйверов, коммуникационных модулей, конечных автоматов, алгоритмов управления и компонентов приложений. В этом видео мы объясняем, как работают вместе заголовочные и исходные файлы и как проектировать чистое, модульное встроенное программное обеспечение. Мы рассмотрим: Что представляют собой файлы `.h` и `.c` Что на самом деле делает `#include` Как работает раздельная компиляция Объявление против определения Что должно находиться в заголовочном файле Что должно оставаться внутри исходного файла Публичный API против приватной реализации Как `static` поддерживает инкапсуляцию Глобальные переменные и `extern` Почему определение переменных в заголовочных файлах вызывает ошибки компоновщика Защита от включения и `#pragma once` Зависимости заголовочных файлов и циклические включения Почему модуль должен включать свой собственный заголовочный файл Практические примеры управления двигателем и модулей прошивки Распространенные ошибки в заголовочных файлах Заголовочный файл должен предоставлять доступ только к тому, что необходимо другим модулям. Внутренние переменные, вспомогательные функции, состояния контроллера, сведения об оборудовании и константы, специфичные для реализации, обычно должны оставаться приватными внутри файла `.c`. Такое разделение упрощает понимание, тестирование, модификацию и сопровождение прошивки. Ключевое сообщение: Заголовочный файл не является хранилищем всего содержимого модуля. Это публичный контракт между данным модулем и остальной частью прошивки. #ВстроенныеСистемы #ВстроенныйC #РазработкаПрограммногоПрограммирования #ЗаголовочныеФайлы #ПрограммированиеНаC #Микроконтроллер #BareMetal #АрхитектураПрограммногоПрограммирования #МодульноеПрограммирование #УправлениеДвигателями #ВстроенноеПрограммноеПрограммирование