Все можно сделать, библиотеки как правило так и делаются (есть даже макросы для разных типов компиляторов SDCC и GCC правда вот еонкретно в моем случае пришлось все перелопачивать так как отличия большие между платформами (изначально код был под 8052, а у меня весь проект под ARM Сortex M0+ Проблема многих хороших (я бы даже сказал уникальных решений) в том, что компании их создающие не достаточно времени уделяется документации. Тот же самый трансивер AX5043 он уникален полностью открытой архитектурой но 600 !!! регистров сведут с ума кого угодно тем более, что описание у него очень поверхностное, а Апи изначально заточено под 8052 Как прямая противоположность трансивер от Техасцев (СС1101) образец лаконичности и отлично документирован, на запуск с нуля после установки Радиолаба уходит от силы 1день

Комментарии: 22

  1. Ogurezzz

    Вот примерчик бы... Я понимаю как это должно быть в теории. В том же Marlin для 3Д принтеров поддержка плат и под AVR 8-битные и под STM32 и под NXP. И все выбирается заменой только 1 строки. Но там столько дефайнов, что я в них тупо путаюсь :) Да еще и проект под АрдуиноИДЕ, вообще смэрть... Вот у меня пока проблема с либами. 1. Не пойму как сделать "универсальную" и 2. Не понимаю пока как эти либы подключать из одного места ко всем проектам. Сейчас я их просто копирую в проект.

    • Aleksey

      В stm32 в cmsis используются дефайны под конкретный камень, там можно посмотреть

      • Ogurezzz

        Но там же качается драйвер под семейство. Мне интересен синтаксис. Это же препроцессор должен взять откуда-то данные о камне. И оттуда же данные берет потом компилятор?

        • Aleksey

          Качается либа, все в ней. Типа XXX Какой то код YYY Другой код А ты по месту использования в проекте определяешь XXX или YYY

        • Anonim

          А как ты компилируешь код? (inb4 нажимаю F5)

          • Ogurezzz

            Да, это понимаю. А вот где понять как выглядит XXX и YYY для конкретного камня? Штатным методом в Cube IDE. Для AVR использую AVRHelper для VSCode. Там скрипт на питоне, который собирает все добро. Как он работает пока не разобрался, а надо бы.

            • Anonim

              Как я и ожидал. Разберись как и что заправляется твоим же кубом в систему сборки, это несложно. Как минимум для архитектуры есть https://sourceforge.net/p/predef/wiki/Architectures/ Но этто больше ос-релейтед, для либ кто во что горазд херачат просто в доках указывают нужные флаги компилятор их сам не выведет

            • Aleksey

              Для STM32 смотришь в исходник и ищешь grep`ом Типа такого STM32F103xB У меня такие дефайны прописаны в Makefile, пример проекта на HAL, на чистом CMSIS USE_HAL_DRIVER не нужен # C defines C_DEFS = \ -DUSE_HAL_DRIVER \ -DSTM32F103xB

              • Ogurezzz

                Т.е. на основании семейства можно принимать решение?

                • Alexander

                  если строить схему питания электромагнитного реле с пониженным током удержания то какие есть схемные решения? можно два ключа поставить, один через резистор есть еще варианты? ШИМ вариант?

                  • Igor

                    обмотка реле включается через конденсатор+резистор

                • Aleksey

                  Для CMSIS под STM32F1 к примеру можно

                  • Igor

                    А кто говорил про электролит? Можно плёночные ставить впараллель. http://ra3tox.qrz.ru/s4/rk-4o1.html

                    • Alexander

                      пленочный на 20мкф? громоздко.

                  • Ogurezzz

                    Оке.. поковыряюсь. И надо понять как всё-таки механика компилятора работает. Вроде читал и смотрел. Что-то даже получалось. Но makefile для меня пока сложно

                    • Igor

        • Saw

          у тебя какая среда программирования? или из командной строки ?

          • Ogurezzz

            https://t.me/easyelectronics_and_mhl/218654

            • Saw

              ну для avr лично мне проще avrstudio. он все сам собирает. а чип определяется в проекте. это сделано упрощенно , один заголовочный файл и он подтягивает нужный для конкретного чипа. В нем банально перечисления чипов через _avr32a_ include avr32a.h и т.д.

              • Ogurezzz

                Вот да. Хочу, чтобы Либа умела при компиляции подтягивать нужные дефайны с регистрами и макросами под выбранный камушек.

                • Saw

                  ну вот как раз и можно взять заголовочные файлы от этой ide.

                  • Ogurezzz

                    Оке. Спасибо.

Не нашли ответ?

Вам также может быть интересно