Учимся писать патчи : Патчестроение : Форум |
Страница 156 из 180: « 1 ... 152 153 154 155 [156] 157 158 159 160 ... 180 » |
den_po: |
15.07.10, 14:54 |
RaANdOoM пишет: И любой dword (4 байта) должен быть расположен по адресу кратному 4-ем. не любой, а тот, который читается с помощью ldr. макрос adr может использовать некратные адреса в arm режиме. но и в арм чтение дворда по некратным адресам может вызвать ребут. то бишь такое Код: code32 adr r0,x ; тут всё ок ldr r1,[r0] ; а вот тут ребут align 4 db 1 x: dw 2 Добавлено 15.7.10 14:57 2 passes, 104 bytes. компилятор выполнил два прохода. бывает, что за один проход компилятор не может вычислить все выражения, тогда выполняется повторная компиляция. так до тех пор, пока не будет ошибки либо не будет вычислено всё необходимое. |
Ivanchick: |
15.07.10, 21:16 |
Вот сейчас сделал еще раз исходник, на 99,99% уверен, что адреса портировал верно: Код: include "x.inc" ; --------------------------------------------------------------------------- org 0x10FEF1F4 ;117e75e6 LDR R2, off_10FEF1FA ;117E75EC BX R2 align 4 off_10FEF1FA DCD loc_12181100+1 ;117E75EC 126ab2e0+1 ; --------------------------------------------------------------------------- addr1 = 0x10FEF1FE+1 ;117E75F0+1 addr2 = 0x10FEF0F5 ;117E74FD addr3 = 0x1168F908+1 ;1080D3A4+1 addr4 = 0x1168F980+1 ;1080D41C+1 addr5 = 0x115D2E24+1 ;10DF0A04+1 addr6 = 0xBE3 ;BF3 ; --------------------------------------------------------------------------- org 0x12181100 ;126ab2e0 CODE16 loc_12181100: ;126ab2e0 ; DATA XREF: ROM:off_117E75ECo LDR R2, off_12181134 ;126AB314 LDR R0, [R6,0x14] ADD R1, R7, 0 LDR R3, off_12181138 ;126AB318 BLX R3 LDR R2, dword_12181144 ;126AB324 MOV R1, 0 LDR R0, [R6,0x14] LDR R3, off_1218113C ;126AB31C BLX R3 adr R2, sub_12181124 ;126AB304 ADD R2, 1 MOV R1, 0 LDR R0, [R6,0x14] LDR R3, off_12181138 ;126AB318 BLX R3 LDR R1, off_12181130 ;126AB310 BX R1 ; =============== S U B R O U T I N E ======================================= sub_12181124: ;126AB304 PUSH {R0-R7,LR} MOV R1, 0 LDR R7, off_12181140 ;126AB320 BLX R7 POP {R0-R7,PC} ; End of function sub_126AB304 ; --------------------------------------------------------------------------- align 4 off_12181130 DCD addr1 ;126AB310 off_12181134 DCD addr2 ;126AB314 off_12181138 DCD addr3 ;126AB318 ; ROM:126AB2FCr off_1218113C DCD addr4 ;126AB31C off_12181140 DCD addr5 ;126AB320 dword_12181144 DCD addr6 ;126AB324 ; ends Хоть здесь адреса и не кратны 4-ем, ошибки не выдало: Код: org 0x10FEF1F4 ;117e75e6 LDR R2, off_10FEF1FA ;117E75EC BX R2 align 4 off_10FEF1FA DCD loc_12181100+1 ;117E75EC 126ab2e0+1 Получилось вот: Патч: +10000000 Но телефон при воспроизведении мелодии из ФМ ребутит... (при воспроизведении должна появляться кнопка "сверн.")Код: |
Therion: |
15.07.10, 21:50 |
Столкнулся с проблемой. получаю ребут при использовании функции Вот часть кода: ldr r0, icon2 ; загрузка иконки пункта, если её нету ldr r2, _null ; 0xFFFF push {r0} mov r3, 0 ; центрирование иконки mov r1, 3 ; установка для определённого пункта add r0, r4, 0 ; указатель гуи bl _setup_icons ; установка иконки add sp, sp, 8 .................. _setup_icons: push {r3} ldr r3, _set_funk mov r12, r3 pop {r3} bx r12 ................. _set_funk dw 0x452D9F10+1 ; ListMenu_SetItemIcon ято я не так делаю? |
-Sotik-: |
16.07.10, 00:49 |
Ivanchick писал: Хоть здесь адреса и не кратны 4-ем, ошибки не выдало: Код: org 0x10FEF1F4 ;117e75e6 LDR R2, off_10FEF1FA ;117E75EC BX R2 align 4 off_10FEF1FA DCD loc_12181100+1 ;117E75EC 126ab2e0+1 а для чего ты писал здесь align 4? Код: align (англ.яз), Глагол выравнивать присоединяться з.ы. что за патч и откуда-куда портируешь? |
Joker XT: |
16.07.10, 04:56 |
Тэйрон, ты чё) После ф-ии эдд сп, сп, 4 надо а не 8, тыж тока один регистр в стек бросил |
Therion: |
16.07.10, 07:46 |
Joker XT, вобщем я пересмотрел как юзается эта функа в мэйне.. я перепробывал и add sp,sp,4 add sp,sp,8 add sp,sp,0xC результат один и тот же.. ребут остался.. пробывал менять вызов функи,то есть _setup_icons: push {r3} ldr r3, ListMenu_SetItemIcon mov r12, r3 pop {r3} bx r12 и так: _setup_icons: ldr r3, ListMenu_SetItemIcon blx r3 вообще наверное надо дать больше кода,дело может быть и в другом.. org 0x44DC0D60 ldr r3, list bx r3 list dw patch_list+1 org0x... patch_list: cmp r0, r1 bne case ldr r1, no_name_text b next case: add r1, r0, 0 next: add r0, r4, 0 ldr r3, SetMenuItemText0 blx r3 ldr r0, icon2 ; загрузка иконки пункта, если её нету ldr r2, _null ; 0xFFFF mov r3, 0 ; центрирование иконки mov r1, 2 ; установка для определённого пункта push {r0} add r0, r4, 0 ; указатель гуи bl _setup_icons ; установка иконки add sp, sp, 4 ldr r3, return_list bx r3 _setup_icons: ldr r3, ListMenu_SetItemIcon blx r3 align 4 ListMenu_SetItemIcon dw 0x452D9F10+1 _null dw 0xFFFF icon2 dw 0xEDD0 SetMenuItemText0 dw 0x452DA718+1 no_name_text dw 0xA29 заманался с этим патчем уже.... получилось у меня прилепить функой SetListObjectItemIcon ,но это одна иконка на все пункты а мне надо отдельную на все.. Добавлено 16.7.10 06:48 return_list dw 0x44DC0D70+1 |
Joker XT: |
16.07.10, 09:20 |
Давай в аську, а то с тела не удобно) |
Ivanchick: |
16.07.10, 09:35 |
Sotik11 пишет: Ivanchick писал: Хоть здесь адреса и не кратны 4-ем, ошибки не выдало: Код: org 0x10FEF1F4 ;117e75e6 LDR R2, off_10FEF1FA ;117E75EC BX R2 align 4 off_10FEF1FA DCD loc_12181100+1 ;117E75EC 126ab2e0+1 а для чего ты писал здесь align 4? Код: align (англ.яз), Глагол выравнивать присоединяться з.ы. что за патч и откуда-куда портируешь? Потому что было так: Код: org 0x10FEF1F4 LDR R2, off_10FEF1FA BX R2 DCB 0xFF DCB 0xFF off_10FEF1FA DCD loc_12181100+1 Пытаюсь портировать с W595 R3EF001 на W910 R1FA037 патч: Патч: ;Add left softkey "Minimize" for playing music in FileManager ;To stop playing you must go to book "File Options" from Activity Menu ;(!) Need to use with BookManager И еще вопрос: я взял чистый phone_app.cxc, вырезал из него все до 18F09FE518F09FE5, затем глянул на места для замейна... Сначала где нужно (согласно учету замейна) шли нули, а потом нули сменили разные последовательности (опять же в местах соласно учету замейна). Мне их что, на нули править? И еще, поставил heap shift, но разницы не заметил... и адресов, которые должны были появиться, как я понимаю, нет... Что я неправильно сделал или что я не понимаю? |
HotRabbit: |
16.07.10, 13:21 |
Ivanchick, для твоей прошивки адрес off_ итак кратен 4, так что "align 4" ничего не изменит Кароче, вот исх: Вот патч: Spoiler: Ivanchick писал: И еще вопрос: я взял чистый phone_app.cxc, вырезал из него все до 18F09FE518F09FE5 Компилировать надо на чистом phone_app.cxcЕсли в дизассемблере хочешь видеть нули, отрезай до 0x2000, и после 0x2181000 (для W910 R1FA037), добавь нулей сколько надо, если надо... Или юзай cxc_loader, а для замейновых патчей правь сегменты Ivanchick писал: И еще, поставил heap shift, но разницы не заметил... и адресов, которые должны были появиться, как я понимаю, нет... Куды девались? Это адреса памяти (0x2Axxxxxx), которая выделяется под нужды патчей И судя по этому посту HeapShift на W910 вряд ли правильный |
D3mon: |
03.08.10, 02:03 |
Подскажите, пожалуйста, каким образом можно узнать кол-во дорожек, находящихся во временном списке в плеере.. |
Страница 156 из 180: « 1 ... 152 153 154 155 [156] 157 158 159 160 ... 180 » |
URL этой темы: https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=965&start=1550 © 2005-2018 supertrubka.org |