Fox_Sanchez 1 18 июля, 2020 Опубликовано 18 июля, 2020 · Жалоба Добрый день! Пилю первый "большой" проект на STM32. Большой он в смысле что логику софта будет делать отдельный программист, а периферия контроллера и драйвера всего железа на мне. Раньше все делал сам и таких вопросов не возникало. Собственно вопрос - как бы сделать это дело двумя отдельными проектами, собираемыми вместе при компиляции? Проект пилится на FreeRTOS и программисту нужны именно файлы с задачами, он их будет отлаживать на компьютере (там много сложной логики, интерфейса, протоколов и прочего независимого от железа фарша). И если Keil мог линковать файлы из любой папки, но этот долбаный Эклипс не желает знать ничего выше корня проекта. Вариант с перетаскиванием и копированием файлов вручную точно не годится, в нем я сам потеряюсь, а вдвоем мы вообще потонем моментально. Хочется как у взрослых программистов - с контролем версий, портируемостью и прочими цацками. :) Короче чтоб было два отдельных проекта в воркплейсе и общие файлы могли собираться в каждом из них. В общем подскажите кто как делит сферы влияния? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AleksBak 0 19 июля, 2020 Опубликовано 19 июля, 2020 · Жалоба У меня вот так (если интересно): в воркспейсе несколько проектов такого типа: 5 генерирующих на выходе библиотечные файлы (lib*.a), а один бинарный для контроллера. Последний проект имеет в своих "Свойствах" ссылки ("References") на все другие; Вы можете сделать 2 различных проекта: один свой "низкоуровневый" с ОС внутри и с генерацией исполняемого файла (бинарника для контроллера) где Вы будете его отлаживать и т.п.; а второй проект, тоже генерирующий исполняемый файл, для программиста, должен ссылаться на первый (в "Свойствах") и не содержать в себе файлы ОС, а инклюдить ее с первого. Также объявлять заранее все функции-задачи из первого проекта какие нужны. Насчет "с контролем версий, портируемостью и прочими цацками" (если вообще тут нужно) это уже нужно соотв. плагин выбрать из "MarketPlace" и загрузить наверно. Вообще, с таким подходом к среде ("долбаный Эклипс" и т.п.) - ничего путного не получится. Нужно успокоиться/использовать др. вариант/или же написать свою среду для работы тут. И еще (опять насчет того как у меня) - я еще, тут (в STM32CubeIDE), наладил/сделал себе возможность прямо в среде писать программы и для ПК (например утилитка загрузки/замены "основной" прошивки через заранее загруженный загрузчик в МК у меня также тут в этой среде написана/отлаживается и пр.). Это я к тому, что может Ваш программист "будет отлаживать на компьютере" как Вы писали и может пригодится эта информация. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 35 19 июля, 2020 Опубликовано 19 июля, 2020 · Жалоба Пофиг какая IDE. Сейчас все поддерживают git. Делаете два репозитария. В каждом права на запись только для одного работника умственного труда, а второму (и остальным) на чтение. Затем каждый работник с своем репозитарии делает .gitmodules на остальные репозитарии. И начинаете пальцами собирать из букв слова, а из слов - программу. Каждый в своем репо. github для примера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Raven 8 20 июля, 2020 Опубликовано 20 июля, 2020 · Жалоба Да, в вашем случае, естественный выбор - это субмодули Git (как x893 и порекомендовал выше). Ваш репозиторий с драйверами и прочим низкоуровневым добром должен стать субмодулем (суб-репо) в составе дерева папок в другом репозитории - для исходников уровня приложения и FreeRTOS. Каждый может до поры, до времени работать независимо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 2 25 июля, 2020 Опубликовано 25 июля, 2020 · Жалоба On 7/19/2020 at 12:38 AM, Fox_Sanchez said: И если Keil мог линковать файлы из любой папки, но этот долбаный Эклипс не желает знать ничего выше корня проекта. Не правда. Вы просто что-то делаете не так. Надо разобраться. В Eclipse можно подключать как исходники так и библиотеки из любой папки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fox_Sanchez 1 25 июля, 2020 Опубликовано 25 июля, 2020 · Жалоба Из любой папки получалось только по абсолютному пути. Относительные не понимает. В общем пока решили все скинуть в один репозиторий, а дальше посмотрим. Будет надобность - будем делить на модули. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 35 25 июля, 2020 Опубликовано 25 июля, 2020 · Жалоба 3 hours ago, Fox_Sanchez said: Из любой папки получалось только по абсолютному пути. Относительные не понимает. В общем пока решили все скинуть в один репозиторий, а дальше посмотрим. Будет надобность - будем делить на модули. Нужно заставить себя 30 минут прочитать руководство по git. Всё делается с полпинка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться