|
|
  |
scmRtos для медных чайников |
|
|
|
Jan 22 2013, 10:11
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 18-03-11
Пользователь №: 63 690

|
Цитата(AHTOXA @ Jan 22 2013, 12:20)  Сложно сказать. Листинг практически идентичен моему. init_stack_frame и Default_SystemTimer_ISR - вообще один-в-один. Должно работать! но не хочет. может ещё какие-нибудь отличия имеются? пытался kgp слить - там 64 бит версия. не пошла. Цитата(AHTOXA @ Jan 22 2013, 12:20)  ЗЫ. Если уж совсем не пойдёт, и вы боитесь самодельных сборок сам собирал gcc. просто, как говорится, на ходу коней не меняют. чтоб не отказались остальные проекты работать. а иметь под каждый проект свой компилятор - не айс, да и места не напасёшься. потому вот и хотелось добить. то что это компилятор это понятно. осталось понять как это обойти.
Сообщение отредактировал dezna - Jan 22 2013, 10:17
|
|
|
|
|
Jan 22 2013, 10:24
|

Начинающий профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648

|
Цитата(IgorKossak @ Jan 22 2013, 11:32)  Для сборки под Cortex-Mx пользуюсь тулчейном от Linaro. Нареканий нет. Так он только С поддерживает, или я не прав? (Programming Languages: C ) P.S. Сам и отвечу: не прав. В сообщении №97 IgorKossak'а указана ссылка в которой присутствуют оба компилятора (проверил архив для linux).
--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
|
|
|
|
|
Jan 22 2013, 10:28
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 18-03-11
Пользователь №: 63 690

|
Цитата(IgorKossak @ Jan 22 2013, 12:32)  Для сборки под Cortex-Mx пользуюсь тулчейном от Linaro. Нареканий нет. спасибо попробую
|
|
|
|
|
Jan 22 2013, 10:57
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(dezna @ Jan 22 2013, 16:11)  но не хочет. может ещё какие-нибудь отличия имеются? Я добросовестно просмотрел весь листинг. Различия на уровне кодогенерации, ничего криминального. Всё, что надо - присутствует, и вызывается. В плане шаманства - попробуйте закомментировать в makefile строчки Код CFLAGS += -ffunction-sections -fdata-sections , Код CXXFLAGS += -ffunction-sections -fdata-sections и Код LD_FLAGS += -Wl,--gc-sections Ну и ещё раз проверьте, что тип процессора, определённый в makefile, соответствует реальному. Цитата(IgorKossak @ Jan 22 2013, 14:32)  Для сборки под 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.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Jan 22 2013, 11:14
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 18-03-11
Пользователь №: 63 690

|
Цитата(AHTOXA @ Jan 22 2013, 14:57)  Я добросовестно просмотрел весь листинг. Различия на уровне кодогенерации, ничего криминального. Всё, что надо - присутствует, и вызывается. В плане шаманства - попробуйте закомментировать в makefile строчки это не понадобилось, хоть и попробовал. всё заработало после правки ld скрипта, за что огромное спасибо. всё оказалось гораздо прозаичнее. связано с программатором и каким-то образом с прерываниями (нога BOOT0 к +VCC постоянно). при выключеных прерываниях всё работает, а как разрешаются, то похоже проц переходит на встроенный загрузчик программ. что и происходило. в main() дёргались светодиоды 3 раза, а когда запускалась ось - всё "висло". Цитата(AHTOXA @ Jan 22 2013, 14:57)  для нас больше подходит первый вариант. Но он - не Linaro. скачал первый вариант, попробовал. всё работает, как и на моём (уже). только код он раздувает почти в 2 раза. моим HEX файл - 3725 байт скачаным - 5705 задумался!
|
|
|
|
|
Jan 22 2013, 12:58
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(IgorKossak @ Jan 22 2013, 15:49)  На эту ссылку я попал с официального сайта 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...
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Jan 22 2013, 14:04
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(IgorKossak @ Jan 22 2013, 17:49)  На эту ссылку я попал с официального сайта Linaro. В самом низу, в разделе BARE-METAL, вторая снизу. А, теперь всё понятно. Но давайте всё же для однозначности будем называть эту сборку "GCC ARM Embedded", как они сами её называют? Надо затестить её, и, если всё нормально, то использовать её как референсную. А то sourcery g++ lite теперь просто так не скачать, да и вообще будущее её неясно. А тут всё же ARM участвует, солидно
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Jan 22 2013, 14:26
|

Шаман
     
Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221

|
Цитата(AHTOXA @ Jan 22 2013, 16:04)  А, теперь всё понятно. Но давайте всё же для однозначности будем называть эту сборку "GCC ARM Embedded", как они сами её называют? Согласен. Цитата(AHTOXA @ Jan 22 2013, 16:04)  Надо затестить её, и, если всё нормально, то использовать её как референсную. А то sourcery g++ lite теперь просто так не скачать, да и вообще будущее её неясно. А тут всё же ARM участвует, солидно  В этом случае я сплю спокойно. Потестил на нескольких проектах. Полёт нормальный. Использую как основной. В сравнении Sourcery Lite порадовало, что у GCC ARM Embedded нет ограничений на аппаратную плавучку в библиотеках. Радуют также регулярные обновления и хорошая реакция разработчиков в их поддержке.
|
|
|
|
|
Jan 22 2013, 15:04
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(dezna @ Jan 22 2013, 06:58)  я просил товарища собрать мне рабочий пример. он у себя проверил - работает. на моей железке тоже. Ха, так я этот пример, оказывается, и собирал не KGP, а этим: Цитата(AHTOXA @ Jan 22 2013, 10:20)  есть 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 использую. Цитата(IgorKossak @ Jan 22 2013, 10:32)  Для сборки под Cortex-Mx пользуюсь тулчейном от Linaro. Нареканий нет. Хм. У меня даже в закладках лежит. Когда-то почему-то не пошло, видать. «Бум пробовать»™
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Jan 22 2013, 15:49
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(IgorKossak @ Jan 22 2013, 17:44)  Были у них проблемы в линейке 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 Или я что-то не так делаю?
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Jan 22 2013, 17:35
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(ReAl @ Jan 22 2013, 21:04)  Ха, так я этот пример, оказывается, и собирал не KGP, а этим: В makefile-то Код TOOL = arm-none-eabi- # TOOL = arm-kgp-eabi- Ну да, всё же kgp не так широко известен, поэтому я в примерах делаю по умолчанию arm-none-eabi- (это может быть sourcery g++, yagarto, а теперь, возможно, и GCC ARM Embedded.)
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|