использование сторонних библиотек
- Войдите на сайт для отправки комментариев
Решил освоить ардуину, купил комплект, поставил IDE почитал мануал и прилагаемые примеры. Всё просто, понятно. Но как только начал разбирать чужие готовые проекты (надо ж учиться у старших), так сразу понимание моё и закончилось
В тексте скетча идет обращение к незнакомой функции. Её нет в списке встроенных функций, нет во всех *.h установленых в системе вместе с IDE. В конце концов я нашел эту функцию вот тут:
http://asf.atmel.com/docs/3.27.3/sam4e/html/group__sam__drivers__dacc__group.html
В связи с чем есть два вопроса:
1) Каким образом эта библиотека подключается к счетчу? Откуда IDE знает, что эта функция содержится в какой-то там библиотеке и откуда IDE знает, где эту библиотеку скачать и прилинковать к проекту?
2) Где посмотреть все такие "самоподключаемые" библиотеки, их описание?
Файлы для ардуино дуе ставятся не в иде, а отдельно, поищите.
Компилёр кормится из платформ.тхт, что-то типа
'# Compile c files
А что конкретно искать? *.h/*.c больше на диске нигде нет. Только в потрохах каталога, куда установлен ide ардуины. Я ставил только IDE. Ещё скачал 1 файл - скетч с примером. Но тем не менее пример успешно компилируется.
platform.txt с похожей строкой есть в ./hardware/arduino/avr/ Это всё, очевидно, какие-то макросы, но какое они имеют отношение к моему вопросу я не понимаю.
Сейчас проверю - будет ли успешна компиляция при отключенной интернете. Есла "да", то несомненно эта библиотека физически находится где-то на моей машине. Но я её не вижу.
В тексте скетча идет обращение к незнакомой функции.
ну, и где текст скетча?
Нашёл что-то.
Оказалось, что в /mydocs/... еще полгига всякого добра запичужено.
Нашёл что-то.
Оказалось, что в /mydocs/... еще полгига всякого добра запичужено.
ты текст скетча опубликуешь или будешь продолжать играться тут хрустальными шарами?
Вот кусок.
Да, объект DACC тоже нигде не объявлен, похоже что это глобальный и объявлен в библиотеке.
Вот кусок.
Да, объект DACC тоже нигде не объявлен, похоже что это глобальный и объявлен в библиотеке.
полный скетч давай - можешь сделать из него безобидный пример, если боишься, что кто-то сворует твою гениальную идею.
*настоятельно рекомендую ещё раз прекратить епать мосг форумчанам.
А что конкретно искать? *.h/*.c больше на диске нигде нет. Только в потрохах каталога, куда установлен ide ардуины. Я ставил только IDE. Ещё скачал 1 файл - скетч с примером. Но тем не менее пример успешно компилируется.
Да пожалуйста. Это не моя генияльная поделка, я вообще ничего еще не сделал.
Искомый кусок в файле funcs.h
https://drive.google.com/open?id=0B9VaQla9LbZrWEdNQ2hIZjRvUUE
Только я не хочу углубляться в разбор этого _скетча_.
Я хочу понять как работать с библиотеками.
Это да, у меня due и я добавлял его именно через boards manafer, как в мануале велено Поддержка due добавлена.
Меня как бе сильно напрягяет наличие в проекте каких-то необъявленных глобалов, явным образом не подключенных, но тем не менее доступных либов и т.п.
Похоже, что тут глубоко нырять надо. Короче говоря - man что?
Я хочу понять как работать с библиотеками.
хочешь понять - опубликуй непонятный тебе код сюда.
Чего то не договариваешь, то ставил только ИДЕ, то добавлял поддержку Дуе. Борда Дуе создаёт отдельный фолдер, на линухе ардуино15.
А код генератора писан мной, где-то в инете выкладывал года 3 назад.
Скачал инсталл ИДЕ с сайта Установил. Всё. Больше я ничего не скачивал и никакой отдельный софт специальным обьразом не устанавливал
В настройках IDE в boards manager включил подержку Due. Я не в курсе как эта самая поддержка реально вклчилась и что при этом произошло в системе. Если ИДЕ для этого что-то скачал и тихонько устагновил, то мне про это ничего не известно.
"А код генератора писан мной"
Бывают же совпадения! Волшебник, укажите на конкретный мануал pls! Что прочитать чтобы в этом разобраться?
хочешь понять - опубликуй непонятный тебе код сюда.
Вот я так и знал. Я не хочу углубляться в анализ конкретного _кода_. Я хочу разобраться в логике работы самой системы. Понять почему в коде - в любом вообще - можно использорвать непойми откуда взявшиеся функции, откуда они взялись и какие там еще есть.
Что там еще есть, какие еще либы, что они реализают? Где на это мануалы? Что к какому железу подходит?
И я вовсе не расчитываю, что мне просто здесь дадут ответ. Это толстую книжку написать в ответ придется. Но где-то эе эти описания есть?
Мануала нету, дата шит один -); SAM3X8A, в и-нете скачать можно фри. Не давно выяснил, дата шит как и софт тоже апгрейдится, версии что постарше могут оказаться поинформативнее. Или версии на похожие процы из SAM3xxx SAM4xxx могут пролить свет на неосвещённые в дата шите места.
Смотрите какой регистр проставить надо, потом есть ли какая -нить обёртка в ардуино15 для этого, и есть ли есть - пользуетесь, если нет - пишите в тот регистр напрямую
Я не хочу углубляться в анализ конкретного _кода_.
не хочешь, тогда иди найух.
Последняя страница детектива оказалась на китайском. (ц)
SAM3X8A - это модель мелкопроца. Due, если верить arduino.cc, сделан на SAM3X8E, datasheets на него есть, например http://www.datasheetspdf.com/PDF/SAM3X8E/845730/1 или тут http://www.microchip.com/wwwproducts/en/ATsam3x8e 2015 Atmel Corporation. / Rev.: Atmel-11057C-ATARM-SAM3X-SAM3A-Datasheet_23-Mar-15. Это достоачно свежее?
Это полезно, хотя и раз в 10 больше, чем я переварю.
Только мы, видимо, про разные вещи говорим. Я пытаюсь разобраться с логикой работы IDE и компайлера.
1. Откуда и на основании каких настройек IDE и/или директив в коде скетча компайлер подсасывает либы, в частности ту либу, в которой реализована функция dacc_reset()?
2. Как посмотреть какие _там_ еще есть либы и что они умеют?
Скачал инсталл ИДЕ с сайта Установил. Всё. Больше я ничего не скачивал и никакой отдельный софт специальным обьразом не устанавливал
В настройках IDE в boards manager включил подержку Due. Я не в курсе как эта самая поддержка реально вклчилась и что при этом произошло в системе. Если ИДЕ для этого что-то скачал и тихонько устагновил, то мне про это ничего не известно.
Вот я так и знал. Я не хочу углубляться в анализ конкретного _кода_. Я хочу разобраться в логике работы самой системы. Понять почему в коде - в любом вообще - можно использорвать непойми откуда взявшиеся функции, откуда они взялись и какие там еще есть.
Чтобы разобраться в том, о чем сказано во второй цитате (в логике работы IDE), Вам никак не обойтись без отчетливого понимания того, что написано в первой (где и что Вы установили - IDE делает только то, что ее просят и отсебятиной не занимается).
PS. Честно говоря, меня тожен шокирует, что саму IDE можно установить, просто распаковав из архива в удобное сесто, а аддоны она мало того, что ставит сама, так еще и туда, куда ей самой взбредет в голову, вместо того, чтобы, на худой конец положить новые рядом со старыми.
Боюсь, что это так. Можете порекомендовать по этому вопросу что-либо конкретное - книжку, онлайн справку и т.п.? На arduino.cc я пока не нашел детальный описаний внутренней логики IDE.
На arduino.cc я пока не нашел детальный описаний внутренней логики IDE.
Я тоже.
Но я уже привык к тому, что документирование открытых проектов, мягко говоря, оставляет желать лучшего. Так что остаются руки, голова и удобный файлменеджер.
Ответ был в #1, перечитайте. Если для особо одарённых, то кликаем 'файл->преференцес->' в самой ардуино ИДЕ, верхний меню-бар. Ставим Галочки на 'show verbose output during' компилэйшин И аплоад. И не будет детских вопросов, ардуина Сама говорит какой файл где берёт и чего в нём не так если что. С номером строки.
Пример