Патчи *.VKP (DB 2000/2010/2012) : Патчи : Форум |
Страница 36 из 271: « 1 ... 32 33 34 35 [36] 37 38 39 40 ... 271 » |
den_po: |
26.12.06, 09:43 |
IronMaster а сам? адреса функций знаешь? знаешь. поглядеть, как они в прошивке используются можешь? можешь Код: adr r1,openflags ; указатель на ascii строчку "rb" - чтение бинарного файла adr r0,fullname ; указатель на unicode строчку "/папка/файл" bl FSX_Open ; открываем файл mov r6,r0 ; сохраняем хэндл открытого файла на будущее sub sp,sp,4 ; читать будем в стек, выделяем место в стеке для этого mov r3,r0 ; для чтения хэндл в r3 должен быть mov r2,1 ; размер элемента для чтения mov r1,4 ; число элементов для чтения mov r0,sp ; адрес, куда будем читать, ячейка в стеке bl FSX_Read ; читаем ; тут можно поставить проверку на ошибки чтения ldr r7,[sp] ; получаем в регистре r7 прочитанное значение add sp,sp,4 ; восстанавливаем стек mov r0,r6 ; хэндл мы сохраняли в r6, берём сохранённое значение bl FSX_Close ; закрываем файл если ты хочешь всякие подсветки или другие настройки сохранять, то не лучше ли это делать в гдфс? найти неиспользуемые переменные проще простого, и пользоваться несложно. да и вообще, гдфс для таких целей больше подходит. вот адреса для k300 r2at003: GDFS_GetUnitSize = 0x446671E0 GDFS_Read = 0x446670B8 GDFS_ReadPartial = 0x44667188 GDFS_Write = 0x44666FD0 |
IronMaster: |
26.12.06, 13:26 |
den_po Спасибо огромное. Есть вопрос по исходным данным для гдфс. Как я понял в р1 идет адрес откуда(куда) записать(прочитать), в р2 - размер элемента, в р3 - не понял, но вроде постоянно 0. А в р0 я так понял должен идти адрес в гдфс? Но значение там постоянно находится через смещение от одного и того же адреса 44441ЕВВ (для R2CA001). Не мог бы ты пояснить, плиз. |
den_po: |
26.12.06, 13:45 |
IronMaster почти всё верно. кроме GDFS_ReadPartial r1 - смещение внутри переменной, откуда читать r2 - буфер приёма r3 - размер для GDFS_Write r3 возможно выполняет ту же роль, что r1 в GDFS_ReadPartial r0 - номер переменной плюс тот самый адрес (44441ЕВВ) |
IronMaster: |
26.12.06, 14:05 |
den_po А зачем используется этот адрес, если потом он все равно вычитается? И по поводу номера переменной, как его узнать? Каждый блок в гдфс имеет свой номер? |
den_po: |
26.12.06, 14:20 |
IronMaster по этому адресу лежит какая-то таблица. возможна таблица переменных, которые не удаляются после мастер-ресета. может ещё что, не знаю. номер переменной состоит из двух частей. в двух старших байтах номер логического блока, в младших номер переменной в блоке. например 00020CD4 (total call timers) - 2й логический блок, переменная номер CD4 данные хранятся в блоках с номерами 0..6. список всех существующих в теле переменных можно получить например с помощью gdfstool2, если выбрать setool_script и read |
Maximys: |
26.12.06, 15:25 |
Кому интересно, написал таблицу использования свободного места после маина и свободного места в ОЗУ. Для K300 SW-R2AT003: (44C6A440 - 44C6A4FF) - Мигание верхнего светодиода (возле ИК) при зарядке - 4C297928 (44C6A500 - 44C6A55F) - Откл подсветки клавы по горячей кнопке - 4C29792C (44C6A560 - 44C6A5BF) - Регулирование яркости дисплея - 4C297930 |
Joker XT: |
26.12.06, 15:49 |
den_po, а файл который сохраняется в Прочее, там память считается с адреса 4C000000? Свободное место в раме то что с нулями? |
IronMaster: |
26.12.06, 15:57 |
Joker_XT да. В файл записывается рама с адреса 4С000000 длиной 1 мегабайт. Свободное место это 0. |
den_po: |
26.12.06, 16:12 |
Joker_XT свободное место на самом деле не обязательно с нулями. и повторюсь, не нужно пользоваться этим способом для нахождения свободной памяти. лучше портируй под свою прошивку "сдвиг кучи" и получи стабильно свободное, а не редкоиспользуемое, место в памяти. |
Joker XT: |
26.12.06, 18:52 |
Может мне кто-нить объяснить каждую команду, но то я пытаюсь хоть как-нить научится делать патчи (большие) org setupwizard code16 push {r0-r7,lr} sub sp,sp,0x10 mov r0,0 push {r0} mov r2,4 mov r3,0x18 lsl r3,r3,4 adr r0,fpath adr r1,fname bl FSX_CreateFile_ add sp,sp,4 mov r6,r0 movl r1,0x4C000000 movl r2,0x00100000 bl FSX_Write_ mov r0,r6 bl FSX_Close_ add sp,sp,0x10 pop {r0-r7,pc} align 4 FSX_CreateFile_: ldr R3, _FSX_CreateFile_ BX R3 _FSX_CreateFile_ DCD (FSX_CreateFile+1) FSX_Write_: ldr R4, _FSX_Write_ BX R4 _FSX_Write_ DCD (FSX_Write+1) FSX_Close_: ldr R4, _FSX_Close_ BX R4 _FSX_Close_ DCD (FSX_Close+1) |
Страница 36 из 271: « 1 ... 32 33 34 35 [36] 37 38 39 40 ... 271 » |
URL этой темы: https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=376&start=350 © 2005-2018 supertrubka.org |