前回は、
今回は、
ダウンローダの仕組み
PICは、
具体的には、
では、
最初に、
recvline
call recvrs
movf rxdata, 0
xorlw 0x3a ; ":"
btfss STATUS, Z
goto recvline
clrf sum
recvline_len
call recvhex
movf rxdata, 0
movwf len
addlw 0xef
movlw 0x10 ; error: len > 0x10
btfsc STATUS, C
goto disperror
....
HTTPレスポンスを解析し、
setdatah
btfsc mode, MODE_FULL
retlw 0
movwf INDF
incf FSR, 1
bsf STATUS, RP1
xorwf EEDATH & 0x7f, 0
bcf STATUS, RP1
btfss STATUS, Z
bsf mode, MODE_CHANGEBUF
btfss STATUS, Z
bsf mode, MODE_CHANGE
bsf STATUS, RP1
incf EEADR & 0x7f, 1
bsf STATUS, RP0
bsf EECON1 & 0x7f, EEPGD
bsf EECON1 & 0x7f, RD
nop
nop
bcf STATUS, RP0
bcf STATUS, RP1
retlw 0
受信したバイナリと、
writebuf
movwf FSR
movf INDF, 0
movwf addrh
incf FSR, 1
movf INDF, 0
movwf addrl
incf FSR, 1
bcf STATUS, C
rrf addrh, 0
bsf STATUS, RP1
movwf EEADRH & 0x7f
bcf STATUS, RP1
rrf addrl, 0
bsf STATUS, RP1
movwf EEADR & 0x7f
bcf STATUS, RP1
movlw 0x10
movwf work0
writebuf0
bsf STATUS, RP1
movf INDF, 0
movwf EEDAT & 0x7f
incf FSR, 1
movf INDF, 0
movwf EEDATH & 0x7f
incf FSR, 1
bsf STATUS, RP0
bsf EECON1 & 0x7f, EEPGD
bsf EECON1 & 0x7f, WREN
movlw 0x55
movwf EECON2 & 0x7f
movlw 0xaa
movwf EECON2 & 0x7f
bsf EECON1 & 0x7f, WR
nop
nop
bcf EECON1 & 0x7f, WREN
bcf STATUS, RP0
incf EEADR & 0x7f, 1
bcf STATUS, RP1
decfsz work0, 1
goto writebuf0
retlw 0
RAMがいっぱいになったら、
説明はここまでなのですが、
CPUの中を読む
マイコンをはじめとして、
PIC16Fシリーズの命令コードは14ビットですので、
「10」
今度は、
これだけだと、
筆者は基本的に、