motofan logo
Причина закрытия (om2804 21-08-2009):
       
> 

Нужны программисты, АДаптация Эльфов для моторолы

AstaRoth
сообщение 23.1.2007, 14:33


Бошетунмай
********

Группа: Почётные мотофаны
Сообщений: 3 115
Регистрация: 5.11.2005
Из: СЕВЕРОДВИНСК,29, РФ ☭
Пользователь №: 57 206
Модель телефона: E2=>Zn5=>Defy+=>Nubia
Прошивка: Ъбфбймус Edition
Победитель конкурса 2008


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



Рейтинг: 4098.5



Господа! Я дублирую тему-Но прошу уделить ей немного внимания.
Вот сама тема:
производственный стандарт Elf
Она находится в разделе "Ломаем и строим", а сюда я пишу в надежде на то, что во флейме народу обитате гораздо больше. В кратце о стандартах и сама суть эльфов описана в самой теме. Смысл в том-чтобы адаптировать готовые семеновские эльфы под моторолу и найти вариант их загрузки. Вилко сказал, что в принципе это возможно. Лично мои знания не позволяют пока найти вариант, и тем более написать загрузчик или нечто подобное. Возможно Вы сами являетесь программистои или у Вас имеются знакомые, разбирающиеся в этом вопросе - прошу уделить немного внимания данной теме. Все наши мощные умы сейчас заняты лте2 -а на мой взгляд - если удастя все таки запустить эльф на моторе-это будет настоящий прорыв. Может вместе у нас получится? Просьба не флудить в теме по ссылке - ( например задавать вопросы на темы - что такое Эльф и что он нам даст) - все ссылки я выложил. Еще раз приношу извинение за настойчивость и дублирование темы.
С уважением
AstaRoth
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Grisha89
сообщение 23.1.2007, 18:32


Опытный
***

Группа: Пользователи
Сообщений: 119
Регистрация: 28.11.2006
Из: Новосибирск
Пользователь №: 108 470
Модель телефона: Motorola L6
Прошивка: R3511_G_0A.52.45R_A

Рейтинг: 8.5



Да, тема классная.

Вот какие у меня идеи: придётся эмулировать работу семёна, т.к. эльфы заточены под них. Через яву это не получится. По крайней мере для большинства телефонов. У меня даже красивая ява тормозит, а что уж говорить про ява эмулятор, да работающую из-под него прогу. Да и как уже было сказано, семёны по другому работают. Надо указать эльфу, что откуда брать и куда класть можно. Устройство корелета я не знаю. Но можно попробовать написать корелет эмулятор. Если кэша у него достаточно, то может и потянет средненькие приложения.

Ещё такой вопрос: поправь меня, если я не прав, но ELF - это исполняемый файл юникс систем. Надо понять, как смогли запустить его на сименсе. Скорее всего там тоже что-то дописано. Если так, то в теории можно и *.ехе файлы запустить на мобиле smile.gif

Я после сессии попробую пару програмистов озадачить. Пусть подумают.

[off]здесь програмеров мне кажется ещё меньше. Тема быстро уйдёт на последние страницы. Да и объяснить бы хорошо, что такое эльф и с чем его едят. Может кто и обратит внимание.[/off]
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AstaRoth
сообщение 23.1.2007, 20:04


Бошетунмай
********

Группа: Почётные мотофаны
Сообщений: 3 115
Регистрация: 5.11.2005
Из: СЕВЕРОДВИНСК,29, РФ ☭
Пользователь №: 57 206
Модель телефона: E2=>Zn5=>Defy+=>Nubia
Прошивка: Ъбфбймус Edition
Победитель конкурса 2008


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



Рейтинг: 4098.5



Немного конкретики : эльфы написаны на Си, загружаются они с флешки в память минуя яву и напрямую обращаясь к процессору - за счет этого в разы ( могу ошибиться - но на семенах примерно раз в 10 - увеличивается быстродействие и кпд). Grisha89, эмулировать работу семена не надо - надо переделать уже готовые эльфы с семеновскими апи под мотор.
Вот цитата:
Цитата
Помимо патчей существует еще одна возможность расширения функциональных возможностей телефона. 
http://cbn.narod.ru/documents/elf_info.html
FAQ
Собран на основе ответов Rst7 (спасибо емуsmile.gif

- почему в iar cu конструкция char c[100]; int a= * (int*) (c+5) выключает трубу?
Потому что ты пытаешься читать int по некруглому адресу - проц это посылает нах - генерирует исключение... Если тебе надо такое делать, то читай побайтно и собирай в отдельный инт.

- обязательно при выходе освобождать всю память по mfree(  )?
Всю, которую занял - обязательно

- как отлаживать эльфы кроме как копировать их на телефон и писать лог?
Дебаггером Хаосовским... Ищешь BLX R4 в загрузчике эльфов, ставишь туда точку останова и вперед...

- что делают SUBPROC ? REDRAW ?
SUBPROC - вызов функции в контексте другого потока с малым приоритетом для того, чтобы не тормозить GUI, если надо что-то долго делать (например в TED\'е грузить текст, в MegaDial\'е искать имена в записной книжке)
REDRAW - вызвать метод onRedraw отображаемого GUI (можно из контекста процесса-помощника)

Ответы от cbn:
- как получить дату/время?
TDate date; TTime time;
GetDateTime(&date,&time ) ;
sprintf(s,"%d:%02d",time.hour,time.min) ;
sprintf(ss,"%02d-%02d-%04d",date.day, date.month,date.year)  ;

- IAR пишет: неизвестная функция div_32a (или адрес ELF_BEGIN)
К проекту должны быть подключены соответственно файлы div.r79 и func.asm

- приложение работает слишком медленно - как переписать на асм?
С переписыванием на асм спешить не стоит - сначала нужно убедиться что си версия работает без ошибок. Наибольшее ускорение дает правильно написанный АЛГОРИТМ, нужно попытаться его улучшить. В компиляторе включить максимальную оптимизация по скорости.
И уже последний этап - замерить или прикинуть какие части кода выполняются наиболее долго (80% времени проца занимает 20% кода) и переписать их.

Пример: добавляем в func.asm функцию myfunc (a,b,c,d)
вставляем ПЕРЕД ELF_BEGIN ее код
    PUBLIC myfunc
myfunc: PUSH {R4-R6,LR}
    ;делаем что-то с R4-R6 (можно до R12 )
    POP {R4-R6,PC} ; Возврат
    ;или делать BX LR не сохраняя его
Вызов из Си:
extern int myfunc(int a,int b,int c, int d) ;
myfunc(a,b,c,d ) ;
Первые 4 параметра передаются соотв. в регистрах R0-R3, остальные через стек.
Результат возвращается в R0.

- почему на х65-75 не открываются файлы с карточки (MMC)?
В fopen( ) должно быть P_READ вместо 0

- как вывести на экран рисунок bmp?

- есть ли вирусы на эльфах и как с ними бороться?

-как портировать имеющиеся исходники в IAR ?

-как отлаживать эльф?
Несложного отладчика нет sad.gif придумываем сами
Можно попробовать выводить значение параметра на экран
char s[128]; sprintf(s,"Значение a= %d",a); ShowMSG(1,(int)s) ;  //или через DrawString(...)
или писать в лог: # define logsize 10000
char log[logsize], * ptr=log;
void debug(char * s) { if(ptr<log+logsize-strlen(s)-3) {
strcpy(ptr,s); ptr+=strlen(s); *ptr++=0xd; *ptr++=0xa ; } }
а при выходе: fwrite(f,log,ptr-log,&err);
Если получаем пикофф - исключаем часть функций до тех пор пока не находим кто виновник.

- как найти все файлы в папке?
void findlist(char *dir){ //dir - папка, например "0: ","0: \\Misc"
static DIR_ENTRY de; unsigned int err ;
char path[128]; strcpy(path,dir);
char *ptr=path+strlen(path)+1;
strcat(path,"\\ * . * " ); //или "\\ *.wav" т.е. то что нужно искать
if (FindFirstFile(&de,path,&err)) {
do{ strcpy(ptr,de.file_name);
//if(isdir(path,&err)) somedir(path); else //если это папка то делаем то-то, иначе
somefile(path); //делаем с найденным файлом что нам нужно
}while(FindNextFile(&de,&err ) ) ;
}FindClose(&de,&err); }

- как из эльфа запустить др. эльф?
void execelf(char *exename, char *fname){ //fname-параметр (имя файла), передаваемый в эльф
WSHDR *ws=AllocWS(256) ;
str_2ws(ws,exename,strlen(exename )+1 ) ;
ExecuteFile(ws,0,fname); FreeWS(ws); }

- почему эльф тормозит при перерисовке?
Ответ от KreN: ничего рисоваться не должно не в контексте MMI.
Пояснение от cbn: нельзя вызывать функции рисования: REDRAW(), DrawString и др. из процессов (функций), запущенных по SUBPROC( ) - на NEWSGOLD тормоза, SGOLD как ни странно работают нормально. Если все же нужно, рисуйте при обработке клавиши или "вешайте" на таймер.

- что за функции LockSсhed, UnlockSched?
Ответ от KreN: нужны чтобы во время чтения/записи в/из рамы лочить другие процессы, чтобы не было конфликтов между ними, другими словами остается активным только текущий процесс.

- как воспроизвести стандартный звук?
Ответ от Geka: PlaySound( 1,0,0,n,0 ) где n-номер станд.звука

- как воспроизвести звуковой файл?
Ответ от KreN (спасибо за разъяснения):
typedef struct { unsigned int unk1,unk2,unk3,volume; } SFO;
#pragma swi_number=74
__swi __arm void PlayFile(int _C,WSHDR* folder,WSHDR* filename,int cepid, int _167,SFO * options) ;
void PlayMelody(int type_melody) {
SFO unk1; WSHDR *ws1=AllocWS(50), * ws2=AllocWS(30);
str_2ws(ws1,natisq_path,49);
unk1.unk1=1; unk1.unk2=0; unk1.unk3=0; unk1.volume=3;
wsprintf(ws2,"message.wav")  ;
PlayFile(0xC,ws1,ws2,GBS_GetCurCepid(),0x167,&unk1);
FreeWS(ws1); FreeWS(ws2); }
PS(cbn): структура SFO сложнее, со звуком много несовмест. (пикофф) на разных моделях, данных мало...




Рекомендую почитать :
ЭТУ ТЕМУ и вообще покопаться на семеновских форумах - там есть отзывы юзеров - например, мой приятель - запросто рубиться в игры от Сеги ..и т.д. Вариаций много.
Знаю, что во флейме тема скоро заглохнет - но все таки-если найдутся люди , которые этим заинтересуются, надеюсь, что нибудь у нас и получится ( подчеркиваю - я не программист - иначе давно бы уже стал копать библиотеки и Си)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
ELF
сообщение 23.1.2007, 20:09


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

Группа: Почётные мотофаны
Сообщений: 467
Регистрация: 7.2.2006
Пользователь №: 69 377
Модель телефона: самсунг какой-та...

Рейтинг: 369



Зачем нас адаптировать? мы и так адаптированы... biggrin.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AstaRoth
сообщение 23.1.2007, 21:11


Бошетунмай
********

Группа: Почётные мотофаны
Сообщений: 3 115
Регистрация: 5.11.2005
Из: СЕВЕРОДВИНСК,29, РФ ☭
Пользователь №: 57 206
Модель телефона: E2=>Zn5=>Defy+=>Nubia
Прошивка: Ъбфбймус Edition
Победитель конкурса 2008


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



Рейтинг: 4098.5



ELF, зачет ! Первый Эльф на моторе! clap.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Grisha89
сообщение 24.1.2007, 8:20


Опытный
***

Группа: Пользователи
Сообщений: 119
Регистрация: 28.11.2006
Из: Новосибирск
Пользователь №: 108 470
Модель телефона: Motorola L6
Прошивка: R3511_G_0A.52.45R_A

Рейтинг: 8.5



Цитата
подчеркиваю - я не программист - иначе давно бы уже стал копать библиотеки и Си

Аналогично. Но друзья программисты имеются.

Вот тема для размышлений: у меня нет карты памяти sad.gif От куда мне его грузить? Придётся искать мотор с картой на время. И ещё как вариант взять сименс, поюзать его. Поставить эльфы и посмотреть как они работают. Может придемаем что-нибудь для моторов.

...но всё делать буду только после сессии...

Интересно, как они запускаются. Ведь не было в сименсах никогда поддержки этих эльфов. Их расширение и как с ними тел работает, как их видит.
Надо подключать линуксоидов, которые программировать умеют. Всё-таки ELF файлы там используются активно. Скорее всего связь есть. Просто на мотофане ветка moto4lin совсем умерла, там задавать вопросы нет смысла.

Почитал FAQ с сименса. Может стоит адаптировать ELFpack и ELFloader в первую очередь??? В крайнем случае написать по аналогии свои.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 21.8.2009, 12:49


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



нашёл тему ) о cbn.narod.ru
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 21.8.2009, 15:19


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255
Модель телефона: E398, Milestone 2
Прошивка: 49R w/ElfPack2


Настроение:
^^,



Рейтинг: 1224



Osta, откуда ты это откопал? А главное, зачем?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fean0r
сообщение 21.8.2009, 15:23


Новичок
*

Группа: Пользователи
Сообщений: 18
Регистрация: 20.8.2009
Из: Архангельск
Пользователь №: 204 892
Модель телефона: Sie S65/58, CX70/56

Рейтинг: 10



Вероятно, ради привлечения внимания к

http://cbn.narod.ru/Cbnsrc1.rar
http://cbn.narod.ru/Cbnsrc2.rar

?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 21.8.2009, 17:17


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



ИМХО, проще написать с нуля, чем те сурцы адаптировать wink.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 21.8.2009, 19:01


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


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



Рейтинг: 1535



om2804, ну...отдельные функции в принципе содрать можно wink.gif но 70-80% придётся писать с нуля...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 21.8.2009, 19:24


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



В общем я не понял зачем эту тему подняли. Есть тема Как всё начиналось. Для флуда есть отдельная тема
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Нужны программисты, АДаптация Эльфов для моторолы · Эльфы, их разработка и портирование · Forum
 

Причина закрытия (om2804 21-08-2009):
Закрытая темаСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 22.6.2025, 15:52

Форум живёт: