реклама на сайте
подробности

 
 
> CrossWorks и Maverick, Как настроить поддержку в CrossWorks Maverick сопроцессора для ep93xx?
Andrei....
сообщение Nov 23 2006, 12:36
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 104
Регистрация: 20-03-06
Пользователь №: 15 402



Как настроить поддержку в CrossWorks Maverick сопроцессора для ep93xx?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SpiritDance
сообщение Nov 24 2006, 10:35
Сообщение #2


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Эта появлюсь я в теме.

Во первых у olimexa существует точно такае же платка, но на 9302, в котором сопроцессор присутсвует. Терра похоже может закупить их если заказов будет более 100 у.е, то есть хотябы один. smile.gif А на 9301 плат у них в наличии сейчас все-равно нет. Я в принципе то же заинтересован, так что можно сообща обратится к барыгам с просьбой привести платки. smile.gif

Во-вторых. Я тут тоже с кроссворксом вожусь, правда пока с 1.5. в процессе возникли следующие вопросы.

1 Каким образом избавится от того, что линкер присобачивает в прошивку все что накомпиляет компилятор. В отличие от gcc нормальные тулчейны собирают только используемый код. Надо это мне, так как на фирме принято использовать бибилиотечки, которые хранятся в исходниках, а объемы встроенного флеша всеже не резиновые.

2 почему линкер gcc ругаецца на inline функции как на multiply definition в разных модулях. Я объявил конечно функции из библиотечки atmel как static но по-моему это бред какой-то.

3 Каким образом компилять в thumb режиме? Дело в том что в программе используются обработчики прерываний, а они должны быть arm. Ну собственно вопроса то два. Во превых можно ли как то объяснить gcc что функция должна быть арм. Во-вторых насколько корректно скомпиляется прога, если не использовать общий обработчик в стартапе, а пользоваться __attribute__

4 Насколько возможно к этому долбаному кроссворску подключить сторониий gсс дистрибутив, например такой http://www.codesourcery.com/gnu_toolchains/arm/ Я так и не понял каким образом сделатть так, чтобы использовались библиотеки идущие с этой сборкой, а не от кроссворкса. Пробовал подключать только собственно компилер - с библиотеками кроссворкса не уживается.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
klen
сообщение Nov 24 2006, 12:39
Сообщение #3


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(SpiritDance @ Nov 24 2006, 10:35) *
Эта появлюсь я в теме.

Во первых у olimexa существует точно такае же платка, но на 9302, в котором сопроцессор присутсвует. Терра похоже может закупить их если заказов будет более 100 у.е, то есть хотябы один. smile.gif А на 9301 плат у них в наличии сейчас все-равно нет. Я в принципе то же заинтересован, так что можно сообща обратится к барыгам с просьбой привести платки. smile.gif

Я всеми лапами ЗА. Очень хоцца помацать GCC+сопроцессор из исследовательских целей.

Цитата
Во-вторых. Я тут тоже с кроссворксом вожусь, правда пока с 1.5. в процессе возникли следующие вопросы.

1 Каким образом избавится от того, что линкер присобачивает в прошивку все что накомпиляет компилятор. В отличие от gcc нормальные тулчейны собирают только используемый код. Надо это мне, так как на фирме принято использовать бибилиотечки, которые хранятся в исходниках, а объемы встроенного флеша всеже не резиновые.

если компиллер генерит код с опцией -g.. то в объектник валются все секции код, данные, отладка и тд. Чтоб оставить только содержательный код нужно пройтись по elf-бинарникам и библиотекам утилитой strip (в пакете binutils), собраной под arm-elf.
Тем неменение в флешь заливается не ELF, а сделанный из него с помощью утилиты obj-copy HEX или BIN файл. Поэтому во флеш по любому не лезет лишние секции. Другое дело если вы не используете оптимизацию. То тогда GCC по умолчанию генерит все по стандарту и не отбрасывает "ненужный код". Попробуйте собрать с опцией -O1 или -O2 Напимер. код должен уменьшится и ускорится.


