Например TDA7294

Форум РадиоКот • Просмотр темы - Правильное подключение #include
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пт дек 26, 2025 22:15:35

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 30 ]    , 2
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Правильное подключение #include
СообщениеДобавлено: Пт мар 25, 2022 00:43:03 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 212
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1525
Рейтинг сообщения: 0
с чего бы? Этим автоматика занимается, она в отличие от человека в состоянии отследить были ли изменения и надо ли пересобирать весть проект или только отдельные части.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Правильное подключение #include
СообщениеДобавлено: Пт мар 25, 2022 01:44:51 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 66
Рейтинг сообщений: 536
Зарегистрирован: Чт июл 28, 2016 07:58:37
Сообщений: 1925
Откуда: Kyiv, UA
Рейтинг сообщения: 0
только ваш подход чреват тем, что собирая новый проект из "отработанных и гарантированно работающих" старых файлов, вы рискуете в одном из них забыть про какой-то дефайн, и получить чудеса...

Да нет...
Я в глобальный инклудник выношу только то, что общее для конкретного проекта.
Там нет кода, только дефайны и тайпдефы.
И даже если я что то использованное забираю - то смотрю, что забираю.
А бездумное копирование - это пусть пионэры делают. Им можно, они любят трудности."Стоя и в гамаке".
а я старый ленивый инженер.

_________________
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Правильное подключение #include
СообщениеДобавлено: Пт мар 25, 2022 10:39:36 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 212
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1525
Рейтинг сообщения: 0
Да многие наверное так делают. У меня например тоже есть hardware.h, в котором вынесены пины и настройки используемой периферии. Но у меня он явно подключается в каждую периферию.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Правильное подключение #include
СообщениеДобавлено: Пт мар 25, 2022 13:17:53 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 66
Рейтинг сообщений: 536
Зарегистрирован: Чт июл 28, 2016 07:58:37
Сообщений: 1925
Откуда: Kyiv, UA
Рейтинг сообщения: 0
COKPOWEHEU, ну вот кстати, тоже правильно.
Я изначально ВСЮ коммуникацию с периферией описываю в HAL.h/HAL.c с целью максимально абстрагироваться от железа
Наружу торчат безликие getButton, setLed, низкоуровневые процедуры отправки данных в дисплей и т.д.
Это позволяет мне менять в проекте МК на другой (при условии, что периферия подходящая есть). Пригождалось пару раз. Миграция была с АВР на СТМ.
Просто переписал HAL - и всё заработало.

_________________
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Правильное подключение #include
СообщениеДобавлено: Пт мар 25, 2022 14:52:29 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
ARV, я не любитель руками править всякие ключи компилятора, редактировать make и прочее...


Да хоспади, что там в Makefile редактировать-то?

Я их вообще руками пишу с нуля.

Простой Makefile, для простого проекта, поддерживающий инкрементную сборку и переваривающий как .c так и .cpp файлы.
При желании и после небольших правок можно использовать и для avr-gcc.
Требует три папки:
src - для исходников
inc - для заголовочников
obj - для объектных файлов и файлов зависимостей.

Спойлер
Код:
#********************************************************
# Makefile
#
# $@ target name (имя цели)
# $^ all depends of target (список всех зависимостей цели)
# $? only new depends in target (только новые зависимости цели)
# $< first depend name from target (имя первой зависимости цели)
#

#********************************************************
# PROJECT CONFIG

OUTLIB = luamqtt.so
INC_DIR = inc
SRC_DIR = src
OBJ_DIR = obj
LDLIBS = -l mosquitto -l m -l lua
DEFINES = -D_DEBUG
DEBUG_START = lua luamqtt_test.lua

CC = gcc
CCFLAGS = -fPIC -std=c99

CXX = g++
CXXFLAGS = -fPIC

LD = ld
LDFLAGS = -shared

#********************************************************
# WORK VARIABLES

