Еще один makefile

MakefileДоброго времени суток!
Сколько уже про makefile говорено и писано — и все равно хочется отчебучить что-нибудь свое! Видят мои глаза отсутствие идеала, а пальцы стремятся это дело исправить.
Так что внесу и я свои 5 центов в это дело — опишу я идеальный makefile!
P. S. Все найденные ошибки, реализованные пожелания и изменения я буду здесь выкладывать. Так что здесь будет всегда актуальное состояние. Ну… так я планирую…


Читать дальше
  • +3
  • 25 марта 2014, 14:57
  • PICC
  • 1

Измеритель тока насыщения катушек индуктивности

Доброго времени суток, уважаемое Сообщество!
Часто в практике построения разного рода преобразователей используются дроссели. И практически всегда к ним, кроме прочего, предъявляется одно важное требование: они не должны входить в насыщение. Хорошо, если дроссель покупной и заранее известны его параметры (но и им не всегда можно верить). А если он самодельный? А если это дроссель/трансформатор для флайбека/полумоста или ещё чего? В таком случае может помочь несложная приставка к осциллографу, позволяющая измерить ток насыщения той или иной катушки индуктивности с магнитопроводом. Сразу оговорюсь, конструкция не новая, разработка не моя, и на авторство не претендую, но некоторые доработки в исходные схемы всё же внёс. У кого появился интерес – добро пожаловать под кат.


Читать дальше

Заметки на память (wildcard in makefile,mac-address)

По просторам инета гуляют вот такие строчки в makefile:

# Компиляция
%.o: %.c
        $(CC) $(CFLAGS) -MD -c $< -o $@
# Сгенерированные gcc зависимости
#-------------------------------------------------------------------------------
include $(wildcard *.d)

Якобы ключ -MD заставляет make генерировать файлы *.d, в которых расписаны зависимости, ну что-то типа:

main.o: main.c  main.h

