PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Bootloaders - Programmers - Debuggers - Emulators > Tiny Bootloader

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

Tiny Bootloader Mọi vấn đề liên quan tinybootloader sẽ được tổng hợp ở đây.

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 28-02-2006, 09:32 PM   #1
batbatdieu
Đệ tử 4 túi
 
Tham gia ngày: May 2005
Bài gửi: 83
:
Trích:
Nguyên văn bởi 4MD
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.
Bạn đã thử với 4011 chưa , mình cũng thử nhưng chỉ ghi đc 1 lần rùi đơ luôn ,
batbatdieu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-03-2006, 05:38 PM   #2
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 batbatdieu
Bạn đã thử với 4011 chưa , mình cũng thử nhưng chỉ ghi đc 1 lần rùi đơ luôn ,
Tôi vừa thử nghiệm Tiny Bootloader với các dsPIC từ 201x đến 401x, tất cả đều chạy tốt, không có chuyện chỉ ghi được một lần duy nhất. Bạn có thể cho biết bạn đã làm như thế nào không?
__________________
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
Old 21-03-2006, 06:51 PM   #3
phamthaihoa
Đệ tử 3 túi
 
Tham gia ngày: Jun 2005
Bài gửi: 56
:
Trích:
Nguyên văn bởi namqn
Tôi vừa thử nghiệm Tiny Bootloader với các dsPIC từ 201x đến 401x, tất cả đều chạy tốt, không có chuyện chỉ ghi được một lần duy nhất. Bạn có thể cho biết bạn đã làm như thế nào không?
Ơ, lạ nhỉ, em nạp cho 4013, nó không chạy.

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
phamthaihoa vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-03-2006, 06:50 PM   #4
batbatdieu
Đệ tử 4 túi
 
Tham gia ngày: May 2005
Bài gửi: 83
:
Trích:
Nguyên văn bởi namqn
Tôi vừa thử nghiệm Tiny Bootloader với các dsPIC từ 201x đến 401x, tất cả đều chạy tốt, không có chuyện chỉ ghi được một lần duy nhất. Bạn có thể cho biết bạn đã làm như thế nào không?
Trích:
1 - You can use one of the provided .hex files or
2 - Modify tinybld.asm and assemble it using MPASM IDE (or Mpasmwin.exe)
Modify "xtal", "baud", "_??_OSC" to what you need; assemble it (for example with .\MPLAB\MCHIP_Tools\Mpasmwin.exe); write the HEX it with a PIC programmer; put the PIC on you board and connect it to the PC serial port.
3 - Requirements for your program:
The program must meet this requirement: it must have in the first 4 words of memory a GOTO to the start of the main program. (this is what the majority of the bootloaders require). So in assembler it should look something like this:PIC16F PIC16F PIC18F
org 0
;clrf STATUS
clrf PCLATH
goto Main org 0
;clrf STATUS
pagesel Main
goto Main org 0
goto Main

If you use a compiler, search the help for a directive that allows coexistence with a bootloader;
Tôi đã làm theo bước 2 , modify lại file tinybld_ds4012.s rồi dịch và nạp vào 4011 , kết quả là tiny bootloader nhận đc là dspic4011/4012 . Nhưng sau khi nạp chương trình thì tiny bootloader ko nhận ra dspic đc nữa , tôi buộc phải nạp lại bootloader.
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
batbatdieu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-03-2006, 07:32 PM   #5
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 batbatdieu
Tôi đã làm theo bước 2 , modify lại file tinybld_ds4012.s rồi dịch và nạp vào 4011 , kết quả là tiny bootloader nhận đc là dspic4011/4012 . Nhưng sau khi nạp chương trình thì tiny bootloader ko nhận ra dspic đc nữa , tôi buộc phải nạp lại bootloader.
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
Bạn có thể kiểm tra giả thiết về bước 3 của bạn bằng cách thử dùng file .hex mà tôi đã cung cấp trong luồng sau:
http://www.picvietnam.com/forum//showthread.php?t=333
Nếu đúng là bước 3 bạn làm không tốt thì tôi sẽ bàn tiếp về việc viết code trong C30 cho tiny bootloader.

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
Old 06-05-2007, 03:38 PM   #6
lamdangkhoa
Nhập môn đệ tử
 
