Перейти к содержанию
    

scmRtos для медных чайников

Для сборки под Cortex-Mx пользуюсь тулчейном от Linaro. Нареканий нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сложно сказать. Листинг практически идентичен моему. init_stack_frame и Default_SystemTimer_ISR - вообще один-в-один.

Должно работать!

но не хочет. может ещё какие-нибудь отличия имеются?

пытался kgp слить - там 64 бит версия. не пошла.

ЗЫ. Если уж совсем не пойдёт, и вы боитесь самодельных сборок

сам собирал gcc. просто, как говорится, на ходу коней не меняют. чтоб не отказались остальные проекты работать.

а иметь под каждый проект свой компилятор - не айс, да и места не напасёшься.

потому вот и хотелось добить. то что это компилятор это понятно. осталось понять как это обойти.

Изменено пользователем dezna

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для сборки под Cortex-Mx пользуюсь тулчейном от Linaro. Нареканий нет.

Так он только С поддерживает, или я не прав?

(Programming Languages: C )

 

P.S. Сам и отвечу: не прав. В сообщении №97 IgorKossak'а указана ссылка в которой присутствуют оба компилятора (проверил архив для linux).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

но не хочет. может ещё какие-нибудь отличия имеются?

Я добросовестно просмотрел весь листинг. Различия на уровне кодогенерации, ничего криминального. Всё, что надо - присутствует, и вызывается.

В плане шаманства - попробуйте закомментировать в 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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я добросовестно просмотрел весь листинг. Различия на уровне кодогенерации, ничего криминального. Всё, что надо - присутствует, и вызывается.

В плане шаманства - попробуйте закомментировать в makefile строчки

это не понадобилось, хоть и попробовал. всё заработало после правки ld скрипта, за что огромное спасибо.

всё оказалось гораздо прозаичнее. связано с программатором и каким-то образом с прерываниями (нога BOOT0 к +VCC постоянно).

при выключеных прерываниях всё работает, а как разрешаются, то похоже проц переходит на встроенный загрузчик программ.

что и происходило. в main() дёргались светодиоды 3 раза, а когда запускалась ось - всё "висло".

 

для нас больше подходит первый вариант. Но он - не Linaro.

скачал первый вариант, попробовал. всё работает, как и на моём (уже). только код он раздувает почти в 2 раза.

моим HEX файл - 3725 байт

скачаным - 5705

задумался!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я поискал на страничке по ссылке слово "Linaro", и не нашёл.

На эту ссылку я попал с официального сайта Linaro. В самом низу, в разделе BARE-METAL, вторая снизу. Это как раз то, что нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На эту ссылку я попал с официального сайта 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...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выходит что Linaro - под крылом ARM...

Где-то в переписке читал, что разработчики Linaro и есть сотрудники ARM.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На эту ссылку я попал с официального сайта Linaro. В самом низу, в разделе BARE-METAL, вторая снизу.

А, теперь всё понятно. Но давайте всё же для однозначности будем называть эту сборку "GCC ARM Embedded", как они сами её называют?

Надо затестить её, и, если всё нормально, то использовать её как референсную. А то sourcery g++ lite теперь просто так не скачать, да и вообще будущее её неясно.

А тут всё же ARM участвует, солидно:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А, теперь всё понятно. Но давайте всё же для однозначности будем называть эту сборку "GCC ARM Embedded", как они сами её называют?
Согласен.

Надо затестить её, и, если всё нормально, то использовать её как референсную. А то sourcery g++ lite теперь просто так не скачать, да и вообще будущее её неясно.

А тут всё же ARM участвует, солидно:)

В этом случае я сплю спокойно. Потестил на нескольких проектах. Полёт нормальный. Использую как основной.

В сравнении Sourcery Lite порадовало, что у GCC ARM Embedded нет ограничений на аппаратную плавучку в библиотеках. Радуют также регулярные обновления и хорошая реакция разработчиков в их поддержке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я просил товарища собрать мне рабочий пример. он у себя проверил - работает. на моей железке тоже.
Ха, так я этот пример, оказывается, и собирал не 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. Нареканий нет.
Хм. У меня даже в закладках лежит. Когда-то почему-то не пошло, видать.

«Бум пробовать»™

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хм. У меня даже в закладках лежит. Когда-то почему-то не пошло, видать.

«Бум пробовать»™

Были у них проблемы в линейке 4.6. с непомерным impure_data array. В линейке 4.7 этого не наблюдается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Были у них проблемы в линейке 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

Или я что-то не так делаю?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ха, так я этот пример, оказывается, и собирал не KGP, а этим:

 

В makefile-то

    TOOL    = arm-none-eabi-
#    TOOL    = arm-kgp-eabi-

Ну да, всё же kgp не так широко известен, поэтому я в примерах делаю по умолчанию arm-none-eabi- (это может быть sourcery g++, yagarto, а теперь, возможно, и GCC ARM Embedded.)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...