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 (
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
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: Создание Эльфов
вышеприведённый пример больше касается работы с гуями конкретной книги. а если переделать вот так
можно будет наблюдать все гуи любых книг
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:
albertnet3,
Blacklizard,
den_po,
zylka,
mmcorp,
Vov4ик,
IronMaster,
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:
albertnet3,
Blacklizard,
den_po,
zylka,
mmcorp,
Vov4ик,
IronMaster,
mmcorp,
den_po
Developer/Admin
Регистрация: 27.3.06 Сообщений: 3279 Репутация: 10763 Откуда: Чебоксары
#1629 [09.02.11, 20:08] Re: Создание Эльфов
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
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?
Похожие темы
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.