Сейчас на форуме: asfa, _MBK_ (+8 невидимых)

 eXeL@B —› Вопросы новичков —› ARM код, список ф-й, что это может быть?
Посл.ответ Сообщение

Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 23 ноября 2009 02:37
· Личное сообщение · #1

Добрый день, колупаю прошивку телефона, проц АРМ, нашел некоторые ф-и, которые меня интересуют, поднимаюсь "наверх" и вижу такой список (почти в конце файла):
Code:
  1. ...
  2. ROM:00813C44 off_813C44      DCD download_proto ; DATA XREF: ROM:off_80F570o
  3. ROM:00813C48                 DCD invalid_cmd
  4. ROM:00813C4C                 DCD packet_work
  5. ROM:00813C50                 DCD invalid_cmd
  6. ...
  7. ROM:00813CA8                 DCD invalid_cmd
  8. ROM:00813CAC                 DCD opening_multi
  9. ROM:00813CB0                 DCD invalid_cmd
  10. ROM:00813CB4 dword_813CB4    DCD 1                   ; DATA XREF: ROM:off_805884o
  11. ROM:00813CB4                                         ; ROM:off_805B30o ...
  12. ROM:00813CB8                 DCD 0x833C0C
  13. ROM:00813CBC                 DCD 0x833A0C
  14. ROM:00813CC0                 DCD 0x83400C
  15. ROM:00813CC4                 DCD 0x83420C
  16. ROM:00813CC8 dword_813CC8    DCD 0xFFFFFFFF          ; DATA XREF: ROM:off_8069B4o
  17. ROM:00813CCC dword_813CCC    DCD 0xFFFFFFFF          ; DATA XREF: ROM:off_8069B0o
  18. ROM:00813CD0                 DCD 0xFFFFFFFF
  19. ROM:00813CD4                 DCD 1
  20. ROM:00813CD8                 DCD 1
  21. ROM:00813CDC                 DCD 0x835498
  22. ROM:00813CE0                 DCD 0xFFFFFFFF
  23. ROM:00813CE4 off_813CE4      DCD detect_vendors      ; DATA XREF: ROM:off_8087B8o
  24. ROM:00813CE8                 DCD sub_807774
  25. ROM:00813CEC                 DCD sub_80AD98
  26. ROM:00813CF0                 DCD sub_80B270
  27. ROM:00813CF4                 DCD 0
  28. ROM:00813CF8                 DCD 0
  29. ROM:00813CFC off_813CFC      DCD detect_toshiba      ; DATA XREF: ROM:off_807638o
  30. ROM:00813D00                 DCD detect_hynix
  31. ROM:00813D04                 DCD detect_samsung
  32. ROM:00813D08                 DCD 0
  33. ROM:00813D0C off_813D0C      DCD sub_80FCEC          ; DATA XREF: ROM:off_80B048o
  34. ROM:00813D10                 DCD 0
  35. ROM:00813D14 off_813D14      DCD sub_808764          ; DATA XREF: ROM:off_8087BCo
  36. ...


Единственная ссылка только на download_proto выглядит так:
Code:
  1. ...
  2. ROM:0080F514 loc_80F514                              ; CODE XREF: crc_error_unrecogn_fl+E0j
  3. ROM:0080F514                 LDR     R1, =off_813C44 ; download_proto function addr..maybe class?
  4. ROM:0080F518                 ADD     R0, R1, R0,LSL#2
  5. ROM:0080F51C                 LDR     R1, [R0,#-4]
  6. ROM:0080F520                 MOV     R0, R4
  7. ROM:0080F524                 BLX     R1
  8. ...

Что это такое? Как мне найти где используется ф-я например packet_work ? Или почему повторяются invalid_cmd ?



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 24 ноября 2009 10:11
· Личное сообщение · #2

Скорее всего таблица - это "переключатель", а по адресу 80F514 его использование :
в R0 грузится адрес таблицы и потом индексируется по LSL#2 (а может по R0)
Окончательно адрес оказывается в R1 и вызов : BLX R1
А invalid_cmd только подтверждает это - просто часть индексов зарезервировано, например.
zeffer пишет:
Как мне найти где используется ф-я например packet_work ?

Ищи где обращаются по адресу 80F514 и смотри что помещают в LSL#2 или R0.
Я команды ARM не знаю, индекс может быть и 0-5 или сразу умножен на 4 : 0, 4 ... 20



Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 26 ноября 2009 17:43
· Личное сообщение · #3

ага, спасибо за ответ!
мне тоже другие хорошие люди подсказали что это просто таблица...
буду копать дальше ;)


 eXeL@B —› Вопросы новичков —› ARM код, список ф-й, что это может быть?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати