avr: adapted boot firmware to latest changes (mainly switch to uart_bitbang).
This commit is contained in:
@@ -69,14 +69,33 @@ bootLoader:
|
||||
ldi r16, Low(RAMEND)
|
||||
out SPL, r16 ; init LSB stack pointer
|
||||
|
||||
; start by setting all ports as inputs and enable internal pull-up resistors
|
||||
ldi r16, 0xff
|
||||
clr r17
|
||||
.ifdef PORTA
|
||||
out DDRA, r17 ; all input
|
||||
out PORTA, r16 ; enable pull-up on all
|
||||
.endif
|
||||
|
||||
.ifdef PORTB
|
||||
out DDRB, r17 ; all input
|
||||
out PORTB, r16 ; enable pull-up on all
|
||||
.endif
|
||||
|
||||
.ifdef PORTC
|
||||
out DDRC, r17 ; all input
|
||||
out PORTC, r16 ; enable pull-up on all
|
||||
.endif
|
||||
|
||||
|
||||
; rcall watchdogOff ; turn off watchdog timer (sometimes it stays on after reboot)
|
||||
|
||||
; setup pins and interrupts
|
||||
cbi COM_TXD_DATA, COM_TXD_PIN ; disable internal pullup for DATA
|
||||
cbi COM_TXD_DDR, COM_TXD_PIN ; set DATA port as input
|
||||
cbi COM_DATA_DDR, COM_DATA_PIN ; set TXD port as input
|
||||
cbi COM_DATA_OUTPUT, COM_DATA_PIN ; disable internal pullup for TXD
|
||||
|
||||
cbi COM_ATTN_OUTPUT, COM_ATTN_PIN ; disable internal pullup for ATTN
|
||||
cbi COM_ATTN_DDR, COM_ATTN_PIN ; set ATTN port as input
|
||||
cbi COM_ATTN_DDR, COM_ATTN_PIN ; set ATTN port as input
|
||||
cbi COM_ATTN_OUTPUT, COM_ATTN_PIN ; disable internal pullup for ATTN
|
||||
|
||||
sbi LED_DDR, LED_PINNUM ; out
|
||||
cbi LED_PORT, LED_PINNUM ; on
|
||||
@@ -88,11 +107,11 @@ bootLoader:
|
||||
st X+, r19
|
||||
st X+, r20
|
||||
st X+, r21
|
||||
|
||||
|
||||
; wait for 3 secs before doing anything else
|
||||
ldi r16, 30
|
||||
rcall flashWaitForMulti100ms
|
||||
|
||||
|
||||
rcall bootCheckFlash
|
||||
brcc bootLoader_startFirmware ; no flash process, try start installed firmware
|
||||
rcall bootLoaderFlash ; received a FLASH START msg, handle flashing
|
||||
|
||||
@@ -122,6 +122,8 @@ flashWaitForSpecificMessage_received: ; R16 contains message type
|
||||
; REGS: R24 (R22)
|
||||
|
||||
flashWaitForAttnState1ms:
|
||||
cbi COM_ATTN_DDR, COM_ATTN_PIN ; set ATTN port as input
|
||||
cbi COM_ATTN_OUTPUT, COM_ATTN_PIN ; disable internal pullup for ATTN
|
||||
ldi r24, 100
|
||||
flashWaitForAttnState1ms_loop:
|
||||
push r17
|
||||
|
||||
Reference in New Issue
Block a user