Tham gia ngày: Mar 2007
Bài gửi: 2
:
Trích:
Nguyên văn bởi namqn View Post
Bạn có thể kiểm tra giả thiết về bước 3 của bạn bằng cách thử dùng file .hex mà tôi đã cung cấp trong luồng sau:
http://www.picvietnam.com/forum//showthread.php?t=333
Nếu đúng là bước 3 bạn làm không tốt thì tôi sẽ bàn tiếp về việc viết code trong C30 cho tiny bootloader.

Thân,

HICCC!!!
LINK DIE RÙI ANH OI!!
lamdangkhoa vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-05-2007, 09:11 PM   #7
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 lamdangkhoa View Post
HICCC!!!
LINK DIE RÙI ANH OI!!
Bạn muốn nói link nào? Link để download tập tin ví dụ của dsPIC tutorial 1?

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
Old 08-05-2007, 08:55 PM   #8
omlun
Đệ tử 1 túi
 
Tham gia ngày: Mar 2007
Bài gửi: 25
:
Trích:
Nguyên văn bởi namqn View Post
Bạn có thể kiểm tra giả thiết về bước 3 của bạn bằng cách thử dùng file .hex mà tôi đã cung cấp trong luồng sau:
http://www.picvietnam.com/forum//showthread.php?t=333
Nếu đúng là bước 3 bạn làm không tốt thì tôi sẽ bàn tiếp về việc viết code trong C30 cho tiny bootloader.

Thân,
link bi die!!
omlun vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-05-2007, 09:04 PM   #9
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
Các bài viết trong box đó sẽ bị ẩn đối với những người chưa đăng nhập. Bạn đăng nhập thì sẽ mở được bài viết bằng link đó. Đôi khi bạn phải đăng nhập lại vì một lý do nào đó. Trước khi thông báo lỗi kiểu như vậy bạn hãy kiểm tra lại xem bạn đang còn log in hay đã log out rồi. Tôi vừa kiểm tra link đó xong, nếu tôi chưa đăng nhập thì cũng nhận được thông báo lỗi, nhưng đăng nhập xong thì đọc được bài viết bình thường. Nó chỉ là cái link đến dsPIC tutorial 1 nằm trong box 'dsPIC'.

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
Old 11-08-2008, 08:00 PM   #10
minhsondaklak
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 96
:
Hình dung về Bootloader ?

Đọc xong phần bootloader, mình chợt nghĩ: Nó giống như là "hệ điều hành" của chip VĐK, tuỳ chọn cho VĐK nạp chương trình mới hay là chạy chương trình cũ đã nạp trước đó.
Việc hình dung nôm na như nhế có thể giúp bạn dể nắm bắt và dể nhớ về Bootloader.

thay đổi nội dung bởi: minhsondaklak, 12-08-2008 lúc 09:22 AM.
minhsondaklak vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-08-2008, 10:43 PM   #11
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 minhsondaklak View Post
Đọc xong phần bootloader, mình chợt nghĩ: Nó chính là "hệ điều hành" của chip VĐK, tuỳ chọn cho VĐK nạp chương trình mới hay là chạy chương trình cũ đã nạp trước đó.
Việc hình dung nôm na như nhế có thể giúp bạn dể nắm bắt và dể nhớ về Bootloader.
Nếu hình dung theo kiểu này thì bootloader trong PIC giống như bootloader của MBR hay của partition trong ổ đĩa của máy tính, cho phép bạn khởi động một trong những hệ điều hành trên đĩa, với ổ đĩa có nhiều hệ điều hành (vì vậy nên firmware loại này của PIC cũng được gọi là bootloader). Nếu gọi là hệ điều hành thì nó phải thường xuyên chạy và điều phối các ứng dụng trên PIC, bootloader không làm việc đó đâu.

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
Old 15-11-2013, 10:05 PM   #12
nguyenthanhquat
Nhập môn đệ tử
 
Tham gia ngày: Jul 2013
Bài gửi: 4
:
Xin code tiny bootloader cho pic16f877a qua giao tiếp RS485

mình mới tìm hiểu về tiny bootloader và đã thử thành công qua giao tiếp RS232, hiện tại mình đang sử dụng giao tiếp RS485 và có ý tường là dùng tiny bootloader qua RS485 (mình kết nối max485 với chân RX, TX của pic, chân điều khiển Max485 là RC5, thạch anh 20M, tốc độ 9600) mình ko biết nhiều về lập trình asm nên ko biết sửa code trong tiny bootloader cho phù hợp, mong các bạn giúp đỡ
nguyenthanhquat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-11-2013, 10:14 PM   #13
nguyenthanhquat
Nhập môn đệ tử
 
Tham gia ngày: Jul 2013
Bài gửi: 4
:
chỉnh giúp tiny bootloader PIC16F877A qua RS485

mình có sửa code tiny bootloader PIC16F877A qua RS485, mô phỏng trên proteus và sử dụng bản tiny 1.95 thì có check dc pic và báo nạp thành công nhưng chương trình nạp ko chạy (đơn giản là nháy 1 con led, các thông số về fuse mình đã cấu hình để phù hợp với chương trình tiny bootloader), đoạn chương trình giao tiếp RS485 mình viết:

SendL macro car
BCF RCSTA, CREN ; turn off receive on serial
bsf PORTC,5 ;RS485 transmit/
movlw car
movwf TXREG
BSF STATUS, RP0 ; bank 1 set bank
BTFSS TXSTA, TRMT ; wait until TRMT is high
goto $-1
BCF STATUS, RP0 ; bank 0
bcf PORTC,5 ;RS485 receive
BSF RCSTA, CREN ; enable receive on serial
endm

mong các bạn xem giúp, mình đang nghi ở chỗ:
#define first_address max_flash-120 ; 100 word in size
nhưng ko biết chỉnh sao cho đúng, chương trình mình sửa theo bản chuẩn của tiny bootloader như sau:

radix DEC
LIST P=16F887a, F=INHX8M ; change also: Configure->SelectDevice from Mplab

; auto-start at 4MHz internal osc
xtal EQU 20000000 ; you may also want to change: _HS_OSC _XT_OSC
baud EQU 9600 ; standard TinyBld baud rates: 115200 or 19200
;xtal EQU 4000000 ; you may also want to change: _HS_OSC _XT_OSC
;baud EQU 19200 ; standard TinyBld baud rates: 115200 or 19200

; The above 3 lines can be changed and buid a bootloader for the desired frequency (and PIC type)

;************************************************* *******************
; Tiny Bootloader 16FxxxA series Size=100words
; claudiu.chiculita@ugal.ro
; http://www.etc.ugal.ro/cchiculita/so...bootloader.htm
;************************************************* *******************

#include "icdpictypes.inc" ;takes care of: #include "p16fxxxA.inc", max_flash, IdTypePIC
#include "spbrgselect.inc"
#include "bankswitch.inc"
#define first_address max_flash-120 ; 100 word in size

__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _HS_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
errorlevel 1, -305 ; suppress warning msg that takes f as default


cblock 0x20
buffer:80
endc

cblock 0x78
crc
contor
i
cnt1
cnt2
cnt3
flag
endc

SendL macro car
BCF RCSTA, CREN ; turn off receive on serial
bsf PORTC,5 ;RS485 transmit/
movlw car
movwf TXREG
BSF STATUS, RP0 ; bank 1 set bank
BTFSS TXSTA, TRMT ; wait until TRMT is high
goto $-1
BCF STATUS, RP0 ; bank 0
bcf PORTC,5 ;RS485 receive
BSF RCSTA, CREN ; enable receive on serial
endm

;0000000000000000000000000 RESET 00000000000000000000000000
ORG 0x0000
PAGESEL IntrareBootloader
GOTO IntrareBootloader

