Специальные цены   новые товары
Закрытая тема
Показано с 1 по 21 из 21

Как преобразовать файлы *.inc в *.hex ?

Тема раздела Самодельная электроника, компьютерные программы в категории Общие вопросы; При програмировании микроконтроллеров у меня возникла необходимость преобразовывать файлы прошивки с расширением .hex в файлы .inc для редактирования. Подскажите пожалуста, ...

  1. #1

    Регистрация
    22.02.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    402

    Как преобразовать файлы *.inc в *.hex ?

    При програмировании микроконтроллеров у меня возникла необходимость преобразовывать файлы прошивки с расширением .hex в файлы .inc для редактирования.
    Подскажите пожалуста, возможно ли преобразовать файлы *.hex в *.inc и наоборот *.inc в *.hex ?Какими программами это можно сделать?

  2.  
  3. #2

    Регистрация
    02.08.2002
    Адрес
    Москва
    Возраст
    43
    Сообщений
    3,120
    Цитата Сообщение от Alex@ndr
    Подскажите пожалуста, возможно ли преобразовать файлы *.hex в *.inc и наоборот *.inc в *.hex ?Какими программами это можно сделать?
    файлы *.inc - обычно содержат не исходный текст программы, а либо определения, либо библиотеки подпрограмм. основной файл имеет обычно расширение *.asm, если, конечно, исходная программа была написана на ассемблере.
    Файл *.hex - это исполняемый код, типа файлов *.com. Разница в том, что файл *.hex предназначен для заливки в контроллер и может содержать данные для программы - программатора, но это не имеет значения.
    Если программа была написана, например, на си, то перевести ее обратно в исходник практически не представляется возможным, можно получить лишь аналогичный текст на ассемблере. Даже компилируя исходник написанный на ассемблере и затем дизассемблируя его, в 99% случаев получится отличная от оригинала программа.
    Для того, чтобы перевести *.hex в *.asm необходим дизассемблер. Не для всех контроллеров имеются дизассемблеры, но если программа достаточно мала, то можно сделать что-то типа этого:
    1. перевести hex в bin. то есть получить бинарное представление программы в файле. все зависит от формата hex-файла. это не скомпилированная программа в чистом виде, как минимум это перевод байтов программы в hex представление. в общем, нужно понять, какие части программы размещаются по каким адресам памяти контроллера. в общем, все непросто.
    2. сверяясь с документацией на контроллер, последовательно, используя таблицы команд получить текст программы, по возможности не ошибаясь в рассчете смещений в выполнении переходов, иначе текст программы получится совсем не таким, каким должен получиться.
    Процесс нудный и долгий. Без должного опыта вероятность успеха стремится к нулю. Но все же, попробовать стоит.

  4. #3

    Регистрация
    22.02.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    402
    Для того, чтобы перевести *.hex в *.asm необходим дизассемблер. Не для всех контроллеров имеются дизассемблеры...
    Существуют ли дизассемблеры для микроконтроллеров типа PIC16F84, PIC12F675, PIC12C509... и где их можно скачать?

  5. #4

    Регистрация
    21.12.2004
    Адрес
    Саратов
    Возраст
    39
    Сообщений
    194
    Цитата Сообщение от Alex@ndr Посмотреть сообщение
    Существуют ли дизассемблеры для микроконтроллеров типа PIC16F84, PIC12F675, PIC12C509... и где их можно скачать?

    В mplabe делаешь импорт в память hex файла и все.... Только если прога длинная это такой геморой в дизасм коде копаться..... Лучше найди исходники...

  6.  
  7. #5

    Регистрация
    12.09.2002
    Адрес
    Балашиха
    Возраст
    49
    Сообщений
    1,672
    Записей в дневнике
    2
    pic16f84.narod.ru - программатор с дизассемблером. Загружаете в него hex и нажимаете соотв. кнопочку. Так же старый добрый IDA (интерактивный дизассемблер) поможет вам, но его покупать надо, или не надо, если фантазия есть

  8. #6

    Регистрация
    02.08.2002
    Адрес
    Москва
    Возраст
    43
    Сообщений
    3,120
    Кстати да, идой можно. Вы бы сразу написали, какой процессор, было бы легче. А что за программа-то? Может быть проще точно такую же написать, чем эту дизассемблировать.

    Идой можно блок-схемы строить, это сильно помогает. Но все равно, с нуля довольно тяжко разобраться.

  9. #7

    Регистрация
    22.02.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    402
    Скачал я MPLAB IDE v7.00, установил, и мой Win98se перестал грузится...В Win XP MPLAB установился но при открытии файлов любого типа, появляется "Системе не удаётся найти указанный путь".(Файлы в него импортироватся тоже не хотят)
    Немогу понять это я чтото не так делаю, или проблемы в программе?
    Пока буду дизассемблер IDA искать, может с ним больше получится...

  10.  
  11. #8

    Регистрация
    21.12.2004
    Адрес
    Саратов
    Возраст
    39
    Сообщений
    194
    Если найдете хоть одну рабочую ссылку на ИДУ поделитесь?

  12. #9

    Регистрация
    02.08.2002
    Адрес
    Москва
    Возраст
    43
    Сообщений
    3,120
    Цитата Сообщение от Alex@ndr
    В Win XP MPLAB установился но при открытии файлов любого типа, появляется "Системе не удаётся найти указанный путь".(Файлы в него импортироватся тоже не хотят)
    Что за прошивка? Может ее не надо дизассемблировать?

  13. #10

    Регистрация
    22.02.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    402
    Что за прошивка? Может ее не надо дизассемблировать?
    Прошивка для регулятора скорости на PIC16F84(где скачивал схему уже не помню).У меня есть только версия Moto_v15.hex но она меня не устраивает по некоторым причинам.
    Если кому нибудь встречалась более новая версия прошивки для PIC16F84 или файлы прошивки поддающиеся редактированию, подскажите пожалуста ссылку.

  14. #11

    Регистрация
    02.08.2002
    Адрес
    Москва
    Возраст
    43
    Сообщений
    3,120
    Цитата Сообщение от Alex@ndr
    Если кому нибудь встречалась более новая версия прошивки для PIC16F84 или файлы прошивки поддающиеся редактированию, подскажите пожалуста ссылку.
    Обычного регулятора, не бесколлекторник? Да в чем проблема! Их же как грязи, с исходниками, в любых видах. На сайте rcdesign целых два варианта: с реверсом и без!

    В любом случае, будет проще не дизассемблировать, а посмотреть исходники регуляторов с этого сайта, разобраться и написать (или адаптировать) прошивку для PIC16F84. Ошибок по-любому будет меньше.

  15. #12
    Давно не был
    Регистрация
    22.02.2005
    Адрес
    г.Улан-Удэ р. Бурятия
    Возраст
    42
    Сообщений
    1,157
    Записей в дневнике
    48
    Цитата Сообщение от Alex@ndr Посмотреть сообщение
    При програмировании микроконтроллеров у меня возникла необходимость преобразовывать файлы прошивки с расширением .hex в файлы .inc для редактирования.
    Подскажите пожалуста, возможно ли преобразовать файлы *.hex в *.inc и наоборот *.inc в *.hex ?Какими программами это можно сделать?
    Вот тут на этом же сайте программка она эти форматы читает может и перезаписывает….попробуй …. .

  16. #13

    Регистрация
    12.09.2002
    Адрес
    Балашиха
    Возраст
    49
    Сообщений
    1,672
    Записей в дневнике
    2
    drDen
    Если у Вас есть фонтан - заткни его, дай отдохнуть и фонтану. Говорил Козьма Прутков. Похоже, это про Вас.

    Alex@ndr
    Мне кажется, я знаю, о какой прошивке идет речь, о реверсивном регуляторе, который мы не раз здесь обсуждали. Я ее в свое время дизассемблировал как раз IDA. К сожалению, исходника не осталось, я в ней ничего для себя интересного не нашел, потому и не сохранил. Если вы ничего о принципе построения регуляторов и ассемблер, архитектуру для PIC не знаете, будет достаточно сложно понять, что там к чему.

  17. #14

    Регистрация
    21.12.2004
    Адрес
    Саратов
    Возраст
    39
    Сообщений
    194
    Цитата Сообщение от toxa Посмотреть сообщение
    В любом случае, будет проще не дизассемблировать, а посмотреть исходники регуляторов с этого сайта, разобраться и написать (или адаптировать) прошивку для PIC16F84. Ошибок по-любому будет меньше.
    Фишка в другом .... в регуляторе с этого сайта на 509 pic не используются прерывания, а в f84 и в f675 они есть и это облегчает жизнь, поэтому аддаптировать бессысленно. А диссасемблировать moto_hex и сам пробывал , но терпенья не хватило, да и надобность отпала.

  18. #15

    Регистрация
    02.08.2002
    Адрес
    Москва
    Возраст
    43
    Сообщений
    3,120
    Цитата Сообщение от ILUHA
    Фишка в другом .... в регуляторе с этого сайта на 509 pic не используются прерывания, а в f84 и в f675 они есть и это облегчает жизнь, поэтому аддаптировать бессысленно.
    Во-первых регуляторов на rcdeisgn ДВА: один с реверсом, другой без. Тот что с реверсом, цитирую:
    Цитата Сообщение от Регулятор скорости с реверсом
    Программа регулятора рассчитана под микроконтроллер PIC 12 F 675 или PIC 12 F 629. Это позволяет при необходимости менять характеристики прошивки. В принципе, можно использовать и PIC 12 C 509.
    Во-вторых, если есть возможность в программе не использовать прерывания, то лучше их не использовать. Так как линейно написанная программа, в общем случае при прочих равных, работает надежнее. Облегчают они жизнь тому, кто этим инструментом владеет. А усложняют тем, кто хочет разобраться как работает или исправить ошибки, допущенные разработчиком. Если цель - получить регулятор с реверсом, то почему не взять за основу выложенный на этом сайте? Он с исходниками...

    В-третьих, тип контроллера никак не указывает на использование в микропрограмме прерываний (только потенциальную возможность), наличие "защит" и прочее, а так же культуру программирования и отсутствие глюков.

  19. #16

    Регистрация
    22.02.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    402
    Схемы регуляторов скорости на PIC12F675, PIC12C509 не обладают возможностью изменить их рабочие параметры(задать нейтраль, расход по газу и реверсу) в "полевых условиях"(без компьютера и програматора), а вот регулятор скорости на PIC16F84 адаптируется простыми нажатиями его кнопки.
    А что касается нужных мне изменений в прошивке, они в основном сводятся к инвертированию сигналов на выходах микроконтроллера (выводы 17,18).
    В разработанной мною схеме(приведён упрощённый вариант), нужно чтоб в режиме нейтрали на выводах 17,18 присуцтвовали логические единици(+5В), а при подаче каманды газ или тормоз, соответствующий вывод менял состояние на логический ноль. Вот для этого и нужно подправить прошивку.
    Подскажите, неужели внести такое изменение в прошивку невозможно?
    (Для сравнения привожу стандартную схему регулятора скорости на PIC16F84(там в режиме нейтрали на выводах 17,18 присуцтвуют логические ноли)).

  20. #17

    Регистрация
    12.09.2002
    Адрес
    Балашиха
    Возраст
    49
    Сообщений
    1,672
    Записей в дневнике
    2
    А никогда не задумывались, что будет, если одновременно на выходах 17 и 18 в вашей схеме появятся "1"? И в каком состоянии будут в этот момент оба силовых транзистора?
    Потом, вместо "тормоза" можно поставить транзистор "P" типа (многие так и делают), особого качества от него не требуется, но позволит вам убрать "утроитель". Современные N- транзисторы не требуют таких высокий напряжений на затворе, по крайней мере, легко найти те, которые уже при напряжении 4,5 В будут открываться как надо (т.е. иметь маленькое Rdson).

    И потом, вам нужен реверс или нет? Из вашего сообщения следует, что нужен, но на схеме Вы от него избавились...

  21. #18

    Регистрация
    21.12.2004
    Адрес
    Саратов
    Возраст
    39
    Сообщений
    194
    Цитата Сообщение от toxa Посмотреть сообщение
    Во-вторых, если есть возможность в программе не использовать прерывания, то лучше их не использовать. Так как линейно написанная программа, в общем случае при прочих равных, работает надежнее. Облегчают они жизнь тому, кто этим инструментом владеет. А усложняют тем, кто хочет разобраться как работает или исправить ошибки, допущенные разработчиком. Если цель - получить регулятор с реверсом, то почему не взять за основу выложенный на этом сайте? Он с исходниками...

    В-третьих, тип контроллера никак не указывает на использование в микропрограмме прерываний (только потенциальную возможность), наличие "защит" и прочее, а так же культуру программирования и отсутствие глюков.
    На самом деле цель была сделать на 675-ом некий симбиоз рега с этого сайта и того на 84-ом( програмирование нейтрали) +програмирование кол-ва банок с передатчика для мягкого отключения мотора при снижении напряжения не банках. А написать линейную прогу с такими функциями это надо очень исхитриться да и памяти по-больше.
    просто времени нет изобретать колесо, а вот готовые модули сшить во едино это проще и быстрее( если только они грамотно написаны)
    Вообще в плане красивого и лаконичного написания ИМХО выделяется прога на EAGLE MIXER.

  22. #19

    Регистрация
    22.02.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    402
    А никогда не задумывались, что будет, если одновременно на выходах 17 и 18 в вашей схеме появятся "1"? И в каком состоянии будут в этот момент оба силовых транзистора?
    Уточняю- моя схема справа(без оптронов).Мне как раз и надо чтоб при подаче команды "нейтраль" одновременно на выходах 17 и 18 присуцтвовала "1".Тогда оба биполярных транзистора будут открыты и через них "минус" поступит на затворы полевых транзисторов, закрывая их.
    Вместо "тормозных" транзисторов N-типа действительно можно поставить транзисторы P-типа. Тогда придётся инвентировать только один вывод микроконтроллера, но прошивку править всё равно придётся.
    Кстати, какие бы вы посоветовали транзисторы на "газ" и "тормоз" для управления автомодельным двигателем на 10-13 витков, если в моём старом регуляторе (силовая часть схемы как в приведённой выше "моей" схеме) транзисторы "газа" IRF1010N (4 запаралеленых) были чуть тёплыми, а "тормозные" IRF1010N (2 запаралеленых) грелись что аж скотч расплавляли?



    Добавлено

    Дизасемблировать *.hex в *.asm я уже научился, а чем их теперь после редактирования из *.asm в *.hex преабразовать?

  23. #20

    Регистрация
    21.12.2004
    Адрес
    Саратов
    Возраст
    39
    Сообщений
    194
    Цитата Сообщение от romychs Посмотреть сообщение
    Alex@ndr
    Мне кажется, я знаю, о какой прошивке идет речь, о реверсивном регуляторе, который мы не раз здесь обсуждали. Я ее в свое время дизассемблировал как раз IDA. К сожалению, исходника не осталось, я в ней ничего для себя интересного не нашел, потому и не сохранил. Если вы ничего о принципе построения регуляторов и ассемблер, архитектуру для PIC не знаете, будет достаточно сложно понять, что там к чему.

    А может все таки есть у кого дизассемблированный приведенный к человеческому виду асм этой прошивки Moto_hex16.

  24. #21

    Регистрация
    12.09.2002
    Адрес
    Балашиха
    Возраст
    49
    Сообщений
    1,672
    Записей в дневнике
    2
    Ту "Тормозные" у вас по видимому грелись из за того, что "встроенные" в полевики диоды, как многие отмечают, не того качества. Попробуй использовать внешний диод Шоттки в параллель мотору.

    Назад ассемблируется MPASM, но гораздо удобнее это сделать в MPLAB, взять можно на www.microchip.com, www.microchip.ru

    Нужные транзисторы можно подобрать на www.irf.com воспользовавшись параметрическим поиском.

    dejavue...

Закрытая тема

Похожие темы

  1. Как с PDF файла перенести чертеж в Solid
    от VELOX в разделе Чертежи авиамоделей
    Ответов: 3
    Последнее сообщение: 18.11.2009, 13:55
  2. Как преобразовать...
    от rbob в разделе Самодельная электроника, компьютерные программы
    Ответов: 3
    Последнее сообщение: 20.06.2007, 19:18
  3. Ответов: 4
    Последнее сообщение: 27.03.2007, 14:27
  4. как преобразовать программу, написанную на C/C++ в *.hex
    от LaDy в разделе Самодельная электроника, компьютерные программы
    Ответов: 2
    Последнее сообщение: 25.03.2006, 09:56
  5. Каких производителей кварцы можно использовать в аппаратуре
    от Tomcat в разделе Самодельная электроника, компьютерные программы
    Ответов: 0
    Последнее сообщение: 05.02.2002, 13:52

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения