Перейти к содержанию
Old Phone Forum
  • Вход

    Вы сейчас не залогинены на форуме.

    Для возможности комментариев, загрузки файлов, подписок на ответы - вам надо войти.

Задаем вопросы по теме "Портирование патчей, для начинающих"


Рекомендуемые сообщения

  • Ответов 947
  • Создана
  • Последний ответ

Топ авторов темы

Lover-boy, это значит, что код, который расположен по этому адресу, будет вставлен в патч в размере 6 байт.

Пожертвования отправлять сюда R256859050930

Ссылка на комментарий
Поделиться на другие сайты

F3n1X, спасибо! Вот еще у меня вопрос появился! Разбираюсь в патче Ниагара, и там есть такая строка:

.start 0x10b38da0

.word 0,0x00180018,0x480,0x0604,lang_icon_big1

Что за параметры 0x00180018, 0х480 и 0х0604 ???

Ссылка на комментарий
Поделиться на другие сайты

Lover-boy, ну вообще, в BinEdit директива .word вставляет в код патча 4 байта.

Например,

.word 0x10112233

откомпилируется так: 33221110

--------------------------------------------------

Или такой пример:

.equ MyFunction 0x11223344

..... ;какой-то код

.word MyFunction

получишь, разумеется 44332211

Обычно, эта директива используется для построения всякого рода таблиц.

Таакже, может явно указывать на расположение данных. (например, в макросах).

-------------------------------------------------

P.S. Допускаю, что могу ошибаться... 8)

P.P.S. Все для ARM Little Endian

Сделал дело, вымой тело...

Нужна помощь? Ждем на irc-канале #sgh

Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

Помогите разобраться в следующем:

 

Имеется строка в МСС:

52 16 0000 0000 000005C7 004299A8 05C7 Пункт меню Повторите имя

 

Вопрос таков:

как, зная адрес текста "Повторите имя", узнать его код для записи в МСС

52 16 0000 0000 000005C7 004299A8 05C7, т.е. если я хочу , чтоб у меня пункт меню был "Повторите имя", то как мне знать, какой код писать в выделенную область.

Спасибо.

 

З.Ы. Нет ли у кого, случайно, подправленного и дополоненого SYM для Е820XEDG1 ( который на портале, слабоват)?

Multum vinum bibere, nоn diu vivere

Ссылка на комментарий
Поделиться на другие сайты

узнать его код для записи в МСС

Это индекс,открой в ресмане и посмотри,кроме адреса,он еще выдает и индекс текстового ресурса
/ Чтобы боялись чужие, не обязательно бить своих.../
Ссылка на комментарий
Поделиться на другие сайты

Это индекс,открой в ресмане и посмотри,кроме адреса,он еще выдает и индекс текстового ресурса

Так тоже можно, но легче посмотреть в бинедите :( На вкладке языковые ресурсы выбираем нужный нам язык и тычем кнопку "Обновить индексы". Вылезут все надписи, индексы и адреса :59:

Пожертвования отправлять сюда R256859050930

Ссылка на комментарий
Поделиться на другие сайты

Спасибо!

Еще одно: не могу найти эквивалентный адрес для своей прошивки "kvm_ParseKbdInd". Есть на х100dg1, х460dj5, е820dg1 и е330dk3, а на моей карте для х620хеен4 - нет (наверное, просто имеет другое название). Не подскажете?

Multum vinum bibere, nоn diu vivere

Ссылка на комментарий
Поделиться на другие сайты

karas,

вот мой sym E820XEDG1, неоригинальный конечно, но более менее

E820XEDG1.ZIP

Работай, как будто тебе не надо денег,

Люби, как будто тебе никто никогда не причинял боль,

Танцуй, как будто никто не смотрит,

Пой, как будто никто не слышит,

Живи, как будто на земле рай.

Ссылка на комментарий
Поделиться на другие сайты

KR-Electronics

 

Cпасибо за символику. Пользуясь случаем, хочу задать вопрос:

Портирую твою версию патча Java Sleep2E для Е820. Загвоздка с адресом 00053A28 в районе kvm_ParseKbdInd. Это адрес кнопки ВКЛ/Выкл в Java, или нет?

Multum vinum bibere, nоn diu vivere

Ссылка на комментарий
Поделиться на другие сайты

karas,

честно скажу, не знаю :)

я портировал с х100 и как-то не задавался этим вопросом

может тебе dimastyj поможет, он автор этого патча

Работай, как будто тебе не надо денег,

Люби, как будто тебе никто никогда не причинял боль,

Танцуй, как будто никто не смотрит,

Пой, как будто никто не слышит,

Живи, как будто на земле рай.

Ссылка на комментарий
Поделиться на другие сайты

подскажите пожалуйста что делает функция DrawVLine ?

если я не ошибаюсь, то рисует вертикальные полосы

Работай, как будто тебе не надо денег,

Люби, как будто тебе никто никогда не причинял боль,

Танцуй, как будто никто не смотрит,

Пой, как будто никто не слышит,

Живи, как будто на земле рай.

Ссылка на комментарий
Поделиться на другие сайты

Java Sleep2E для Е820. Загвоздка с адресом 00053A28 в районе kvm_ParseKbdInd. Это адрес кнопки ВКЛ/Выкл в Java, или нет?

Для x100/x600 какой адрес?

Всё ещё будет...
Ссылка на комментарий
Поделиться на другие сайты

Помогите, пожалуйста, разобраться в следующем: нашел у себя (Х620ХЕЕН4) код, отвечающий за прорисовку редактора СМС. Код этот имеет следующие данные:

000F2724:	0161A460	DCD	gv_SmsEditMode ;(0x0161A460)	;данные для команды по адресу 0xF242C
000F2728:	0100543C	DCD	Mg4_Client_Rect ;(0x0100543C)	;данные для команды по адресу 0xF242E
000F272C:	008D6968	DCD	IconTable ;(0x008D6968)	;данные для команды по адресу 0xF23F0
000F2730:	015D4EBE	DCD	SmsInboxTitleColor ;(0x015D4EBE)	;данные для команды по адресу 0xF243E
000F2734:	015D4EC2	DCD	SmsInboxLeftArrowIcon ;(0x015D4EC2)	;данные для команды по адресу 0xF2452
000F2738:	015D4EC4	DCD	SmsInboxRightArrowIcon ;(0x015D4EC4)	;данные для команды по адресу 0xF2496
000F273C:	015D4EC6	DCD	SmsInboxLineIcon ;(0x015D4EC6)	;данные для команды по адресу 0xF24DA
000F2740:	0058BA3C	DCD	Magic4_sim_icon ;(0x0058BA3C)	;данные для команды по адресу 0xF2526
000F2744:	015D4E6C	DCD	f_height ;(0x015D4E6C)	;данные для команды по адресу 0xF2528
000F2748:	0058BC14	DCD	Magic4_me_icon ;(0x0058BC14)	;данные для команды по адресу 0xF25DE
000F274C:	015D4E3E	DCD	f_font ;(0x015D4E3E)	;данные для команды по адресу 0xF2602
000F2750:	0061DF08	DCD	aFontHeight ;(0x0061DF08)	;данные для команды по адресу 0xF2606
000F2754:	01628813	DCD	ga_SmsTimeString ;(0x01628813)	;данные для команды по адресу 0xF2620
000F2758:	0058C236	DCD	Magic4_saved_msg_icon ;(0x0058C236)	;данные для команды по адресуó 0xF2632
000F275C:	0000054C	DCD	0x0000054C	;данные для команды по адресу 0xF2696
000F2760:	015D4E66	DCD	fx_pos ;(0x015D4E66)	;данные для команды по адресу 0xF267A
000F2764:	015D4E68	DCD	fy_pos ;(0x015D4E68)	;данные для команды по адресу 0xF2680
000F2768:	015D4E6A	DCD	f_width ;(0x015D4E6A)	;данные для команды по адресу 0xF2686

