Ошибка A5
Ошибка возникает при повреждении AppCode(некорректной CRC), а также, при
повреждении части блока AppCode, содержащего сигнатуры идентификации и прочие данные. Во
втором случае выход из функции происходит еще до процедуры расчета CRC. Общий смысл ошибки – несовпадение значений ID эталонного и из AppCode,
а также окончание процедуры расчета CRC
со
значением в r2 отличным от 0.
Пример кода:
mov r2, ONES mov r6, segment //Работаем с загруженным AppCode
mov r7, offset
exts r6,
#1
mov r13, [offset]
;в r13 ID из загруженного APPCode
cmp r13, #ID ;проверяем ID на корректность
jmpr cc_NZ, Error ;если ID не корректен, выходим с ошибкой
//Инициализируем переменные для расчета CRC
mov r2, #0 ;переменная суммы CRC
mov r7, #0 ;переменна установки смещения
области AppCode
CRC: //Процедура
расчета CRC
exts segment, #1 ;сегмент начала AppCode
в памяти
mov r13, [r7] ;в r13
слово по текущему смещению r7
add r2, r13 ;в r2 сумма CRC
add r7, #2
addc r6, #0
cmp r6, #EndAppSeg
jmpr cc_C, CRC
cmp r7, #EndAppOffset
jmpr cc_C, CRC
Error:
or r2, r2 ;в случае успешного
выполнения r2=0;
rets
Ошибка A6
Данная ошибка возникает, когда AppCode не
совместим с версией Boot code диска. Сам Boot code находится
во внешней или встроенной SerialFlash. Также, ввиду
того, что программа диска изначально проверяет код на совместимость, а только
после этого проверяет контрольную сумму AppCode, ошибка может возникать при повреждении
части блока AppCode,
содержащего сигнатуры идентификации и прочие данные. Общий смысл ошибки - несовпадение значений CompatibleID AppCode и BootCode. Пример кода:
mov r2, ONES
mov r3, segment //Работаем с загруженным AppCode
mov r1, offset
exts segment, offset
mov r13, [r1] ;CompatibleID из загруженного APPCode
mov r3, segment //Работаем с BootCode
mov r1, offset
exts segment,offset
mov r1, [r1] ;CompatibleID из BootCode
cmp r13, r1 ;если CompatibleID не равны - AppCode не подходит
jmpr cc_NZ, Error mov r2, #0 ;в
случае успешного выполнения
Error:
or r2, r2
rets
Автор: An-dy, сайт recoverypro.ucoz.ru <recovery.prof@yahoo.com>
|