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

Dimy4

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

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

  • Посещение

Сообщения, опубликованные Dimy4

  1. @ mako

     

    возможно ты и прав, но ведь там действительно много чего полезного. Если не поленится и покапатся в исходниках пару часов, то можно многое чего понять. Я считаю, что если спрашивать про каждую мелочь, которая итак расписана в самом удобном виде для понимания (большое спасибо Freeman, за исходники), то никогда ничего делать сам и не научишься. но это имхо 8)

     

     

    нужно команды прорисовки картинки из тфс.

     

     

    Вот для примера отрывок из исходника ImagineMenu. За правильность интерпретации не ручаюсь, разбирал на скорую руку :132:

     

     

    LoadMainBlockBg:

    ldr r0,=0x9A86

    bl lk_StoreBlockPicture ;какая-то функция

    ldr r0,=0x9A8A

    bl lk_StoreBlockPicture

    ldr r0,=0x9A88

    bl lk_StoreBlockPicture

    ldr r0,=0x9A72

    bl lk_StoreBlockPicture

    ldr r0,=ColorTheme ; в r0 адрес переменной со сначением актуальной цветовой схемы

    ldrb r0,[r0] ; в r0 значение этой переменной

    adr r7,sk_bg_file_01 ; в r7 адрес текстового ресурса с названием картинки

    cmp r0,0 ; цветовая схема 1?

    beq q1 ; если да то дальше с q1

    adr r7,sk_bg_file_02 ;если нет то грузим картинку для второй схемы

    q1:

    adr r0,sk_bg_path ; в r0 адрес текстового ресурса (путь к папке в тфс)

    mov r1,r7 ; в r1 адрес к названию картинки

    bl mmitfs4_CheckFileExist ; вот и первая функция работы с тфс, видимо проверяет существует ли картинка r1 в папке r0, в r0 возвращается ответ

    cmp r0,1 ; существует?

    beq q2 ; если да то дльше с q2

    bl DrawSoftkeyBgBitmap ; если нет, то выполняется стандартная функция прошивки, которая загружает стандартную картинку

    b q3

    q2:

    mov r0,240 ; наверное ширина картинки

    str r0,[sp] ; сохраняем в стек

    mov r0,34 ; наверное высота картинки

    str r0,[sp,4] ; сохраняем в стек

    adr r0,sk_bg_path ; путь к папке в тфс

    mov r1,r7 ; в r1 адрес к названию картинки

    mov r2,0 ;какой-то параметр

    mov r3,255 ;какой-то параметр

    add r3,31 ; прибавляем 31

    bl lk_DrawIFG ; функция видимо рисует в буфере картинку IFG формата с даными параметрами

    q3:

    ldr r1,=vScreenMem ;буфер в котором размещена загруженая картинка

    ldr r0,=gv_BlockBg ;буфер для картинки софт-полосы

    ldr r2,=153600 ; размер буфера

    blx j___rt_memcpy ;копирование блока памяти R0 - адрес назначения, R1 - адрес откуда копировать, R2 - длинна блока.

    a1:

    mov r2,9 ;

    mov r1,1 ;

    ldr r0,=0x18343100 ; какието-параметры, надо копать lk_CreateMenu

    bl lk_CreateMenu

    ldr r0,=0x111B92C8+1

    bx r0

    .data

     

    sk_bg_path: .string "/a/images/widget/title/"

    .align 4

    sk_bg_file_01: .string "set01_blocksoft_key_area.ifg"

    .align 4

    sk_bg_file_02: .string "set02_blocksoft_key_area.ifg"

     

     

     

    Вот и всё, если немножко постарться, то можно понять, как используются и многие другие функции :)

  2. AlexeyK,

     

    спасибо, вот исходник.

     

    А я уже думал что это глюк компайлера какой-то, никак не мог понять в чём дело :x

     

     

    /edit

     

    что-то не работет .orgbl , может не туда ставлю?

    cgsn.rar

  3. В общем подправил я этот патч для D900XEFK2.

     

    Правда работуют пока только эти команды:

     

    AT+CGSN

    AT+CGSN=0

    AT+CGSN=1

    AT+CGSN=2

    AT+CGSN=3

     

     

    ну это уже коечто. буду копатся дальше

     

    вот если кому нужен

     

     

    /edit

     

    теперь вроде всё работет кроме AT+CGSN? , но эта команда не сильно важная имхо.

     

    Обновил архив.

    CGSN.rar

  4. AlexeyK,

     

    Протестировал я этот патч со всех сторон. Наблюдаются такие вот глюки:

     

    - Патч работает только если соединится с телефоном в meCOM.exe (Применить), при старте телефона, пока он еще до конца не загрузился. Если соединится с загруженым телефоном, тогда перезагрузка.

     

    - При этом работает единственная комада: AT+CGSN, все остальные вызывают перезагрузку.

     

     

    Попробывал скомпилировать в BinEdit по исходнику, он мне выдал кучу ошибок, что BL переходы не дотягиваются.

    Подискал картинку по ближе к функциям памяти и разместил там код. Теперь компилируется нормально.

     

    - В этом измененом патче всё также, только теперь работает команда AT+CGSN=0,XXXXXXXX,YYYY

     

    - Правда возвращает она всегда одно и тоже значение, независимо от введеного адреса.

     

    Ну вот, пытаюсь разобраться дальше. Есть каие-нибудь идеи?

  5. AlexeyK,

    большое спасибо за нужный патч. Вот только он у меня не работет :28:

     

    На D900XEFK2 уже кто-нибудь пробовал? Подскажите настройки а то у меня при старте терминала телефон перестартовывается :ak:

     

    /edit

     

    ну в общем понял я, когда исходники посмотрел, что на Д900 только наброски. Придётся разбираться по тихоньку, если ктонибудь по умнее меня не доделает...

  6. доброе время суток,

     

    я ищу функцию в прошивке D900XEFK2, где определяется цвет софт клавиш на рабочем столе и в меню.

     

    дело в том, что в D900 есть две темы: черная и белая. Для белой цвет софт клавиш определяется в

     

    GetMenuColor

     

    но для черной гдето в другом месте.

     

    может ктонибудь подскажет парочку функций где это может быть ?

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