motofan logo
2 страниц V  1 2 >        
> 

Использование Assembler в приложениях для Motomagx, Примеры, помощь итд

DoomChisel
сообщение 17.2.2010, 6:32


Интересующийся
**

Группа: Пользователи
Сообщений: 97
Регистрация: 7.7.2008
Из: СПб
Пользователь №: 176 527
Модель телефона: Motorola EM30
Прошивка: PerfectMod 08.08.09

Рейтинг: 42.5



Собственно, есть ли у кого опыт использования ассемблера под нашу платформу?
А тот тут уже портировано много серьёзных приложений - может, где были ассемблерные вставки...
Были бы интересны исходный код, Makefile-ы.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DoomChisel
сообщение 20.2.2010, 22:11


Интересующийся
**

Группа: Пользователи
Сообщений: 97
Регистрация: 7.7.2008
Из: СПб
Пользователь №: 176 527
Модель телефона: Motorola EM30
Прошивка: PerfectMod 08.08.09

Рейтинг: 42.5



Цитата(EXL @ 20.2.2010, 18:20) *

Были вроде, вот только не помню где именно pardon.gif

Ну что ж - это уже само по себе интересно )
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DoomChisel
сообщение 28.2.2010, 14:23


Интересующийся
**

Группа: Пользователи
Сообщений: 97
Регистрация: 7.7.2008
Из: СПб
Пользователь №: 176 527
Модель телефона: Motorola EM30
Прошивка: PerfectMod 08.08.09

Рейтинг: 42.5



Да, было б хорошо для начала узнать модель процессора моей EM30...
Может, кто-нибудь в курсе, как?

ps.gif

Код

root:~# uname -m
armv6l
root:~# cat /proc/cpuinfo
Processor       : Some Random V6 Processor rev 1 (v6l)
BogoMIPS        : 177.34
Features        : swp half thumb fastmult vfp edsp java
CPU implementer : 0x41
CPU architecture: 6TEJ
CPU variant     : 0x1
CPU part        : 0xb36
CPU revision    : 1
Cache type      : write-back
Cache clean     : cp15 c7 ops
Cache lockdown  : format C
Cache format    : Harvard
I size          : 16384
I assoc         : 4
I line length   : 32
I sets          : 128
D size          : 16384
D assoc         : 4
D line length   : 32
D sets          : 128

Hardware        : Motorola Product - SCM-A11 Phone
Revision        : 0021
Serial          : 0000000000000000

Хмм...

ps.gif
Детальное описание железа(SCMA11)
Вроде как, это?..

Сообщение отредактировал DoomChisel - 28.2.2010, 20:02
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
-=Strelok=-
сообщение 13.7.2010, 16:35


Ветеран
*****

Группа: Разработчики
Сообщений: 379
Регистрация: 9.1.2008
Пользователь №: 159 525
Модель телефона: SLVR L7/Ё2/Backflip/D2G
Прошивка: ACR_RB/ХЗ/CM7.2/MIUI


Настроение:
http://e2.at.ua



Рейтинг: 544



В исходниках ezx эмуляторов от oopsware http://oopsware.googlepages.com/ посмотри, вроде в psx было, точно не помню
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 13.7.2010, 16:42


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 969
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652
Модель телефона: XT894 / XT897
Прошивка: Различные


Настроение:
null



Рейтинг: 4609



1. gpSP точно. Именно из-за него и не могут перенести на motomagx этот чудесный эмулятор.
Как мне сказали иностранные разработчики - архитектура ARM9 и ARM11 отличается, и поэтому совместимость кода не полная.
2. В FceUltra ведро на асме.
3. В Psx4all, который скорее всего возможно перенести на A1200/E6 (Он для ARM9 написан) - асма более чем много.
4. ezxFBA в нём код оптимизирован под ARM11(9?), в итоге сумасшедшая скорость в играх (на уровне фуллспида, а может даже более..)
Это только то, что пока вспомнил, вроде кое-что кое-где было ещё.

Если нужно будет - стучи, исходниками/мэйкфайлами поделюсь

Сообщение отредактировал EXL - 13.7.2010, 16:52
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DoomChisel
сообщение 14.7.2010, 11:03


Интересующийся
**

Группа: Пользователи
Сообщений: 97
Регистрация: 7.7.2008
Из: СПб
Пользователь №: 176 527
Модель телефона: Motorola EM30
Прошивка: PerfectMod 08.08.09

Рейтинг: 42.5



Изивините, думал, что уже все болт забили, поэтому не отписал, что уже разобрался - всё оказалось довольно просто с GNU Assembler.
Взял libJPEG, попытался оптимизировать IFAST IDCT... Собственно, в-основном только успел раскидать по регистрам переменные. Почти догнал по скорости gcc с "-g3", но не перегнал) Думаю, дело в том, что не успел заделать interleaving.
Собственно, сдал преподу и успокоился. Хотя, конечно, интересно.

