Trích:
Nguyên văn bởi enti
Mình mới sử dụng thử bootloader. Mình bị vướng vấn đề như sau.
Mình sử dụng 18F4550, có thiết kế phần USB (nhưng chưa sử dụng), SPI (2 thiết bị, 1 là SD card), RS232 (giao tiếp PC), RS485, XTAL 20Mhz.
- Mình sử dụng bản tiny bootloader198, ko dùng RTS mềm (pin 9), do lúc thiết kế board chưa biết đến bootloader.
1. Mình sửa file asm của 18F2550 (trong thư mục đi kèm của tiny bootloader):
xtal 24000000
baud 115200
phần config mình bỏ_FCMEM_OFF_1H đi vì compile báo lỗi chưa khai báo.
Sau khi compile xong thì nạp lên pic, có thể detect được pic, nhưng phải nhấn reset trên board và nhấn vào write flash (trong khỏang 1s, nếu không thì sẽ error), chương trình laod thành công, nhưng khi chạy thì không thể gửi data về pc qua RS232 được, chương trình của mình có chức năng giao tiếp PC, ngoài ra SPI họat động không đúng chức năng, mình đã kiềm tra code rồi, chắc chắn không vấn đề (khi nạp trực tiếp và chạy).
2. Mình download bootloader của namqn post trên đây về và nạp vào pic, thì spi gần như không họat động, do mình co phần init SD card, init báo lỗi ngay từ đầu.
Bạn có thể hướng dẫn mình sửa bootloader được không?
Mình post phần mình sửa để bạn xem
...
|
1. Bạn có nắm được ý nghĩa của đoạn ghi chú sau trong mã nguồn firmware của Claudiu không:
Code:
;*************************************************************
; After reset
; Do not expect the memory to be zero,
; Do not expect registers to be initialised like in catalog.
Nếu code của bạn chạy tốt khi nạp trực tiếp, nó vẫn có thể gặp trục trặc khi được nạp từ bootloader. Vì khi nạp xong code ứng dụng (hoặc hết time out mà không có code ứng dụng mới để nạp), bootloader sẽ nhảy đến đoạn code ứng dụng, chứ không thực hiện hard reset như khi bạn thử code được nạp trực tiếp. Đây mới chỉ là một khả năng, vì bạn chưa cho biết đoạn code khởi tạo trong chương trình ứng dụng của bạn.
2. Tôi không nhớ đã post firmware bootloader nào cho dòng PIC18F mà có hỗ trợ luôn cả USB, theo cấu hình của bạn ở trên. Do đó, việc làm của bạn rất nhiều khả năng là không thành công, vì bạn đang dùng "râu ông nọ cắm cằm bà kia".
Thân,