Быстрый поиск

Выбрать раздел :
Выбрать форум :
Критерии сортировки результатов поиска :
Порядок сортировки :
Искать сообщения :
 
Опции темы  Поиск в этой теме 
ksili
Всего баллов:
4,113
Статусных баллов:
3,613
коричневый пояс
12.02.2009 00:30
Как откомпилировать ассемблерный код под ARM-процессор?

Есть проект для КПК под WinMobile. Пишется в MS VS 2005.

Было решено часть функций реализовать на ассемблере. Однако сделать это как под x86 - ассемблерными вставками - не получается. Студия пишет, что эта фишка не реализована для данной архитектуры.

Что делать?

Victoria Zhislina (Intel)
Всего баллов:
1,070
Статусных баллов:
570
коричневый пояс
12.02.2009 07:49
Рейтинг
 
#1
Цитирую -ksili

Есть проект для КПК под WinMobile. Пишется в MS VS 2005.

Было решено часть функций реализовать на ассемблере. Однако сделать это как под x86 - ассемблерными вставками - не получается. Студия пишет, что эта фишка не реализована для данной архитектуры.

Что делать?


Здравствуйте, уважаемый ksili.
Я недавно вернулась из Андорры, где неплохо покаталась на горных лыжах, но ни разу не пробовала сноуборд. Поэтому  теперь хочу узнать у вас, как правильно кататься на сноуборде?
Спросите меня, при чем тут это, и почему я спрашиваю совета у вас?
А тогда позвольте спросить, почему вы спрашиваете на форуме компании Интел про компиляцию вашего кода под процессор НЕ Интел  -ARM (и никогда не бывший процессором Интел, в отличие от XScale, который до 2006 года был процессором Интел) и при помощи инструмента НЕ Интел (VS 2005)? :) 

Или ваш вопрос не полон и вы используете компилятор Интел для XScale? Тогда  могу сказать следующее: Учтите, что код под XScale не совместим с АРМ.
Да, компилятор Интел (переданный в 2006 компании Марвелл)  не поддерживает встроееный ассемблер. Но в состав поставки компилятора входит отдельный компилятор ассемблера. Вам надо объединить все функции на ассемблере в один файл и прописать ему Custom Build Step при помощи этого компилятора.  После чего  при соответствующей декларации этих функций вы сможете вызывать  их из вашего с\с++ кода в других файлах проекта. Цель написания функций на ассемблере - очевидно, оптимизация кода. Но известно, что смешанный код с\асм оптимизируется компилятором плохо - хуже, чем просто код на с или асм. Тому есть объективные причины. Поэтому возможности встроенного ассемблера при разработке компилятора и не предусмотрели. Это было бы удобно, но - медленно.
Кстати, посмотрите в compiler help intrinsic functions. Они предоставляют фактически скорость ассемблера (это он и есть :) ) и удобство си. Единственный минус - они есть далеко не для всех asm инструкций.

Ну вот, я удовлетворила ваше любопытство, а теперь расскажите мне, как же правильно кататься на сноуборде? :)


ksili
Всего баллов:
4,113
Статусных баллов:
3,613
коричневый пояс
12.02.2009 20:21
Рейтинг
 
#2 Ответ на #1
Я недавно в этой области работаю, поэтому по неопытности думал, что все процессоры, что стоят в КПК и смартфонах - ARM. Соответственно я думал, что XScale - тоже ARM-процессор. Поэтому посчитал возможным задать здесь этот вопрос.
Я знаю, что Интел уже не занимается архитектурой XScale, но посчитал, что у сотрудников Интел не такая уж плохая память. В принципе ваш ответ это показал.
Спасибо за ответ!
К сожалению про сноуборд ничего сказать не могу , т.к. у нас очень холодно и мы не то что на сноуборде - на машинах даже не катаемся.




Статистика форума

246 пользователей 277 тем и 2036 сообщений.
За последние 24 часа появилось 0 новых тем 0 новых сообщений и 0 новых пользователей

Самая популярная тема за последние 3 дня Найди ошибки. Пример 2. Больше всего ответов отправлено на сообщение Найди ошибки. Пример 2. Наибольшее количество просмотров у сообщения Здравствуйте,П

Приветствуем нового пользователя chat1983