2016-01-24 2 views
-1

Я надеюсь использовать intelhex, но не полностью понимаю, что нужно передать, чтобы просто преобразовать весь файл.Как конвертировать весь файл hex в корзину?

В test-usage.py:

import os 
import sys 
from intelhex import hex2bin 

with open("foo.hex", "r") as fin: 
    start = 0 
    end = 218 
    size = None 
    pad = None 
    print("start: {}\nend: {}\nsize: {}\npad: {}".format(start, end, size, pad)) 
    hex2bin(fin, sys.stdout, start, end, size, pad) 

Ошибка:

start: 0 
end: 218 
size: None 
pad: None 
Traceback (most recent call last): 
    File "./test-usage.py", line 19, in <module> 
    hex2bin(fin, sys.stdout, start, end, size, pad) 
    File "/home/me/myvenv/lib/python3.4/site-packages/intelhex/__init__.py", line 1001, in hex2bin 
    h.tobinfile(fout, start, end) 
    File "/home/me/myvenv/lib/python3.4/site-packages/intelhex/__init__.py", line 412, in tobinfile 
    fobj.write(self._tobinstr_really(start, end, pad, size)) 
TypeError: must be str, not bytes 

foo.hex заимствован из here:

:10001300AC12AD13AE10AF1112002F8E0E8F0F2244 
:10000300E50B250DF509E50A350CF5081200132259 
:03000000020023D8 
:0C002300787FE4F6D8FD7581130200031D 
:10002F00EFF88DF0A4FFEDC5F0CEA42EFEEC88F016 
:04003F00A42EFE22CB 
:00000001FF 

http://python-intelhex.readthedocs.org/en/latest/part3-1.html

Usage of hex2bin in the example script source.

+0

Вопросы, относящиеся к поиску справки по отладке (** «почему этот код не работает?» **) должен включать в себя желаемое поведение, * конкретную проблему или ошибку * и * самый короткий код, необходимый * для воспроизведите его ** в самом вопросе **. Вопросы без ** ясного заявления о проблеме ** не полезны для других читателей. См. [Как создать минимальный, завершенный и проверяемый пример] (http://stackoverflow.com/help/mcve). – MattDMo

+0

Пожалуйста, определите оба формата и дайте примеры данных. –

+0

@MattDMo лучше? – tarabyte

ответ

0

Поддержка, похоже, пока не существует для python3. Создание новой виртуальной среды с помощью python2 (немного выходит за рамки этого вопроса), я могу выполнить без ошибок.

ENV_NAME=testenv 
virtualenv -p /usr/bin/python2 ${ENV_NAME} 
source ${ENV_NAME}/bin/activate 
pip install IntelHex==2.0 
./test-usage.py 

start: 0 
end: 218 
size: None 
pad: None 
#� 
� % 
5 
"����/"x����u����������Τ.�����.�"�������������������������������������������������������������������������������������������������������������������������������������������������������� 

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

hex2bin(fin, sys.stdout) 
Смежные вопросы