QUOTE

psx4all

Ага, recompiler какой-то)

QUOTE

gpSP

Интересно - а более конкретно - в чём несовместимость?

ps.gif
Даже выложить особо нечего)

Единственное, в чём моё творение может представлять интерес - тестовая прога (как и изменённая libJPEG) собираются с помощью autotools. А то пока смотрю, тут autotools не любят :)


Сообщение отредактировал DoomChisel - 14.7.2010, 11:10
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 14.7.2010, 18:46


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 969
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652
Модель телефона: XT894 / XT897
Прошивка: Различные


Настроение:
null



Рейтинг: 4609



Цитата(DoomChisel @ Вчера, 18:03)

Интересно - а более конкретно - в чём несовместимость?
*


Я не знаю. Если кто-то скажет буду рад
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
rock88
сообщение 22.7.2010, 17:51


Мастер
****

Группа: Пользователи
Сообщений: 209
Регистрация: 26.6.2009
Из: г. Омск
Пользователь №: 201 900
Модель телефона: L9 & EM30
Прошивка: 05R & 04.06R

Рейтинг: 584



DoomChisel,
а ты в арм асме разбираешся? А можешь тогда вот это в асм переписать? Хотябы в inline asm, вот бы круто было : )
Прикрепленный файл matrix.zip   ( 3.46 килобайт ) Кол-во скачиваний: 194
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DoomChisel
сообщение 22.7.2010, 20:11


Интересующийся
**

Группа: Пользователи
Сообщений: 97
Регистрация: 7.7.2008
Из: СПб
Пользователь №: 176 527
Модель телефона: Motorola EM30
Прошивка: PerfectMod 08.08.09

Рейтинг: 42.5



QUOTE(rock88 @ 22.7.2010, 20:51) *

DoomChisel,
а ты в арм асме разбираешся? А можешь тогда вот это
Прикрепленный файл matrix.zip   ( 3.46 килобайт ) Кол-во скачиваний: 194
в асм переписать? Хотябы в inline asm, вот бы круто было smile.gif


Знаешь, вряд ли было б круто.
Просто если переписать, это бы вряд ли что-то ускорило. Надо ж ещё оптимизировать. И я сомневаюсь, что GCC (конечно же, с "-O3") сможет это сделать хуже, чем я. По крайней мере, в прошлом опыте, я всё же не обогнал компилятор smile.gif .

Да, в нашем процессоре (по крайней мере, ARM1136JF-S на EM30) должен быть "Vector Floating-Point (VFP)" unit, хорошо предназначенный как раз для векторных вычислений: "The VFP implements the ARM VFPv2 floating point coprocessor instruction set. It supports single and double-precision arithmetic on vector-vector, vector-scalar, and scalar-scalar data sets.". ( С ним не работал. )

Далее, получить в файлик ассемблерный код, сгенерированный GCC, можно с помощью опции "-S": "Stop after the stage of compilation proper; do not assemble. The output is in the form of an assembler code file for each non-assembler input file specified."
Если в выходном ассемблерном файле, скомпиленном с "-O3" из данного "matrix.cpp" активно используются всякие операции VFP unit с векторами, - мне кажется, что в таком случае соптимизировалось хорошо, и вряд ли что-то тут можно придумать)

И извините - самому мне сейчас что-то программировать не за деньги - лето/лень/нет времени wink.gif
А то бы, конечно, - много чего хочется написать...

И да - весь этот ассемблер осваивается очень быстро.

В-общем, думаю, скомпиль файлик с оптимизацией - ну и если хочешь, покажи мне - оценю, что вышло. Хотя, наверное, должно быть что-то нифиганепонятное на "-O3" )

Ещё что можно сделать - узнать, какое именно устройство эмулируется в DeSmuME с использованием "matrix.cpp" - спросить у разработчиков эмулятора, например; и поискать в инете что-нибудь для его эмуляции, оптимизированное под ARM. Это, конечно, не очень вероятно, что даст результат - но мало ли...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
rock88
сообщение 23.7.2010, 2:06


Мастер
****

Группа: Пользователи
Сообщений: 209
Регистрация: 26.6.2009
Из: г. Омск
Пользователь №: 201 900
Модель телефона: L9 & EM30
Прошивка: 05R & 04.06R

Рейтинг: 584



DoomChisel,
Вот что получилось
Прикрепленный файл matrix_asm.zip   ( 4.49 килобайт ) Кол-во скачиваний: 204

Многовато, в архиве еще пример того же самого, но под x86 и SSE2, куда красивее и приятней :)
Прикрепленный файл matrix_asm.zip   ( 4.49 килобайт ) Кол-во скачиваний: 204
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Использование Assembler в приложениях для Motomagx, Примеры, помощь итд · Motorola на Linux OS · Forum
 

2 страниц V  1 2 >
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 23.4.2024, 20:53

Форум живёт: