|
|
  |
Code::Blocks -> How To, Как бы начать... |
|
|
|
May 30 2013, 12:11
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(_Pasha @ May 30 2013, 13:44)  Там мейк ручками не пишется Возможно есть вариант makefile project? Цитата(_Pasha @ May 30 2013, 13:44)  вызовы и параметры генерятся "галочками" из-под С::В Можно и вручную. Не нужны галочки. Цитата(koluna @ May 29 2013, 16:32)  Нравится CB, переходить на другую ИСР пока не желаемо. А ведь Эклипс лучше. Цитата(koluna @ May 29 2013, 16:32)  1. Ставим компилятор. Можно поставить Yagarto - к нему идёт и make. YAGARTO GNU ARM toolchain и YAGARTO Tools - make и тп.Цитата(koluna @ May 29 2013, 16:32)  3. Создаем проект в CB, настраиваем его для сборки или подключаем внешний мейк-файл (где взять?). Например тут: make для LPC17xx и make для STM32F2xxЦитата(koluna @ May 29 2013, 16:32)  4. Добавляем в проект скрипты линкера и стартапы из CMSIS (придется их корректировать?). Корректировать придётся...
|
|
|
|
|
May 30 2013, 14:15
|
Профессионал
    
Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061

|
Цитата(_Pasha @ May 30 2013, 14:44)  Прямо перед Вашим первым постом в этой ветке - я выкладывал вариант каким образом работать с кортексами. Ежли Вы до сих пор не удосужились глянуть, то что может быть понятно? Там мейк ручками не пишется, - вызовы и параметры генерятся "галочками" из-под С::В, (чего иногда хочется, чего уж там). Видел, просто не успел посмотреть подробнее. Спасибо. Помимо включенных в проект сценария линкера, стартапа и дефайнов для проца какие настройки (галочками) производились? Можете расписать поподробнее, чтобы было на что опереться? В стандартном визарде, насколько я помню, нет ничего подобного STM32F4.
--------------------
Благодарю заранее!
|
|
|
|
|
Jun 5 2013, 08:52
|
Профессионал
    
Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061

|
Цитата(_Артём_ @ May 30 2013, 16:11)  А ведь Эклипс лучше. Возможно, но решил оставить на потом  Цитата Можно поставить Yagarto - к нему идёт и make. Пока выбрал Codesourcery крайний релиз. Цитата Спасибо! Цитата Корректировать придётся... Да я уж понял... Хочу пока руками все сделать, чтобы разобраться получше. Поставил компилятор. Сделал простейшее тестовое приложение. Пытался вчера вечером собрать, ковыряя стартап, скрипт и подбирая ключи компилятора и линкера. Собирал под Линухом простым шеловским скриптом (позже выложу для анализа, может, порекомендуете что). Полноценный мейк - следующий этап. Вручную ничего не собирал еще, решил научиться (что почитать бы?). Стартап и скрипт взял из CMSIS (\Device\ARM\ARMCM3\Source\GCC): gcc_arm.ld, startup_ARMCM3.S. Пока Си, позже хочу Си++. При сборке линкер ругался сначала на отсутствие libnosys.a (ее действительно нет в дистрибе компилятора) - убрал ее из списка в сценарии Цитата /* Library configurations */ GROUP(libgcc.a libc.a libm.a libnosys.a) Так и не нашел, что это за либа, для чего нужна и почему ее нет... Ошибка пропала. Потом линкер ругался на отсутствие "_start". Странно, откуда эта метка в стартапе и почему так называется. Поставил вместо нее "main" - все собралось. Ошибок нет. Но осадок сомнения остался - уже две ошибки в этих двух файлах... кто знает, что там еще? Надеялся, что все заработает "из коробки". Пока не зашивал, не уверен в работоспособности.
--------------------
Благодарю заранее!
|
|
|
|
|
Sep 9 2013, 14:45
|
Профессионал
    
Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061

