@AAGR
Занимаюсь программированиям

Как конвертнуть в hex формат при помощи c#?

Я делаю программу, которая будет преобразовать код в arduino ide в hex формат, да я знаю что можно

Скетч -> Экспорт бинарного файла

Мне нужно чтобы именно при помощи c#
  • Вопрос задан
  • 924 просмотра
Решения вопроса 2
HemulGM
@HemulGM
Delphi Developer, сис. админ
hex - это не формат, а представление бит. То, что ты видишь в блокноте или hex-редакторе, открыв через них файл - лишь разные представления бит (нолей и единиц). Их можно представить хоть в hex (шестнадцатиричная система), хоть в восьмеричной, хоть в десятичной, хоть в символах, что и делает большинство блокнотов.

Arduino IDE не переводит код в hex, она собирает сектч - компилирует его. Что такое компиляция - ты должен знать, раз хочешь что-то там сделать на шарпе.

Тебе нужно скомпилировать скетч. Компилируется он, как ни странно, компилятором. Он находится в папке со средой Arduino IDE. Ищешь его, вызываешь сборку нужного скетча. А лучше, иди и погугли "ручная компиляция скетча arduino".

Конечный HEX файл создается из скомпилированного бинарного файла, а не из кода.

Т.е. сначала узнай как скомпилировать код, а потом уже переводи его в текстовый вариант.
Ответ написан
Комментировать
@vanyamba-electronics
Arduino IDE копирует код скетча и библиотеки, которые в нём указаны с помощью директив #include во временную папку, а затем компилирует программу с помощью компилятора avr-gcc для заданного пользователем микроконтроллера.
Затем полученный elf файл с помощью утилиты avr-objcopy конвертируется в формат hex для того, чтобы загрузить его в микроконтроллер с помощью avrdude по протоколу stk-500.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@lonelymyp
Хочу вылезти из минуса по карме.
В hex программу преобразует компилятор. Это отдельная сложная программа которую ты не напишешь.
К счастью компилятором можно пользоваться всем.
Ты можешь в своей программе сделать вызов стандартного компилятора от ардуино, дать ему на вход код программы и получить на выходе готовый hex
Ответ написан
Смотрите, какие команды вызывает arduino ide при сборке скетча и через Process.Start повторяйте это на C#
Ответ написан
nava2002
@nava2002
Инженер
hex - файл это МАШИННЫЕ КОДЫ. То есть набор кодов которые процессор контроллера интерпретирует как команды.
Все контроллеры имею разные по конструкции внутренние элементы и следовательно разные наборы команд процессора.
Поэтому прежде чем заливать прошивку в Ардуино нужно обязательно указать какой именно контроллер будет запрограммирован.
Команда на языке высокого уровня (С++) сопоставляется с контроллером через набор библиотек и затем превращается в набор команд которые и составят содержимое hex файла записываемого в память контроллера.
Язык C# НЕ имеет такого интерпретатора для микроконтроллеров используемых в Ардуино.
Следовательно НЕТ возможности программу написанную на языке C# скомпилировать в исполняемый hex файл.
Следовательно нужно ПЕРЕПИСАТЬ текст программы написанной на языке С# (в текстовом редакторе) используя синтаксис языка C++ и уже затем его можно будет откомпилировать для записи в память контроллера.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы