View Single Post
Old 21-04-2006, 11:55 PM   #38
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Tutorial ngắn về tập tin .hex

Theo đề nghị của chú F, tôi viết tutorial ngắn này để các bạn mới bắt đầu học PIC không thắc mắc về kích thước của tập tin .hex, cùng với cách tính số word, kword trong chương trình của PIC.

Trong thế giới số:
1 k = 2^10 = 1024
1 mega = 2^20 = 1048576

1 kword = 1024 word
và, 8 kword = 8x1024 = 8192 word

Các chip PIC16 với bộ nhớ 8 kword, chẳng hạn như 16F877A, có 4 trang bộ nhớ Flash, mỗi trang là 2 kword. Nếu chương trình tràn khỏi biên của một trang thì người viết chương trình phải tự đảm bảo là các lệnh nhảy có thể thực hiện thành công, do đó trình biên dịch thường có thông báo nhắc nhở.

Đối với tập tin .hex, các byte được ghi bằng ký tự ASCII thể hiện mã hexadecimal của byte. Mỗi lệnh của PIC16 dài 14-bit, được ghi vào tập tin .hex bằng 2 byte, và mỗi byte được ghi bằng 2 ký tự ASCII, như vậy mỗi lệnh cần dùng tới 4 ký tự ASCII để ghi vào tập tin .hex. Ngoài ra còn có các thông tin định dạng và kiểm tra lỗi cho mỗi dòng trong tập tin .hex và các thông tin khác cho cấu hình của chip, nếu có dùng, và một số thông tin khác, chẳng hạn như địa chỉ bắt đầu của vùng nhớ được điền vào. Mỗi dòng cần có thêm 11 ký tự ASCII cho mục đích định dạng và kiểm tra lỗi, và mỗi dòng chỉ mã hóa cho tối đa 32 byte, tức là 16 lệnh. Các trình dịch PIC thường chỉ dùng 16 byte cho mỗi dòng trong tập tin .hex, do đó thường cần 1 dòng cho mỗi 8 lệnh.

Lấy ví dụ một chương trình dài 2048 lệnh, với cách ghi thành tập tin .hex thông thường, sẽ cần 256 dòng, mỗi dòng dùng hết 4x8 + 11 = 43 ký tự, và 256 dòng sẽ cần 11008 ký tự cho riêng phần mã lệnh, các thông tin khác cũng sẽ dùng thêm khoảng 200 ký tự. Do đó, chương trình này khi được ghi thành tập tin .hex sẽ có kích thước lớn hơn 11 kbyte (hơn 11 ngàn ký tự).

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263

thay đổi nội dung bởi: namqn, 06-07-2010 lúc 10:49 PM. Lý do: bỏ code latex
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn