Làm cách nào để nhập tệp hex vào python?

Dữ liệu nhị phân được lưu trữ trong tệp hex được sử dụng rộng rãi, đặc biệt là trong các ứng dụng hệ thống nhúng.

python setup.py develop
8 cung cấp cho bạn quyền truy cập có lập trình vào nhiều định dạng và cung cấp API thực tế để làm việc với dữ liệu đó

Tải phiên bản mới nhất từ ​​Github

Cài đặt

pip install objutils

hoặc chạy

python setup.py develop

trên cài đặt cục bộ của bạn

điều kiện tiên quyết

  • Trăn >= 3. 4

Đặc trưng

  • Các tệp ELF có thể đọc, bao gồm các ký hiệu
  • Truy cập được đánh máy [vô hướng và mảng] vào dữ liệu nhị phân

Các định dạng HEX được hỗ trợ

python setup.py develop
8 hỗ trợ nhiều định dạng HEX

Hiện hành

  • codec/tên định dạng
  • ihex [Intel HEX]
  • shf [S Hexdump [rfc4194]]
  • src [Bản ghi S của Motorola]
  • titxt [Văn bản Công cụ Texas]

lịch sử

  • codec/tên định dạng
  • tro [ASCII Space Hex]
  • vũ trụ [RCA Cosmac]
  • emon52 [Điện máy EMON52]
  • etek [Hệ thập lục phân mở rộng của Tektronix]
  • fpc [Mã bốn gói]
  • mostec [Công nghệ MOS]
  • rca [RCA]
  • sig [Ký hiệu]
  • tek [Hệ thập lục phân Tektronix]

codec là tham số đầu tiên cho hàm dump[] / load[], e. g

img = objutils.load["ihex", "myHexFile.hex"]     # Load an Intel HEX file...
objutils.dump["srec", "mySRecFile.srec", img]    # and save it as S-Records.

Những bước đầu tiên

Nếu bạn quan tâm, những gì mà

python setup.py develop
8 cung cấp cho bạn ngay lập tức, hãy tham khảo tài liệu về Scripts

Trong mọi trường hợp, bạn nên làm việc thông qua hướng dẫn sau

Trước tiên hãy nhập tất cả các lớp và hàm được sử dụng trong hướng dẫn này

from objutils import Image, Section, dump, dumps, load, loads

Mọi thứ bắt đầu với thế giới xin chào

sec0 = Section[start_address = 0x1000, data = "Hello HEX world!"]

Các tham số hàm tạo cho Phần phản ánh nội dung của chúng. Một vùng liên tục của bộ nhớ với một địa chỉ bắt đầu

dữ liệu không nhất thiết phải là chuỗi, mảng. mảng**s, **byte, bytearray cũng sẽ làm được hoặc từ quan điểm nội bộ. mọi thứ có thể chuyển đổi thành bytearray đều có thể được sử dụng

Ghi chú. start_address và data là các đối số vị trí, vì vậy không cần sử dụng chúng làm từ khóa [chỉ để minh họa]

Bây giờ hãy kiểm tra phần của chúng tôi

________số 8

hexdump[] cung cấp cho chúng ta, thứ mà trong thế giới tin tặc được gọi là hexdump chính tắc

Các tệp HEX thường bao gồm nhiều phần, vì vậy hãy tạo một phần khác

sec1 = Section[0x2000, range[1, 17]]
sec1.hexdump[]

00002000  01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10  |................|
---------------
       16 bytes
---------------

Bây giờ, hãy dán các phần của chúng ta lại với nhau

pip install objutils
0

Hình ảnh rõ ràng là nơi chứa các phần và chúng luôn liên quan nếu bạn đang tương tác với các tệp HEX dựa trên đĩa

pip install objutils
1

Tệp kết quả có thể được kiểm tra từ dòng lệnh

pip install objutils
2

Và tải lại

python setup.py develop
0

Điều này dẫn đến thành ngữ chuyển đổi

python setup.py develop
1

Ghi chú. các định dạng ở trên được liệt kê là lịch sử vì một lý do chính đáng là lịch sử. chúng chỉ rộng 16 bit, vì vậy nếu bạn muốn chuyển đổi, hãy nói tệp srec cho MCU 32 bit đối với chúng, bạn không gặp may

OK, chúng tôi đang bắt đầu một phiên khác

python setup.py develop
2

Hai phần có dải địa chỉ liên tiếp được nối thành một, điều này có thể đúng hoặc không như bạn mong đợi

Vì lý do này Hình ảnh có tham số tham gia

python setup.py develop
3

Một đặc điểm khiến các objutil khác biệt với các thư viện khác thuộc loại này là quyền truy cập điển hình.

Chúng tôi đang bắt đầu với một hình ảnh mới

python setup.py develop
4

Bây giờ chúng tôi đang viết một chuỗi vào hình ảnh của chúng tôi

python setup.py develop
5

Chú ý sự khác biệt?

Sử dụng các hàm write[] và read[] nếu bạn muốn truy cập các byte đơn giản

Nhưng cũng có hỗ trợ cho các loại số

python setup.py develop
6

Các loại sau đây được hỗ trợ

  • uint8
  • int8
  • uint16
  • int16
  • uint32
  • int32
  • uint64
  • int64
  • phao32
  • phao64

Trong mọi trường hợp, các hậu tố về tuổi thọ _ be hoặc _l là bắt buộc

Mảng cũng được hỗ trợ

python setup.py develop
7

Điều này kết thúc hướng dẫn của chúng tôi bây giờ, nhưng có nhiều thứ hơn để làm theo

Tài liệu

Để có tài liệu đầy đủ, bao gồm cài đặt, hướng dẫn và tài liệu PDF, vui lòng xem Readthedocs

Lỗi/Yêu cầu

Vui lòng sử dụng trình theo dõi vấn đề GitHub để gửi lỗi hoặc yêu cầu các tính năng

Người giới thiệu

Dưới đây là tổng quan về một số định dạng tệp hex cổ điển

tác giả

  • Christoph Schueler - Công việc ban đầu và trưởng dự án

Giấy phép

Dự án này được cấp phép theo Giấy phép Công cộng GNU v2. 0

Sự đóng góp

Nếu bạn đóng góp mã cho dự án này, bạn hoàn toàn cho phép mã của mình được phân phối theo Giấy phép Công cộng GNU v2. 0. Bạn cũng đang ngầm xác minh rằng tất cả mã đều là tác phẩm gốc của bạn

Hex có hoạt động trong Python không?

Hàm Python hex[] . Chuỗi trả về luôn bắt đầu bằng tiền tố 0x. The hex[] function converts the specified number into a hexadecimal value. The returned string always starts with the prefix 0x .

Làm cách nào để chuyển đổi từ hex sang chuỗi Python?

Phương pháp 1. Sử dụng fromhex[] và decode[] . Không có thư viện bổ sung được yêu cầu cho phương pháp này.

Chủ Đề