;Code test from #0 to #10FDH
MOV DPTR,#0
CLR A
MOV R3,A
MOV R2,A
MOV R1,A
PUSK2: CLR A
MOVC A,@A+DPTR
ADD A,R3
MOV R3,A
MOV A,R2
ADDC A,#0
MOV R2,A
JNC $+3
INC R1
INC DPTR
MOV A,DPL
CJNE A,#0FDH,PUSK2
MOV A,DPH
CJNE A,#10H,PUSK2
CLR A
MOVC A,@A+DPTR ; #010FD(4349): 0E F5 F8 78 7F E4 F6 D8 FD 75 81 07 02
ADD A,R3 ;R3=#0F2
JNZ PUS32 ;display error message
INC DPTR
MOVC A,@A+DPTR
ADDC A,R2 ;R2=#0A
JNZ PUS32 ;display error message
INC DPTR
MOVC A,@A+DPTR
ADDC A,R1 ;R1=#07
JNZ PUS32 ; display error message
Этот топик читают: Гость
Главный модератор
Ответов: 2999
Рейтинг: 396
|
|||
Имеется изделие газоанализатора СФГ-М.01, которое работает на однокристальном микроконтроллере DS5000Т-32-16 (8051-compatible device). Также есть программатор ChipProg-40 для прошивки. В наличие исходный ассемблер программы управления, который при запуске считает контрольную сумму кода программы и проверяет её. В отладчике пошагово смотрел - контрольная сумма правильная, но после прошивки в реальный контроллер и запуск изделия вижу диагностическое сообщение, что контрольная сумма не совпадает. Вопрос знатокам какие могут быть причины кроме очевидной - неправильной прошивки? Здесь код подсчёта контрольной суммы:
|
|||
карма: 6 |
|
1