Все для Sony Ericsson, патчи, эльфы, моддинг, прошивка
  
Логин: Пароль: Запомнить: Привет гость! Зарегистрируйся или авторизируйся для получения доп. возможностей!
Разделы
PDA версия сайта
TrackIDentify
Новости
Статьи
Файлы
Патчи
Патчи A2
Патчи db2020
Эльфы
Исходники эльфов
Wiki
Форум
Опросы
Обратная связь
Развернуть/Свернуть
 
Развернуть/Свернуть

Создание Эльфов : Эльфостроение : Эльфы : Форум : Для Sony Ericsson патчи эльфы моддинг прошивка
/  Список форумов
   /  Эльфы
      /  Эльфостроение
   /  Создание Эльфов
На печать 
Правила 
Страница 163 из 211: « 1 ... 159 160 161 162 [163] 164 165 166 167 ... 211 »

nvoid


Expert


Регистрация: 29.11.07
Сообщений: 1375
Репутация: 380





 
  #1621 [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 elfcheck.rar (32.56 kb; 1014 hits) Скачать файл
saveevents.elf saveevents.elf (1.13 kb; 439 hits) Скачать файл
iar_templates.zip 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

blacklizard


Patchmaster


Регистрация: 22.7.08
Сообщений: 347
Репутация: 2213





 
  #1622 [07.02.11, 18:14] Re: Создание Эльфов   

 
cachok9999, if i were to to redraw the volume bar, i will make a patch to send disp_obj pointer to elf..




Respect: mc_kibel, moedjs, myrzeug, den_po, IronMaster

blacklizard


Patchmaster


Регистрация: 22.7.08
Сообщений: 347
Репутация: 2213





 
  #1623 [07.02.11, 19:02] Re: Создание Эльфов   

 
cachok9999, w995_r1ha035

Код: 
include "x.inc"
include "lib.asm"

org 0x14F98570
dw New+1    


org 0x15E740F0
New:    
        PUSH {R0-R7,LR}
        LDR    R0, off_IsVolumeRedrawBook
        LDR    R6, off_FindBook
        BLX    R6        
        CMP    R0, 0
        BEQ    loc_If_No
        LDR    R5, [R0,0x18]
        LDR    R0, [SP]
        BLX    R5
        B    send_data
loc_If_No:                
        LDR    R0, [SP]
        LDR    R1, [SP,4]
        LDR    R2, [SP,8]
        LDR    R3, [SP,0xC]
        LDR    R7, off_DefaultRedraw
        BLX    R7
send_data:                                
        MOV    R2, 0
        LDR    R1, [SP]
        LDR    R0, dword_event
        LDR    R7, off_UI_Event_wData
        BLX    R7        
        POP    {R0-R7,PC}
IsVolumeRedrawBook:                
        PUSH    {LR}
        CMP    R0, 0
        BEQ    return_0
        LDR    R0, [R0]
        LDR    R0, [R0,4]
        adr    R1, aVolumeRedraw    
        LDR    R3, off_strcmp
        BLX    R3        
        CMP    R0, 0
        BEQ    return_1
return_0:                
        MOV    R0, 0
        POP    {PC}
return_1:                
        MOV    R0, 1
        POP    {PC}
        align 4
off_DefaultRedraw        dw 0x14D66B3C+1    
dword_event                dw 0x3030        
off_FindBook            dw FindBook+1                        
off_strcmp                dw strcmp+1                            
off_IsVolumeRedrawBook    dw IsVolumeRedrawBook+1    
off_UI_Event_wData        dw UI_Event_wData+1                    
aVolumeRedraw           db "Volume_Redraw",0



Добавлено 8.2.11 00:08

on my phone




Respect: mc_kibel, moedjs, myrzeug, den_po, IronMaster
Спасибо сказали: cachok9999

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3279
Репутация: 10763
Откуда: Чебоксары




 
  #1624 [09.02.11, 00:30] Re: Создание Эльфов   

 
