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 develop8 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 develop8 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 develop8 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 objutils0
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 objutils1
Tệp kết quả có thể được kiểm tra từ dòng lệnh
pip install objutils2
Và tải lại
python setup.py develop0
Điều này dẫn đến thành ngữ chuyển đổi
python setup.py develop1
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 develop2
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 develop3
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 develop4
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 develop5
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 develop6
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 develop7
Đ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