DEPENDS = $(wildcard $(OBJ_DIR)/*.d)
OBJECTS = $(OBJ_DIR)/*.o

CCSRC = $(wildcard $(SRC_DIR)/*.c)
CCOBJ = $(CCSRC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)

CXXSRC = $(wildcard $(SRC_DIR)/*.cpp)
CXXOBJ = $(CXXSRC:$(SRC_DIR)/%.cpp=$(OBJ_DIR)/%.o)

#********************************************************
# MAIN TARGETS

.PHONY: clean

all: $(OUTLIB)

rebuild: clean all

debug: $(OUTLIB)
   $(DEBUG_START)
   
clean:
   @rm -rf $(OBJECTS) $(DEPENDS) $(OUTLIB)
   @echo [ MAKE ] CLEAN FINISH

#********************************************************
# DEPENDS OF MAIN TARGETS

$(OUTLIB): $(CCOBJ) $(CXXOBJ)
   @echo [ LD ] BUILDING $(OUTLIB)
   @$(LD) $(LDFLAGS) -soname $(OUTLIB) -o $(OUTLIB) $(LDLIBS) $(OBJECTS)
   @echo [ MAKE ] FINISH
   
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
   @echo [ CC ] COMPILING $<
   @$(CC) -MMD $(DEFINES) -c $(CCFLAGS) -I $(INC_DIR) -o $@ $<
   
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
   @echo [ CXX ] COMPILING $<
   @$(CXX) -MMD $(DEFINES) -c $(CXXFLAGS) -I $(INC_DIR) -o $@ $<

include $(DEPENDS)


_________________
I am DX168B and this is my favourite forum on internet!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Правильное подключение #include
СообщениеДобавлено: Пт мар 25, 2022 15:17:52 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 66
Рейтинг сообщений: 536
Зарегистрирован: Чт июл 28, 2016 07:58:37
Сообщений: 1925
Откуда: Kyiv, UA
Рейтинг сообщения: 0
DX168B, Я их вообще не создаю.
В IDE создаю проект, пишу код, жму F7 - собралось. Жму F11 - прошивка в МК.

_________________
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Правильное подключение #include
СообщениеДобавлено: Пт мар 25, 2022 15:27:11 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
На каком-нибудь сервере (причем, на железе, подобном Raspberry Pi), через SSH особо со средой не поработаешь.
Конечно, такие среды, как Visual Studio Code содержат различные инструменты для облегчения такой работы.
Однако, даже они требуют знаний из области DevOps (то есть, Makefile и прочий скриптинг для сборки и деплоинга)
Собственно, приведенный выше makefile писался как раз для удаленной сборки и отладки компонента на целевой железке.
Даже в случае МК и ПЛИС были случаи на практике, когда прошиваемая железка была на стенде в соседнем помещении, программатор подключен к одноплатному ПК, на котором код собирался и шился в железо удаленно.

_________________
I am DX168B and this is my favourite forum on internet!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Правильное подключение #include
СообщениеДобавлено: Пт мар 25, 2022 17:32:44 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 66
Рейтинг сообщений: 536
Зарегистрирован: Чт июл 28, 2016 07:58:37
Сообщений: 1925
Откуда: Kyiv, UA
Рейтинг сообщения: 0
DX168B, ну вообще то тема создана в форуме AVR.
И практически все популярные IDE для АВРок "из коробки" позволяют откомпилить проект без ручного makefile
Ну вот серьезно...
Случаи железки в другом помещении - это частный случай. И далеко не типичный.
У меня тоже умный дом со своей сеткой. И кучкой устройств по всей квартире.
Там бутлоадеры, что в АВРках, что в СТМках. И отправка прошивки туда - не вставая со стула. Нужен только хекс.
А компилится это всё в той же IDE.
--
Тут сколько людей, столько и мнений. Кого то винда устраивает, а кому то линукс мать-отец и любовница в одном флаконе.
Кто то любит все конфиги писать руками, а кому то достаточно написать printf(hello world) и нажать F7...
Да, конфиги вручную дают ощущение более полного контроля над проектом. Может быть, да. Какие то твики не всегда можно из свойств проекта накликать мышкой. но это мелочи и частности. особенно для Hello, world.
Как то мы плавно от вопроса про инклюдники уплываем в бухту холиваров.

_________________
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Правильное подключение #include
СообщениеДобавлено: Пт мар 25, 2022 20:46:12 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18447
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
GoldenAndy писал(а):
Как то мы плавно от вопроса про инклюдники уплываем в бухту холиваров.
надо как-то иначе формулировать... например, от шторма инклюдников в бухту холиваров... или от берега темы в тайфун холиваров... а то конец фразы с началом не вяжется :)))

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Правильное подключение #include
СообщениеДобавлено: Пт мар 25, 2022 22:23:43 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 66
Рейтинг сообщений: 536
Зарегистрирован: Чт июл 28, 2016 07:58:37
Сообщений: 1925
Откуда: Kyiv, UA
Рейтинг сообщения: 0
ARV, ну поскольку инклюдники идут один за одним - шторм подходит

_________________
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 30 ]    , 2

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y