Как преобразовать файлы *.inc в *.hex ?
При програмировании микроконтроллеров у меня возникла необходимость преобразовывать файлы прошивки с расширением .hex в файлы .inc для редактирования.
Подскажите пожалуста, возможно ли преобразовать файлы *.hex в *.inc и наоборот *.inc в *.hex ?Какими программами это можно сделать?
Подскажите пожалуста, возможно ли преобразовать файлы *.hex в *.inc и наоборот *.inc в *.hex ?Какими программами это можно сделать?
файлы *.inc - обычно содержат не исходный текст программы, а либо определения, либо библиотеки подпрограмм. основной файл имеет обычно расширение *.asm, если, конечно, исходная программа была написана на ассемблере.
Файл *.hex - это исполняемый код, типа файлов *.com. Разница в том, что файл *.hex предназначен для заливки в контроллер и может содержать данные для программы - программатора, но это не имеет значения.
Если программа была написана, например, на си, то перевести ее обратно в исходник практически не представляется возможным, можно получить лишь аналогичный текст на ассемблере. Даже компилируя исходник написанный на ассемблере и затем дизассемблируя его, в 99% случаев получится отличная от оригинала программа.
Для того, чтобы перевести *.hex в *.asm необходим дизассемблер. Не для всех контроллеров имеются дизассемблеры, но если программа достаточно мала, то можно сделать что-то типа этого:
- перевести hex в bin. то есть получить бинарное представление программы в файле. все зависит от формата hex-файла. это не скомпилированная программа в чистом виде, как минимум это перевод байтов программы в hex представление. в общем, нужно понять, какие части программы размещаются по каким адресам памяти контроллера. в общем, все непросто. 😃
- сверяясь с документацией на контроллер, последовательно, используя таблицы команд получить текст программы, по возможности не ошибаясь в рассчете смещений в выполнении переходов, иначе текст программы получится совсем не таким, каким должен получиться.
Процесс нудный и долгий. Без должного опыта вероятность успеха стремится к нулю. Но все же, попробовать стоит.
Для того, чтобы перевести *.hex в *.asm необходим дизассемблер. Не для всех контроллеров имеются дизассемблеры…
Существуют ли дизассемблеры для микроконтроллеров типа PIC16F84, PIC12F675, PIC12C509… и где их можно скачать?
Существуют ли дизассемблеры для микроконтроллеров типа PIC16F84, PIC12F675, PIC12C509… и где их можно скачать?
В mplabe делаешь импорт в память hex файла и все… Только если прога длинная это такой геморой в дизасм коде копаться… Лучше найди исходники…
pic16f84.narod.ru - программатор с дизассемблером. Загружаете в него hex и нажимаете соотв. кнопочку. Так же старый добрый IDA (интерактивный дизассемблер) поможет вам, но его покупать надо, или не надо, если фантазия есть 😃
Кстати да, идой можно. Вы бы сразу написали, какой процессор, было бы легче. А что за программа-то? Может быть проще точно такую же написать, чем эту дизассемблировать.
Идой можно блок-схемы строить, это сильно помогает. Но все равно, с нуля довольно тяжко разобраться.
Скачал я MPLAB IDE v7.00, установил, и мой Win98se перестал грузится…В Win XP MPLAB установился но при открытии файлов любого типа, появляется “Системе не удаётся найти указанный путь”.(Файлы в него импортироватся тоже не хотят)
Немогу понять это я чтото не так делаю, или проблемы в программе?
Пока буду дизассемблер IDA искать, может с ним больше получится…
Если найдете хоть одну рабочую ссылку на ИДУ поделитесь?
В Win XP MPLAB установился но при открытии файлов любого типа, появляется “Системе не удаётся найти указанный путь”.(Файлы в него импортироватся тоже не хотят)
Что за прошивка? Может ее не надо дизассемблировать?
Что за прошивка? Может ее не надо дизассемблировать?
Прошивка для регулятора скорости на PIC16F84(где скачивал схему уже не помню).У меня есть только версия Moto_v15.hex но она меня не устраивает по некоторым причинам.
Если кому нибудь встречалась более новая версия прошивки для PIC16F84 или файлы прошивки поддающиеся редактированию, подскажите пожалуста ссылку.
Если кому нибудь встречалась более новая версия прошивки для PIC16F84 или файлы прошивки поддающиеся редактированию, подскажите пожалуста ссылку.
Обычного регулятора, не бесколлекторник? Да в чем проблема! Их же как грязи, с исходниками, в любых видах. На сайте rcdesign целых два варианта: с реверсом и без! 😃
В любом случае, будет проще не дизассемблировать, а посмотреть исходники регуляторов с этого сайта, разобраться и написать (или адаптировать) прошивку для PIC16F84. Ошибок по-любому будет меньше.
При програмировании микроконтроллеров у меня возникла необходимость преобразовывать файлы прошивки с расширением .hex в файлы .inc для редактирования.
Подскажите пожалуста, возможно ли преобразовать файлы *.hex в *.inc и наоборот *.inc в *.hex ?Какими программами это можно сделать?
Вот тут на этом же сайте программка она эти форматы читает может и перезаписывает….попробуй …. ☕ .
drDen
Если у Вас есть фонтан - заткни его, дай отдохнуть и фонтану. Говорил Козьма Прутков. Похоже, это про Вас.
Alex@ndr
Мне кажется, я знаю, о какой прошивке идет речь, о реверсивном регуляторе, который мы не раз здесь обсуждали. Я ее в свое время дизассемблировал как раз IDA. К сожалению, исходника не осталось, я в ней ничего для себя интересного не нашел, потому и не сохранил. Если вы ничего о принципе построения регуляторов и ассемблер, архитектуру для PIC не знаете, будет достаточно сложно понять, что там к чему.
В любом случае, будет проще не дизассемблировать, а посмотреть исходники регуляторов с этого сайта, разобраться и написать (или адаптировать) прошивку для PIC16F84. Ошибок по-любому будет меньше.
Фишка в другом … в регуляторе с этого сайта на 509 pic не используются прерывания, а в f84 и в f675 они есть и это облегчает жизнь, поэтому аддаптировать бессысленно. А диссасемблировать moto_hex и сам пробывал , но терпенья не хватило, да и надобность отпала.
Фишка в другом … в регуляторе с этого сайта на 509 pic не используются прерывания, а в f84 и в f675 они есть и это облегчает жизнь, поэтому аддаптировать бессысленно.
Во-первых регуляторов на rcdeisgn ДВА: один с реверсом, другой без. Тот что с реверсом, цитирую:
Программа регулятора рассчитана под микроконтроллер PIC 12 F 675 или PIC 12 F 629. Это позволяет при необходимости менять характеристики прошивки. В принципе, можно использовать и PIC 12 C 509.
Во-вторых, если есть возможность в программе не использовать прерывания, то лучше их не использовать. Так как линейно написанная программа, в общем случае при прочих равных, работает надежнее. Облегчают они жизнь тому, кто этим инструментом владеет. А усложняют тем, кто хочет разобраться как работает или исправить ошибки, допущенные разработчиком. Если цель - получить регулятор с реверсом, то почему не взять за основу выложенный на этом сайте? Он с исходниками…
В-третьих, тип контроллера никак не указывает на использование в микропрограмме прерываний (только потенциальную возможность), наличие “защит” и прочее, а так же культуру программирования и отсутствие глюков.
Схемы регуляторов скорости на PIC12F675, PIC12C509 не обладают возможностью изменить их рабочие параметры(задать нейтраль, расход по газу и реверсу) в “полевых условиях”(без компьютера и програматора), а вот регулятор скорости на PIC16F84 адаптируется простыми нажатиями его кнопки.
А что касается нужных мне изменений в прошивке, они в основном сводятся к инвертированию сигналов на выходах микроконтроллера (выводы 17,18).
В разработанной мною схеме(приведён упрощённый вариант), нужно чтоб в режиме нейтрали на выводах 17,18 присуцтвовали логические единици(+5В), а при подаче каманды газ или тормоз, соответствующий вывод менял состояние на логический ноль. Вот для этого и нужно подправить прошивку.
Подскажите, неужели внести такое изменение в прошивку невозможно?
(Для сравнения привожу стандартную схему регулятора скорости на PIC16F84(там в режиме нейтрали на выводах 17,18 присуцтвуют логические ноли)).
А никогда не задумывались, что будет, если одновременно на выходах 17 и 18 в вашей схеме появятся “1”? И в каком состоянии будут в этот момент оба силовых транзистора?
Потом, вместо “тормоза” можно поставить транзистор “P” типа (многие так и делают), особого качества от него не требуется, но позволит вам убрать “утроитель”. Современные N- транзисторы не требуют таких высокий напряжений на затворе, по крайней мере, легко найти те, которые уже при напряжении 4,5 В будут открываться как надо (т.е. иметь маленькое Rdson).
И потом, вам нужен реверс или нет? Из вашего сообщения следует, что нужен, но на схеме Вы от него избавились…