Jump to content
Old Phone Forum

AlexeyK

SGH Open Club
  • Content Count

    316
  • Joined

  • Last visited

Community Reputation

214 Очень хороший

About AlexeyK

  • Rank
    SGH CodeMaster

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

  • Модель телефона
    E200

Информация

  • Пол
    Мужчина

Контакты

  • Сайт
    http://binedit.sgh.ru
  • ICQ
    0
  1. Можно попробовать так .align 2 table_EHK_info: .word t_msg_not_used, mcc_lk_exit .word t_msg_voicemail, mcc_pb_vms_idle_call_in_idle … .word t_msg_usb_mode, mcc_set_change_usb_class .align 1 table_EHK_info1: table_EHK_size8 = table_EHK_info1-table_EHK_info .word 0, mcc_lk_exit Хотя у меня и начальный вариант без ошибок отработал.
  2. Нет не знает. а из какой это спецификации? На момент разработки, таких команд не было. 64 битная арифметика не поддерживалась
  3. Баги можно поправить. Только из за нехватки времени необходим качественный лог: 1. код компилируемый с ошибкой. 2. место ошибки. 3. как должно быть в итоге правильно. В данном случае надо исправить для "нового режима анализа". старый оставлен для совместимости с некоторыми старыми патчами. Сам код STMIA R0!,{R1-R6} компилируется. Получается 00000000: C07E. Где то в другом месте ошибка, например, нет закрывающей кавычки.
  4. ещё есть ; команды для меню Command name="Блокнот" path="notepad.exe" ; описание пользовательских типов данных TYPE Name="font china" Maska="byte:4,int:4,long:16" Сохранение описания прошивки можно включить через меню "настройка" или в be файл добавить SaveDataBin Enable="Y"
  5. все файлы которые выкладывал с полной версией binedit_add.7z
  6. При первой загрузке прошивки производится её сканирование и определение её параметров. Адрес загрузки, зоны ремапинга, адрес оперативки и её длинна определяются путём анализа кода прошивки. Естествено это не даёт 100% результата. Адрес и размер оперативки определяется по блоку команд LDR Rx, =0x???????? LDR Ry, [Rx] CMP Ry, #0x0 BNE (если кому интересно, сигнатура используемая для поиска: &*??48006?0?28??D1) Это как правило чтение параметра из оперативки. можно было бы ещё попробовать использовать это LDR Rx=0x????????? LDRB Ry,[Rx] обращение к 1 байту происходит как правило только в оперативной памяти. Дальше все найденные Rx объединяются по AND и OR что даёт максимальный и минимальный адрес используемый для загрузки байта. Если определился адрес 0x21800000, то скорее всего использована старая версия программы, где был алгоритм по проще. И если есть чтение из этой области по 1 байту, то скорее всего там тоже оперативка, например та, что встроена в сам процессор. сиспсон верно ответил, цветовое выделение сделано для разделения функционально независимых блоков МСС.
  7. поправил. можно попробовать в начале кода написать директиву .baseload 0x0 можно по подробнее? какая прошивка (желательно со ссылкой) и что именно ищется. для примера Такие case в текущей версии совсем не определяются. Будет время и прошивка под руками постараюсь добавить. BinEdit.7z
  8. Это наверное с тех пор как для преобразования из UTF8 в то что можно показать стал использовать API Windows вместо своей функции. Видимо что то не срослось. Скорее всего не показываются строки которые содержат не полные символы UTF8. Посмотрю что можно сделать. Это никогда не проверялось, на sysol строки выравнивались по 4 байта. Проверю и поправлю
  9. Перед копированием, можно отключить показ комментариев и соответственно они копироваться не будут. поправил для M3510EHJ2 добавил сканирование, проблемы могут быть для MCC_RSP, так как там под функции запускаются по условиям. BinEdit.7z
  10. вроде и так и так можно, давно делалось. Всегда можно проверить
  11. Отрывок из описания компилятора Компиляция опций. .options [check|list] , "Наименование опций" - начала формирования блока опций. По умолчанию формируются опции типа list .option [def|default] [, "Наименование опции"] – заголовок отдельной опции. Опция с ключом default будет использована в основном коде. Приоритет имеет последняя опция с таким ключом. .endoptions - завершение формирования блока опций Примечание. Внутри определения опций не допускается изменение текущего адреса компиляции. В основной код попадает кусок после директивы .options и до первой директивы .option или после директивы .option с ключом default. Длину блоков можно не подбирать, при компиляции будет произведено автоматическое выравнивание длины. Пустое место заполняется нулями, что эквивалентно команде NOP. Для опций типа check наименование опции можно не использовать, всё равно для варианта on будет использоваться первая следующая директива .option, а для off – вторая. Пример. 02346: ;Код до начала описания опций mov R1, 10 add R1, 20 ;заголовок опций .options list, "опции списком" ;этот код окажется в основном коде, если в директивах .option не будет ключа default bl 0x12344 ;описание первой опции .option "Переход на адрес 0x3456" bl 0x3456 ;описание второй опции .option def, "Sub R1, 100" sub R1,100 ;описание третьей опции .option "несколько команд" mov R0, R1 add R1,34 mul r0,r1 ;описание четвёртой опции .option "данные" .word $+7 ;завершения описания опции .endoptions ;код который будет после опций add R1,5 Compile_binedit_help.zip
  12. так это было предусмотрено начиная с первых версий. для этого служат директивы REMAP в be файле. указывается смещение в прошивке, на какой адрес и длинна блока
  13. последняя на сегодня версия. PS. Дальше в теме есть более новая версия. BinEdit.7z.rar
  14. Не было дуступа к сайту, чтобы залить версию от 26 февраля. Сейчас вроде сайт ожил. Проверяйте обновление через программу, там пишется какая версия актуальная на сайте по кнопке обновить. PS. Хотя сейчас не знаю что там вообще на сайте залито, так как не было доступа.
  15. В компиляторе вместо 0x.... можно использовать 0b... биты в такой последовательности 0bFEDCBA9876543210
×
×
  • Create New...