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

KonstanT

Участники
  • Постов

    16
  • Зарегистрирован

  • Посещение

Репутация

1 Обычный

Дополнительные поля

  • Модель телефона
    SGH-D880

Информация

  • Пол
    Мужчина
  1. Эх... а я вот, пользую Недавно шлейф поменял, протёр спиртом, смазал направляющие.... стал, как новый.... ну, почти Пока ухайдокаю этот аппарат, появиться ещё что более новое...
  2. Давно не заглядывал, думал, уже библиотеку функций под дуос составили, эльф-пак соорудили.... А тут пока шрифты подбираем и уведомления отключаем..... За прошедшие 2 года не нашёл ни одного нового патча, который хотелось бы поставить. Нисколько не хочу уменьшить респект патчерам за проделанный труд, но масштаб не тот. Эльф-пак совершил бы прорыв, как это было в сименсах. Жалко, с моей работой, времени совсем не остаётся... если бы, как на прошлой, то, может, сам и занялся бы.....
  3. Читаем в доке: V Is set in one of two ways: • For an addition or subtraction, V is set to 1 if signed overflow occurred, regarding the operands and result as two's complement signed integers. • For non-addition/subtractions, V is normally left unchanged (but see the individual instruction descriptions for any special cases). Ну, по поводу MULa, так там чётко написпно, что V флаг она не изменяет. А пример выше относится к первому пункту приведённой цитаты, в котором говорится о знаковом переполнении, т.е. складываться/ вычитаться должны знаковые числа. Попробуй сложи максимальное целое - 7FFFFFFF и 1, в результате получится отрицательный нуль (?!) 80000000, по-идее, должен выставиться V флаг... о результатах сообщи Вообще-то флага переноса достаточно для определения переполнения регистра, зачем тебе флаг V?
  4. Была такая байда в Сименсах, вроде, побороли... Посмотри здесь, я думаю, собака здесь порылась...
  5. Да, табличный переход! Ещё раз респект автору БинЕдита! Ну что ж, значит, этот макрос будет полезен тем, кто пользуется другими компилерами...
  6. Не понимаю, зачем дублировать уже имеющиеся команды? Для чтения слова достаточно модернизировать ужо имеющююся функцию чтения на предмет того, что если не задана длина LLLL, значит надо читать слово (адрес при этом подгоняется под границу слова - &0xFFFFFFFС). Потом, объясни мне разницу в командах 1 и 9 , если я хочу записать слово по указанному адресу? ИМХО, не надо плодить дублирующие функции, надо наращивать функкционал имеющихся.
  7. На днях написал один тумбовый макрос для перехода по номеру - tCase8, для замены конструкций CMP Rn, #0 BEQ ... CMP Rn, #1 BEQ ... CMP Rn, #2 BEQ ... ... Макрос на 8 переходов (на 7 работает тоже), если нужно меньше - надо подправить число параметров в теле макроса. Код, компилируемый из макроса, более оптимален и по объёму , и по скорости выполнения, та как преобразуется не к последовательным проверкам на совпадение, а на табличном переходе по номеру (ИДА нормально понимает такие переходы). Вот, например, следующий исходный код: subpr: push {r3-r7,lr} ldrb r0,[r0] tCase8 0,8,finish,l1,l2,l3,l4,l5,l6,l7,l8 l1: mov r0,#0 b finish l2: mov r0,#1 b finish l3: mov r0,#2 b finish l4: mov r0,#3 b finish l5: mov r0,#4 b finish l6: mov r0,#5 b finish l7: mov r0,#6 b finish l8: mov r0,#7 finish: mov r0, #0 pop {r3-r7,pc} Компилируется в следующее (снято с ИДЫ): PUSH {R3-R7,LR} LDRB R0, [R0] CMP R0, #8 BCS def_208492BE ADR R7, jpt_208492BE LDRB R7, [R7,R0] LSL R7, R7, #1 ADD PC, R7 ; --------------------------------------------------------------------------- jpt_208492BE DCB 3 ; DATA XREF: sub_208492B0+8o DCB 5 DCB 7 DCB 9 DCB 0xB DCB 0xD DCB 0xF DCB 0x11 ; --------------------------------------------------------------------------- case_0 ; CODE XREF: sub_208492B0+Ej MOV R0, #0 B def_208492BE ; --------------------------------------------------------------------------- case_1 ; CODE XREF: sub_208492B0+Ej MOV R0, #1 B def_208492BE ; --------------------------------------------------------------------------- case_2 ; CODE XREF: sub_208492B0+Ej MOV R0, #2 B def_208492BE ; --------------------------------------------------------------------------- case_3 ; CODE XREF: sub_208492B0+Ej MOV R0, #3 B def_208492BE ; --------------------------------------------------------------------------- case_4 ; CODE XREF: sub_208492B0+Ej MOV R0, #4 B def_208492BE ; --------------------------------------------------------------------------- case_5 ; CODE XREF: sub_208492B0+Ej MOV R0, #5 B def_208492BE ; --------------------------------------------------------------------------- case_6 ; CODE XREF: sub_208492B0+Ej MOV R0, #6 B def_208492BE ; --------------------------------------------------------------------------- case_7 ; CODE XREF: sub_208492B0+Ej MOV R0, #7 def_208492BE ; CODE XREF: sub_208492B0+6j ; sub_208492B0+1Aj ... MOV R0, #0 POP {R3-R7,PC} Синтаксис макроса следующий: tCase8 Reg, Num, DefCase, c0, c1, c2, c3, c4, c5, c6, c7 где: Reg - номер регистра, содержащего номер перехода (0..6) Num - число переходов (без дефолтного, т.е. аналога Case Else) DefCase - метка для дефолтного перехода, когда значение Reg вне диапазона, аналог Case Else в высокоуровневых языках с0..сn - метки для переходов по номеру Макрос писан на Кейле, с использованием встроенного макроса IRP. Макрос использует регистр R7, поэтому его нельзя использовать как параметр Reg На мой взгляд, его применение в патчах, где нужно выбрать переход в зависимости от непрерывного ряда значений параметра, как, например, в патче CGSN, оптимально. Собственно, сам макрос: tCase8 macro Reg, Num, DefCase, c0, c1, c2, c3, c4, c5, c6, c7 x set 1 dw (0x2800 | (Reg<<8)) + (Num);cmp Rn, #im bcs DefCase $if (($&3)!=0) x set x+1 $endif dw 0xA700 + x ; ADR R7, jptable dw 0x5C3F | (Reg << 6);ldrb R7, [R7,Rn] lsl R7, R7,#1 add PC, R7 if (x=2) dw 0 endif a set $ IRP lbl, <c0,c1,c2,c3,c4,c5,c6,c7> db (((lbl-a)&0xFF)>>1) - (2 - x) endm if (($&1)!=0) db 0 endif if (($&3)!=0) dw 0 endif endm
  8. Так я с расчётом на эльфы и подобный софт, если такой появится Ужо прикидываю, где бы библиотеку функций можно было бы притулить
  9. Ничего плохого про компилер не скажу, действительно, всё удобно и продумано. Автору - респект!Под профессиональностью я имел в виду возможность компилить и С код и asm, использовать встроенные макросы типа IRP. Потом, многие "удобства" вроде оптимизации кода для некоторых команд с ограничением на диапазон данных заставляют программера терять контроль над кодом, а я к этому не привык , это уже не асм, а что-то более высокое... Но это не принципиально, плюсов, всё равно, намного больше. Буду осваивать...
  10. ??? Ну да ладно, если это - дело принципа - тогда не включай! Действительно, есть. Но я имел в виду профессиональную тулу.
  11. Ждём исправленную версию 1.3. Я так понял, уже без # Можешь в определения внести константы для D880XEHJ1: .ifdef D880XEHJ1 .equ a_atp_Result 0x3088E454 .equ s_atp_CurrentCommandInfo 0x3088F4F4 .equ gs_look 0x306048B8 .equ CGSNCommand 0x2062F844 .equ SendDataReq 0x217209E4 .equ memcpy 0x205A2E3C .equ s_RunMcc 0x217841EC .equ s_rep01 0x2114A51C .equ s_rep02 0x2114A524 .equ s_rep03 0x2114EBCC .equ s_rep04 0x20156FDB .equ s_rep05 0x2062E2B5 .equ s_patch 0x20861B5E .endif Сам ищу, чем скомпилить.... свой кейл пал в неравной борьбе с живностью, новый, с сайта, изуродовали так, что на нём ничего путёвого не напишешь... Народ, на чём вы компилите? Может, у кого завалялся KARM240 или что-то в этом роде?. Кстати, по-моему, первая версия патча писана на Сях....или я не прав?
  12. Пытаюсь вникнуть в тонкости создания патчей под самсунг, всвязи с этим есть несколько вопросов: 1. Среди патчеров существуют какие-нибудь договорённости о "предпочтительных" местах расположения патчей, или действует принцип "я тут патч забил, другим не соваться!"? 2. Кто-нибудь ведёт учёт занятого пространства на каждую из прошивок для избежания конфликтов? 3. В прошивке, в пустых местах, FF иногда разбавляется каким-то мусором - если он затирается патчем, это не опасно? Как понять, мусор это, или данные? 4. Господа патчеры! Не лучше ли было бы в тело патча вызовы BL использовать только для локальных (в пределах патча) переходов, а вместо вызовов процедур фирмвары BL FW_Proc, которые портировать практически невозможно (да они ещё и привязаны по удалению), ставить конструкции LoadReg Rx, addr BLX Rx используя макросыavkiev`a, в т.ч. CallARM, CallThumb, а в конце патча явно прописывать адреса? P.S. Для D880XEHJ1 ещё никто ничего не писал?
  13. .Гут, спрошу здесь, хотя вопрос, по-моему, о яве... Установил ява-приложение DMbCard, работающее с камерой. При попытке снять кадр выбрасывает ошибку java.lang.NullPointerException: 0. В сименсе SL75 работает нормально. Аналогичную ошибку дают и другие приложения, работающие с камерой. Вопрос: в дуосе, что, яве нельзя работать с камерой, или у меня что-то не настроено?
  14. Купил на радиорынке кабель к какому-то боксу, с одной стороны - RJ45, с другой - разъём дуоса с 1,2, 11,12,14,15 и 19 пинами. При втыкании шнура в отключённый тел, он сам включался. Разобрал разъём (на защёлках), выпаял диод с резистором, распаял переходник к своему мегабитному адаптеру на МАХ3245, который когда-то собрал для своего сименса, всё прекрасно шьётся. Даже, с запиткой от телефона. Распиновка: RS232 адаптер <-------------> Duos Gnd ----------------------------- 1,2 (GND) RxD ----------------------------- 11 (TxD) TxD ----------------------------- 12 (RxD) Vbat ----------------------------- 14 (Battery out) Начинаю патчить , ужо умертвил девайс, бэкап не помогает... щас думаю, чего с ним ещё сотворить....
×
×
  • Создать...