Учимся писать патчи : Патчестроение : Форум

Страница 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, но разницы не заметил... и адресов, которые должны были появиться, как я понимаю, нет...
Куды девались? :lol:
Это адреса памяти (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