Ðề tài: Pvn Tiny Bootloader
View Single Post
Old 15-05-2008, 04:35 PM   #46
Hard
Đệ tử 2 túi
 
Tham gia ngày: May 2006
Nơi Cư Ngụ: Huế
Bài gửi: 26
:
Send a message via Yahoo to Hard
Hi,
BootLoader (BLD) là một phần rất hay của lập trình VDK, tui luôn tìm cách sử dụng BLD khi sử dụng với một loại VDK nào. Xem trong topic này, tui thấy các bác trao đổi về việc sử dụng BLD có sẵn, tui thì lại không thích như vậy vì thực sự tui muốn hiểu chi tiết hơn về nó và viết một cái BLD cho riêng mình để có thể làm chủ nó, làm cho nó hoạt động theo ý mình.
Tui tiếp cận với PIC bằng CCS vì vậy đọc mã nguồn bằng ASM tui không hiểu, nếu muốn hiểu thì phải mất thời gian nghiên cứu tập lệnh, cái này không có lợi đối với tui. Tui cũng đã đọc mã nguồn BLD của CCS (trong mục Example) nhưng cũng không hiểu lắm và cách nó làm cũng khác với tinyBLD mà các bác đang trao đổi ở đây mà tui thích kiểu tinyBLD này, thấy nó tiện hơn. Vì vậy tui muốn dùng CCS để viết riêng một BLD theo kiểu tinyBLD mà các bác đang trao đổi. Tuy nhiên, để BLD có thể giao tiếp với phần mềm truyền file hex trên PC thì phải biết giao thức của nó. Đấy chính là cái tui cần hỏi các bác về cách thức mà BLD và phần mềm trên PC như thế nào? Để bắt tay thì nó phải truyền cái gì? cái gì được truyền đầu tiên và tiếp theo là cái gì cho đến khi quá trình kết thúc? Phải nắm được những thông tin đó thì mới có thể lập trình được.
Một câu hỏi nữa cần các bác trả lời là: tại sao tui viết
#org 0x1F00
void main(void)
{
// code for testing here
}
Nhưng khi biên dịch thì kết quả trong file Hex là mất khá nhiều byte (khoảng vài chục) mới đến lệnh nhảy tới địa chỉ của hàm main() (tức 0x1F00). Không phải như chúng ta nghĩ là hàm main là hàm được thực thi đầu tiên nên chỉ mất 4 byte (từ 0000 đến 0003) cho lệnh nhảy. Nếu như vậy thì có cách nào để cho CCS biên dịch ra lệnh đầu tiên là lệnh nhảy đến hàm main lập tức không? Nếu không thực hiện được điều này thì không thể viết BLD kiểu tinyBLD được.
Tui mới tìm hiểu về CCS và PIC nên cũng chưa nắm rõ để giải quyết vấn đề này. Rất mong các cao thủ bỏ chút công sức giúp đỡ. Cảm ơn các bác đã đọc bài.
Thân ái.
Hard vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn