Главная arrow Проекты arrow По группам arrow Software-проекты arrow D2T - Конвертер файлов в массивы  
26.04.2017 г.
Главная
Проекты
Статьи
Начинающим
Архив новостей
Ссылки
Контакты
Поиск
Файлы
Форум
Карта сайта
Авторизация





Забыли пароль?
Ещё не зарегистрированы? Регистрация
Поддержи наш сайт!
Через WebMoney

 R785211844650
 Z210696637574
 E368177590409

Простые устройстваОтличные товары по превосходным ценамОтличные товары по превосходным ценам
D2T - Конвертер файлов в массивы Печать E-mail
Рейтинг: / 4
ХудшаяЛучшая 
Автор ARV   
20.10.2010 г.

Потребовалась мне утилитка, которая из обычного HEX-файла может сгенерировать массив констант, чтобы затем вставить его в программу на Си для микроконтроллера, и, как ни странно, найти ее в интернете я не смог. То ли искать не умею, то ли такое проблемы никого не заботят, то ли еще что помешало... Ну, что нам стоит дом построить? Нарисуем - будем жить! То есть я взял и написал сам такую утилитку.

Назвал ее я скромно D2T, то есть Data to Text converter - преобразователь данных в текст.

 

 

Утилитка работает в консольном режиме - это уже на мне начинает сказываться использование различных GNU-программ, а они родом из всяких "никсов", где командная строка - мать родная.

 

Утилита уже имеет довольно много возможностей:

  • Считывает любой файл, интерпретируя его как набор двоичных байтов (raw binary format)
  • Считывает файл в формате Intel HEX (стандарт для всех программаторов)
  • Может обработать любое количество файлов по маске
  • Может создавать массивы в форматах, принятых для программ Си, Pascal и ассемблер
  • Может обрабатывать не все данные в файле, а только выбранный участок
  • Может выводить результат работы прямо в консоль
  • Может создавать массивы байтов, 16-битных слов и 32-разрядных слов
  • Может представлять данные в двоичном, восьмеричном, десятичном (со знаком и без него) и шестнадцатеричном форматах
  • Имеет дополнительные возможности по изменению формата оформления массива

Я занимаюсь тем, чтобы научить ее обрабатывать и задуманные текстовые файлы типа "дамп памяти" (одно время в таких форматах было модно публиковать прошивки в жарнале Радио). Эта возможность - скорее для интересу, чем для пользы, но как знать - может и пригодится кому...

Интерфейс программы на английском, поэтому кратко опишу параметры командной строки для ее использования.

Опции контроля входного файлов:

-ib файл содержит двоичные данные (по умолчанию)
-in имя задает имя входного файла. Можно указать как имя одного файла, в том числе с путем, так и маску для групповой обработки файлов, например, *.dat. Обратите внимание, что имя вводится через пробел от параметра -in

Опции контроля выходных файлов:

-ot NN задает число данных в одной строке массива, NN указывается через пробел от параметра и может принимать значения от 1 до 32, по умолчанию 8
-oc формирование выходного массива в формате Си
-oa формирование выходного массива в формате ассемблера
-op формирование выходного массива в формате Pascal
-oe .ext задает расширение выходных файлов. Расширение указывается вместе с точкой через пробел от параметра.
-on имя задает имя выходного файла. Данная опция не может использоваться для обработки группы файлов. При использовании ее совместно с опцией -oe расширение, указанное в имени файла, будет заменено на указанное в опции -oe. Если вместо имени файла указать *, то для вывода будет использовано имя входного файла с новым расширением. Если в имени файла указан путь, то даже для имени * он будет использован.
-ob START,LEN вывод в выходной массив части даных, длиной в LEN байт начиная с байта номер START.  Обратите внимание, что между числами START и LEN обязательно должна быть запятая и не должно быть пробелов. Если после запятой не указать число LEN, то будут обработаны данные от указанного начала и до конца файла. Внимание! Отсчет данных ведется не от начала входного файла, а от начала действительных данных в нем! То есть для двоичного начало файла и начало данных это одно и то же, а вот для HEX-файла - нет.

Опции, изменяющие внешнее представление данных в массиве: 

-fa str для ассемблерногот формата - начинать каждую строку массива со строки str. Эта опция позволяет изменить обычное .db на другую директиву ассемблера, например, .byte
-fx XX для входного HEX-файла задает шестнадцатеричное значение ХХ (без превиксов, т.е. просто FF, например), которым будут заполнены "дыры" в адресах. По умолчанию заполнение ведется значением FF.
-nd десятичное представление чисел
-no восьмеричное представление чисел
-nx шестнадцатеричное представление чисел
-nb двоичное представление чисел
-sb формировать массив байт со знаком
-sw формировать массив 16-битных слов со знаком
-sd формировать массив 32-битных слов со знаком
-ub формировать массив байтов без знака
-uw формировать массив 16-битных слов без знака
-ud формировать массив 32-битных слов без знака

Опции для знакового представления чисел имею смысл только для десятичного формата. Если в командной строке не указаны никакие опции, кроме имени входного файла, то программа работает, как если бы были указаны следующие параметры: -on 8 -ib -oc -nx -ub -fa .db -oe .h -fx FF -ob 0, - это параметры по умолчанию.

Учтите, что если имя выходного файла не указано, программа выводит результат своей работы в консоль. Регистр опций роли не играет. Напомню, что если какие-либо строковые параметры, вводимые вами, содержат пробелы, то их обязательно надо заключать в двойные кавычки, иначе пробел будет воспринят как промежуток между опциями.

Скачать программу можно в файлохранилище:
http://arv.radioliga.com/component/option,com_remository/Itemid,27/func,startdown/id,134/

Исходный текст программы так же доступен:
http://arv.radioliga.com/component/option,com_remository/Itemid,27/func,startdown/id,135/

Обсудить материал на форуме. (0 сообщений)

Буду благодарен за советы по совершенствованию или исправлению замеченных багов.

 


Добавить в любимые (0) | Просмотров: 11902

  Ваш коментарий будет первым

Только зарегистрированные пользователи могут оставлять коментарии.
Пожалуйста зарегистрируйтесь или войдите в ваш аккаунт.

 
« Пред.   След. »
Полезные материалы по сходным темам
BannerFans.com