|
Всем привет! Объясните, пожалуйста, как правильно подключать makefile к C::B 10.05. Подключил. Собирается. Но есть одна странность... Если в настройках компилятора не прописать путь к тулчейну и имя утилиты компилятора, то C::B отказывается собирать проект. Говорит, что не может найти одну из утилит (size). Хотя, если закомментировать вызов size, то и другие утилиты не находит... Из командной строки все нормально собирается. Путь к тулчейну добавлен в PATH. Зачем C::B вообще нужны все эти настройки, если используется makefile?!! Если в настройках компилятора прописать путь до тулчейна, то говорит следующее: Цитата "test - all" uses an invalid compiler. Probably the toolchain path within the compiler options is not setup correctly?! Skipping...
Сообщение отредактировал koluna - Sep 9 2013, 17:57
--------------------
Благодарю заранее!
|
|
|
|
|
Sep 11 2013, 05:22
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата Может, копать здесь надо для решения моей проблемы... Нет, не здесь. Settings->Compiler & debugger Selected compiler - выбрать нужный Вкладка Toolchain executables: Compiler's installation directory - вбить путь к бинарникам тулчейна Program files - проверить правильность Есть ещё один момент. Project->Options->Build Options Проверить выбранный тулчейн и команды на вкладке "Make" commands.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Sep 11 2013, 06:57
|
Профессионал
    
Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061

|
Цитата(MrYuran @ Sep 11 2013, 09:22)  Нет, не здесь. Спасибо за ответ. Это все мне известно. Если настроить - работает. У меня другой вопрос. Я использую внешний makefile. Зачем я должен сообщать C::B путь к папке с тулчейном, перечислять каждую из утилит тулчейна и назначать тулчейн проекту, если C::B просто передает управление make? Пути к тулчейну есть в PATH. Получается "масло масляное". Всю работу на себя берет make, а C::B просто отображает результаты... ну, может я чего недопонял по этому вопросу... Как я понимаю, при использовании makefile все настройки тулчейна в C::B попросту не нужны и должны быть недоступны...
--------------------
Благодарю заранее!
|
|
|
|
|
Sep 11 2013, 07:31
|
Профессионал
    
Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061

|
Цитата(MrYuran @ Sep 11 2013, 11:10)  Надо внимательно рассмотреть логи построения и все станет ясно. Так, а где их посмотреть? Вы имеете в виду "Build log", "Build messages"? В случае с makefile там практически ничего нет...
--------------------
Благодарю заранее!
|
|
|
|
|
Sep 11 2013, 09:40
|
Профессионал
    
Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061

|
Цитата(MrYuran @ Sep 11 2013, 11:38)  Значит, надо галочками поиграть, чтобы было. Может быть подскажите, с какими галочками конкретно? Много чего пробовал - результат одинаков. Поставил "Compiler logging: Full command line". Вот лог: Цитата -------------- Build: all in test ---------------
[100,0%] Running command: make -f makefile all /bin/sh: arm-none-eabi-g++: команда не найдена make: *** [obj/main.o] Ошибка 127 --- building test --- compiling ./src/main.cpp... Process terminated with status 2 (0 minutes, 0 seconds) 0 errors, 0 warnings Нашел интересную настройку: Environment... -> General settings -> Shell to run commands in: /bin/sh -c У меня в системе /bin/sh ссылается на dash. Пробовал менять настройку на "/bin/bash -c", но при этом ничего не меняется! В логе по-прежнему "/bin/sh -c"! Я в системе использую именно bash, путь к тулчейну прописан в .bashrc. Возможно, прописать надо где-то в другом месте... только вот где? Тааак... пока писал, сообразил, что дело в make. Добавил "SHELL := /bin/bash" в makefile. В логе теперь вижу, что make запускает именно bash. Но make по-прежнему не находит тулчейн... почему-то при запуске среды не подхватываются пути из .bashrc... Можно, конечно, пойти простым путем - прописать пути к тулчейну в makefile...
--------------------
Благодарю заранее!
|
|
|
|
|
Sep 11 2013, 10:07
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(koluna @ Sep 11 2013, 12:40)  Можно, конечно, пойти простым путем - прописать пути к тулчейну в makefile... Я так и сделал. Тем более что на одном этапе надо было сравнить несколько версий тулчейна (mspgcc) и найти 10 отличий, и легким движением руки можно было перекидывать на любую из, со 100% уверенностью. C шеллами (под виндой) тоже какая-то засада была. Точно уже не помню, но Cygwin с евоным sh пришлось нейтрализовать.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|