Вверх ↑
Этот топик читают: Гость
Главный модератор
Ответов: 2997
Рейтинг: 395
#1: 2020-09-22 08:44:22 ЛС | профиль | цитата
Имеется изделие газоанализатора СФГ-М.01, которое работает на однокристальном микроконтроллере DS5000Т-32-16 (8051-compatible device). Также есть программатор ChipProg-40 для прошивки. В наличие исходный ассемблер программы управления, который при запуске считает контрольную сумму кода программы и проверяет её. В отладчике пошагово смотрел - контрольная сумма правильная, но после прошивки в реальный контроллер и запуск изделия вижу диагностическое сообщение, что контрольная сумма не совпадает. Вопрос знатокам какие могут быть причины кроме очевидной - неправильной прошивки? Здесь код подсчёта контрольной суммы:

;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
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
vip
#1.1контекстная реклама от партнеров
1
Сообщение
...
Прикрепленные файлы
(файлы не залиты)