;view with TabSize=4
;&&&&&&&&&&&&&&&&&&&&&&& START &&&&&&&&&&&&&&&&&
;---------------------- Bootloader ----------------------
;
;PC_flash: C1h AddrH AddrL nr ...(DataLo DataHi)... crc
;PIC_response: id K K
ORG first_address
nop
nop
nop
nop
org first_address+4
IntrareBootloader

;init serial port
clrf STATUS
bsf STATUS,RP0 ;BANK1_
movlw b'10011111' ;////////////////////////////
movwf TRISC ;///////////////////////
bcf PORTC,5 ;RS485 receive
movlw b'00100100'
movwf TXSTA
movlw spbrg_value
movwf SPBRG
BANK0_
movlw b'10010000'
movwf RCSTA
;wait for computer
call Receive
sublw 0xC1 ;Expect C1
skpz
goto way_to_exit
SendL IdTypePIC ;PIC type
;SendL IdSoftVer ;firmware ver x

MainLoop
clrf STATUS ;bank0
SendL 'K' ;"-Everything OK, ready and waiting."

mainl
clrf crc
call Receive ;H
bsf STATUS,RP1 ;bank2
movwf EEADRH
movwf flag ;used to detect if is eeprom
call Receive ;L
bsf STATUS,RP1 ;bank2
movwf EEADR

call Receive ;count
movwf contor
movwf i
incf i
movlw buffer-1
movwf FSR
rcvoct
call Receive
incf FSR
movwf INDF
decfsz i
goto rcvoct

movf crc,f ;check checksum
skpz
goto ziieroare
;write
bsf STATUS,RP1 ;bank switch 0->2
movlw buffer
movwf FSR
writeloop ; write 2 bytes = 1 instruction
clrwdt
movf INDF,w
movwf EEDATA
incf FSR
movf INDF,w
movwf EEDATH
incf FSR
BANK3_ ;bank 2->3
bcf EECON1,EEPGD
btfss flag,6 ;is eeprom (or flash)
bsf EECON1,EEPGD
bsf EECON1,WREN
movlw 0x55
movwf EECON2
movlw 0xaa
movwf EECON2
bsf EECON1,WR
nop
nop
waitwre
; btfsc EECON1,WR ;for eeprom writes (wait to finish write)
; goto waitwre
bcf EECON1,WREN
BANK2_ ;bank2
incf EEADR ;does not cross zones
btfss flag,6 ; if writing to EEPROM, skip first counter dec.
decf contor
decfsz contor
goto writeloop

goto MainLoop
ziieroare
SendL 'N'
goto mainl
Receive
clrf STATUS
movlw xtal/2000000+1 ; for 20MHz => 11 => 1second
movwf cnt1
rpt2
clrf cnt2
rpt3
clrf cnt3
rptc
btfss PIR1,RCIF ;test RX
goto $+4
movf RCREG,w ;return in W
addwf crc,f ;compute checksum
return
clrwdt
decfsz cnt3
goto rptc
decfsz cnt2
goto rpt3
decfsz cnt1
goto rpt2
;timeout:
way_to_exit ;exit in all other cases; must be BANK0/1
;BANK0_
bcf RCSTA, SPEN ; deactivate UART
goto first_address
;************************************************* ************
; After reset
; Do not expect the memory to be zero,
; Do not expect registers to be initialised like in catalog.

END
nguyenthanhquat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-05-2024, 06:25 AM   #14
lifeof
Đệ tử 1 túi
 
Tham gia ngày: Jul 2011
Nơi Cư Ngụ: Usa
Bài gửi: 17
:
Send a message via ICQ to lifeof Send a message via AIM to lifeof Send a message via Yahoo to lifeof
Top-notch Сasual Dating - Authentic Ladies

Break free from traditional dating norms and embrace the best in casual connections.
True Females
Prime casual Dating
__________________
Pretty Girls from your city
lifeof vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến

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


Múi giờ GMT. Hiện tại là 05:55 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam