nvoid
Expert
Регистрация: 29.11.07 Сообщений: 1375 Репутация: 380
#1981 [28.12.07, 11:46] Создание Эльфов
Предлагаю создать тему, посвященную созданию Эльфов. Думаю, удобнее будет собрать ссылки, посвященные Эльфам, в одной теме, а не оффтопить в разных...
Список функций находится в файле *.lib.vkp
Ссылки: ∙
Описание некоторых функций в Wiki ∙
Созадние ELF под Siemens ∙
Создание ELF под Siemens (здесь больше) ∙
Урезанная IAR ∙
Патч для IAR ∙
Учебник по СИ ∙
Основы программирования эльфов SVN :
∙
TortoiseSVN (программа для работы с SVN) ∙
svn://svn.boba.su/ARM -
Зеркало (http mirror) Siemens SVN
∙
svn://svn.boba.su/SE -
Зеркало (http mirror) Sony Ericsson SVN
для доступа на svn используйте guest/guest
Другие темы :
Вопросы о СИ (языке) Исходники Эльфов Компиляция ЭП Уроки :
Создание простого эльфа Фонарик от arban.
Создание GUI от arban:
часть 1 ,
часть 2 .
---------------------------------------------
elfcheck - простая прога, которая проверяет, используются ли в эльфах (включая эльфлоадер) функции, которых нет в либе.
simple tool which checks whether there are functions used in elfs (including elfloader) that are not included in library.
Q: How use elfcheck?
Q: Как использовать?
R: Look this page
here saveevents.elf - сохранение евентов (EVENT)
(c)
den_po ---------------------------------------------
Шаблоны эльфов для IAR Некоторые полезные для разработчиков шаблоны эльфов.
На данный момент имеются:
1) Пустой эльф
2) Пустой эльф со своей книгой
3) Эльф-рисовальщик на главном экране
4) Эльф для RegFile (по сути - пустой эльф, но с дополнительными входными параметрами)
5) Эльф с графическим интерфейсом - списком
6) Эльф-патч, который можно конвертировать в *.vkp при помощи elf2vkp
Установка: скопируйте содержимое архива в IAR\ARM\config\template\
Использование: Project->New project->Elf SDK->Нужный шаблон
(C)
UltraShot ---------------------------------------------
Раздел в Wiki, посвященный созданию эльфов
Прикрепленный к сообщению файл: elfcheck.rar (
32.56 kb; 1014 hits)
Скачать файл saveevents.elf (
1.13 kb; 439 hits)
Скачать файл iar_templates.zip (
114.52 kb; 720 hits)
Скачать файл
Motorola EM30
Спасибо сказали: pahon, Zormax, scorpion1616, Evil-Racer, Alex_E, avens, DuMOHsmol, TahaSpawn, vodoo999, Alex1992, ELECTRO-NIC, JohnNorth, HotRabbit, ENSAIER, Olegat0r, scorpion16_Richi, Oganyan-Arthur, Melodic_Death, toha257, farid, mugen, VovanLS, blacklizard, ZuZiK aka pavelsh, Metaler, Atreyu, Nook, Vov4ик, KnoonK, a6b6
den_po
Developer/Admin
Регистрация: 27.3.06 Сообщений: 3279 Репутация: 10763 Откуда: Чебоксары
#1982 [21.12.11, 17:10] Re: Создание Эльфов
SummerWood , вот из-за того, что некоторые такие идиоты занимаются написанием эльфов, среди некоторых пользователей бытует мнение, мол патчи стабильней эльфов
promt is better than google translate
Спасибо сказали: Nook, MrGraL
SummerWood
Пользователь
Регистрация: 26.8.10 Сообщений: 101 Репутация: 161
#1983 [21.12.11, 17:10] Re: Создание Эльфов
den_po,так и ожидал что ты так скажешь
увы ,но твоё мнение ошибочно
но я же не идиот
да,но где им прочитать как надо делать правильно?
[ Редактировано SummerWood в 21.12.11 16:14 ]
[ Редактировано SummerWood в 21.12.11 16:19 ]
Предупреждение от den_po Нарушение правил: 5.3.21. Нежелание или неумение неторопливо прочитать Форум и найти ответы, не задавая глупых вопросов в виде флуда в несоответствующей теме.
Спасибо сказали: IDOL1234
blacklizard
Patchmaster
Регистрация: 22.7.08 Сообщений: 347 Репутация: 2213
#1984 [21.12.11, 19:11] Re: Создание Эльфов
D3mon пишет:
den_po , стало чуть понятнее, спасибо!
У класса IShell есть метод:
Код:
int IShell_CreateInstance(PUUID cid, PUUID iid, void** pInterface);
отличается ли этот метод от функции CoCreateInstance ?
в прошивке встречается и такое, и такое использование..
if you dump IShell object, you can see the IShell_CreateInstance pointer store the address of CoCreateInstance
Respect: mc_kibel, moedjs, myrzeug, den_po, IronMaster
Спасибо сказали: farid
SERGK393
Elfmaker
Регистрация: 25.1.09 Сообщений: 330 Репутация: 1897 Откуда: Воронеж, Россия
#1985 [24.12.11, 14:55] Re: Создание Эльфов
SummerWood пишет: в wiki не описаны функции DispObject_SetRefreshTimer DispObject_Show DISP_DESC_SetOnRedraw DISP_DESC_SetOnRefresh можете подсказать как их использовать и какие параметры за что отвечают?
А что тут блин догадываться?
DispObject_SetRefreshTimer - это таймер, выставляет паузу
DispObject_Show - показывает дисп обж, который относится к гуи, к дисп деск, ну итд.
DISP_DESC_SetOnRedraw - назначается функа, где можно рисовать
DISP_DESC_SetOnRefresh - это к первой функе, но тут как раз назначается функа к таймеру
Для начала надо простенький эльф сделать, перебрать все уроки, а потом спрашивать что то
K310I - R4 HA 014 WMR 795407939817 WMZ 160582394547
Спасибо сказали: SummerWood
SummerWood
Пользователь
Регистрация: 26.8.10 Сообщений: 101 Репутация: 161
#1986 [30.12.11, 18:23] Re: Создание Эльфов
КАК сделать чтобы гуй на полный экран рисовался,а то видно статусбар и софты
D3mon
Developer
Регистрация: 23.2.08 Сообщений: 1141 Репутация: 10348 Откуда: Краснодар
#1987 [30.12.11, 18:29] Re: Создание Эльфов
SummerWood ,
неужели так сложно найти исходники эльфов/патчей с таким гуи ????
Код:
GUIObject_SetStyle( gui, UI_OverlayStyle_TrueFullScreen ); GUIObject_SoftKeys_Hide( gui );
[ Редактировано D3mon в 30.12.11 18:55 ]
Sony Xperia XZ3 GreenSony Xperia Z3 Compact Orange W995i SW-R1GA026 :(
Спасибо сказали: SummerWood
den_po
Developer/Admin
Регистрация: 27.3.06 Сообщений: 3279 Репутация: 10763 Откуда: Чебоксары
#1988 [30.12.11, 18:49] Re: Создание Эльфов
D3mon , не нужно использовать числа, нужно использовать константы из types.h. глянь UI_OverlayStyle_t
promt is better than google translate
Спасибо сказали: D3mon, SummerWood
albertnet3
Patcher/Elfmaker
Регистрация: 12.6.09 Сообщений: 283 Репутация: 1826 Откуда: Argentina-Bs. As.
#1989 [31.12.11, 04:37] Re: Создание Эльфов
how to perform an action without restart in this type of gui.
I hope your help, thanks:)
I tried this way and reboot my phone:
Код:
int action1() { MessageBox(EMPTY_TEXTID,STR(" NofMany 1"),0, 1 ,5000,0); return (1); } int action2() { MessageBox(EMPTY_TEXTID,STR(" NofMany 2"),0, 1 ,5000,0); return (1); } int action3() { MessageBox(EMPTY_TEXTID,STR(" NofMany 3"),0, 1 ,5000,0); return (1); } int action4() { MessageBox(EMPTY_TEXTID,STR(" NofMany 4"),0, 1 ,5000,0); return (1); } void onEnterSettings(BOOK *book,GUI* ) { MyBOOK *m_bk = (MyBOOK *)book; u16 checked_table[4]; NOfMany_GetChecked( m_bk->nom , checked_table ); if(checked_table[0]) action1(); if(checked_table[1]) action2(); if(checked_table[2]) action3(); if(checked_table[3]) action4(); } int CreateNofMany(void *r0, BOOK *book) { GUI_NOFMANY * nom = CreateNOfMany( book ); int sid[4]; sid[0]=STR( "texto 1" ); sid[1]=STR( "texto 2" ); sid[2]=STR( "texto 3" ); sid[3]=STR( "texto 4" ); NOfMany_SetTexts( nom , sid , 4 ); ... ... GUIObject_Softkey_SetAction(nom,ACTION_ACCEPT, onEnterSettings); }
and this reboot my phone:
Код:
typedef struct{ int Estyle1; int Estyle2; int Estyle3; int Estyle4; }FILE_DATA; typedef struct{ int is1; int is2; int is3; int is4; }MY_DATA; typedef struct { BOOK * book; GUI_NOFMANY * nom; FILE_DATA MY_DATA; }MyBOOK; int action1() { if(GetChecked()==0){ MessageBox(EMPTY_TEXTID,STR(" NofMany 1"),0, 1 ,5000,0); } return (1); } int action2() { if(GetChecked()==1){ MessageBox(EMPTY_TEXTID,STR(" NofMany 2"),0, 1 ,5000,0); } return (1); } int action3() { if(GetChecked()==2){ MessageBox(EMPTY_TEXTID,STR(" NofMany 3"),0, 1 ,5000,0); } return (1); } int action4() { if(GetChecked()==2){ MessageBox(EMPTY_TEXTID,STR(" NofMany 4"),0, 1 ,5000,0); } return (1); } int GetChecked() { int f; int ret=0; if ( (f = _fopen( FILE_PATH,FILE_NAME, FSX_O_RDONLY, FSX_S_IREAD|FSX_S_IWRITE, 0)) >=0 ) { FILE_DATA *fd = (FILE_DATA*)malloc(sizeof(FILE_DATA)); memset (fd,0,sizeof(FILE_DATA)); fread( f, fd, sizeof(FILE_DATA)); if(fd->Estyle1==1)ret=0; else if(fd->Estyle2==1)ret=1; else if(fd->Estyle3==1)ret=2; else if(fd->Estyle4==1)ret=3; fclose (f); mfree(fd); } return ret; } void SetChecked(int level, BOOK*book) { MyBOOK *m_bk = (MyBOOK *)book; int f; if ( (f = _fopen( FILE_PATH,FILE_NAME, FSX_O_RDONLY, FSX_S_IREAD|FSX_S_IWRITE, 0)) >=0 ) { FILE_DATA *fd = (FILE_DATA*)malloc(sizeof(FILE_DATA)); memset (fd,0,sizeof(FILE_DATA)); fread( f, fd, sizeof(FILE_DATA)); m_bk->MY_DATA=*fd; fclose (f); mfree(fd); } if (level==0) { m_bk->MY_DATA.Estyle1=1; m_bk->MY_DATA.Estyle2=0; m_bk->MY_DATA.Estyle3=0; m_bk->MY_DATA.Estyle4=0; } else if(level==1) { m_bk->MY_DATA.Estyle1=0; m_bk->MY_DATA.Estyle2=1; m_bk->MY_DATA.Estyle3=0; m_bk->MY_DATA.Estyle4=0; } else if(level==2) { m_bk->MY_DATA.Estyle1=0; m_bk->MY_DATA.Estyle2=0; m_bk->MY_DATA.Estyle3=1; m_bk->MY_DATA.Estyle4=0; } else if(level==3) { m_bk->MY_DATA.Estyle1=0; m_bk->MY_DATA.Estyle2=0; m_bk->MY_DATA.Estyle3=0; m_bk->MY_DATA.Estyle4=1; } if ( (f = _fopen( FILE_PATH,FILE_NAME, FSX_O_WRONLY, FSX_S_IREAD|FSX_S_IWRITE, 0)) >=0 ) { FILE_DATA *fd = (FILE_DATA*)malloc(sizeof(FILE_DATA)); memset (fd,0,sizeof(FILE_DATA)); *fd=m_bk->MY_DATA; fwrite(f,fd,sizeof(FILE_DATA)); fclose (f); mfree(fd); } } void onEnterSettings(BOOK *book,GUI* ) { MyBOOK *m_bk = (MyBOOK *)book; u16 checked_table[4]; NOfMany_GetChecked( m_bk->nom , checked_table ); if(checked_table[0]) SetChecked(0,book); if(checked_table[1]) SetChecked(1,book); if(checked_table[2]) SetChecked(2,book); if(checked_table[3]) SetChecked(3,book); } { GUI_NOFMANY * nom = CreateNOfMany( book ); int sid[4]; sid[0]=STR( "texto 1" ); sid[1]=STR( "texto 2" ); sid[2]=STR( "texto 3" ); sid[3]=STR( "texto 4" ); NOfMany_SetTexts( nom , sid , 4 ); ... ... GUIObject_Softkey_SetAction(nom,ACTION_ACCEPT, onEnterSettings); }
if I press softkey action accept or action "Yes" in the question save change reboot my phone.
I hope your help, thanks:)
Confidence in yourself is the first secret of success(R. W. Emerson)
ZverUA
Elfmaker
Регистрация: 6.3.09 Сообщений: 131 Репутация: 724 Откуда: Полтава
#1990 [08.01.12, 02:42] Re: Создание Эльфов
Что более оптимально использовать? Ловушку для всех событий (NIL_EVENT) или таймер?
WMZ 360930633630 WMR 368626930223 WMU 185607343806
mmcorp
Patcher/Elfmaker
Регистрация: 14.5.08 Сообщений: 358 Репутация: 2528 Откуда: Ржев
#1991 [08.01.12, 18:12] Re: Создание Эльфов
ZverUA , в плане производительности - таймер. Но тут зависит от поставленной задачи, есть такие, где оптимальнее поставить ловушку на событие.
не занимаюсь эльфами и патчами (=Siemens c75 -> SonyEricsson k610i + SonyEricsson w595 + SonyEricsson w580i -> HTC Desire Z
Спасибо сказали: ZverUA, Metaler
Похожие темы
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.