|
Tài trợ cho PIC Vietnam |
Tiny Bootloader Mọi vấn đề liên quan tinybootloader sẽ được tổng hợp ở đây. |
|
Ðiều Chỉnh | Xếp Bài |
03-09-2005, 09:51 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: Sep 2005
Bài gửi: 1
: |
Cơ bản về bootloader & tiny bootloader
Chào tất cả mọi người!
Tôi là một người mới tham gia diễn đàn này. Tôi rất muốn tìm hiểu một số khái niệm căn bản, VD như BOOTLOADER, SECTOR, DEVICE ID.... Rất mong nhận được sự hướng dẫn của tất cả mọi người. Mong tin. |
13-10-2005, 05:47 PM | #2 |
PIC Bang chủ
|
Hướng dẫn về tiny bootloader
Đây là bootloader cho các vi điều khiển Microchip PIC
* Nó là bootloader có kích thước nhỏ nhất, ít hơn 100 word bộ nhớ chương trình * Nó là bootloader duy nhất hỗ trợ tất cả các dòng PIC: 16F, 18F, dsPIC (những dòng có hỗ trợ chế độ self-programming - tự nạp lại). Đặc điểm của firmware: * Kích thước chỉ có khoảng 100word (cho tất cả các dòng 16F, 18F, dsPIC, thực ra là nó ít hơn 100 word); * Có thể ghi vào flash, eeprom, và có thể ghi vào các bytes cài đăt (configuration bytes) của dòng 18F * Khi reset, đợi 1 giây để nhận chương trình nạp, nếu không nhận được thì chuyển qua chạy chương trình * File .asm của bootloader rất dễ để chỉnh sửa lại, cho phù hợp với từng loại chip, từng tốc độ truyền nhận. Đặc điểm của phần mềm trên máy tính * Có thể tải chương trình vào flash (trong phiên bản này của bootloader, cho phép cài đặt các byte cài đặt (configuration bytes) và có thể thay đổi dễ dàng theo từng loại PIC) * Làm việc với tất cả các dòng PIC đã nêu trên; tự động nhận ra nội dung file HEX và dòng PIC * Ghi nhớ cài đặt cuối (thuận tiện cho người dùng khi thao tác với một loại PIC) * Trong trường hợp lỗi, nó sẽ truyền một tín hiệu ngược lại cho máy tính để tái đồng bộ giữa máy tính và PIC; * Chế độ giao tiếp có thể được thay đổi, có thể dùng bất kỳ cổng COM nào với tốc độ baud nào Khái niệm chung về bootloader Một bootloader là một chương trình nằm trong vi điều khiển, và giao tiếp với máy tính (thông qua giao tiếp nối tiếp). Bootloader nhận một chương trình (đã được dịch ra thành file HEX) từ máy tính và ghi nó vào bộ nhớ flash của vi điều khiển thông qua một phần mềm trên máy tính, sau đó chạy chương trình đó trên vi điều khiển. Bootloader chỉ có thể được dùng với những vi điều khiển nào cho phép ghi vào bộ nhớ flash thông qua phần mềm trên máy tính. Bản thân bootloader phải được ghi vào trong bộ nhớ flash bằng một mạch nạp khác. Để bootloader hoạt động, sau khi nhấn reset, một lệnh "goto bootloader" phải nằm ở địa chỉ đầu tiên của chương trình vi điều khiển. Có 2 loại bootloader, một số loại đôi khi cần người dùng đặt lại địa chỉ các dòng lệnh đầu, một số khác thì tự bản thân nó đặt những dòng lệnh đầu của người dùng vào một địa chỉ khác khi mà bootloader đã nằm sẵn ở đó, và quay trở lại chương trình của người dùng khi kết thúc đoạn chương trình bootloader. Trong trường hợp này, tiny bootloader tự động đem các vị trí đầu của chương trình người viết, và đặt ở phía dưới cùng với chương trình bootloader (thực ra đoạn chương trình này chỉ tối đa có 4 dòng lệnh). Các bạn lưu ý rằng địa chỉ 0x0004 đã là địa chỉ bắt đầu ngắt. Chính vì vậy, nếu các bạn lập trình từ vị trí 0x0000 thì cũng chỉ viết được tối đa 4 dòng lệnh, sau đó phải nhảy đến chương trình chính. Như vậy, tiny bootloader sẽ thực hiện thao tác, cắt 4 dòng đầu tiên từ 0x0000 đến 0x0003 của các bạn, thay bằng dòng lệnh GOTO BOOTLOADER. Và nó tự động đặt 4 dòng lệnh của các bạn nằm ngay phía trên chương trình bootloader (xem hình trên).Sau đó, chạy chương trình tinybootloader phía bên dưới. Rồi nó quay lên chạy 4 dòng lệnh của các bạn. Kết thúc 4 dòng này, nó lại trở về vị trí chương trình chạy bình thường của các bạn ở bên trên. Trong bài viết sau, tôi sẽ đề cập tới việc cài đặt và sử dụng tiny bootloader. Thú thực với các bạn rằng, tôi dùng tiny bootloader từ lâu, nhưng một năm trở lại đây, thấy tính năng của nó quá tốt, cũng ngỡ ngàng. Nó nạp được cho cả dsPIC luôn rồi thì không vấn đề gì mà không dùng nó. Nội việc viết đoạn chương trình giao tiếp RS232 mà tôi nghĩ lúc nào cũng cần thiết, thôi thì dùng bootloader luôn cho tiện. 2 đoạn cuối là nhận xét cá nhân, các bạn không cần quan tâm chi tiết. Chúc vui.
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? thay đổi nội dung bởi: falleaf, 13-10-2005 lúc 05:55 PM. |
13-10-2005, 06:12 PM | #3 |
PIC Bang chủ
|
Phần cứng của tiny bootloader các bạn làm theo sơ đồ sau:
Phần mềm, các bạn có thể down load tại đây: http://www.etc.ugal.ro/cchiculita/so.../tinybld19.zip Đây là phiên bản tinybld19
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
05-12-2005, 03:32 AM | #4 |
PIC Bang chủ
|
Trên đây là danh sách những chip đã được kiểm tra là nạp được với tiny bootloader. Những chip được đánh dấu màu xanh đậm là những chip đã được tác giả test và dùng thường xuyên. Những chip màu xanh là những chip đã được test và verify. Còn những chip màu xanh tối là những chip đã được phản hồi là nạp được. Riêng cá nhân tôi, đã sử dụng tiny bootloader nạp cho các dòng PIC sau: 16F876, 16F876A, 16F88, 16F877, 16F877A Tất cả đều hoạt động tốt, và chưa bị một lỗi nào, ngoại trừ quên bấm nút reset. Nhưng nay, phiên bản mới này đã cho phép reset bằng chương trình, vì thế, tôi tin rằng phiên bản mới này sẽ không gây bất kỳ trở ngại nào cho người dùng. Chúc vui.
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
05-12-2005, 03:37 AM | #5 |
PIC Bang chủ
|
Các bạn lưu ý nút reset bằng phần mềm, nếu đường dây các bạn nối quá dài, cần nối một con điện trở kéo lên 1K và một diode (trong hình màu xanh mờ). Nhưng điện trở 4K7 nối vào chân MCLR và VDD thực chất khi thiết kế mạch reset bằng tay các bạn đã có rồi. Chính vì vậy không cần thêm vào.
Còn lại tất cả mạch đều đơn giản giống như mạch giao tiếp RS232 bình thường. Các bạn vẫn có thể dùng bootloader để giao tiếp RS232 rất tốt, không cần làm bất kỳ điều gì khác. Chúc vui.
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
25-02-2006, 08:20 PM | #6 |
Nhập môn đệ tử
Tham gia ngày: Jun 2005
Bài gửi: 6
: |
Em đã test và chạy tốt cho dsPIC4012, bản này còn có thêm tính năng kiểm tra: Check PIC hay hơn so với các phiên bản trước đó. -> Bản tinybootloader này rất tuyệt.
thay đổi nội dung bởi: 4MD, 25-02-2006 lúc 08:23 PM. |
28-02-2006, 08:31 AM | #7 |
Đệ tử 6 túi
Tham gia ngày: Jun 2005
Bài gửi: 141
: |
Từ trước tới giờ tớ dùng MPLAP để viết chương trình rồi dùng winpic800 để nạp vào chip. Có thấy chỗ nào động đến khái niệm bootloader đâu? Các bác giải thích xem sao lại không gặp khái niệm này thế, và nó là gì?
|
28-02-2006, 09:32 PM | #8 | |
Đệ tử 4 túi
Tham gia ngày: May 2005
Bài gửi: 83
: |
Trích:
|
|
09-03-2006, 10:27 AM | #9 |
Đệ tử 2 túi
Tham gia ngày: Mar 2006
Bài gửi: 36
: |
tui đang dùng 89c51,mạch nạp gồm có 1 con master nạp sẵn chương trình giao tiếp máy tính gọi là firmware,nay lại có khái niệm bootloader nữa,vậy cái này có giống như cái firmware của 89 ko?ko cần nó có được ko?
Đối với người biết rồi thì câu này hỏi hơi bị ..ngu 1 tí,nhưng tui mới học,mong giúp đỡ cho
__________________
goodbye!! |
09-03-2006, 05:33 PM | #10 | |
Trưởng lão PIC bang
|
Trích:
Bootloader cũng là một dạng firmware, nhưng chạy trên target chip, thay vì chạy trên một master chip, do vậy bạn không cần phải có mạch nạp nếu bạn đã có bootloader. Lẽ đương nhiên không có bootloader thì bạn vẫn dùng tốt được vi điều khiển, nhưng bạn đã được giải thích những thuận lợi của bootloader trong luồng này rồi đó. 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, 21-03-2006 lúc 07:28 PM. |
|
09-03-2006, 05:38 PM | #11 | |
Trưởng lão PIC bang
|
Trích:
__________________
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 |
|
10-03-2006, 07:58 PM | #12 |
Đệ tử 2 túi
Tham gia ngày: Mar 2006
Bài gửi: 36
: |
à há,như vậy là chỉ cần làm 1 cái mạch tẹo teo như thế rồi cắm vào computer là nó nạp,ko cần master gì ráo,vụ này rất hay.
89c51 có botloader ko vậy? nếu ko có thì có thể dùng mạch nạp mater/slave rồi nạp cái botloader cho nó ko? hic hic,càng học càng phát sinh....
__________________
goodbye!! |
10-03-2006, 11:09 PM | #13 | |
Trưởng lão PIC bang
|
Trích:
http://www.atmel.com/dyn/products/pa...&Direction=ASC để xem bảng lựa chọn các chip theo kiến trúc 8051, chú ý cột "Self Program Memory".) Atmel cũng cung cấp sẵn phần mềm chạy trên máy tính để kết nối với bootloader (họ gọi là Serial Loader) có sẵn trong chip. 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 |
|
21-03-2006, 06:51 PM | #14 | |
Đệ tử 3 túi
Tham gia ngày: Jun 2005
Bài gửi: 56
: |
Trích:
Tiny Bootloader có nhược điểm là nó cần lệnh goto trong 4 word đầu tiên của file hex. Vì vậy nó không làm việc với một số trình dịch. Đáng tiếc nhất trong đó có hai phiên bản mới nhất của HTPIC là HTPICC9.50 PL3 và HTPICC18 9.50. Nhưng với phiên bản 8.05PL2 và 8.35PL3 lại chạy rất tốt. Em hỏi trên forum của bọn HTPIC thì mod trả lời, em làm theo cũng chẳng chạy. Trên diễn đàn Microchipc.com có một chú người nhật đưa ra giải pháp khác phục nhưng chỉ chạy với bản 9.50Lite còn bản "xịn" thì không chạy |
|
22-03-2006, 06:50 PM | #15 | ||
Đệ tử 4 túi
Tham gia ngày: May 2005
Bài gửi: 83
: |
Trích:
Trích:
Có lẽ do bước 3 tôi đã làm sai , anh có thể cho 1 chương trình mẫu tham khảo đc ko , tôi dùng C30 |
||
|
|
Similar Threads | ||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
Microchip Bootloader | falleaf | Bootloaders - Programmers - Debuggers - Emulators | 2 | 20-05-2017 11:43 AM |
Pvn Tiny Bootloader | ntc | Tiny Bootloader | 52 | 31-10-2012 01:27 PM |
xin bootloader của pic18f4331 | hoangminh1234 | Tiny Bootloader | 30 | 24-12-2011 02:38 PM |
Tiny bootloaders | falleaf | Tiny Bootloader | 15 | 01-02-2010 03:13 PM |
Xin file hex bootloader của PIC16F84A | hanhluckyly | Tiny Bootloader | 1 | 18-10-2006 09:36 PM |