View Single Post
Old 02-02-2008, 05:03 PM   #4
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
Trích:
Nguyên văn bởi dvdsoul View Post
Tham khảo linker của 18f8722 có cái rvector này, mình nghĩ đó là redirect vector để chương trình sẽ nhảy từ bootloader đến user code, nên đem sử dụng vào con MCU của mình. Thực sự là mình ko có nhiều kiến thức về cách hoạt động của bảng vector, nên mới post lên nhờ mọi người giải thích.
Các linker script chuẩn của PIC18F8722 cũng không hề có dòng đó. Do đó tôi cho là bạn đã tham khảo từ một project nào đó, và bạn chưa cho biết thông tin về project đó (làm sao để đọc được linker script đó cùng các thông tin liên quan). Có thấy được toàn bộ project đó thì mới có cái nhìn rõ ràng hơn chức năng của vùng 'rvectors'. 'rvectors' chỉ là một cái tên cho vùng nhớ chương trình đó, nó không nhất thiết mang ý nghĩa là redirect vector (nhìn vào bản đồ bộ nhớ của các PIC18F thì thấy rõ là các vectơ ngắt có độ ưu tiên cao và thấp chỉ nằm ở 0x000008 và 0x000018 một cách tương ứng, không phụ thuộc vào chế độ làm việc của bộ nhớ chương trình).

Trích:
Nguyên văn bởi dvdsoul View Post
có, mình đã include 1 copy của c18i.c vào workspace và build nó cùng với các file khác.
E rằng cách làm này của bạn không ổn. Bạn hãy đọc mục 3.3.2 - Customization, trong tài liệu 'MPLAB C18 C Compiler User's Guide', nói về cách tùy biến startup code. Tài liệu này có thể download ở link sau:
http://ww1.microchip.com/downloads/e...ide_51288j.pdf
Trích:
Nguyên văn bởi dvdsoul View Post
Mình đã theo link đọc cách thiết kế của Claudiu Chiculita và cũng có ý định thiết kế bootloader cho mình tương tự vậy. Nhưng vì ko có kiến thức về cấu trúc của MCU (như mình đã nói ban đầu là mình phải nhảy gấp vào nó vì project) nên mình muốn hỏi là thiết lập địa chỉ cho các vector như thế nào để khi reset thì chương trình sẽ nhảy đến bootloader và từ bootloader sau khi download user program xong có thể nhảy đến user program?

Như ở bài viết đầu, mình đặt bootloader ở địa chỉ 0x9000 còn usercode ở 0x800.

Cám ơn.
Bạn không có kiến thức về cấu trúc của riêng PIC hay không có kiến thức về cấu trúc của các MCU nói chung? Thông tin về background của bạn sẽ giúp chúng tôi, những người đang tìm cách hỗ trợ, có được cách hỗ trợ thích hợp hơn cho bạn.

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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn