_Pasha 0 30 мая, 2013 Опубликовано 30 мая, 2013 · Жалоба Это понятно. Прямо перед Вашим первым постом в этой ветке - я выкладывал вариант каким образом работать с кортексами. Ежли Вы до сих пор не удосужились глянуть, то что может быть понятно? Там мейк ручками не пишется, - вызовы и параметры генерятся "галочками" из-под С::В, (чего иногда хочется, чего уж там). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 30 мая, 2013 Опубликовано 30 мая, 2013 · Жалоба Там мейк ручками не пишется Возможно есть вариант makefile project? вызовы и параметры генерятся "галочками" из-под С::В Можно и вручную. Не нужны галочки. Нравится CB, переходить на другую ИСР пока не желаемо. А ведь Эклипс лучше. 1. Ставим компилятор. Можно поставить Yagarto - к нему идёт и make. YAGARTO GNU ARM toolchain и YAGARTO Tools - make и тп. 3. Создаем проект в CB, настраиваем его для сборки или подключаем внешний мейк-файл (где взять?). Например тут: make для LPC17xx и make для STM32F2xx 4. Добавляем в проект скрипты линкера и стартапы из CMSIS (придется их корректировать?). Корректировать придётся... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
koluna 0 30 мая, 2013 Опубликовано 30 мая, 2013 · Жалоба Прямо перед Вашим первым постом в этой ветке - я выкладывал вариант каким образом работать с кортексами. Ежли Вы до сих пор не удосужились глянуть, то что может быть понятно? Там мейк ручками не пишется, - вызовы и параметры генерятся "галочками" из-под С::В, (чего иногда хочется, чего уж там). Видел, просто не успел посмотреть подробнее. Спасибо. Помимо включенных в проект сценария линкера, стартапа и дефайнов для проца какие настройки (галочками) производились? Можете расписать поподробнее, чтобы было на что опереться? В стандартном визарде, насколько я помню, нет ничего подобного STM32F4. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 30 мая, 2013 Опубликовано 30 мая, 2013 · Жалоба Можете расписать поподробнее, чтобы было на что опереться? Там использовались переменные проекта, не очень удобно, но по-другому хуже. Проблема в том, чтобы получить один и тот же список параметров, используемых линкером и компилятором. Наверняка сталкивались с легким гемором при изменении таргет-процессора в AVR-проекте - надо перепрописывать и в линкере и в компилере и где еще? забыл... И галочками не все множество параметров охвачено :) Остальное - смотрите в project build options и properties , только смотреть придется внимательно - за что многие и ругают эту IDE. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
koluna 0 5 июня, 2013 Опубликовано 5 июня, 2013 · Жалоба А ведь Эклипс лучше. Возможно, но решил оставить на потом :) Можно поставить Yagarto - к нему идёт и make. Пока выбрал Codesourcery крайний релиз. Например тут: make для LPC17xx и make для STM32F2xx Спасибо! Корректировать придётся... Да я уж понял... Хочу пока руками все сделать, чтобы разобраться получше. Поставил компилятор. Сделал простейшее тестовое приложение. Пытался вчера вечером собрать, ковыряя стартап, скрипт и подбирая ключи компилятора и линкера. Собирал под Линухом простым шеловским скриптом (позже выложу для анализа, может, порекомендуете что). Полноценный мейк - следующий этап. Вручную ничего не собирал еще, решил научиться (что почитать бы?). Стартап и скрипт взял из 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" - все собралось. Ошибок нет. Но осадок сомнения остался - уже две ошибки в этих двух файлах... кто знает, что там еще? Надеялся, что все заработает "из коробки". Пока не зашивал, не уверен в работоспособности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
koluna 0 9 сентября, 2013 Опубликовано 9 сентября, 2013 (изменено) · Жалоба Всем привет! Объясните, пожалуйста, как правильно подключать 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... Изменено 9 сентября, 2013 пользователем koluna Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
koluna 0 10 сентября, 2013 Опубликовано 10 сентября, 2013 · Жалоба Кстати, что скрывается в пункте "Compiler and debugger settings" на вкладке "Other settings" в поле "Build method"? У меня там всегда жестко стоит "Invoke compiler directly" и нет возможности что-либо выбрать другое. Может, копать здесь надо для решения моей проблемы... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 27 11 сентября, 2013 Опубликовано 11 сентября, 2013 · Жалоба Может, копать здесь надо для решения моей проблемы... Нет, не здесь. Settings->Compiler & debugger Selected compiler - выбрать нужный Вкладка Toolchain executables: Compiler's installation directory - вбить путь к бинарникам тулчейна Program files - проверить правильность Есть ещё один момент. Project->Options->Build Options Проверить выбранный тулчейн и команды на вкладке "Make" commands. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
koluna 0 11 сентября, 2013 Опубликовано 11 сентября, 2013 · Жалоба Нет, не здесь. Спасибо за ответ. Это все мне известно. Если настроить - работает. У меня другой вопрос. Я использую внешний makefile. Зачем я должен сообщать C::B путь к папке с тулчейном, перечислять каждую из утилит тулчейна и назначать тулчейн проекту, если C::B просто передает управление make? Пути к тулчейну есть в PATH. Получается "масло масляное". Всю работу на себя берет make, а C::B просто отображает результаты... ну, может я чего недопонял по этому вопросу... Как я понимаю, при использовании makefile все настройки тулчейна в C::B попросту не нужны и должны быть недоступны... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 27 11 сентября, 2013 Опубликовано 11 сентября, 2013 · Жалоба Надо внимательно рассмотреть логи построения и все станет ясно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
koluna 0 11 сентября, 2013 Опубликовано 11 сентября, 2013 · Жалоба Надо внимательно рассмотреть логи построения и все станет ясно. Так, а где их посмотреть? Вы имеете в виду "Build log", "Build messages"? В случае с makefile там практически ничего нет... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 27 11 сентября, 2013 Опубликовано 11 сентября, 2013 · Жалоба Так, а где их посмотреть? Вы имеете в виду "Build log", "Build messages"? В случае с makefile там практически ничего нет... Значит, надо галочками поиграть, чтобы было. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
koluna 0 11 сентября, 2013 Опубликовано 11 сентября, 2013 · Жалоба Значит, надо галочками поиграть, чтобы было. Может быть подскажите, с какими галочками конкретно? Много чего пробовал - результат одинаков. Поставил "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... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 27 11 сентября, 2013 Опубликовано 11 сентября, 2013 · Жалоба Можно, конечно, пойти простым путем - прописать пути к тулчейну в makefile... Я так и сделал. Тем более что на одном этапе надо было сравнить несколько версий тулчейна (mspgcc) и найти 10 отличий, и легким движением руки можно было перекидывать на любую из, со 100% уверенностью. C шеллами (под виндой) тоже какая-то засада была. Точно уже не помню, но Cygwin с евоным sh пришлось нейтрализовать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
koluna 0 13 сентября, 2013 Опубликовано 13 сентября, 2013 (изменено) · Жалоба Свойства проекта -> Вкладка "Project settings" -> Platforms (Windows, Unix, Mac) Для чего? На что влияет? Свойства проекта -> Вкладка "Build targets" -> Type (Console application, GUI application, ...) Для чего? На что влияет? Применительно к embeded... Изменено 13 сентября, 2013 пользователем koluna Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться