IgorKossak 0 22 января, 2013 Опубликовано 22 января, 2013 · Жалоба Для сборки под Cortex-Mx пользуюсь тулчейном от Linaro. Нареканий нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dezna 0 22 января, 2013 Опубликовано 22 января, 2013 (изменено) · Жалоба Сложно сказать. Листинг практически идентичен моему. init_stack_frame и Default_SystemTimer_ISR - вообще один-в-один. Должно работать! но не хочет. может ещё какие-нибудь отличия имеются? пытался kgp слить - там 64 бит версия. не пошла. ЗЫ. Если уж совсем не пойдёт, и вы боитесь самодельных сборок сам собирал gcc. просто, как говорится, на ходу коней не меняют. чтоб не отказались остальные проекты работать. а иметь под каждый проект свой компилятор - не айс, да и места не напасёшься. потому вот и хотелось добить. то что это компилятор это понятно. осталось понять как это обойти. Изменено 22 января, 2013 пользователем dezna Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mdmitry 0 22 января, 2013 Опубликовано 22 января, 2013 · Жалоба Для сборки под Cortex-Mx пользуюсь тулчейном от Linaro. Нареканий нет. Так он только С поддерживает, или я не прав? (Programming Languages: C ) P.S. Сам и отвечу: не прав. В сообщении №97 IgorKossak'а указана ссылка в которой присутствуют оба компилятора (проверил архив для linux). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dezna 0 22 января, 2013 Опубликовано 22 января, 2013 · Жалоба Для сборки под Cortex-Mx пользуюсь тулчейном от Linaro. Нареканий нет. спасибо попробую Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 22 января, 2013 Опубликовано 22 января, 2013 · Жалоба но не хочет. может ещё какие-нибудь отличия имеются? Я добросовестно просмотрел весь листинг. Различия на уровне кодогенерации, ничего криминального. Всё, что надо - присутствует, и вызывается. В плане шаманства - попробуйте закомментировать в makefile строчки CFLAGS += -ffunction-sections -fdata-sections , CXXFLAGS += -ffunction-sections -fdata-sections и LD_FLAGS += -Wl,--gc-sections Ну и ещё раз проверьте, что тип процессора, определённый в makefile, соответствует реальному. Для сборки под Cortex-Mx пользуюсь тулчейном от Linaro.Я поискал на страничке по ссылке слово "Linaro", и не нашёл. Потом погуглил, и нашёл другую страничку с тулчейном от Linaro :) Судя по ответам на первом сайте: GCC ARM Embedded (call Embedded later) is tuned for Cortex-M/R. Linaro GCC (call Linaro later) is tuned for Cortex-A. Embedded values code size more than performance. Linaro vice versa. Embedded has a longer release cycle (1 year) and longer maintenance cycle (2 years). Usually no features or optimizations will be added in maintenance period. Linaro has monthly release to follow closely to mainline with latest optimization for newest processors. Embedded mainly targets bare-metal or RTOS applications. Linaro mainly targets Linux/Andriod kernel/applications. , для нас больше подходит первый вариант. Но он - не Linaro. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dezna 0 22 января, 2013 Опубликовано 22 января, 2013 · Жалоба Я добросовестно просмотрел весь листинг. Различия на уровне кодогенерации, ничего криминального. Всё, что надо - присутствует, и вызывается. В плане шаманства - попробуйте закомментировать в makefile строчки это не понадобилось, хоть и попробовал. всё заработало после правки ld скрипта, за что огромное спасибо. всё оказалось гораздо прозаичнее. связано с программатором и каким-то образом с прерываниями (нога BOOT0 к +VCC постоянно). при выключеных прерываниях всё работает, а как разрешаются, то похоже проц переходит на встроенный загрузчик программ. что и происходило. в main() дёргались светодиоды 3 раза, а когда запускалась ось - всё "висло". для нас больше подходит первый вариант. Но он - не Linaro. скачал первый вариант, попробовал. всё работает, как и на моём (уже). только код он раздувает почти в 2 раза. моим HEX файл - 3725 байт скачаным - 5705 задумался! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 22 января, 2013 Опубликовано 22 января, 2013 · Жалоба Я поискал на страничке по ссылке слово "Linaro", и не нашёл. На эту ссылку я попал с официального сайта Linaro. В самом низу, в разделе BARE-METAL, вторая снизу. Это как раз то, что нужно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 22 января, 2013 Опубликовано 22 января, 2013 · Жалоба На эту ссылку я попал с официального сайта Linaro. В самом низу, в разделе BARE-METAL, вторая снизу. Это как раз то, что нужно. А я с другого сайта http://www.coocox.org/CoIDE/Compiler_Settings.html, где мне понравилась фраза: CooCox suggest you to choose ARM GCC as the compiler since it is from ARM official.Выходит что Linaro - под крылом ARM... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 22 января, 2013 Опубликовано 22 января, 2013 · Жалоба Выходит что Linaro - под крылом ARM... Где-то в переписке читал, что разработчики Linaro и есть сотрудники ARM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 22 января, 2013 Опубликовано 22 января, 2013 · Жалоба На эту ссылку я попал с официального сайта Linaro. В самом низу, в разделе BARE-METAL, вторая снизу. А, теперь всё понятно. Но давайте всё же для однозначности будем называть эту сборку "GCC ARM Embedded", как они сами её называют? Надо затестить её, и, если всё нормально, то использовать её как референсную. А то sourcery g++ lite теперь просто так не скачать, да и вообще будущее её неясно. А тут всё же ARM участвует, солидно:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 22 января, 2013 Опубликовано 22 января, 2013 · Жалоба А, теперь всё понятно. Но давайте всё же для однозначности будем называть эту сборку "GCC ARM Embedded", как они сами её называют?Согласен. Надо затестить её, и, если всё нормально, то использовать её как референсную. А то sourcery g++ lite теперь просто так не скачать, да и вообще будущее её неясно. А тут всё же ARM участвует, солидно:) В этом случае я сплю спокойно. Потестил на нескольких проектах. Полёт нормальный. Использую как основной. В сравнении Sourcery Lite порадовало, что у GCC ARM Embedded нет ограничений на аппаратную плавучку в библиотеках. Радуют также регулярные обновления и хорошая реакция разработчиков в их поддержке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 22 января, 2013 Опубликовано 22 января, 2013 · Жалоба я просил товарища собрать мне рабочий пример. он у себя проверил - работает. на моей железке тоже.Ха, так я этот пример, оказывается, и собирал не KGP, а этим: есть Sourcery CodeBench Lite, бывшая sourcery g++ lite. (качать ARM EABI Release). В makefile-то TOOL = arm-none-eabi- # TOOL = arm-kgp-eabi- Если точнее, то собиралось версией /opt/CodeSourcery/arm-2011.09/bin/ Ещё 2012.03 стоит дома, но дома я в /64 KGP использую. Для сборки под Cortex-Mx пользуюсь тулчейном от Linaro. Нареканий нет.Хм. У меня даже в закладках лежит. Когда-то почему-то не пошло, видать. «Бум пробовать»™ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 22 января, 2013 Опубликовано 22 января, 2013 · Жалоба Хм. У меня даже в закладках лежит. Когда-то почему-то не пошло, видать. «Бум пробовать»™ Были у них проблемы в линейке 4.6. с непомерным impure_data array. В линейке 4.7 этого не наблюдается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 22 января, 2013 Опубликовано 22 января, 2013 · Жалоба Были у них проблемы в линейке 4.6. с непомерным impure_data array. В линейке 4.7 этого не наблюдается.Возможно, не помню уже. А LTO что - нет? Только что скачанное: arm-none-eabi-g++ (GNU Tools for ARM Embedded Processors) 4.7.3 20121207 (release) [ARM/embedded-4_7-branch revision 194305] ... cc1plus: error: LTO support has not been enabled in this configuration Или я что-то не так делаю? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 22 января, 2013 Опубликовано 22 января, 2013 · Жалоба Ха, так я этот пример, оказывается, и собирал не KGP, а этим: В makefile-то TOOL = arm-none-eabi- # TOOL = arm-kgp-eabi- Ну да, всё же kgp не так широко известен, поэтому я в примерах делаю по умолчанию arm-none-eabi- (это может быть sourcery g++, yagarto, а теперь, возможно, и GCC ARM Embedded.) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться