| |
|
den_po
Developer/Admin
Регистрация: 27.3.06 Сообщений: 3279 Репутация: 10763 Откуда: Чебоксары
|
#71 [08.11.09, 19:13] ARMPC
Так уж сложилось, что отдельной темы для armpc на форуме нет. А пакет время от времени обновляется, и обновления остаются многими незамеченными. ARM Patch Compiler - набор для компиляции патчей. Делал я его для себя, делал так, как удобно работать мне. В качестве компилятора в пакете используется FASMARM. Обновления и исходники можно взять на http://arm.flatassembler.net/ (следует учесть, что компилятор в armpc может отличаться от того, что на официальном сайте). Дальше пойдёт набор бессвязных фактов - Многие не знают, но fasmarm вполне можно использовать и вне armpc, он даёт на выходе бинарник. - make.bat с давних пор нужно передавать максимум два параметра - имя исходника и имя raw/cxc файла. Базовый адрес передавать не нужно, он определяется автоматически. Если внутри make.bat указать полное имя наиболее часто используемого raw/cxc файла, при запуске make.bat достаточно указать только имя исходника. - Файл x.inc содержит описания макросов. ADR и MOVL - это не команды, это макросы. Некоторые ключевые слова в x.inc заменяются на макросы ( code16, code32, ldr, org), поэтому комплияция со включением x.inc и без него даёт разный результат. - Макросы в fasmarm, в отличие от команд, регистрозависимы. Макросы ldr/code16/code32/movl продублированы и в верхнем регистре, а вот org нет. Поэтому если вы собираете патч, используйте org, а если вы хотите получить простой бинарник, вам нужен ORG. - В исходниках можно использовать переменные системного окружения (свойства системы, дополнительно, переменные среды). Для себя я добавил переменную FASMINC, в значении которой указал полный путь к каталогу, где лежит armpc (помните, для вступления действия в силу иногда может потребоваться перезагрузка). Так можно компилировать исходники, лежащие в любых папках, без указания полного пути к x.inc. Код: include "%fasminc%\x.inc" FAR+ARMPCМало кто использует FAR Manager в повседневности, а вот я в нём постоянно. И компиляцию запускаю из FAR так, как мне удобно. А конкретней - простое нажатие enter на исходнике собирает патч для z610, нажатие ctrl+pgdn выдаёт меню со списком прошивок, для которых будет собираться патч. Делается оно легко: f9 -> commands -> file associatoins -> ins -> маска файла *.asm -> описание какое вам нужно -> нужная команда на выполнение для enter и ctrl+pgdn. У меня команды выглядят примерно так: Код: make.bat "!.!" C702_R3EF001 или для ручного ввода имени таргета: Код: make.bat "!.!" !?$armpc$target?Z610_R6DA001! Нужно учесть, что если для типа файла есть только одно действие (как у меня на enter), то оно выполняется молча, а если несколько разных (ассоциация с *.asm добавлена несколько раз, команды на выполнение для ctrl+pgdn отличаются), то показывается меню. В последней версии armpc компилятор чуть поправлен: - теперь он понимает movs/cmps/adds и прочие "s" в thumb безо всяких макросов (arm режим в патчах используется нечасто, но кто-то мог допустить ошибку, убирая s у арм-команд); - ldr и adr работают с адресами без скобок, макрос для этого больше не нужен; - du в качестве аргумента должны подаваться строки в utf8 (т.е. сам исходник при этом должен быть сохранен в utf8 без BOM). BOM - специальный маркер, позволяющий другим приложениям однозначно идентифицировать этот файл. В частности сохранить файл с BOM или без BOM можно во встроенном редакторе FAR и в notepad. Скачать текущую версию маска файла *.asm - [ Редактировано den_po в 28.5.15 13:50 ]
promt is better than google translate
|
Спасибо сказали: UltraShot, -DeJaVu-, 273308715, MNS81, MahmudS, DuXeN0N, Olegat0r, ipod, Se-MaG, Slawwan, Ax, JohnNorth, Zormax, SEVENI, Alex1992, MAVER145, PRO100light, vodoo999, Blend, Alex_E, Oganyan-Arthur, TahaSpawn, BigHercules, Therion, Pixel, russ123, H0sseiN, KIBER-DEMON, Melodic_Death, clisto, Vov4ик, farid, LiNkMaN, a6b6
|
den_po
Developer/Admin
Регистрация: 27.3.06 Сообщений: 3279 Репутация: 10763 Откуда: Чебоксары
|
#72 [04.04.12, 09:15] Re: ARMPC
Legas2 пишет: -решены множественный проблемы с пробелами в путях/именах файлов (и, возможно, со включенным UAC) -улучшена возможность компиляции патчей, находящихся в папке, отличающейся от рассположения make.bat
этих проблем нет. все имена с пробелами должны передаваться батнику с кавычками. для подключения x.inc из любой папки строчка с инклюдом может выглядеть так: Код: include "%fasminc%\x.inc" дописать несколько лишних символов недолго. Известные проблемы (RUS): -кодировки текста: консоль использует OEM кодировку, соответственно в логе все специфичные для языков буквы, будут выглядеть странно :).
chcp 866 -при использовании FASMARM пакета, патч будет генерироваться для каждого cxc файла. В mp.exe нету/плохо реализована проверка на ошибки, поэтому определяйте сами какой из полученных патчей правильный :)
делать нечего :D да и вообще не понимаю, почему все так фара боятся. фар хороший. отредактировал в нём файл, из него же скомпилировал, тут же установил, тут же залил.
promt is better than google translate
|
den_po
Developer/Admin
Регистрация: 27.3.06 Сообщений: 3279 Репутация: 10763 Откуда: Чебоксары
|
#73 [04.04.12, 16:47] Re: ARMPC
Legas2 пишет: этих проблем нет. все имена с пробелами должны передаваться батнику с кавычками должны, но в оригинале, например: Код: if exist %firmwares%\%target%\phone_emp_app.cxc Код: echo ;%target% >%2.%target%%3.vkp ох ты ж блин :D а я только пути с исходниками проверял :D для подключения x.inc из любой папки строчка с инклюдом может выглядеть так: об этом ты уже писал в этой теме, с примером добавления fasminc в "системные переменные" :) в системное окружение, кстати, необязательно совсем. батничек при отсутствии переменной сам создаёт её chcp 866 только для русской винды как я понел, тк в гугле я нашёл вопросы по поводу другой кодировки. не думаю Ещё неплохо бы, чтоб пришли к общему мнению по поводу хранения описания патча в формате elf. Пример: <patch_in_iar>\description.txt - тогда такой файлик можно будет тоже добавить в шапку патча при конвертации в elf2vkp
не вижу смысла И, может есть более-менее общепринятое название переменной для хранения библиотек (асм)?
опять же, не вижу смысла. достаточно %fasminc% и %target%
promt is better than google translate
|
Legas
Expert
Регистрация: 30.4.09 Сообщений: 444 Репутация: 1407
|
#74 [11.04.12, 17:56] Re: ARMPC
заметил тут что современный компилятор неочень дружит с ошибками asm. Вот, к примеру, "древний" компилятор выдаёт корректные предупреждения в случае отсутствия выравнивания, и попытке совершить переход (BL) за пределы. Новый же компилятор утверждает что наш процессор не совместим с некоторыми инструкциями....
|
den_po
Developer/Admin
Регистрация: 27.3.06 Сообщений: 3279 Репутация: 10763 Откуда: Чебоксары
|
#75 [11.04.12, 22:26] Re: ARMPC
Legas2, всё правильно. потому что некоторым семействам процессоров arm пофиг на выравнивание.
promt is better than google translate
|
Legas
Expert
Регистрация: 30.4.09 Сообщений: 444 Репутация: 1407
|
#76 [11.04.12, 22:43] Re: ARMPC
может можно как-то улучшить ситуацию, ведь мы знаем что нашему не пофиг?
|
den_po
Developer/Admin
Регистрация: 27.3.06 Сообщений: 3279 Репутация: 10763 Откуда: Чебоксары
|
#77 [12.04.12, 00:50] Re: ARMPC
Legas2, тему перечитай
promt is better than google translate
|
Спасибо сказали: a6b6
|
Legas
Expert
Регистрация: 30.4.09 Сообщений: 444 Репутация: 1407
|
#78 [12.04.12, 02:28] Re: ARMPC
эт про то, что ты выставил что-то типа 0хFF в качестве что-то типа максимального поддерживаемого уровня совместимости процессора, тк было лень выяснять что наш проц в действительности поддерживает? Тогда, как нам, простым смертным, узнать самим что наш проц поддерживает, а что нет?
|
den_po
Developer/Admin
Регистрация: 27.3.06 Сообщений: 3279 Репутация: 10763 Откуда: Чебоксары
|
#79 [12.04.12, 02:29] Re: ARMPC
Legas2, читай, блин
promt is better than google translate
|
den_po
Developer/Admin
Регистрация: 27.3.06 Сообщений: 3279 Репутация: 10763 Откуда: Чебоксары
|
#80 [10.07.12, 23:16] Re: ARMPC
пересобрано с fasm 1.70.03 и fasmarm 1.27. в прошлой версии было поломано конвертирование из utf8 в исходниках, в последней исправлено (косяк не мой) Добавлено 11.7.12 00:37 ну вот, поспешил ерунду с пробелами, что хотел выложить, забыл, да и патч на скобки устарел. буду исправлять. Добавлено 11.7.12 00:48 проблема не в патче. пойду автора пинать. Добавлено 11.7.12 01:12 кому нужен старый екзешник, вот версия 1.25 http://justdanpo.cheb.ru/temp/FASMARM.EXE
promt is better than google translate
|
Спасибо сказали: Metaler, Therion, MAVER145, Boysie
|
den_po
Developer/Admin
Регистрация: 27.3.06 Сообщений: 3279 Репутация: 10763 Откуда: Чебоксары
|
#81 [12.07.12, 22:55] Re: ARMPC
пересобрано с fasmarm 1.28. тестируйте.
promt is better than google translate
|
Спасибо сказали: Vov4ик, a6b6
|
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.
|
|
|