|
芯片型号:STC15H2K64S4
开发环境,MDK
开发语言:ASM
问题描述:
自己做一个ISP的程序,会检测应用区是否有合格的数据,测试使用IAP READ 可以取得数据,使用MOVC取的数据不是实际数据,相关问题代码如下:
check_userarea:
mov DPTR, #0x7FFE
lcall iap_byte_read
xrl A, #0x5A
jz code_81
clr C
ret
code_81:
mov RAM_22, #0x10
mov RAM_23, #0
mov R7, #0
code_85:
mov a, RAM_23
jnz code_98
mov a, RAM_22
xrl a, #0x80
jz code_A8
code_98:
mov DPL, RAM_23
mov DPH, RAM_22
lcall iap_byte_read
; clr A
; movc A, @A+DPTR
add A, R7
mov R7, A
code_A6:
inc RAM_23
mov a, RAM_23
jnz $+4
inc RAM_22
sjmp code_85
code_A8:
mov A, R7
jnz code_AE
setb C
sjmp code_AF
code_AE:
clr C
code_AF:
ret
使用指令中的
lcall iap_byte_read
可以取到数据并通过校验,而
; clr A
; movc A, @A+DPTR
则取的数据通不校验。
请虾给予赐教
|
|