Как преобразовать файлы *.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).
И потом, вам нужен реверс или нет? Из вашего сообщения следует, что нужен, но на схеме Вы от него избавились…
Во-вторых, если есть возможность в программе не использовать прерывания, то лучше их не использовать. Так как линейно написанная программа, в общем случае при прочих равных, работает надежнее. Облегчают они жизнь тому, кто этим инструментом владеет. А усложняют тем, кто хочет разобраться как работает или исправить ошибки, допущенные разработчиком. Если цель - получить регулятор с реверсом, то почему не взять за основу выложенный на этом сайте? Он с исходниками…
В-третьих, тип контроллера никак не указывает на использование в микропрограмме прерываний (только потенциальную возможность), наличие “защит” и прочее, а так же культуру программирования и отсутствие глюков.
На самом деле цель была сделать на 675-ом некий симбиоз рега с этого сайта и того на 84-ом( програмирование нейтрали) +програмирование кол-ва банок с передатчика для мягкого отключения мотора при снижении напряжения не банках. А написать линейную прогу с такими функциями это надо очень исхитриться да и памяти по-больше.
просто времени нет изобретать колесо, а вот готовые модули сшить во едино это проще и быстрее( если только они грамотно написаны)
Вообще в плане красивого и лаконичного написания ИМХО выделяется прога на EAGLE MIXER.
А никогда не задумывались, что будет, если одновременно на выходах 17 и 18 в вашей схеме появятся “1”? И в каком состоянии будут в этот момент оба силовых транзистора?
Уточняю- моя схема справа(без оптронов).Мне как раз и надо чтоб при подаче команды “нейтраль” одновременно на выходах 17 и 18 присуцтвовала “1”.Тогда оба биполярных транзистора будут открыты и через них “минус” поступит на затворы полевых транзисторов, закрывая их.
Вместо “тормозных” транзисторов N-типа действительно можно поставить транзисторы P-типа. Тогда придётся инвентировать только один вывод микроконтроллера, но прошивку править всё равно придётся.
Кстати, какие бы вы посоветовали транзисторы на “газ” и “тормоз” для управления автомодельным двигателем на 10-13 витков, если в моём старом регуляторе (силовая часть схемы как в приведённой выше “моей” схеме) транзисторы “газа” IRF1010N (4 запаралеленых) были чуть тёплыми, а “тормозные” IRF1010N (2 запаралеленых) грелись что аж скотч расплавляли?
Добавлено
Дизасемблировать *.hex в *.asm я уже научился, а чем их теперь после редактирования из *.asm в *.hex преабразовать?
Alex@ndr
Мне кажется, я знаю, о какой прошивке идет речь, о реверсивном регуляторе, который мы не раз здесь обсуждали. Я ее в свое время дизассемблировал как раз IDA. К сожалению, исходника не осталось, я в ней ничего для себя интересного не нашел, потому и не сохранил. Если вы ничего о принципе построения регуляторов и ассемблер, архитектуру для PIC не знаете, будет достаточно сложно понять, что там к чему.
А может все таки есть у кого дизассемблированный приведенный к человеческому виду асм этой прошивки Moto_hex16.
Ту “Тормозные” у вас по видимому грелись из за того, что “встроенные” в полевики диоды, как многие отмечают, не того качества. Попробуй использовать внешний диод Шоттки в параллель мотору.
Назад ассемблируется MPASM, но гораздо удобнее это сделать в MPLAB, взять можно на www.microchip.com, www.microchip.ru
Нужные транзисторы можно подобрать на www.irf.com воспользовавшись параметрическим поиском.
dejavue…