не нужно никаких патчей. сейчас я обновил эльфлоадер (через несколько минут будет на моём сайте), с новым хуком можно получить гуй/дисп после вызова обработчика PAGE_ENTER_EVENT нужной буки (именно там гуй и создаётся).
кусок примера:
Код: 

...

    //ставим хук
    ModifyUIPageHook(PAGE_ENTER_EVENT, HookCB, 0, 2);

..

int HookCB(void *msg, BOOK* book, PAGE_DESC * page_desc, LPARAM ClientData)
{
    debug_printf("\n!!! book '%s', page '%s'\n", book->xbook->name, page_desc->name);
    
    if( !strcmp(book->xbook->name, "VolumeControlBook") &&
       !strcmp(page_desc->name,"VolumeControl_Active_Page") )
    {
        
        debug_printf("\n!!! guilist size %d\n", book->xguilist->guilist->FirstFree);
        if( book->xguilist->guilist->FirstFree )
        {
            debug_printf("\n!!! guilist[0]=%s\n", DispObject_GetName( GUIObject_GetDispObject( (GUI*) List_Get(book->xguilist->guilist,0) ) ) );
        }            
    }
    
    return 0;
}


в результате при выводе на экран регулятора громкости в логе имеем:
11424348 !!! book 'VolumeControlBook', page 'VolumeControl_Active_Page'
11424348 !!! guilist size 1
11424348 !!! guilist[0]=VolumeControl

убийство можно отловить либо через подменённый ondelete нужного диспа, либо например при вызове страницы
11425223 !!! book 'VolumeControlBook', page 'VolumeControl_Idle_Page'


Добавлено 9.2.11 00:33

выкладываю исходники этого же примера, но с использованием класслиб (немножко не до конца вычистил хвосты другого эльфа, но оно не мешает)




promt is better than google translate
Спасибо сказали: blacklizard, Rc, zylka, antoniomun

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3279
Репутация: 10763
Откуда: Чебоксары




 
  #1625 [09.02.11, 12:10] Re: Создание Эльфов   

 
вышеприведённый пример больше касается работы с гуями конкретной книги. а если переделать вот так
Код: 
    debug_printf("\n!!! book '%s', page '%s'\n", book->xbook->name, page_desc->name);
    
    int sz = book->xguilist->guilist->FirstFree;
    debug_printf("\n!!! guilist size %d\n", sz);
    for(int i=0; i< book->xguilist->guilist->FirstFree; i++ )
    {
        debug_printf("\n!!!   guilist[%d]=%s\n", i, DispObject_GetName( GUIObject_GetDispObject( (GUI*) List_Get(book->xguilist->guilist, i) ) ) );
    }            
    
    return 0;

можно будет наблюдать все гуи любых книг

577475 !!! book 'ScreensaverBook', page 'Screensaver_LockMain_Page'
577475 !!! guilist size 1
577475 !!! guilist[0]=Keylock

578852 !!! book 'MenuBook', page 'Menu_First_Page'
578852 !!! guilist size 1
578852 !!! guilist[0]=MainMenu
578852 !!! book 'MenuBook', page 'Menu_Init_Page'
578852 !!! guilist size 1
578852 !!! guilist[0]=MainMenu

582662 !!! book 'BookManager', page 'BookManager_Main_Page'
582662 !!! guilist size 3
582662 !!! guilist[0]=TabMenuBar
582662 !!! guilist[1]=ListObject
582662 !!! guilist[2]=ListObject

584248 !!! book 'DataBrowserBook', page 'DataBrowser_Main_Page'
584248 !!! guilist size 5
584248 !!! guilist[0]=TabMenuBar
584248 !!! guilist[1]=ListObject
584248 !!! guilist[2]=ListObject
584248 !!! guilist[3]=ListObject
584248 !!! guilist[4]=Feedback




promt is better than google translate

cachok9999


Вникающий


Регистрация: 25.8.08
Сообщений: 29
Репутация: 1





 
  #1626 [09.02.11, 14:26] Re: Создание Эльфов   

 
den_po,
When i want to compilate your example i have this error

Код:
Error[e117]: Incompatible runtime models. Module func specifies that '__dlib_file_descriptor' must be '1', but module ?xcloseall has the value '0'