Так вот: адреса SmsInboxTitleColor (0x015D4EBE), SmsInboxLeftArrowIcon (0x015D4EC2), SmsInboxRightArrowIcon (0x015D4EC4), f_height ;(0x015D4E6C) и др. находятся вне прошивки и просмотреть эти данные я не могу. В чем фишка? Или, может, это вовсе не адреса? Тогда что мне сделать, чтобы я смог редактировать, например, SmsInboxTitleColor? Заранее благодарен.

 

dimastyj

Хорошо, я подожду.

Multum vinum bibere, nоn diu vivere

Ссылка на комментарий
Поделиться на другие сайты

Так вот: адреса SmsInboxTitleColor (0x015D4EBE), SmsInboxLeftArrowIcon (0x015D4EC2), SmsInboxRightArrowIcon (0x015D4EC4), f_height ;(0x015D4E6C) и др. находятся вне прошивки и просмотреть эти данные я не могу. В чем фишка?

Это преременные, т.е. адреса в оперативной памяти.

Где-то есть код, где в них записывается значение.

5073IA3.png
Ссылка на комментарий
Поделиться на другие сайты

karas, в строке поиска БинЭдит введи нужный тебе адрес (например, 015D4EBE), и нажми "Поиск всех адресов использования функции или адреса". Это Кнопка с буквой "А" и лупой. Вот там и смотри.

Сделал дело, вымой тело...

Нужна помощь? Ждем на irc-канале #sgh

Ссылка на комментарий
Поделиться на другие сайты

Добрый день!

Подскажите, как найти место в оперативке,т.е.

мне нужно создать буфер,для этого нужно свободное место в оперативе, его нужно найти т.е. обрезать от чего-нибудь

дак вот как найти то от чего можно отрезать? например как найти буфер под ммс? или ещё какие?

Ссылка на комментарий
Поделиться на другие сайты

Подскажите, как найти место в оперативке,т.е.

мне нужно создать буфер,для этого нужно свободное место в оперативе, его нужно найти т.е. обрезать от чего-нибудь

дак вот как найти то от чего можно отрезать?

Оператива используется в патчах -=Мастер-патч=-, Чёрно-белый список (Д600е).... Посмотри какой адрес используется для оперативки в этих патчах... вот от них и отталкивайся...

Пожертвования отправлять сюда R256859050930

Ссылка на комментарий
Поделиться на другие сайты

Подскажите, как найти место в оперативке,т.е.

смотря сколько оперативки требуется?

если не очень много, может стоит воспользоваться встроенными возможностями прошивки по выделению памяти. Есть 2 варианта.

1. Когда надо совсем немного :bx: . в начале функции ставится SUB SP, #0xXXX в конце ADD SP,#0xXXX. Этим можно зарезервировать 0xXXX байт в стеке. получить доступ к ним можно через LDR Rx [sP,0xYY] и STR Rx [sP,0xYY]

2. Можно воспользоваться средствами выделения памяти из "кучи" (например RtkGetMemory,RtkReleaseMemory для sysol) в первую как правило передаётся в R0 требуемый размер, получается в R0 адрес этого блока памяти. во вторую передаётся адрес блока, для освобождения памяти. Используется аналогично. В начале функции просим, в конце освобождаем. Можно просить очень много, но не факт, что много дадут :idea: . Килобайт 10 наверное найдётся всегда.

 

PS. Если используется компилятор в binedit, то для первого случая процесс выделения-освобождения памяти немного автоматизирован. Директивой .equsp можно создавать локальные метки, под которые резервируется место в стеке. обращаться к ним можно командами работы со стеком, заменяя [sp,0xXX] на имя метки. Подробнее вроде в описании к компилятору написано.

Одна из последних версий binedit здесь.

AlexeyK.gif

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти



×
×
  • Создать...