个简单的引导程序汇编代码(2)
发表:2023-08-29 12:01:56 阅读:192

电子资讯一个简单的引导程序汇编代码(2)

subi YL.Iow(PAGESIZER) ;复位指针
sbc i YH.high(PAGESIZEB)
Rdloop:
ipm r0.Z+ ,
ld rl.Y+
cpse r0,rl
jmp Error
sbiw loophi:looplo,1 ;PAGESIZEB<=256时请使用subi
brne Rdloop
;返回到RWW区
;确保RWW区已经可以安全读取
Return:
ids templ,SPMCSR
sbrs t鲫Pl,RWWSB ;若RWWSB为‘‘1",说明RWW区还没有准备好
ret
;重新使能RWW区
idi SPMCSRval,(1<
call Do_spm
rjmp Return
Do_spm:
;检查先前的SPM操作是否已经完成
Wait_spm:
ids templ,SPMCSR
sbrc templ,SPMEN
rjmp Wait_spm
;;输入:SPMCSRval决定了SPM操作
;禁止中断,保存状态标志
in temp2,SREG
cli
;确保没有EEPROM写操作
Wait_ee:
sbic EECR,EEWE
rjmp Wait..ee
;SPM时间序列
sts SPMCSR,SPMCSRval
spm
;恢复SREG(如果中断原本是使能的,则使能中断)
out SReg,temp2
ret
 

 

更多推荐