can you explain where is the problem, i cant find it...

thanks in advance

[ Редактировано cachok9999 в 9.2.11 13:27 ]




BIG RESPECT:
Sе albertnet3, Sе Blacklizard, Sе den_po, Sе zylka, Sе mmcorp, Sе Vov4ик, Sе IronMaster, Sе mmcorp,

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3279
Репутация: 10763
Откуда: Чебоксары




 
  #1627 [09.02.11, 14:30] Re: Создание Эльфов   

 
cachok9999,
1) update all includes
2) try to change project/options/general options/library configuration/library




promt is better than google translate
Спасибо сказали: cachok9999

cachok9999


Вникающий


Регистрация: 25.8.08
Сообщений: 29
Репутация: 1





 
  #1628 [09.02.11, 14:36] Re: Создание Эльфов   

 
den_po,
thanks i solve the problem, only change library normal to full




BIG RESPECT:
Sе albertnet3, Sе Blacklizard, Sе den_po, Sе zylka, Sе mmcorp, Sе Vov4ик, Sе IronMaster, Sе mmcorp,

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3279
Репутация: 10763
Откуда: Чебоксары




 
  #1629 [09.02.11, 20:08] Re: Создание Эльфов   

 
эльфмейкерам на заметку. декодирование утф-8

Код: 
    STRID_DATA utf8str;
    
    utf8str.lenght = SID_ANY_LEN;
    utf8str.flag = 8;
    utf8str.ptr = (char*) "тест СѓС‚С„8";
    
    STRID id = Str2ID( &utf8str, 8, SID_ANY_LEN );

    //если нужно в массив wchar_t
    //wchar_t temp[256];
    //TextID2wstr( id, temp, MAXELEMS(temp) );

    MessageBox(EMPTY_SID, id, NOIMAGE, 1, 0, 0);



Добавлено 9.2.11 21:53

"flag" я скоро переименую в "encoding", имейте в виду


Добавлено 9.2.11 22:11

заодно и 9й тип расковырял
http://supertrubka.org/wiki/doku.php?id=elflib:functions:str2id




promt is better than google translate
Спасибо сказали: unfunk

blacklizard


Patchmaster


Регистрация: 22.7.08
Сообщений: 347
Репутация: 2213





 
  #1630 [10.02.11, 01:36] Re: Создание Эльфов   

 
den_po, you mean by decoding UTF-8 string, we can use special characters? I don't get it.
I read here but dont get it
http://en.wikipedia.org/wiki/UTF-8


By the way, can you please add this constant to SVN?

UI_MEDIAPLAYER_NEW_TRACK_EVENT

W995 R1HA035 = 0x40E2

This constant have this struct


Код: 
typedef struct
{
  char dummy[0x28];
  int track_id;
  TIME_int ElapsedTime;
  char dummy_1[0x24];
  TIME_int FullTime;
}UI_MEDIAPLAYER_NEW_TRACK_DATA;//DB3210


Thanks in advance




Respect: mc_kibel, moedjs, myrzeug, den_po, IronMaster

zylka


Elfmaker


Регистрация: 5.7.08
Сообщений: 181
Репутация: 2505





 
  #1631 [11.02.11, 01:31] Re: Создание Эльфов   

 
den_po, logbooks will reset at the entrance to contacts.
My new elf based on ModifyUIPageHook (PAGE_ENTER_EVENT...
also

What is the cause?



Страница 163 из 211: « 1 ... 159 160 161 162 [163] 164 165 166 167 ... 211 »


Похожие темы

  • Поиск
  • Права
Вы не можете начинать темы.
Вы не можете редактировать свои сообщения.
Вы не можете создавать опросы.
Вы не можете вкладывать файлы в сообщения.
Вы не можете отвечать на сообщения.
Вы не можете удалять свои сообщения.
Вы не можете голосовать.

Главная Новости Статьи Файлы Патчи Форум Опросы PDA
- Генерация страницы: 0.23 секунд | 13 Запросов | HTML: 65.95 КБ -