Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Не получается добавить библиотеку в CUBEIDE

Пн июл 04, 2022 22:32:21

Доброго времени суток! Нужна помощь, возникает 2 ошибке (см. фото) при добавлении, созданной мною, библиотеки (.c файл и .h файл). Что это за ошибки подскажите кто знает?

Я в "libraries" добавил .c файл и название ":allinitialization", а в "include paths" добавил .h файл, что я не так делаю? Кстати, .с и .h файлы я скопировал с проекта и изменил их предварительно открыв их через блокнот, могло ли это как-то повлиять?
Вложения
3.png
(98.23 KiB) Скачиваний: 88
2.png
(100.42 KiB) Скачиваний: 64
1.png
(110.91 KiB) Скачиваний: 62
2созданные_файлы.png
(90.38 KiB) Скачиваний: 53
1Ошибки.png
(11.19 KiB) Скачиваний: 61

Re: Не получается добавить библиотеку в CUBEIDE

Вт июл 05, 2022 10:50:24

Не путайте заголовочные файлы со статическими библиотеками.

Re: Не получается добавить библиотеку в CUBEIDE

Вт июл 05, 2022 20:25:18

Мурик писал(а):Не путайте заголовочные файлы со статическими библиотеками.
так что я не так делаю? мне нужно добавить .h файл и .c файл, то есть модули

Re: Не получается добавить библиотеку в CUBEIDE

Вт июл 05, 2022 21:01:12

У вас папка User_library исключена из сборки. Сравните значки рядом с папками Drivers и Core. То есть нужно вашу юзер-папку исключить из исключений (Exclude From Build, убрать там галочку). И вообще, когда создаете папку (верхнего уровня) для исходников, выбирайте New->Source Folder, чтобы она сразу была помечена как содержащая исходники. Все остальные вложенные в нее папки - это уже обычные Folder.
Затем, когда прописываете пути к папкам заголовочников, можно указывать не абсолютный путь, а относительно корня проекта, для этого надо писать так ../User_library/Inc обратите внимание на две точки вначале - это признак относительного пути относительно корня проекта.
Ну и то, что вы кладете текстовые исходники, это не библиотечный файл. Вы просто называете это "библиотекой". А библиотечные файлы (Libraries) подразумеваются скомпилированные файлы с расширением .a , которые содержат объектные файлы.
Это делается несколько иначе. Вначале создается отдельный Си-проект как Static Library с именем будущей библиотеки (например Test), в этом проекте создаются обычные пары сишных файлов, например file.c и file.h (таких файлов может быть несколько) и в них вписывается всё что нужно - функции, переменные и тд. Проект компилируется. Получается файл с названием libTest.a, где Test - название проекта.
И после этого в вашем проекте уже можете на той самой вкладке библиотеки, которую вы показывали, прописать путь до созданного файла статичной библиотеки и в верхнем поле Library ввести имя файла библиотеки, без первых трех букв lib и без расширения .a, то есть Test
Теперь, чтобы воспользоваться этой статической библиотекой в основном проекте, прописываете в нем путь до заголовочного файла file.h статической библиотеки, подключаете его через #include и пользуетесь функционалом библиотечного проекта из основного проекта.
Эти заморочки сделаны для того, чтобы использовать общие части одного проекта в других аналогичных проектах, причем эти библиотечные файлы не находятся в текущем проекте, они принадлежат другому, референсному проекту, который можно корректировать внутри обозначенных функций. Вобщем, это advanced-уровень работы, так сказать. Штука прикольная и интересная, но не на начальном этапе изучения.

Вопрос организации структуры проекта, он специфицццсский, как говорится, дело вкуса, кто как привык, кто чем руководствуется. Можно хоть в одну папку всё посвалить, или можно использовать предлагаемую Кубом структуру (если честно, не совсем понятна она... Core - логически это что?). Я для себя определился (и видел у других) со структурой такого плана, согласно основным уровням абстракции:
+ Application (верхний уровень приложения, общая логика работы)
+ Middleware (промежуточный уровень, утилиты, алгоритмы)
[+ RTOS_Source] (если используется RTOS)
+ System (стартовая конфигурация микроконтроллера)
+ Drivers (аппаратно-зависимый уровень работы с периферией)
Файл main.с находится в папке App, там же находятся файлы самого верхнего уровня логики работы программы. В папке System находятся стартовые файлы системы и файлы прерываний/исключений. В папке Drivers - всё низкоуровневое взаимодействие с интерфейсами ввода/вывода, периферией. В папке Middleware - вспомогательные утилиты, такие как математика, графика, алготитмы.

Re: Не получается добавить библиотеку в CUBEIDE

Ср июл 06, 2022 18:54:58

Помогло. Спасибо большое!

Re: Не получается добавить библиотеку в CUBEIDE

Сб июл 09, 2022 14:20:48

Доброго времени !
Начал разбираться с программой CUBEIDE. Светодиодом помигал )
Скачал готовую программу (https://bitbucket.org/nadyrshin_ryu/gc9 ... downloads/) Запрограммировал в "железо" - всё работает ) Но при попытке открыть *.ioc файл пишет - доступ запрещён.
Создал новый проект на основе *.ioc файла по ссылке. Затем добавил библиотеки, просто скопировав их - выдаёт большое количество ошибок ([url=https://img.radiokot.ru/files/149973/medium/2uhbusj129.png])
Понимаю что не так делаю, но что именно не пойму.

Re: Не получается добавить библиотеку в CUBEIDE

Вс июл 10, 2022 10:24:13

.ioc открывается без проблем.

Re: Не получается добавить библиотеку в CUBEIDE

Вс июл 10, 2022 12:54:17

То русские буквы были в пути к проекту, поменял стал открывать.

А попробуйте изменить его ?
Тот по ссылке я так понял "собран" на старой версии программы. CUBEIDE предлагает его (ioc файл) открыть или в режиме совместимости или я так понял заменить на новый. При внесении изменения в проект в *.ioc файл изменение вносит, но при компиляции проекта выдаёт сообщение - отказано в доступе - Изображение

То есть изменение в тексте самой программе я могу сделать и откомпилировать. А переназначить выводы микроконтроллера под свои нужды (оставить вывод на экран) - не получается. Может какие то настройки есть.
Пересобрать заново проект тоже не выходит, только добавляю библиотеки из проекта - множественные ошибки в папке драйверов на МК - Изображение

Пока только разбираюсь, но сдвинуться с мёртвой точки вторую неделю не могу ..

Добавлено after 1 hour 47 minutes 41 second:
Проект создан в CUBE 6.0.1 - как сказали.
У меня CUBE 1.9.0, похоже в этом проблема

Re: Не получается добавить библиотеку в CUBEIDE

Вс июл 10, 2022 16:49:10

Ну так создайте заново в вашей версии. Че ж там сложного то, это ж обычная BlackPill на F411, как могу догадаться. Ну а чтобы разобраться - прочтите два основополагающих документа - даташит на F411CC и референс-мануал RM0383, доступ на st.com для чтения документов не заблокирован.

Re: Не получается добавить библиотеку в CUBEIDE

Пн июл 11, 2022 02:18:16

Придётся разбираться )
Ответить