Đây là lệnh srec_examples có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
srec_examples - ví dụ về cách sử dụng SRecord
MÔ TẢ
Sản phẩm bí mật_cat lệnh rất mạnh mẽ, do khả năng kết hợp các bộ lọc đầu vào
theo những cách gần như không giới hạn. Trang hướng dẫn sử dụng này mô tả một vài trong số chúng.
Trang hướng dẫn sử dụng này mô tả cách sử dụng các tệp đầu vào khác nhau, bộ lọc đầu vào và đầu vào
máy phát điện. Nhưng đây chỉ là những ví dụ, để biết thêm chi tiết đầy đủ, hãy xem sc_input(1)
trang hướng dẫn sử dụng.
Sản phẩm Lệnh đường Có Quá dài
Nếu bạn đang sử dụng một hệ điều hành có giới hạn độ dài dòng lệnh ngắn đến mức ngớ ngẩn,
một số lệnh sau đó có thể quá dài. Bạn có thể vượt qua mức chấp này bằng cách
đặt dòng lệnh của bạn trong một tệp, nói fred.txt, và sau đó nói bí mật_cat(1) để đọc cái này
tệp cho phần còn lại của dòng lệnh, như thế này
srec_cat @ fred.txt
Điều này cũng có lợi thế là cho phép nhận xét, cho phép bạn viết dòng lệnh của mình
các tùy chọn trên một số dòng và thậm chí thụt lề để làm cho lệnh rõ ràng hơn. Bình luận
bắt đầu ở “#”Và kéo dài đến cuối dòng. Các dòng trống bị bỏ qua.
Tất nhiên, bạn luôn có thể nâng cấp lên Linux, vốn đã kém hơn 27
nhiều năm nay.
trên màn hình Các ví dụ Muốn
Nếu bạn có một cách sử dụng SRecord thông minh hoặc đã giải quyết được một vấn đề khó khăn với
SRecord, bạn có thể đóng góp cho trang hướng dẫn này, làm cho nó hữu ích hơn cho mọi người.
Gửi ví dụ của bạn trong một email đến địa chỉ email ở cuối trang hướng dẫn sử dụng này.
CHUYỂN ĐỔI FILE M FORU ĐƠN
Những điều đơn giản nhất bí mật_cat(1) có thể làm là chuyển đổi từ một định dạng tệp EPROM sang
nữa. Hãy ghi nhớ rằng khi bạn đọc phần này, bạn có thể làm được nhiều điều
mọi thứ đồng thời trong một lệnh. Chúng chỉ được chia ra riêng biệt để làm cho chúng
Dễ hiểu.
Intel đến Motorola
Một trong những ví dụ đơn giản nhất là chuyển đổi tệp từ định dạng hex của Intel sang Motorola S‐
Định dạng ghi:
bí mật_cat tập tin intel -intel -o tập tin srec
Lưu ý rằng mã định dạng nằm ngay sau tên của tệp mà nó đang mô tả.
Chọn bất kỳ hai định dạng nào mà SRecord hiểu được và nó có thể chuyển đổi giữa tất cả chúng.
(Ngoại trừ đầu ra của trình hợp dịch, BASIC, C và FPGA chỉ được ghi.)
Motorola đến Intel
Chuyển đổi theo cách khác chỉ đơn giản như sau:
bí mật_cat tập tin srec -o tập tin intel -Intel
Định dạng mặc định là định dạng Motorola S ‐ Record, vì vậy nó không cần phải được chỉ định sau
tên tệp.
Khác nhau Hình dạng of các Như nhau Định dạng
Điều đáng tiếc là một số lập trình viên EPROM bổ trợ chỉ triển khai một phần
của thông số kỹ thuật được sử dụng để đại diện cho các tệp hex của chúng. Ví dụ, một số trình biên dịch
sản xuất dữ liệu Motorola “s19” (nghĩa là, bản ghi dữ liệu S1 với bản ghi bắt đầu S9, 16 bit
trường địa chỉ) sẽ không sao ngoại trừ việc một số lập trình viên EPROM đầu khối nhấn mạnh vào
Dữ liệu Motorola “s37” (nghĩa là, các bản ghi dữ liệu S3 với các bản ghi khởi động S7, địa chỉ 32 bit
lĩnh vực).
Có thể chuyển đổi từ hình dạng Motorola này sang hình dạng khác bằng cách sử dụng -Địa chỉ ‐ Chiều dài
tùy chọn:
srec_cat short.srec -o long.srec -address ‐ length = 4
Lệnh này cho biết sử dụng địa chỉ bốn byte (32 ‐ bit) trên đầu ra.
Phần này cũng áp dụng cho các tệp hex của Intel, vì chúng cũng có khả năng chọn
từ nhiều độ rộng địa chỉ khác nhau. Để chuyển đổi từ hình dạng Intel này sang hình dạng khác bằng cách sử dụng
tương tự -Địa chỉ ‐ Chiều dài tùy chọn:
srec_cat i32.hex -o i16.hex -address ‐ length = 3
Lệnh này cho biết sử dụng các địa chỉ được phân đoạn 16 bit “i20hex” trên đầu ra. Độ dài địa chỉ
4 là giá trị mặc định (định địa chỉ tuyến tính “i32hex” 32 bit) và độ dài địa chỉ là 2 sẽ
yêu cầu địa chỉ 8 bit “i16hex”.
Dòng Độ dài
Đôi khi, bạn sẽ bắt gặp một lập trình viên EPROM yếu ớt không thể đối phó
với các dòng văn bản dài, họ cho rằng sẽ chỉ có 46 ký tự trên mỗi dòng và
barf khi họ thấy độ dài dòng mặc định bí mật_cat(1) ghi (hoặc tệ hơn, nhận được một ngăn xếp
nguệch ngoạc và sụp đổ).
Định nghĩa định dạng bản ghi S ‐ của Motorola cho phép tải trọng lên đến 255 byte hoặc các dòng
514 ký tự, cộng với dấu chấm hết dòng. Tất cả các lập trình viên EPROM nên có đủ
bộ đệm dòng lớn để đối phó với các kỷ lục lớn này. Ít làm.
Tùy chọn -line ‐ length có thể được sử dụng để chỉ định độ dài dòng tối đa (không bao gồm
dòng mới) sẽ được sử dụng trên đầu ra. Ví dụ: tải trọng 16 byte cho Motorola hex
srec_cat long.srec -o short.s19 -line ‐ length = 46
Tùy chọn độ dài dòng tương tác với tùy chọn độ dài địa chỉ, vì vậy một số người mày mò để
tối ưu hóa cho nhiều trường hợp cụ thể của bạn là cần thiết.
Đầu ra Chặn Kích thước máy
Thỉnh thoảng, bạn sẽ bắt gặp một lập trình viên EPROM cổ lỗ không thể
đối phó với các bản ghi dữ liệu dài, họ giả định rằng sẽ chỉ có nhiều nhất là 16 byte
dữ liệu trên mỗi bản ghi và barf khi họ thấy các trọng tải 32 byte mặc định bí mật_cat(1)
viết (hoặc tệ hơn, bộ đệm quá chạy gây ra một đường đi bộ trên cỏ cao vẽ nguệch ngoạc trên
EPROM).
Định nghĩa định dạng hex của Intel cho phép tối đa 255 byte dữ liệu trọng tải trên mỗi bản ghi. Tất cả các
Lập trình viên EPROM nên có bộ đệm dữ liệu đủ lớn để đối phó với các bản ghi này
to lớn. Chúc may mắn với điều đó.
Tùy chọn -Output ‐ Block ‐ Size có thể được sử dụng để chỉ định kích thước dữ liệu bản ghi sẽ được sử dụng
đầu ra. Ví dụ: Intel hex với tải trọng 16 byte:
srec_cat long.srec -o short.hex -intel -obs = 16
Hãy cẩn thận không đặt -cung tùy chọn giữa tên tệp đầu ra và định dạng
người chỉ định.
Chỉ cần các Dữ liệu, Vui lòng
Có một số lập trình viên EPROM đầu cơ chỉ có thể xử lý các bản ghi dữ liệu và
không thể đối phó với các bản ghi tiêu đề hoặc bản ghi địa chỉ bắt đầu thực thi. Nếu bạn có cái này
vấn đề, -chỉ thông tin tùy chọn có thể được sử dụng để ngăn chặn mọi thứ ngoại trừ
dữ liệu. Tất nhiên, hiệu quả thực sự phụ thuộc vào định dạng, vì một số không có
các tính năng nào.
Sản phẩm -chỉ thông tin tùy chọn là tay ngắn. Có bốn thuộc tính có thể -tàn tật or
-enabled riêng biệt. Xem bí mật_cat(1) trang người đàn ông để mô tả về -tàn tật và
-enabled tùy chọn.
Ví dụ: bộ lập trình EPROM mới của bạn yêu cầu Motorola hex với các bản ghi tiêu đề
(S0), nhưng không có bản ghi đếm dữ liệu (S5). Không sử dụng -chỉ thông tin tùy chọn có nó barf bật
bản ghi đếm dữ liệu, nhưng sử dụng -chỉ thông tin tùy chọn có nó barf trên tiêu đề bị thiếu
ghi. Sử dụng -disable = data ‐ count tùy chọn sẽ giữ nguyên bản ghi tiêu đề trong khi
ngăn chặn bản ghi đếm dữ liệu.
Ngày Headers
Sản phẩm bí mật_cat(1) lệnh luôn cố gắng chuyển qua các bản ghi tiêu đề không thay đổi, bất cứ khi nào
chúng có mặt. Nó thậm chí còn cố gắng bảo toàn chúng qua các thay đổi định dạng tệp, đến giới hạn
các định dạng tệp có khả năng.
Nếu không có bản ghi tiêu đề tệp và bạn muốn thêm một bản ghi hoặc bạn muốn ghi đè
một bản ghi tiêu đề tệp hiện có, sử dụng -cái đầu=chuỗi Lựa chọn. Bạn sẽ cần phải trích dẫn
chuỗi (để cách ly nó với shell) nếu nó chứa khoảng trắng hoặc ký tự meta shell.
Thực hiện Bắt đầu Địa chỉ
Sản phẩm bí mật_cat(1) lệnh luôn cố gắng chuyển qua các địa chỉ bắt đầu thực thi (thường là
xảy ra ở cuối tệp), bất cứ khi nào chúng hiện diện. Chúng được điều chỉnh cùng
với các bản ghi dữ liệu của -bù lại lọc. Nó thậm chí còn cố gắng bảo toàn chúng trên tệp
thay đổi định dạng, trong giới hạn định dạng tệp có thể.
Nếu không có bản ghi địa chỉ bắt đầu thực thi và bạn muốn thêm một bản ghi hoặc bạn muốn
để ghi đè bản ghi địa chỉ bắt đầu thực thi hiện có, hãy sử dụng -thực hiện ‐ bắt đầu‐
địa chỉ=con số tùy chọn.
Xin lưu ý: địa chỉ bắt đầu thực thi là một khái niệm khác với địa chỉ đầu tiên trong
bộ nhớ dữ liệu của bạn. Hãy coi nó như một địa chỉ "goto" để màn hình chuyển đến khi
tải hex đã hoàn tất. Nếu bạn muốn thay đổi vị trí bắt đầu dữ liệu của mình trong bộ nhớ, hãy sử dụng
-bù lại lọc.
Sửa chữa Kiểm tra
Một số nhà phát triển chương trình cơ sở nhúng được trang bị các công cụ được trang bị lông vũ tạo ra
tổng kiểm tra không chính xác, mà các mô hình lập trình EPROM thận trọng hơn sẽ không chấp nhận.
Để sửa các tổng kiểm tra trên một tệp, hãy sử dụng -ignore ‐ tổng kiểm tra Lựa chọn. Ví dụ:
srec_cat break.srec -ignore ‐ checksums -o fixed.srec
Tổng kiểm tra trong bị hỏng.srec được phân tích cú pháp (nó vẫn còn và có lỗi nếu chúng vắng mặt) nhưng
chưa được kiểm tra. Kết quả cố định.srec tệp có tổng kiểm tra chính xác. Các -ignore ‐ tổng kiểm tra
tùy chọn chỉ áp dụng cho đầu vào.
Tùy chọn này có thể được sử dụng trên bất kỳ định dạng tệp nào có tổng kiểm tra, bao gồm cả Intel hex.
Khám phá Trinh thám Định dạng
Xem Điều gì Định dạng Is Điều này? phần bên dưới để biết cách khám phá và chuyển đổi EPROM bí ẩn
tải các định dạng tệp.
nhị phân CÁC TẬP TIN
Có thể chuyển đổi sang và từ các tệp nhị phân. Bạn thậm chí có thể trộn các tệp nhị phân và
các định dạng khác với nhau trong cùng một bí mật_cat(1) lệnh.
Writing Nhị phân Các Tập Tin
Cách đơn giản nhất để đọc tệp hex và chuyển đổi nó thành tệp nhị phân trông như sau:
srec_cat fred.hex -o fred.bin -binary
Điều này đọc tệp hex Motorola fred.srec và viết nó ra fred.bin như thô
nhị phân.
Lưu ý rằng dữ liệu được đặt vào tệp nhị phân ở độ lệch byte được chỉ định bởi
địa chỉ trong tệp hex. Nếu có lỗ hổng trong dữ liệu, chúng sẽ được lấp đầy bằng không.
Tất nhiên, điều này là phổ biến với đầu ra của trình liên kết nơi mã được đặt bắt đầu từ
vị trí cụ thể trong bộ nhớ. Ví dụ: khi bạn có một hình ảnh bắt đầu ở 0x100000,
1MB đầu tiên của tệp nhị phân đầu ra sẽ bằng không.
Bạn có thể tự động hủy bỏ sự chênh lệch này bằng cách sử dụng lệnh như
srec_cat fred.hex -offset - -minimum ‐ addr fred.hex -o fred.bin
Lệnh trên hoạt động bằng cách bù trừ fred.hex tập tin thấp hơn trong bộ nhớ ít nhất
địa chỉ trong fred.hex dữ liệu của tệp.
Xem thêm sc_binary(5) trang người đàn ông để biết thêm chi tiết.
Reading Nhị phân Các Tập Tin
Cách đơn giản nhất để đọc một tệp nhị phân và chuyển đổi nó trông như thế này
srec_cat fred.bin -binary -o fred.srec
Điều này đọc tệp nhị phân fred.bin và ghi lại tất cả dữ liệu của nó dưới dạng
Motorola S ‐ Ghi tệp.
Thông thường, tệp nhị phân này không chính xác ở nơi bạn muốn trong không gian địa chỉ, bởi vì nó là
giả sử cư trú tại địa chỉ số không. Nếu bạn cần di chuyển nó xung quanh, hãy sử dụng -bù lại lọc.
srec_cat fred.bin -binary -offset 0x10000 -o fred.srec
Bạn cũng cần tránh các "lỗ" tệp được lấp đầy bằng không. Bạn có thể dùng -trồng trọt
bộ lọc, bạn có thể sử dụng -unfill lọc nếu bạn không biết chính xác dữ liệu ở đâu.
srec_cat fred.bin -binary -unfill 0x00 512 -o fred.srec
Lệnh trên loại bỏ các lần chạy 512 byte dài hoặc dài hơn XNUMX byte. Nếu là của bạn
tệp chứa 1GB không byte đầu tiên, điều này sẽ chậm, có thể tốt hơn nếu sử dụng
các dd(1) lệnh để cắt và xúc xắc đầu tiên.
THAM GIA CÁC TẬP TIN CÙNG VỚI NHAU
Sản phẩm bí mật_cat lệnh lấy tên từ UNIX làm sao(1) lệnh, viết tắt của
"Phục vụ" hoặc "tham gia". Các bí mật_cat lệnh nối các tệp tải EPROM lại với nhau.
Tất cả In Một
Việc kết hợp các tệp tải EPROM lại với nhau thành một tệp rất đơn giản, chỉ cần đặt tên cho nhiều tệp trên
dòng lệnh khi bạn cần:
bí mật_cat thông tin1 thông tin2 -o ô uế
Ví dụ này là tất cả các tệp Motorola S ‐ Record, vì đó là định dạng mặc định. Bạn có thể
có nhiều định dạng trong một lệnh và bí mật_cat(1) sẽ vẫn hoạt động. Bạn thậm chí không
phải xuất ra cùng một định dạng:
bí mật_cat thông tin1 -quang phổ thông tin2 -cầnham \
-o ô uế -dấu hiệu
Đây là tất cả các định dạng cổ, tuy nhiên không có gì lạ khi phải trộn và kết hợp Intel
và các định dạng Motorola trong một dự án.
Lọc Sau Tham gia
Đôi khi bạn muốn kết hợp hai tập hợp dữ liệu với nhau, sau đó áp dụng một bộ lọc
đến kết quả đã tham gia. Để làm điều này, bạn sử dụng dấu ngoặc đơn.
bí mật \
'(' \
trong tập tin -loại trừ 0xFFF0 0x10000 \
-tạo 0xFFF0 0xFFF8 -repeat ‐ chuỗi 'Chuối' \
')' \
-b ‐ e ‐ chiều dài 0xFFF8 4 \
-b ‐ e checksum ‐ neg 0xFFFC 4 4 \
-o ô uế
Lệnh ví dụ trên phân loại tệp đầu vào (loại trừ vùng dữ liệu đã tạo)
với một chuỗi không đổi. Đầu vào được phân loại này sau đó được lọc để thêm độ dài 4 byte và
tổng kiểm tra 4 byte.
Tham gia Kết thúc ‐ đến ‐ Kết thúc
Thông thường, các dải địa chỉ trong tệp tải EPROM sẽ chồng chéo lên nhau. Bạn sẽ nhận được một
nếu họ làm vậy. Nếu cả hai tệp đều bắt đầu từ địa chỉ XNUMX, vì mỗi tệp đi vào một
EPROM riêng biệt, bạn có thể cần sử dụng bộ lọc bù đắp:
bí mật_cat thông tin1 \
thông tin2 -bù 0x80000 \
-o ô uế
Đôi khi bạn muốn hai tệp theo dõi chính xác nhau, nhưng bạn không biết
bù đắp trước:
bí mật_cat thông tin1 \
thông tin2 -offset-maximum ‐ addr thông tin1 \
-o ô uế
Lưu ý rằng nơi trước đây là một số (0x80000), bây giờ có một phép tính (-tối đa‐
địa chỉ thông tin1). Điều này là có thể xảy ra ở hầu hết các vị trí mà một số có thể được sử dụng (cũng -tối thiểu ‐ addr và
-phạm vi).
CẮT CẮT CÁC DỮ LIỆU
Có thể sao chép tệp tải EPROM, chọn địa chỉ để giữ và địa chỉ đến
loại bỏ.
Điều gì Đến Giữ
Một hoạt động phổ biến là cắt dữ liệu của bạn để phù hợp với vị trí EPROM của bạn. Trình liên kết của bạn có thể thêm
rác khác mà bạn không quan tâm, ví dụ tại vị trí RAM. Trong ví dụ này,
có 1MB EPROM ở ranh giới 2MB:
bí mật_cat trong tập tin -cắt 0x200000 0x300000 \
-o ô uế
Giới hạn dưới cho tất cả các dải địa chỉ là bao gồm, giới hạn trên là loại trừ. nếu bạn
trừ chúng, bạn nhận được số byte.
Địa Chỉ Bù đắp
Chỉ có thể, bạn có một bộ lập trình EPROM moronic và nó sẽ dừng nếu hình ảnh EPROM
không bắt đầu từ XNUMX. Để tìm ra đâu là làm bắt đầu trong bộ nhớ, sử dụng
bí mật_info(1) lệnh:
$ bí mật_info ví dụ.srec
Định dạng: Motorola S ‐ Record
Tiêu đề: trình liên kết chuỗi công cụ bổ sung
Địa chỉ Bắt đầu Thực thi: 0x00200000
Dữ liệu: 0x200000 - 0x32AAEF
$
Thay vì bán tệp lệnh của trình liên kết, chỉ cần bù đắp các địa chỉ:
bí mật_cat trong tập tin -crop 0x200000 0x300000 -offset −0x200000 \
-o ô uế
Lưu ý rằng phần bù được đưa ra là tiêu cực, nó có tác dụng trừ đi giá trị đó từ
tất cả các địa chỉ trong bản ghi đầu vào, để tạo thành địa chỉ bản ghi đầu ra. Trong trường hợp này,
chuyển hình ảnh về không.
Ví dụ này cũng chứng minh cách các bộ lọc đầu vào có thể được liên kết với nhau: đầu tiên
crop và sau đó là offset, tất cả trong một lệnh, mà không cần tệp tạm thời.
Nếu tất cả những gì bạn muốn làm là bù đắp dữ liệu để bắt đầu từ địa chỉ XNUMX, điều này có thể
tự động, vì vậy bạn không cần phải biết trước địa chỉ tối thiểu, bằng cách sử dụng bí mật_cat's
khả năng tính toán một số thứ trên dòng lệnh:
bí mật_cat trong tập tin -offset - -minimum ‐ addr trong tập tin \
-o ô uế
Lưu ý các khoảng trắng ở hai bên của dấu trừ, chúng là bắt buộc.
Điều gì Đến Quăng Xa
Đôi khi bạn cần loại trừ một dải địa chỉ nhỏ khỏi tệp tải EPROM,
thay vì muốn giữ một phạm vi địa chỉ nhỏ. Các -loại trừ bộ lọc có thể được sử dụng cho
Mục đích này.
Ví dụ: nếu bạn muốn loại trừ phạm vi địa chỉ nơi số sê-ri của một
thiết bị nhúng được giữ lại, giả sử 0x20 byte ở 0x100, bạn sẽ sử dụng lệnh như sau:
srec_cat input.srec -loại trừ 0x100 0x120 -o output.srec
Sản phẩm đầu ra.srec tệp sẽ có một lỗ hổng trong dữ liệu tại các vị trí cần thiết.
Lưu ý rằng bạn có thể có cả hai -trồng trọt và -loại trừ trên cùng một dòng lệnh, tùy theo cách nào hoạt động
tự nhiên hơn cho tình huống của bạn.
Không liên tục Địa Chỉ Ranges
Dải địa chỉ không nhất thiết phải là một dải ô duy nhất, bạn có thể tạo dải địa chỉ bằng cách sử dụng
nhiều hơn một cặp duy nhất.
bí mật_cat trong tập tin -cắt 0x100 0x200 0x1000 0x1200 \
-o ô uế
Bộ lọc này dẫn đến dữ liệu từ 0x100..0x1FF và dữ liệu từ 0x1000..0x1200 để vượt qua
thông qua, phần còn lại được bỏ. Điều này hiệu quả hơn so với chuỗi một -trồng trọt và một
-loại trừ lọc với nhau.
CHUYỂN ĐỘNG ĐỒ ĐẠC XUNG QUANH
Cũng có thể thay đổi địa chỉ của các bản ghi dữ liệu, cả chuyển tiếp và ngược lại.
Cũng có thể sắp xếp lại nơi đặt các bản ghi dữ liệu trong bộ nhớ.
Bù đắp Lọc
Sản phẩm -offset =con số bộ lọc hoạt động trên địa chỉ của các bản ghi. Nếu số dương
các địa chỉ di chuyển nhiều byte cao hơn trong bộ nhớ, các giá trị âm di chuyển thấp hơn.
bí mật_cat trong tập tin -crop 0x200000 0x300000 -offset −0x200000 \
-o ô uế
Ví dụ trên di chuyển khối dữ liệu 1MB ở 0x200000 xuống XNUMX (độ lệch là
tiêu cực) và loại bỏ phần còn lại của dữ liệu.
byte Trao đổi
Đôi khi các byte trong dữ liệu cần được hoán đổi, chuyển đổi giữa các big‐
dữ liệu endian và ít endian thường.
bí mật_cat trong tập tin -byte ‐ hoán đổi 4 -o ô uế
Điều này đảo ngược các byte trong các giá trị 32 bit (4 byte). Giá trị mặc định, nếu bạn không cung cấp chiều rộng,
là đảo ngược các byte trong các giá trị 16 bit (2 byte). Bạn thực sự có thể sử dụng bất kỳ giá trị kỳ lạ nào bạn
như, nó thậm chí không cần phải là lũy thừa của 2. Có lẽ 64 bit (8 byte) có thể hữu ích
một ngày.
Nhị phân Đầu ra
Bạn cần phải chú ý đến các tệp nhị phân trên đầu ra, vì các lỗ được lấp đầy bởi các số không.
Chương trình 100kB của bạn ở đầu bộ nhớ được định địa chỉ 32 ‐ bit sẽ tạo ra một tệp 4GB. Nhìn thấy
sc_binary(5) về cách hiểu và tránh vấn đề này, thường là với -bù lại lọc.
Tách an Hình ảnh
Nếu bạn có bus dữ liệu 16 bit, nhưng bạn đang sử dụng hai EPROM 8 bit để giữ phần sụn của mình,
bạn có thể tạo hình ảnh chẵn và lẻ bằng cách sử dụng -Tách ra lọc. Giả sử của bạn
phần sụn nằm trong phần sụn.hex tệp, sử dụng như sau:
srec_cat firmware.hex -split 2 0 -o firmware.even.hex
srec_cat firmware.hex -split 2 1 -o firmware.odd.hex
Điều này sẽ dẫn đến hai ảnh EPROM cần thiết. Lưu ý rằng các địa chỉ đầu ra là
chia cho bội số tách, vì vậy nếu hình ảnh EPROM của bạn ở một độ lệch cụ thể (giả sử
0x10000, trong ví dụ sau), bạn cần xóa phần bù, sau đó thay thế nó ...
screc_cat firmware.hex \
-offset −0x10000 -split 2 0 \
-offset 0x10000 -o firmware.even.hex
screc_cat firmware.hex \
-offset −0x10000 -split 2 1 \
-offset 0x10000 -o firmware.odd.hex
Lưu ý cách khả năng áp dụng nhiều bộ lọc sẽ đơn giản hóa những gì nếu không sẽ là rất nhiều
kịch bản dài hơn.
Tước
Một lần sử dụng thứ hai cho -Tách ra bộ lọc là dải bộ nhớ.
Bạn không phải chia thành các phần rộng byte, bạn có thể chọn các kích thước khác. Nó là phổ biến
muốn chuyển đổi dữ liệu rộng 32-bit thành hai tập dữ liệu rộng 16-bit.
srec_cat firmware.hex -split 4 0 2 -o firmware.01.hex
srec_cat firmware.hex -split 4 2 2 -o firmware.23.hex
Điều này tương đối đơn giản để hiểu, nhưng bạn có thể sử dụng các sọc rộng hơn.
Trong ví dụ tiếp theo này, phần cứng yêu cầu các khối 512 byte xen kẽ giữa 4
EPROMs. Việc tạo 4 hình ảnh sẽ được thực hiện như sau:
srec_cat firmware.hex -split 0x800 0x000 0x200 -o firmware.0.hex
srec_cat firmware.hex -split 0x800 0x200 0x200 -o firmware.1.hex
srec_cat firmware.hex -split 0x800 0x400 0x200 -o firmware.2.hex
srec_cat firmware.hex -split 0x800 0x600 0x200 -o firmware.3.hex
Không đối xứng Tước
Một ví dụ đặc biệt hơn của việc phân dải là bộ vi điều khiển Microchip dsPIC33F, có
mẫu lưu trữ bộ nhớ kỳ lạ và chúng có thể lưu trữ 3 byte trong một địa chỉ cần
chỉ chứa 2 byte. Kết quả là một tệp hex không có ‐ lấp đầy byte trên cùng (ít
endian), và tất cả các địa chỉ được nhân đôi so với những gì chúng có trong chip. Đây là một
thí dụ:
S1130000000102000405060008090A000C0D0E0098
S1130010101112001415160018191A001C1D1E00C8
S1130020202122002425260028292A002C2D2E00F8
S1130030303132003435360038393A003C3D3E0028
Để loại bỏ 00 byte đệm, chỉ để lại 3/4 byte quan trọng, bạn cũng sử dụng
bộ lọc tách, với phần bổ sung của nó chiều rộng đối số, như thế này:
ví dụ srec_cat.srec -split 4 0 3 -o no_dross.srec
Điều này dẫn đến một tệp có 00 byte đệm bị loại bỏ. Nó trông như thế này:
S113000000010204050608090A0C0D0E1011121451
S1130010151618191A1C1D1E2021222425262829EC
S11300202A2C2D2E30313234353638393A3C3D3E87
Chú ý cách các địa chỉ cũng có kích thước bằng 3/4. Bạn có thể đảo ngược điều này bằng cách sử dụng
-không chia tách và -fill = 0 bộ lọc.
Không thích Hình ảnh
Bộ lọc unsplit có thể được sử dụng để đảo ngược các tác động của bộ lọc tách. Lưu ý rằng
phạm vi địa chỉ được mở rộng để lại các lỗ giữa các sọc. Bằng cách sử dụng tất cả các sọc,
đầu vào hoàn chỉnh được lắp ráp lại, không có bất kỳ lỗ nào.
screc_cat -o firmware.hex \
firmware.even.hex -unsplit 2 0 \
firmware.odd.hex -unsplit 2 1
Ví dụ trên đảo ngược ví dụ về bus dữ liệu 16 bit trước đó. Nói chung, bạn rút phích cắm
với cùng các tham số mà bạn tách.
ĐỔ ĐẦY CÁC KHỐI
Thường thì các tệp tải EPROM sẽ có "lỗ hổng" trong đó, những nơi mà trình biên dịch và trình liên kết đã làm
không đặt bất cứ thứ gì. Đối với một số mục đích, điều này là OK, và đối với các mục đích khác, điều gì đó phải
được thực hiện về các lỗ.
Sản phẩm Điền Lọc
Có thể điền vào chỗ trống mà dữ liệu của bạn không nằm. Ví dụ đơn giản nhất của
điều này sẽ lấp đầy toàn bộ EPROM:
bí mật_cat trong tập tin -điền 0x00 0x200000 0x300000 -o ô uế
Ví dụ này điền vào các lỗ hổng, nếu có, bằng các số không. Bạn phải chỉ định một phạm vi - với
Không gian địa chỉ 32 bit, lấp đầy mọi thứ tạo ra lớn tải các tập tin.
Nếu bạn chỉ muốn lấp đầy khoảng trống trong dữ liệu của mình và không muốn lấp đầy toàn bộ EPROM,
thử:
bí mật_cat trong tập tin -điền 0x00 -over trong tập tin -o ô uế
Ví dụ này chứng minh thực tế rằng bất cứ nơi nào một dải địa chỉ có thể được chỉ định,
-kết thúc và -ở trong các tùy chọn có thể được sử dụng.
Làm đầy các Chữ trống
Thông thường cần phải “giải nén” một hình ảnh EPROM sau khi bạn đọc nó ra khỏi chip. Thông thường,
nó sẽ có tất cả các lỗ được lấp đầy bởi 0xFF (các khu vực của EPROM mà bạn không chương trình hiển thị
dưới dạng 0xFF khi bạn đọc lại chúng).
Để loại bỏ tất cả các byte 0xFF trong dữ liệu, hãy sử dụng bộ lọc này:
bí mật_cat trong tập tin -unfill 0xFF -o ô uế
Điều này sẽ loại bỏ tất cả các 0xFF byte, bao gồm những byte bạn thực sự muốn ở đó.
Có hai cách để giải quyết vấn đề này. Đầu tiên, bạn có thể chỉ định thời lượng chạy tối thiểu cho
un ‐ điền:
bí mật_cat trong tập tin -unfill 0xFF 5 -o ô uế
Điều này nói rằng chạy từ 1 đến 4 byte 0xFF là OK và chỉ nên tạo một lỗ
cho các lần chạy từ 5 byte trở lên 0xFF liên tiếp. Phương pháp thứ hai là điền lại
khoảng trống trung gian:
bí mật_cat ô uế -điền 0xFF -over ô uế \
-o outfile2
Bạn chọn phương pháp nào tùy thuộc vào nhu cầu của bạn và hình dạng của dữ liệu trong EPROM của bạn.
Bạn có thể cần kết hợp cả hai kỹ thuật.
Địa Chỉ Phạm vi Đệm
Một số định dạng dữ liệu rộng 16 bit và tự động điền bằng 0xFF byte nếu nó
cần thiết để điền vào nửa còn lại của từ không có trong dữ liệu. Nếu bạn cần
điền vào một giá trị khác, bạn có thể sử dụng một lệnh như sau:
bí mật_cat trong tập tin -điền 0x0A \
-ở trong trong tập tin -range ‐ padding 2 \
-o ô uế
Điều này cung cấp cho bộ lọc điền một dải địa chỉ được tính toán từ các chi tiết của tệp đầu vào.
Dải địa chỉ là tất cả các dải địa chỉ được bao phủ bởi dữ liệu trong trong tập tin, mở rộng
xuống dưới (nếu cần) ở đầu mỗi dải ô con thành bội số 2 byte và mở rộng
trở lên (nếu cần) ở cuối mỗi dải ô con thành bội số 2 byte. Điều này cũng hoạt động
cho các bội số lớn hơn, như ranh giới trang 1kB của chip flash. Vùng đệm dải địa chỉ này
hoạt động ở bất kỳ nơi nào cần có dải địa chỉ.
Điền với Bản quyền
Có thể lấp đầy các phần không sử dụng trong EPROM của bạn bằng một thông báo bản quyền lặp lại.
Bất kỳ ai đang cố gắng thiết kế ngược các EPROM của bạn sẽ thấy thông báo bản quyền trong
trình soạn thảo hex của họ.
Điều này được thực hiện với hai nguồn đầu vào, một từ tệp dữ liệu và một nguồn là
được tạo ra khi đang bay.
bí mật_cat trong tập tin \
-generate '(' 0 0x100000 -minus -within trong tập tin ')' \
-repeat ‐ string 'Bản quyền (C) 1812 Tchaikovsky. '\
-o ô uế
Lưu ý phạm vi địa chỉ để tạo dữ liệu: phạm vi địa chỉ của
EPROM, trong trường hợp này là 1MB bắt đầu từ 0 và trừ vào đó các dải địa chỉ được sử dụng bởi
tệp đầu vào.
Nếu bạn muốn viết mã này với năm hiện tại (vì năm 1812 hơi lỗi thời), hãy sử dụng
khả năng thay thế đầu ra của shell (đánh dấu trở lại):
bí mật_cat trong tập tin \
-generate '(' 0 0x100000 -minus -within trong tập tin ')' \
-repeat ‐ string "Copyright (C)` date +% Y` Tchaikovsky. "\
-o ô uế
Chuỗi được chỉ định được lặp đi lặp lại cho đến khi nó lấp đầy tất cả các lỗ.
Làm xáo trộn với Tiếng ồn
Đôi khi bạn muốn lấp đầy ảnh EPROM của mình bằng tiếng ồn, để che đi nơi chứa dữ liệu thực
dừng và bắt đầu. Bạn có thể làm điều này với -random ‐ điền lọc.
bí mật_cat trong tập tin -random ‐ điền 0x200000 0x300000 \
-o ô uế
Nó hoạt động giống như -lấp đầy bộ lọc, nhưng sử dụng các số ngẫu nhiên thay vì một byte không đổi
giá trị.
Điền Với 16 ‐ bit Từ
Khi lấp đầy hình ảnh với một giá trị byte không đổi không hoạt động và bạn cần một hằng số
Thay vào đó, giá trị từ 16 bit, hãy sử dụng -repeat ‐ dữ liệu máy phát điện, mất một thời gian dài tùy ý
chuỗi các byte để sử dụng làm mẫu điền:
bí mật_cat trong tập tin \
-máy phát điện '(' 0x200000 0x300000 -phút -within trong tập tin ')' \
-repeat ‐ dữ liệu 0x1B 0x08 \
-o ô uế
Lưu ý cách dải địa chỉ của trình tạo một lần nữa tránh các dải địa chỉ bị chiếm bởi
các trong tập tindữ liệu của. Bạn phải tự mình có được kết quả cuối cùng.
CHÈN KHÔNG THAY ĐỔI DỮ LIỆU
Đôi khi, bạn sẽ muốn chèn dữ liệu không đổi hoặc dữ liệu không do
trình biên dịch hoặc trình hợp dịch, vào ảnh tải EPROM của bạn.
Nhị phân Có nghĩa Nghĩa đen
Một cách đơn giản là có thông tin mong muốn trong một tệp. Để chèn tệp
nội dung theo nghĩa đen, không có diễn giải định dạng, hãy sử dụng nhị phân định dạng đầu vào:
bí mật_cat trong tập tin -nhị phân -o ô uế
Nó có thể sẽ cần thiết để sử dụng bù đắp lọc để di chuyển dữ liệu đến nơi bạn
thực sự muốn nó trong hình ảnh:
bí mật_cat trong tập tin -nhị phân -offset 0x1234 -o ô uế
Cũng có thể sử dụng đầu vào chuẩn làm nguồn dữ liệu, nguồn này tự cho
đang được viết kịch bản. Ví dụ: để chèn ngày và giờ hiện tại vào tệp tải EPROM,
bạn có thể sử dụng một đường ống:
ngày tháng | srec_cat - -bin -offset 0xFFE3 -o ô uế
Tên tệp đặc biệt “-” có nghĩa là đọc từ đầu vào chuẩn. Đầu ra của ngày
lệnh luôn dài 29 ký tự và phần bù được hiển thị sẽ đặt nó ở đầu
Hình ảnh EPROM 64KB.
Lặp đi lặp lại Một khi
Sản phẩm Điền với Bản quyền phần trên cho biết cách lặp đi lặp lại một chuỗi. chúng tôi
có thể sử dụng một lần lặp lại để chèn một chuỗi chỉ một lần.
srec_cat -generate 0xFFE3 0x10000 -repeat ‐ string "` date` "\
-o ô uế
Lưu ý cách phạm vi địa chỉ để tạo dữ liệu khớp chính xác với độ dài của
ngày(1) kích thước đầu ra. Tất nhiên, bạn có thể thêm tệp đầu vào của mình vào phần trên bí mật_cat(1)
lệnh phân loại hình ảnh EPROM của bạn cùng với ngày và giờ.
Chèn A dài
Một khả năng khác là thêm số cam kết Subversion vào ảnh EPROM của bạn. Trong này
ví dụ, chúng tôi đang chèn nó một giá trị cuối nhỏ 4 byte 0 tại địa chỉ 0008xXNUMX. Các
Số cam kết lật đổ nằm trong phiên bản $ biến shell trong ví dụ này:
srec_cat -generate 0x0008 0x000C -l ‐ e ‐ hằng $ phiên bản 4 \
trong tập tin -loại trừ 0x0008 0x000C \
-o ô uế
Lưu ý rằng chúng tôi sử dụng bộ lọc để đảm bảo có một lỗ hổng trong đầu vào có số phiên bản
đi, chỉ trong trường hợp trình liên kết đặt một cái gì đó ở đó.
DỮ LIỆU VỀ(ABOUT) CÁC DỮ LIỆU
Có thể thêm nhiều loại dữ liệu về dữ liệu vào đầu ra.
Kiểm tra
Sản phẩm -big ‐ endian ‐ checksum ‐ âm tính bộ lọc có thể được sử dụng để tổng hợp dữ liệu, và sau đó chèn
âm của tổng vào dữ liệu. Điều này có tác dụng tổng bằng XNUMX khi
tổng kiểm tra chính nó được tính tổng trên, miễn là chiều rộng tổng khớp với chiều rộng giá trị được chèn.
bí mật_cat trong tập tin \
-cắt 0 0xFFFFFC \
-random ‐ điền 0 0xFFFFFC \
-b ‐ e checksum ‐ neg 0xFFFFFC 4 4 \
-o ô uế
Trong ví dụ này, chúng tôi có một EPROM trong bộ nhớ megabyte thấp nhất. Bộ lọc -crop
đảm bảo rằng chúng tôi chỉ tổng hợp dữ liệu trong EPROM chứ không phải bất kỳ nơi nào khác. Các
-random ‐ bộ lọc lấp đầy lấp đầy bất kỳ lỗ hổng nào còn lại trong dữ liệu với các giá trị ngẫu nhiên. Cuối cùng, -b‐
e ‐ checksum ‐ neg filter chèn một tổng kiểm tra 32 bit (4 byte) ở định dạng big ‐ endian ở cuối cùng
4 byte của ảnh EPROM. Đương nhiên, có một phiên bản cuối cùng của bộ lọc này như
tốt.
Mã nhúng của bạn có thể kiểm tra EPROM bằng mã C tương tự như sau:
unsigned long * begin = (unsigned long *) 0;
unsigned long * end = (unsigned long *) 0x100000;
tổng dài không dấu = 0;
trong khi (bắt đầu <kết thúc)
sum + = * begin ++;
if (sum! = 0)
{
Rất tiếc
}
Sản phẩm -big ‐ endian ‐ checksum ‐ bitnot bộ lọc tương tự, ngoại trừ việc tổng hợp trên tổng kiểm tra
sẽ mang lại giá trị của tất cả ‐ một ‐ bit (−1). Ví dụ: sử dụng quần đùi thay vì quần dài:
bí mật_cat trong tập tin \
-cắt 0 0xFFFFFE \
-điền 0xCC 0x00000 0xFFFFFE \
-b ‐ e checksum ‐ neg 0xFFFFFE 2 2 \
-o ô uế
Giả sử bạn đã chọn đúng bộ lọc endian, mã nhúng của bạn có thể kiểm tra EPROM
sử dụng mã C tương tự như sau:
unsigned short * begin = (unsigned short *) 0;
không dấu ngắn * end = (không dấu ngắn *) 0x100000;
tổng ngắn không dấu = 0;
trong khi (bắt đầu <kết thúc)
sum + = * begin ++;
if (sum! = 0xFFFF)
{
Rất tiếc
}
Cũng có một -b ‐ e ‐ checksum ‐ dương tính bộ lọc và một bộ lọc ‐ endian nhỏ phù hợp,
chèn tổng đơn giản và sẽ được kiểm tra trong C bằng phép thử bình đẳng.
bí mật_cat trong tập tin \
-cắt 0 0xFFFFFF \
-điền 0x00 0x00000 0xFFFFFF \
-b ‐ e checksum ‐ neg 0xFFFFFF 1 1 \
-o ô uế
Giả sử bạn đã chọn đúng bộ lọc endian, mã nhúng của bạn có thể kiểm tra EPROM
sử dụng mã C tương tự như sau:
unsigned char * begin = (unsigned char *) 0;
unsigned char * end = (unsigned char *) 0xFFFFF;
không dấu char sum = 0;
trong khi (bắt đầu <kết thúc)
sum + = * begin ++;
if (sum! = * end)
{
Rất tiếc
}
Trong trường hợp 8 bit, không quan trọng bạn sử dụng endian lớn hay endian nhỏ
lọc.
Nhanh chóng Hex ‐ Dump
Bạn có thể xem tổng kiểm tra dữ liệu của mình bằng cách sử dụng định dạng đầu ra "hex ‐ dump". Đây là
hữu ích để xem xét các giá trị được tính toán hoặc để gỡ lỗi bí mật_cat(1) lệnh trước
bất tử hóa nó trong một kịch bản.
bí mật_cat trong tập tin \
-cắt 0 0x10000 \
-điền 0xFF 0x0000 0x10000 \
-b ‐ e ‐ checksum ‐ neg 0x10000 4 \
-cắt 0x10000 0x10004 \
-o - -hex ‐ đổ
Lệnh này đọc trong tệp, tổng kiểm tra dữ liệu và đặt tổng kiểm tra ở 0x10000,
cắt kết quả để chỉ chứa tổng tổng, sau đó in tổng kiểm tra trên
đầu ra tiêu chuẩn ở định dạng kết xuất thập lục phân cổ điển. Tên tệp đặc biệt “-” có nghĩa là
"Đầu ra tiêu chuẩn" trong ngữ cảnh này.
Cylic Dư Séc
Tổng kiểm tra cộng tính đơn giản có một số hạn chế về mặt lý thuyết, liên quan đến lỗi
họ có thể và không thể phát hiện. Các phương pháp CRC có ít vấn đề hơn.
bí mật_cat trong tập tin \
-cắt 0 0xFFFFFC \
-điền 0x00 0x00000 0xFFFFFC \
-b ‐ e ‐ crc32 0xFFFFFC \
-o ô uế
Trong ví dụ trên, chúng ta có một EPROM trong bộ nhớ megabyte thấp nhất. Các -trồng trọt lọc
đảm bảo rằng chúng tôi chỉ tổng hợp dữ liệu trong EPROM chứ không phải bất kỳ nơi nào khác. Các -lấp đầy
bộ lọc lấp đầy bất kỳ lỗ hổng nào còn lại trong dữ liệu. cuối cùng -b ‐ e ‐ checksum ‐ neg bộ lọc chèn một
Tổng kiểm tra 32 bit (4 byte) ở định dạng lớn ‐ endian trong 4 byte cuối cùng của hình ảnh EPROM.
Đương nhiên, cũng có một phiên bản cuối cùng của bộ lọc này.
Tổng kiểm tra được tính bằng cách sử dụng CRC 32 bit tiêu chuẩn công nghiệp. Bởi vì SRecord là
mã nguồn mở, bạn luôn có thể đọc mã nguồn để xem nó hoạt động như thế nào. Có rất nhiều
Phiên bản GPL của mã này có sẵn trên Internet và thích hợp để nhúng vào
chương trình cơ sở độc quyền.
Ngoài ra còn có một CRC 16-bit.
bí mật_cat trong tập tin \
-cắt 0 0xFFFFFE \
-điền 0x00 0x00000 0xFFFFFE \
-b ‐ e ‐ crc16 0xFFFFFE \
-o ô uế
Tổng kiểm tra được tính bằng công thức CCITT. Vì SRecord là mã nguồn mở, bạn
luôn có thể đọc mã nguồn để xem nó hoạt động như thế nào. Có nhiều phiên bản không phải ‐ GPL của
mã này có sẵn trên Internet và thích hợp để nhúng vào phần sụn độc quyền.
Bạn có thể xem CRC của dữ liệu bằng cách sử dụng định dạng đầu ra "hex ‐ dump".
bí mật_cat trong tập tin \
-cắt 0 0x10000 \
-điền 0xFF 0x0000 0x10000 \
-b ‐ e ‐ crc16 0x10000 \
-cắt 0x10000 0x10002 \
-o - -hex ‐ đổ
Lệnh này đọc trong tệp, tính toán CRC của dữ liệu và đặt CRC tại
0x10000, cắt kết quả để chỉ chứa CRC, sau đó in tổng kiểm tra trên
đầu ra tiêu chuẩn ở định dạng kết xuất thập lục phân cổ điển.
Ở đâu Is My Dữ liệu?
Có một số thuộc tính của hình ảnh EPROM mà bạn có thể muốn chèn vào
dữ liệu.
bí mật_cat trong tập tin -b ‐ e ‐ tối thiểu 0xFFFE 2 -o ô uế
Ví dụ trên chèn địa chỉ tối thiểu của dữ liệu (thấp nước) vào dữ liệu, như
hai byte theo thứ tự endian lớn tại địa chỉ 0xFFFE. Điều này bao gồm chính nó tối thiểu. Nếu như
dữ liệu đã chứa các byte tại địa chỉ đã cho, bạn cần sử dụng bộ lọc loại trừ.
Số byte được mặc định là 4.
Cũng có một -l ‐ e ‐ tối thiểu bộ lọc để chèn các giá trị ‐ endian nhỏ và hai bộ lọc khác
bộ lọc được gọi là -b ‐ e ‐ độc quyền ‐ tối thiểu và -l ‐ e ‐ độc quyền ‐ tối thiểu không bao gồm
tối thiểu chính nó trong việc tính toán địa chỉ dữ liệu tối thiểu.
bí mật_cat trong tập tin -b ‐ e ‐ tối đa 0xFFFFFC 4 -o ô uế
Ví dụ trên chèn địa chỉ tối đa của dữ liệu (cao nước + 1, giống như
phạm vi địa chỉ) vào dữ liệu, dưới dạng bốn byte theo thứ tự cuối lớn tại địa chỉ 0xFFFFFC.
Điều này bao gồm chính nó tối đa. Nếu dữ liệu đã chứa các byte tại giá trị đã cho
địa chỉ, bạn cần sử dụng một -loại trừ lọc. Số byte được mặc định là 4.
Cũng có một -l ‐ e ‐ tối đa bộ lọc để chèn các giá trị ‐ endian nhỏ và hai bộ lọc khác
bộ lọc được gọi là -b ‐ e ‐ độc quyền ‐ tối đa và -l ‐ e ‐ độc quyền ‐ tối đa không bao gồm
tối đa chính nó trong việc tính toán địa chỉ dữ liệu tối đa.
bí mật_cat trong tập tin -b ‐ e ‐ chiều dài 0xFFFFFC 4 -o ô uế
Ví dụ trên chèn độ dài của dữ liệu (cao nước + 1 - thấp nước) vào
dữ liệu, dưới dạng bốn byte theo thứ tự cuối lớn tại địa chỉ 0xFFFFFC. Điều này bao gồm chiều dài
chinh no. Nếu dữ liệu đã chứa byte ở vị trí độ dài, bạn cần sử dụng
-loại trừ lọc. Số byte được mặc định là 4.
Cũng có một -l ‐ e ‐ độ dài bộ lọc để chèn một độ dài cuối ‐ nhỏ, và -thì là ở-
độ dài ‐ độc quyền và -l ‐ e ‐ độc quyền ‐ độ dài bộ lọc không bao gồm chính độ dài
trong tính toán.
Điều gì Định dạng Is Điều này?
Bạn có thể nhận được nhiều thông tin về tệp tải EPROM bằng cách sử dụng bí mật_info(1)
chỉ huy. Ví dụ:
$ bí mật_info ví dụ.srec
Định dạng: Motorola S ‐ Record
Tiêu đề: "http://srecord.sourceforge.net/"
Địa chỉ Bắt đầu Thực thi: 00000000
Dữ liệu: 0000 - 0122
0456 - 0FFF
$
Ví dụ này cho thấy rằng tệp là Motorola S ‐ Record. Văn bản trong tiêu đề tệp là
được in, cùng với địa chỉ bắt đầu thực thi. Phần cuối cùng hiển thị địa chỉ
các dải ô chứa dữ liệu (giới hạn trên của mỗi dải ô con là inphô trương, thay vì
exdạng phức tạp được sử dụng trên dòng lệnh.
$ bí mật_info một số file.hex kỳ lạ -phỏng đoán
Định dạng: Signetics
Dữ liệu: 0000 - 0122
0456 - 0FFF
$
Ví dụ trên đoán định dạng tệp tải EPROM. Nó không phải là sai lầm nhưng nó thường
hiểu đúng. Bạn có thể dùng -phỏng đoán bất cứ nơi nào bạn sẽ cung cấp một định dạng rõ ràng, nhưng nó
có xu hướng chậm hơn và vì lý do đó không được khuyến khích. Ngoài ra, để xây dựng tự động
hệ thống, bạn muốn lỗi khó càng sớm càng tốt; nếu một tệp không được mong đợi
định dạng, bạn muốn nó barf.
MANG LẠI CÁC DỮ LIỆU
Có thể thay đổi giá trị của các byte dữ liệu theo một số cách.
bí mật_cat trong tập tin -và 0xF0 -o ô uế
Ví dụ trên thực hiện một chút AND khôn ngoan của các byte dữ liệu với mặt nạ 0xF0. Các
địa chỉ của các bản ghi là không thay đổi. Tôi thực sự không thể nghĩ ra cách sử dụng cho bộ lọc này.
bí mật_cat trong tập tin -hoặc 0x0F -o ô uế
Ví dụ trên thực hiện OR một bit khôn ngoan của các byte dữ liệu với các bit 0x0F. Các
địa chỉ của các bản ghi là không thay đổi. Tôi thực sự không thể nghĩ ra cách sử dụng cho bộ lọc này.
bí mật_cat trong tập tin -xor 0xA5 -o ô uế
Ví dụ trên thực hiện OR loại trừ một bit khôn ngoan của các byte dữ liệu với các bit 0xA5.
Địa chỉ của các bản ghi là không thay đổi. Bạn có thể sử dụng điều này để làm xáo trộn nội dung của
EPROM của bạn.
bí mật_cat trong tập tin -không -o ô uế
Ví dụ trên thực hiện một chút KHÔNG khôn ngoan của các byte dữ liệu. Địa chỉ của các bản ghi là
không thay đổi. An ninh bằng cách che khuất?
BẢN QUYỀN
bí mật_cat phiên bản 1.58
Bản quyền (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011Peter Miller
Sản phẩm bí mật_cat chương trình đi kèm TUYỆT ĐỐI KHÔNG CÓ BẢO HÀNH; để biết chi tiết, hãy sử dụng 'bí mật_cat
-Phiên bản Giấy phép' chỉ huy. Đây là phần mềm miễn phí và bạn có thể phân phối lại nó
dưới một số điều kiện nhất định; để biết chi tiết, hãy sử dụng 'bí mật_cat -Phiên bản Giấy phép' chỉ huy.
Sử dụng srec_examples trực tuyến bằng các dịch vụ onworks.net