Цитата
3 Каким образом компилять в thumb режиме? Дело в том что в программе используются обработчики прерываний, а они должны быть arm. Ну собственно вопроса то два. Во превых можно ли как то объяснить gcc что функция должна быть арм. Во-вторых насколько корректно скомпиляется прога, если не использовать общий обработчик в стартапе, а пользоваться __attribute__

в отличие от других компиллеров в GCC для использования кода Thumb нужно этот код собирать в отдельных модулях и компелировать с опцией -mthumb, в дополнение к опциям компиляции модулей обоих типов необходимо добавить опуию -mthumb-interwork, чттоб компиллер генерил кодд совместимый с перекрестными вызоваи функций с кодом обоих типов.

Цитата
4 Насколько возможно к этому долбаному кроссворску подключить сторониий gсс дистрибутив, например такой http://www.codesourcery.com/gnu_toolchains/arm/ Я так и не понял каким образом сделатть так, чтобы использовались библиотеки идущие с этой сборкой, а не от кроссворкса. Пробовал подключать только собственно компилер - с библиотеками кроссворкса не уживается.

Не только возможно но и категарически нужно. Поскольку в GCC найденные баги правятся "на лету", в отличие от коммерческих компиллеров.
Для этого нада просто поменять файлы в CrossWorks/gcc/bin на новые из другой сборки.

Людиииииии... есть у кого таблетка к CrossWorks 1.6 biuld 3, пааамираюю..
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Nov 24 2006, 14:18
Сообщение #4


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Цитата
если компиллер генерит код с опцией -g.. то в объектник валются все секции код, данные, отладка и тд. Чтоб оставить только содержательный код нужно пройтись по elf-бинарникам и библиотекам утилитой strip (в пакете binutils), собраной под arm-elf.
Тем неменение в флешь заливается не ELF, а сделанный из него с помощью утилиты obj-copy HEX или BIN файл. Поэтому во флеш по любому не лезет лишние секции. Другое дело если вы не используете оптимизацию. То тогда GCC по умолчанию генерит все по стандарту и не отбрасывает "ненужный код". Попробуйте собрать с опцией -O1 или -O2 Напимер. код должен уменьшится и ускорится.

Я это дело проверял именно по размеру бинарника в профилях ARM flash debug и ARM flash release c подсоединненой бибилиотечкой усарта и без нее, в main в обоих случаях было просто записано for(;;);
с подсоедиными к проекту файлами бинарник занял около 9К в дебаге и около 5К в релизе, в то время как с неприсоединнеными файлами заняло что-то около 500 байт. Я могу повторить экспиримент с и привести точные данные если хотите.

Цитата
в отличие от других компиллеров в GCC для использования кода Thumb нужно этот код собирать в отдельных модулях и компелировать с опцией -mthumb, в дополнение к опциям компиляции модулей обоих типов необходимо добавить опуию -mthumb-interwork, чттоб компиллер генерил код совместимый с перекрестными вызовам функций с кодом обоих типов.

ОК. Только мне осталось непонятным как при таком подходе будут работать обработчики прерываний, при условии что обработчик в startup не задействован.

Цитата
Не только возможно но и категарически нужно. Поскольку в GCC найденные баги правятся "на лету", в отличие от коммерческих компиллеров.

Да дело даже не столько в багах сколько именно в возможности использовать сторонние дистрибутивы. а то вся прелесть gcc вобще-то и теряется.

Цитата
Для этого нада просто поменять файлы в CrossWorks/gcc/bin на новые из другой сборки.

Дык блин говорю же, так и поступал. причем можно даже ничего не менять указав путь к gcc в tools->options-build, компилятор по прежнему заглотил код, но линкер начал ругатся на оепратор деления blink.gif , типа не смог наети entry point или что-то в этом роде.



кстати а что с inline? Я что то непонимаю или как?


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 04:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01417 секунд с 7
ELECTRONIX ©2004-2016