а include, естественно вставляет эти строки в makefile, заставляя утилиту make перекомпилировать main.c даже если изменен main.h
wildcard нужен чтобы не возникало ошибки, в случае отсутствия *.d файлов (например, первая компиляция вызовет ошибку
make: *** Нет правила для сборки цели `*.d'. Останов.
)
Все это правильно, но с одним маленьким уточнением: так будет, только если все файлы (и *.c, и *.h, и *.d, и makefile) лежат в одной директории. Если все разложено по src,inc etc… то ваши надежды, что make отследит зависимости, не сбудутся. Тогда нужно писать как-то так:

include $(wildcard inc/*.d)
include $(wildcard src/*.d)

Мелочь, конечно, но если не отследить, можно долго бодаться, не понимая, почему вы меняете код, а ничего не происходит.
/////////////////////////////////////////////////////
Еще замечание на совершенно другую тему. Вникая в lwip, узнал что mac-address производитель задает не как-попало. В принципе, об это написано даже в википедии здесь
Конкретизирую, чтобы не забыть и не запутаться в старших-младших битах:
недопустимы адреса типа 01:xx:xx:xx:xx:xx 03:xx:xx:xx:xx:xx 07:xx:xx:xx:xx:xx и т.д. — то есть те в которых крайний (старший) бит равен 1, — это бродкаст адрес. Второй скраю бит тоже не просто так — если 1, это адрес установленый сисадмином, а не производителем (например 02:xx:xx:xx:xx:xx — установлен «вручную»)
Кстати, прочесть mac-address универсальный идентификатор stm32:

unsigned long *Unique = (unsigned long *)0x1FFFF7E8;
printf("%08X %08X %08X\n", Unique[0], Unique[1], Unique[2]);

Адрес смотрим свой, в reference manual, в разделе Unique device ID register (96 bits).

Примеры инициализации периферии STM32F103 без использования библиотек

Простые куски кода для памяти, чтобы каждый раз не лазить по куче даташитов и интернетов. Может кому пригодится…


Читать дальше

ПИД-регуляторы – для чайников-практиков

Чайники за работойОбещал я недавно моему знакомому — хорошему электрику и чайнику в электронике — сделать небольшое устройство в автомобиль, которое, регулируя заслонку, будет поддерживать обороты в дОлжном состоянии (все подробности по авто-части к нему. Знаю, что назвали мы эту чучу умным словом «регулятор холостого хода»). Причем эти обороты должны зависеть от текущей температуры двигателя. «Так тебе нужно работать с ПИД-регулятором» — сказал я ему. А в ответ увидел туман в глазах, дым в ушах и дрожащий голос – «А это ничего общего со СПИДом не имеет???». В общем, придется ему объяснить подробности, при этом избегая математики. В Интернете море статей на эту тему (достаточно начать отсюда). Моя статья – еще одна ложка в море информации. Интересующимся – под кат!


Читать дальше
  • +12
  • 04 октября 2012, 14:27
  • PICC
  • 1

Честно простой цифровой фильтр

Вы работаете с АЦП. Получаете результаты преобразования, один за одним. И замечаете, что эти результаты «скачут». А хотелось бы, чтобы стояли, как… Ну, короче, чтобы стояли!
Есть много причин, почему отсчеты АЦП могут быть нестабильны. В своей заметке я не говорю об этих причинах. Я говорю о том, как успокоить показания, получая их AS IS. И как сделать это максимально просто. При этом, возможно, не имея ни малейшего понятия о науке под названием «цифровая  обработка сигналов».

Читать дальше

ARMFlasher - программа для прошивки платы Disсovery в Kubuntu

Всем привет!!!
Вот решил осваивать ARM Cortex M-3, прикупил себе платку Discovery v1. Первый опыт с Keil-ом был очень горьким, потом услышал о CoIDE — прекрасная среда разработки. Установил драйвера на отладочную плату и погнал… Да и прошивать прямо с кокоса можно — приятно. Как-то решил для себя (уже давно) пересесть полностью на Kubuntu, но вот трудновато как-то было настроить Eclipse, та не беда — разобрался. Прошивать приходилось через arm-none-eabi-gdb, предварительно запустив st-util. Сначала радовался что все завелось, но потом стало жалко времени и хотелось прошивать из графики, так чтоб мышью тыкнул и оно все сделало. Кстати, давно чесались ручонки к QtCreator, и решил учиться в сей среде с пользой для себя (а может оно кому-то надо будет). И начал програмить, параллельно разбираясь с некоторыми особенностями Qt и своим незнанием с помощью хелпа и Google ))).

Читать дальше

Еще один шаблон проекта под STM32 на gcc

Вдруг пригодиться кому… Ну и критику гуру хотелось бы услышать.


Читать дальше

ST-LINK + Eclipse на Ubuntu

J-LINK — замечательный отладчик, но что делать владельцам ST-LINK'а или STM32Discovery?
В одном из комментов к этой статье уважаемый evsi оставил ссылочку на проект, в состав которого входит GDB сервер, с названием st-util, и заточенный под ST-LINK. Подумаем как его интегрировать в Eclipse. Тем, кто устанавливает тулчейн с нуля, первые три пункта плана можно взять из той же статьи, а OpenOCD заменить на st-util…


Читать дальше

Ubuntu + Eclipse + Code Sourcery + OpenOCD + j-link + ARM, или "Быстрый старт для сомневающихся"

Цель этой статьи — показать, что установка, наладка и «запуск в эксплуатацию» тулчейна для работы с ARM'ами довольно проста и занимает вместе с перекурами около получаса. Ключевое слово в названии — Ubuntu, или, вообще говоря, Linux. Большинство материала в сети рассчитано на аудиторию пользователей MS Windows, и перейти на Linux мешает, или пугает, отсутствие руководства, в котором был бы более-менее популярно описан процесс. Да, это немного сложнее, чем установка Keil+SEGGER, но зато потом, надеюсь, вы оцените преимущества работы в Linux.



Читать дальше
  • +4
  • 20 февраля 2012, 13:48
  • reset