Среда, 22.11.2017, 10:00
recoverypro.ucoz.ru
Приветствую Вас Гость | RSS
Главная Каталог статей Регистрация Вход
Меню сайта

Категории раздела
Мои статьи [3]

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » Мои статьи

Seagate. Ошибки выдаваемые в терминал.

Ошибка 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>

Категория: Мои статьи | Добавил: An-dy (06.01.2011)
Просмотров: 21791 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
626734026

Поиск

Copyright MyCorp © 2017