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

CooCox - первый проект

Сб дек 09, 2017 18:13:17

До сегодня с STM32 дел не имет. Меги и Тини хватало.
Но попали в руки готовые платы с STM32F051C8T6 + экран HD44780. И два rs232 порта, и 7 каналов выходов.
Срисовал схему, и хочу попробовать на этой плате сделать хоть что-то.

В качестве среды программирования выбрал CooCox 2.0.7
Дальше, создаю проект, выбираю кристал.
Дабавляю в проект экран HD44780.
И жму кнопку построить прошивку :) Не, понятно что работать ничего не будет.
НО, копилировать не хочет.

Выдает ошибку
\coocox-master\Cox_Interface\source/xacmp.h:43:18: fatal error: acmp.h: No such file or directory

И так во свех файлах. Строка которая вызывает ошибку:
#include "acmp.h"
В других файлах такая же строка #include " но сдругим именем файла.

Теперь почему так, понять не могу. Файлы лежат в \components\coocox-master\Cox_Interface\source
Почему в каждом файле есть строка #include " ", с именем файла который сам себя подключает?


Если эту строку закоментировать - следующая ошибка выскакивает в другим файле:
\components\coocox-master\Cox_Interface\source/xadc.h:43:17: fatal error: adc.h: No such file or directory
В такй же строке, которая подключает этот же файл.

Пробовал все эти файлы копировать в разные каталоги проекта. Та же картина.

Поиск по интернету ничего не дал по этой проблеме. Понимаю что делаю ошибку там где хоть понимающим людям в голову не прийдет ее сделать, но где?

Re: CooCox - первый проект

Сб дек 09, 2017 19:41:13

а где лежат эти acmp.h и adc.h?

Re: CooCox - первый проект

Вс дек 10, 2017 13:14:58

\components\coocox-master\Cox_Interface\source\

Добавлено after 1 minute 49 seconds:
а где лежат эти acmp.h и adc.h?


На самом деле, дело те только в этих двух файлах. Ошибка быламинимум в четырех, закоментирую строку в первом - она возникает во втором, и т.д.

Добавлено after 4 hours 40 minutes 59 seconds:
Снес версию 2.
Поставил версию 1.7.8
В ней подобной проблемы не возникает. Да и в интернете примеры идут с привязкой к этой версии.

Сейчас проект не собирается, но причина

void lcd_send(u8 byte, dat_or_comm dc);
в этой строке ошибка:
LCD\hd44780.h:207:15: error: unknown type name 'u8'

И дальше найти как конфигурируется сам контроллер, как конфигурируются линии ввода/вывода, частота и т.д.

Re: CooCox - первый проект

Вс дек 10, 2017 15:52:56

Хоть "умники " и сносят мои посты повторюсь- вам надо срочно изучать С , а то что вы "освоили" - С для авр , забыть напрочь.
Ошибки не просто глупые, это абсолютное непонимание основ компиляции и структуры проекта, а без этого вам путь далее заказан...

Re: CooCox - первый проект

Вс дек 10, 2017 16:57:58

В том-то и дело, что найти что-то понятное с нуля не могу. Более мение понятное идет для плат Дискавери. Типа выберите готовую конфигурацию. Но мне надо не под дискавери, а под мою плату.

Теперь, если библиотеки для АВР были в комплекте с средой программирования, и они работали. То тут, библиотеки (под то же дисплей) написаны другими людьми, и никакого стандарта нет. Пути include стоят у каждого свои, контроллеры свои прописаны. Сижу, по немногу правлю под свой проект. Как бы думал что тут попроще и продуманее все.

КАк устроен проект на АВР - знаю, а вот тут пока не пойму. Не то что до конца не понятно, а вообще не понятно.
И С изучать... А что тут изучать? Причем С к расположению файлов.

Re: CooCox - первый проект

Вс дек 10, 2017 18:37:47

В том-то и дело, что найти что-то понятное с нуля не могу.

https://gcc.gnu.org/onlinedocs/gcc-3.0.2/cpp_2.html например. Практически все отсюда применимо к другим компиляторам.
КАк устроен проект на АВР - знаю

не бывает в природе "проекта на АВР". Есть набор файлов, из которых компилятор с линкером собирают бинарник.

Re: CooCox - первый проект

Вс дек 10, 2017 18:41:41

Валентин, изучайте С как таковой , нет какого-то особенного С .
На тытрубу есть хороший курс Линского о основе компиляции.

Re: CooCox - первый проект

Ср дек 20, 2017 16:59:06

Дабы не плодить тему спрошу здесь...
Пытаюсь запустить FatFs от Chan-а на STM32F100RB (Дискавери). Проект компилируется и собирается. После прошивки контроллер выводит по UART сообщения, воспринимает некоторые команды и даёт ответы. Но проблема не в том. При попытке изменения в файле ffconf.h после компиляции проект не собирается и линковщик выдаёт ошибку collect2.exe: error: ld returned 1 exit status , ругается, что в main идёт обращение к неопределённым функциям, хотя эти функции написаны в ff.c и прототипы их объявлены в ff.h, который подключён в main. Интересно, что если ничего не менять в ffconf.h то компиляция и сборка проводится нормально. IDE Coocox (работаю с ним недавно). LD файл подключал Chan-овский.

Добавлено after 2 hours 35 minutes 32 seconds:
Блин))) Разобрался. Дело в том, что при включении или выключении некоторых функций в дефайнах, связанные с ними функции исключаются препроцессором из компиляции.
Однако же прочитать карту пока не получается(((

Добавлено after 4 hours 32 minutes 53 seconds:
Мля-я-я-ть!!! Перепутал MOSI и MISO местами - вот олень! Всё нормально заработало)))

Добавлено after 48 minutes 21 second:
Валентин, изучайте С как таковой , нет какого-то особенного С .
На тытрубу есть хороший курс Линского о основе компиляции.

Уважаемый dosikus! Видео - это хорошо. Но может подскажете, что есть почитать о процессе компиляции, желательно на русском. Общее понимание есть, но хотелось бы разобраться поосновательней. Спасибо.
Ответить