Самый длинный код ошибки


Написать короткую программу, которая будет генерировать максимально возможное сообщение об ошибке, в стандартном компиляторе C ++ ( gcc, cl.exe, iccили clang).

Оценка каждой записи — это количество символов в самом длинном сообщении об ошибке, выданном компилятором. Типы, включенные в ваш исходный код и цитируемые компилятором, считаются одним символом.

Мошенничество

Вы всегда можете переопределить шаблон в шаблоне в шаблоне с длинными именами, но я ожидаю чего-то креативного. Я пытался предотвратить это по последнему правилу, но, конечно, правила могут быть лучше, и я буду рад улучшениям.




Ответы:


Шаблон сообщения об ошибках весело расшифровывать. Учти это:

#include <vector>
#include <algorithm>
int main()
{
    int a;
    std::vector< std::vector <int> > v;
    std::vector< std::vector <int> >::const_iterator it = std::find( v.begin(), v.end(), a );
}

Компиляция с gcc -c error.cpp(4.6.3) выдаст 15786 байт с самой длинной строкой из 330 символов.

В файле, включенном в /usr/include/c++/4.6/algorithm:63:0,
                 из error_code.cpp: 2:
/usr/include/c++/4.6/bits/stl_algo.h: в функции '_RandomAccessIterator std :: __ find (_RandomAccessIterator, _RandomAccessIterator, const _Tp &, std :: random_access_iterator_tag) [с _RandomAccessgnite_t___________0_0_0_0_0_1_t_t_t_t_0__t__t_t_rator_terator = >>, _Tp = int] ':
/usr/include/c++/4.6/bits/stl_algo.h:4403:45: создается из '_IIter std :: find (_IIter, _IIter, const _Tp &) [с _IIter = __gnu_cxx :: __ normal_iterator *, std :: vector> >, _Tp = int] '
error_code.cpp: 8: 89: создается отсюда
/usr/include/c++/4.6/bits/stl_algo.h:162:4: ошибка: нет совпадения для 'operator ==' в '__first .__ gnu_cxx :: __ normal_iterator :: operator * [с _Iterator = std :: vector * , _Container = std :: vector>, __gnu_cxx :: __ normal_iterator :: reference = std :: vector &] () == __val '
/usr/include/c++/4.6/bits/stl_algo.h:162:4: примечание: кандидаты:
/usr/include/c++/4.6/bits/stl_pair.h:201:5: примечание: шаблон bool std :: operator == (const std :: pair &, const std :: pair &)
/usr/include/c++/4.6/bits/stl_iterator.h:285:5: примечание: шаблон bool std :: operator == (const std :: reverse_iterator &, const std :: reverse_iterator &)
/usr/include/c++/4.6/bits/stl_iterator.h:335:5: примечание: шаблон bool std :: operator == (const std :: reverse_iterator &, const std :: reverse_iterator &)
/usr/include/c++/4.6/bits/allocator.h:122:5: примечание: шаблон bool std :: operator == (const std :: allocator &, const std :: allocator &)
/usr/include/c++/4.6/bits/allocator.h:127:5: примечание: шаблон bool std :: operator == (const std :: allocator &, const std :: allocator &)
/usr/include/c++/4.6/bits/stl_vector.h:1273:5: примечание: шаблон bool std :: operator == (const std :: vector &, const std :: vector &)
/usr/include/c++/4.6/ext/new_allocator.h:123:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: new_allocator &, const __gnu_cxx :: new_allocator &)
/usr/include/c++/4.6/bits/stl_iterator.h:805:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: __ normal_iterator &, const __gnu_cxx :: __ normal_iterator &)
/usr/include/c++/4.6/bits/stl_iterator.h:799:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: __ normal_iterator &, const __gnu_cxx :: __ normal_iterator &)
/usr/include/c++/4.6/bits/stl_algo.h:4403:45: создается из '_IIter std :: find (_IIter, _IIter, const _Tp &) [с _IIter = __gnu_cxx :: __ normal_iterator *, std :: vector> >, _Tp = int] '
error_code.cpp: 8: 89: создается отсюда
/usr/include/c++/4.6/bits/stl_algo.h:166:4: ошибка: нет совпадения для 'operator ==' в '__first .__ gnu_cxx :: __ normal_iterator :: operator * [с _Iterator = std :: vector * , _Container = std :: vector>, __gnu_cxx :: __ normal_iterator :: reference = std :: vector &] () == __val '
/usr/include/c++/4.6/bits/stl_algo.h:166:4: примечание: кандидаты:
/usr/include/c++/4.6/bits/stl_pair.h:201:5: примечание: шаблон bool std :: operator == (const std :: pair &, const std :: pair &)
/usr/include/c++/4.6/bits/stl_iterator.h:285:5: примечание: шаблон bool std :: operator == (const std :: reverse_iterator &, const std :: reverse_iterator &)
/usr/include/c++/4.6/bits/stl_iterator.h:335:5: примечание: шаблон bool std :: operator == (const std :: reverse_iterator &, const std :: reverse_iterator &)
/usr/include/c++/4.6/bits/allocator.h:122:5: примечание: шаблон bool std :: operator == (const std :: allocator &, const std :: allocator &)
/usr/include/c++/4.6/bits/allocator.h:127:5: примечание: шаблон bool std :: operator == (const std :: allocator &, const std :: allocator &)
/usr/include/c++/4.6/bits/stl_vector.h:1273:5: примечание: шаблон bool std :: operator == (const std :: vector &, const std :: vector &)
/usr/include/c++/4.6/ext/new_allocator.h:123:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: new_allocator &, const __gnu_cxx :: new_allocator &)
/usr/include/c++/4.6/bits/stl_iterator.h:805:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: __ normal_iterator &, const __gnu_cxx :: __ normal_iterator &)
/usr/include/c++/4.6/bits/stl_iterator.h:799:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: __ normal_iterator &, const __gnu_cxx :: __ normal_iterator &)
/usr/include/c++/4.6/bits/stl_algo.h:170:4: ошибка: нет совпадения для 'operator ==' в '__first .__ gnu_cxx :: __ normal_iterator :: operator * [с _Iterator = std :: vector * , _Container = std :: vector>, __gnu_cxx :: __ normal_iterator :: reference = std :: vector &] () == __val '
/usr/include/c++/4.6/bits/stl_algo.h:170:4: примечание: кандидаты:
/usr/include/c++/4.6/bits/stl_pair.h:201:5: примечание: шаблон bool std :: operator == (const std :: pair &, const std :: pair &)
/usr/include/c++/4.6/bits/stl_iterator.h:285:5: примечание: шаблон bool std :: operator == (const std :: reverse_iterator &, const std :: reverse_iterator &)
/usr/include/c++/4.6/bits/stl_iterator.h:335:5: примечание: шаблон bool std :: operator == (const std :: reverse_iterator &, const std :: reverse_iterator &)
/usr/include/c++/4.6/bits/allocator.h:122:5: примечание: шаблон bool std :: operator == (const std :: allocator &, const std :: allocator &)
/usr/include/c++/4.6/bits/allocator.h:127:5: примечание: шаблон bool std :: operator == (const std :: allocator &, const std :: allocator &)
/usr/include/c++/4.6/bits/stl_vector.h:1273:5: примечание: шаблон bool std :: operator == (const std :: vector &, const std :: vector &)
/usr/include/c++/4.6/ext/new_allocator.h:123:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: new_allocator &, const __gnu_cxx :: new_allocator &)
/usr/include/c++/4.6/bits/stl_iterator.h:805:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: __ normal_iterator &, const __gnu_cxx :: __ normal_iterator &)
/usr/include/c++/4.6/bits/stl_iterator.h:799:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: __ normal_iterator &, const __gnu_cxx :: __ normal_iterator &)
/usr/include/c++/4.6/bits/stl_algo.h:174:4: ошибка: нет совпадения для 'operator ==' в '__first .__ gnu_cxx :: __ normal_iterator :: operator * [с _Iterator = std :: vector * , _Container = std :: vector>, __gnu_cxx :: __ normal_iterator :: reference = std :: vector &] () == __val '
/usr/include/c++/4.6/bits/stl_algo.h:174:4: примечание: кандидаты:
/usr/include/c++/4.6/bits/stl_pair.h:201:5: примечание: шаблон bool std :: operator == (const std :: pair &, const std :: pair &)
/usr/include/c++/4.6/bits/stl_iterator.h:285:5: примечание: шаблон bool std :: operator == (const std :: reverse_iterator &, const std :: reverse_iterator &)
/usr/include/c++/4.6/bits/stl_iterator.h:335:5: примечание: шаблон bool std :: operator == (const std :: reverse_iterator &, const std :: reverse_iterator &)
/usr/include/c++/4.6/bits/allocator.h:122:5: примечание: шаблон bool std :: operator == (const std :: allocator &, const std :: allocator &)
/usr/include/c++/4.6/bits/allocator.h:127:5: примечание: шаблон bool std :: operator == (const std :: allocator &, const std :: allocator &)
/usr/include/c++/4.6/bits/stl_vector.h:1273:5: примечание: шаблон bool std :: operator == (const std :: vector &, const std :: vector &)
/usr/include/c++/4.6/ext/new_allocator.h:123:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: new_allocator &, const __gnu_cxx :: new_allocator &)
/usr/include/c++/4.6/bits/stl_iterator.h:805:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: __ normal_iterator &, const __gnu_cxx :: __ normal_iterator &)
/usr/include/c++/4.6/bits/stl_iterator.h:799:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: __ normal_iterator &, const __gnu_cxx :: __ normal_iterator &)
/usr/include/c++/4.6/bits/stl_algo.h:182:4: ошибка: нет совпадения для 'operator ==' в '__first .__ gnu_cxx :: __ normal_iterator :: operator * [с _Iterator = std :: vector * , _Container = std :: vector>, __gnu_cxx :: __ normal_iterator :: reference = std :: vector &] () == __val '
/usr/include/c++/4.6/bits/stl_algo.h:182:4: примечание: кандидаты:
/usr/include/c++/4.6/bits/stl_pair.h:201:5: примечание: шаблон bool std :: operator == (const std :: pair &, const std :: pair &)
/usr/include/c++/4.6/bits/stl_iterator.h:285:5: примечание: шаблон bool std :: operator == (const std :: reverse_iterator &, const std :: reverse_iterator &)
/usr/include/c++/4.6/bits/stl_iterator.h:335:5: примечание: шаблон bool std :: operator == (const std :: reverse_iterator &, const std :: reverse_iterator &)
/usr/include/c++/4.6/bits/allocator.h:122:5: примечание: шаблон bool std :: operator == (const std :: allocator &, const std :: allocator &)
/usr/include/c++/4.6/bits/allocator.h:127:5: примечание: шаблон bool std :: operator == (const std :: allocator &, const std :: allocator &)
/usr/include/c++/4.6/bits/stl_vector.h:1273:5: примечание: шаблон bool std :: operator == (const std :: vector &, const std :: vector &)
/usr/include/c++/4.6/ext/new_allocator.h:123:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: new_allocator &, const __gnu_cxx :: new_allocator &)
/usr/include/c++/4.6/bits/stl_iterator.h:805:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: __ normal_iterator &, const __gnu_cxx :: __ normal_iterator &)
/usr/include/c++/4.6/bits/stl_iterator.h:799:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: __ normal_iterator &, const __gnu_cxx :: __ normal_iterator &)
/usr/include/c++/4.6/bits/stl_algo.h:186:4: ошибка: нет совпадения для 'operator ==' в '__first .__ gnu_cxx :: __ normal_iterator :: operator * [с _Iterator = std :: vector * , _Container = std :: vector>, __gnu_cxx :: __ normal_iterator :: reference = std :: vector &] () == __val '
/usr/include/c++/4.6/bits/stl_algo.h:186:4: примечание: кандидаты:
/usr/include/c++/4.6/bits/stl_pair.h:201:5: примечание: шаблон bool std :: operator == (const std :: pair &, const std :: pair &)
/usr/include/c++/4.6/bits/stl_iterator.h:285:5: примечание: шаблон bool std :: operator == (const std :: reverse_iterator &, const std :: reverse_iterator &)
/usr/include/c++/4.6/bits/stl_iterator.h:335:5: примечание: шаблон bool std :: operator == (const std :: reverse_iterator &, const std :: reverse_iterator &)
/usr/include/c++/4.6/bits/allocator.h:122:5: примечание: шаблон bool std :: operator == (const std :: allocator &, const std :: allocator &)
/usr/include/c++/4.6/bits/allocator.h:127:5: примечание: шаблон bool std :: operator == (const std :: allocator &, const std :: allocator &)
/usr/include/c++/4.6/bits/stl_vector.h:1273:5: примечание: шаблон bool std :: operator == (const std :: vector &, const std :: vector &)
/usr/include/c++/4.6/ext/new_allocator.h:123:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: new_allocator &, const __gnu_cxx :: new_allocator &)
/usr/include/c++/4.6/bits/stl_iterator.h:805:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: __ normal_iterator &, const __gnu_cxx :: __ normal_iterator &)
/usr/include/c++/4.6/bits/stl_iterator.h:799:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: __ normal_iterator &, const __gnu_cxx :: __ normal_iterator &)
/usr/include/c++/4.6/bits/stl_algo.h:190:4: ошибка: нет совпадения для 'operator ==' в '__first .__ gnu_cxx :: __ normal_iterator :: operator * [с _Iterator = std :: vector * , _Container = std :: vector>, __gnu_cxx :: __ normal_iterator :: reference = std :: vector &] () == __val '
/usr/include/c++/4.6/bits/stl_algo.h:190:4: примечание: кандидаты:
/usr/include/c++/4.6/bits/stl_pair.h:201:5: примечание: шаблон bool std :: operator == (const std :: pair &, const std :: pair &)
/usr/include/c++/4.6/bits/stl_iterator.h:285:5: примечание: шаблон bool std :: operator == (const std :: reverse_iterator &, const std :: reverse_iterator &)
/usr/include/c++/4.6/bits/stl_iterator.h:335:5: примечание: шаблон bool std :: operator == (const std :: reverse_iterator &, const std :: reverse_iterator &)
/usr/include/c++/4.6/bits/allocator.h:122:5: примечание: шаблон bool std :: operator == (const std :: allocator &, const std :: allocator &)
/usr/include/c++/4.6/bits/allocator.h:127:5: примечание: шаблон bool std :: operator == (const std :: allocator &, const std :: allocator &)
/usr/include/c++/4.6/bits/stl_vector.h:1273:5: примечание: шаблон bool std :: operator == (const std :: vector &, const std :: vector &)
/usr/include/c++/4.6/ext/new_allocator.h:123:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: new_allocator &, const __gnu_cxx :: new_allocator &)
/usr/include/c++/4.6/bits/stl_iterator.h:805:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: __ normal_iterator &, const __gnu_cxx :: __ normal_iterator &)
/usr/include/c++/4.6/bits/stl_iterator.h:799:5: примечание: шаблон bool __gnu_cxx :: operator == (const __gnu_cxx :: __ normal_iterator &, const __gnu_cxx :: __ normal_iterator &)

Редактировать 2016-04-29: gcc 5.3.0 стал немного лучше: всего 9300 байт, самая длинная строка длиной 361 символ …

Изменить 2019-04-04: gcc 6.5.0: 11237 байт, но дает некоторые подсказки об ошибке, как в следующих строках:

error.cpp: 7: 92: требуется отсюда
/usr/include/c++/6/bits/predefined_ops.h:199:17: ошибка: нет соответствия для оператора == (типы операндов 'std :: vector' и 'const int')
  {return * __ it == _M_value; }
           ~~~~~~ ^ ~~~~~~~~~~


19 символов

Создайте файл a.cppс таким содержанием:

#include __FILE__
p;

Компилировать как:

g++ a.cpp

и получите удивительные сообщения об ошибках 21300 строк :

In file included from a.cpp:1:0,
                 from a.cpp:1,
                 from a.cpp:1,
                 from a.cpp:1,

… 21280 строк ошибок …

In file included from a.cpp:1:0,
                 from a.cpp:1,
                 from a.cpp:1,
                 from a.cpp:1,
                 from a.cpp:1:
a.cpp:2:1: error: ‘p’ does not name a type
In file included from a.cpp:1:0,
                 from a.cpp:1,
                 from a.cpp:1,
                 from a.cpp:1:
a.cpp:2:1: error: ‘p’ does not name a type
In file included from a.cpp:1:0,
                 from a.cpp:1,
                 from a.cpp:1:
a.cpp:2:1: error: ‘p’ does not name a type
In file included from a.cpp:1:0,
                 from a.cpp:1:
a.cpp:2:1: error: ‘p’ does not name a type
In file included from a.cpp:1:0:
a.cpp:2:1: error: ‘p’ does not name a type
a.cpp:2:1: error: ‘p’ does not name a type







98 (обязательно) символов:

template<class T>struct W{T v;W(T v):v(v){}};
template<class T>int f(T x){f(W<T>(x));}
main(){f(0);}

Создает следующий вывод ошибок в GCC (4.4.5):

golf.cpp: In function ‘int f(T) [with T = W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<int> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >]’:
golf.cpp:2: error: template instantiation depth exceeds maximum of 500 (use -ftemplate-depth-NN to increase the maximum) instantiating ‘struct W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<int> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
golf.cpp:2:   instantiated from ‘int f(T) [with T = W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<int> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >]’
golf.cpp:2:   instantiated from ‘int f(T) [with T = W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<int> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >]’

... snip ...

golf.cpp:2:   instantiated from ‘int f(T) [with T = W<W<W<W<W<W<W<W<W<W<W<W<int> > > > > > > > > > > >]’
golf.cpp:2:   instantiated from ‘int f(T) [with T = W<W<W<W<W<W<W<W<W<W<W<int> > > > > > > > > > >]’
golf.cpp:2:   instantiated from ‘int f(T) [with T = W<W<W<W<W<W<W<W<W<W<int> > > > > > > > > >]’
golf.cpp:2:   instantiated from ‘int f(T) [with T = W<W<W<W<W<W<W<W<W<int> > > > > > > > >]’
golf.cpp:2:   instantiated from ‘int f(T) [with T = W<W<W<W<W<W<W<W<int> > > > > > > >]’
golf.cpp:2:   instantiated from ‘int f(T) [with T = W<W<W<W<W<W<W<int> > > > > > >]’
golf.cpp:2:   instantiated from ‘int f(T) [with T = W<W<W<W<W<W<int> > > > > >]’
golf.cpp:2:   instantiated from ‘int f(T) [with T = W<W<W<W<W<int> > > > >]’
golf.cpp:2:   instantiated from ‘int f(T) [with T = W<W<W<W<int> > > >]’
golf.cpp:2:   instantiated from ‘int f(T) [with T = W<W<W<int> > >]’
golf.cpp:2:   instantiated from ‘int f(T) [with T = W<W<int> >]’
golf.cpp:2:   instantiated from ‘int f(T) [with T = W<int>]’
golf.cpp:2:   instantiated from ‘int f(T) [with T = int]’
golf.cpp:3:   instantiated from here

golf.cpp:2: error: invalid use of incomplete type ‘struct W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<int> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
golf.cpp:1: error: declaration of ‘struct W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<W<int> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’

Статистика:

$ g++ golf.cpp 2>&1 | wc -c
537854
$ clang golf.cpp 2>&1 | wc -c
22666
$ g++ -ftemplate-depth-10000 golf.cpp 2>&1 | wc -c # 268+ MB of RAM and almost 15 minutes
200750356

Ungolfed (производит более длинную продукцию):

template<class T>
struct Wrap {
    T value;
    Wrap(T v) : value(v) {}
};

template<class T>
void func(T x)
{
    func(Wrap<T>(x));
}

int main(void)
{
    func(0);
    return 0;
}

Я обнаружил это, когда хотел посмотреть, поддерживает ли C ++ полиморфную рекурсию (и, как вы можете ясно видеть, это не так). Вот тривиальный пример полиморфной рекурсии в Haskell:

Prelude> let f :: (Show a) => a -> String; f x = show x ++ " " ++ f [x]
Prelude> f 0
"0 [0] [[0]] [[[0]]] [[[[0]]]] [[[[[0]]]]] [[[[[[0]]]]]] [[[[[[[0]]]]]]] [[[[[[[[0]] ...

Здесь, это требует Haskell действовать , как он конкретизирует Show x, Show [x], Show [[x]], Show [[[x]]], до бесконечности. Haskell делает это путем превращения (Show x) =>в неявный параметр функции, fдобавленной компилятором, что-то вроде этого:

type Show a = a -> String

showList :: Show a -> [a] -> String
showList show []     = "[]"
showList show (x:xs) = '[' : show x ++ showItems xs where
    showItems []     = "]"
    showItems (x:xs) = ',' : show x ++ showItems xs

f :: Show a -> a -> String
f show x = show x ++ " " ++ f (showList show) [x]

C ++ делает это, буквально пытаясь создать такие экземпляры, пока глубина экземпляра шаблона не будет превышена.






Основываясь на соотношении длина сообщения / длина кода, это может быть лучшим решением:

Сообщение (81):

code: file not recognized: File truncated  
collect2: ld returned 1 exit status  

81/0 = Инф




279 символов

#define A(s) s##s##s##s##s##s##s##s
#define B(s) A(s##s##s##s##s##s##s##s)
#define C(s) B(s##s##s##s##s##s##s##s)
#define D(s) C(s##s##s##s##s##s##s##s)
#define E(s) D(s##s##s##s##s##s##s##s)
#define F(s) E(s##s##s##s##s##s##s##s)
#define G(s) F(s##s##s##s##s##s##s##s)
a G(foo)

С gcc 4.2.1 генерирует ошибку error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘foofoo....foofoo’с 2 ^ 21 копиями foo. 6,291,558 байт всего. Это примерно как большой идентификатор , как я могу получить, заменив fooс foodгенерирует ICE.







Аналогично VJo:
a.cpp:

int main() { return  
#include "a.cpp"  
#include "a.cpp"  
}

g ++ a.cpp

производит много вывода (по крайней мере 2 гигабайта, прежде чем я его убил)


Следующий код основан на фактической ошибке, с которой я однажды столкнулся.

template <int i>
void bar();

template <int i>
void foo()
{
    bar<i>();
    char baz[i];
}

template <int i>
void bar()
{
    foo<i-1>();
}


int main(void)
{
    foo<2000>();

    return 0;
}

(используя gcc)

Довольно очевидная рекурсия шаблона, но так как я использовал ftemplate-depth=100000для этого запуска, это не выдает ошибку. Истинный источник сообщений об ошибках исходит char baz[i];, который выдает ошибку, когда iпадает до -1.

Примерно через полчаса я сижу на 21 000 ошибок компилятора , 300 000 строк сообщений об ошибках и 280 мегабайт оперативной памяти, используемой компилятором. И это не показывает никаких признаков остановки.

РЕДАКТИРОВАТЬ:

Час спустя, теперь на 36 000 ошибок компилятора , 504 000 строк сообщений об ошибках и 480 мегабайт ОЗУ … и все еще продолжается.

РЕДАКТИРОВАТЬ № 2:

Примерно через полчаса:

ccplus1.exe has stopped working

Итоговая статистика: 38 876 ошибок компилятора , 544 624 строки сообщений об ошибках, общий объем данных 48,8 мегабайт , и 518,9 мегабайт оперативной памяти, использованной компилятором до его сбоя .



28 байт

Саботаж стандартной библиотеки:

#define std +
#include<map>

Используя clang на OS X 10.9:

c++ foo.cpp -o foo -ferror-limit=-1
In file included from foo.cpp:2:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/map:422:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:347:11: error: expected identifier or '{'
namespace std {
          ^
foo.cpp:1:13: note: expanded from macro 'std'
#define std +
            ^
In file included from foo.cpp:2:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/map:422:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:347:11: error: expected external declaration
foo.cpp:1:13: note: expanded from macro 'std'
#define std +
            ^
In file included from foo.cpp:2:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/map:422:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:347:15: error: expected unqualified-id
namespace std {
              ^
In file included from foo.cpp:2:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/map:423:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__tree:15:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iterator:330:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/type_traits:203:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/cstddef:50:1: error: expected identifier or '{'
_LIBCPP_BEGIN_NAMESPACE_STD
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:343:47: note: expanded from macro '_LIBCPP_BEGIN_NAMESPACE_STD'
#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std {inline namespace _LIBCPP_NAMESPACE {
                                              ^
foo.cpp:1:13: note: expanded from macro 'std'
#define std +
            ^
In file included from foo.cpp:2:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/map:423:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__tree:15:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iterator:330:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/type_traits:203:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/cstddef:50:1: error: expected external declaration
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:343:47: note: expanded from macro '_LIBCPP_BEGIN_NAMESPACE_STD'
#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std {inline namespace _LIBCPP_NAMESPACE {
                                              ^
foo.cpp:1:13: note: expanded from macro 'std'
#define std +
            ^
In file included from foo.cpp:2:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/map:423:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__tree:15:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iterator:330:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/type_traits:203:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/cstddef:50:1: error: expected unqualified-id

[[SNIP...]]

_LIBCPP_NEW_DELETE_VIS void* operator new(std::size_t __sz)
                             ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:132:43: error: expected parameter declarator
_LIBCPP_NEW_DELETE_VIS void* operator new(std::size_t __sz, const std::nothrow_t&) _NOEXCEPT _NOALIAS;
                                          ^
foo.cpp:1:13: note: expanded from macro 'std'
#define std +
            ^
In file included from foo.cpp:2:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/map:423:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__tree:16:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:597:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:132:43: error: expected ')'
foo.cpp:1:13: note: expanded from macro 'std'
#define std +
            ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:132:42: note: to match this '('
_LIBCPP_NEW_DELETE_VIS void* operator new(std::size_t __sz, const std::nothrow_t&) _NOEXCEPT _NOALIAS;
                                         ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:134:63: error: C++ requires a type specifier for all declarations
_LIBCPP_NEW_DELETE_VIS void  operator delete(void* __p, const std::nothrow_t&) _NOEXCEPT;
                                                        ~~~~~ ^
foo.cpp:1:13: note: expanded from macro 'std'
#define std +
            ^
In file included from foo.cpp:2:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/map:423:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__tree:16:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:597:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:134:63: error: expected ')'
foo.cpp:1:13: note: expanded from macro 'std'
#define std +
            ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:134:45: note: to match this '('
_LIBCPP_NEW_DELETE_VIS void  operator delete(void* __p, const std::nothrow_t&) _NOEXCEPT;
                                            ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:136:45: error: expected parameter declarator
_LIBCPP_NEW_DELETE_VIS void* operator new[](std::size_t __sz)
                                            ^
foo.cpp:1:13: note: expanded from macro 'std'
#define std +
            ^
In file included from foo.cpp:2:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/map:423:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__tree:16:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:597:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:136:45: error: expected ')'
foo.cpp:1:13: note: expanded from macro 'std'
#define std +
            ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:136:44: note: to match this '('
_LIBCPP_NEW_DELETE_VIS void* operator new[](std::size_t __sz)
                                           ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:138:11: error: expected a type
    throw(std::bad_alloc)
          ^
foo.cpp:1:13: note: expanded from macro 'std'
#define std +
            ^
In file included from foo.cpp:2:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/map:423:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__tree:16:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:597:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:138:11: error: expected ')'
foo.cpp:1:13: note: expanded from macro 'std'
#define std +
            ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:138:10: note: to match this '('
    throw(std::bad_alloc)
         ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:136:30: error: 'operator new[]' must have at least one parameter
_LIBCPP_NEW_DELETE_VIS void* operator new[](std::size_t __sz)
                             ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:141:45: error: expected parameter declarator
_LIBCPP_NEW_DELETE_VIS void* operator new[](std::size_t __sz, const std::nothrow_t&) _NOEXCEPT _NOALIAS;
                                            ^
foo.cpp:1:13: note: expanded from macro 'std'
#define std +
            ^
In file included from foo.cpp:2:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/map:423:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__tree:16:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:597:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:141:45: error: expected ')'
foo.cpp:1:13: note: expanded from macro 'std'
#define std +
            ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:141:44: note: to match this '('
_LIBCPP_NEW_DELETE_VIS void* operator new[](std::size_t __sz, const std::nothrow_t&) _NOEXCEPT _NOALIAS;
                                           ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:143:65: error: C++ requires a type specifier for all declarations
_LIBCPP_NEW_DELETE_VIS void  operator delete[](void* __p, const std::nothrow_t&) _NOEXCEPT;
                                                          ~~~~~ ^
foo.cpp:1:13: note: expanded from macro 'std'
#define std +
            ^
In file included from foo.cpp:2:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/map:423:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__tree:16:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:597:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:143:65: error: expected ')'
foo.cpp:1:13: note: expanded from macro 'std'
#define std +
            ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:143:47: note: to match this '('
_LIBCPP_NEW_DELETE_VIS void  operator delete[](void* __p, const std::nothrow_t&) _NOEXCEPT;
                                              ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:145:55: error: expected parameter declarator
inline _LIBCPP_INLINE_VISIBILITY void* operator new  (std::size_t, void* __p) _NOEXCEPT {return __p;}
                                                      ^
foo.cpp:1:13: note: expanded from macro 'std'
#define std +
            ^
In file included from foo.cpp:2:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/map:423:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__tree:16:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:597:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:145:55: error: expected ')'
foo.cpp:1:13: note: expanded from macro 'std'
#define std +
            ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:145:54: note: to match this '('
inline _LIBCPP_INLINE_VISIBILITY void* operator new  (std::size_t, void* __p) _NOEXCEPT {return __p;}
                                                     ^
Stack dump:
0.  Program arguments: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -cc1 -triple x86_64-apple-macosx10.9.0 -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -main-file-name foo.cpp -mrelocation-model pic -pic-level 2 -mdisable-fp-elim -masm-verbose -munwind-tables -target-cpu core2 -target-linker-version 236.3 -resource-dir /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/5.1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -stdlib=libc++ -fdeprecated-macro -fdebug-compilation-dir /tmp -ferror-limit -1 -fmessage-length 203 -stack-protector 1 -mstackrealign -fblocks -fobjc-runtime=macosx-10.9.0 -fencode-extended-block-signature -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -vectorize-slp -o /var/folders/gf/l1sssgds0b30z21wn2n4p3rm0000gr/T/foo-19eda8.o -x c++ foo.cpp 
1.  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/new:145:89: current parser token '{'
clang: error: unable to execute command: Segmentation fault: 11
clang: error: clang frontend command failed due to signal (use -v to see invocation)
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.2.0
Thread model: posix
clang: note: diagnostic msg: PLEASE submit a bug report to http://developer.apple.com/bugreporter/ and include the crash backtrace, preprocessed source, and associated run script.
clang: error: unable to execute command: Segmentation fault: 11
clang: note: diagnostic msg: Error generating preprocessed source(s).

456 строк ошибок, 50 ошибок и ошибка компилятора !

Clang версия:

Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.2.0
Thread model: posix




Я случайно наткнулся на это:

#include<functional>
#include<algorithm>
#include<array>
#include<stdexcept>


int main(int argc,char** argv){
    std::array<double, 3> arr;

    arr[0] = 0; arr[1] = 1; arr[2] = 1;

    if (std::any_of(arr.begin(), arr.end(),
                    std::bind(std::less_equal<double>(), std::placeholders::_2, 0))){
        throw std::invalid_argument("Geometry with bin width less or equal to zero");
    }
}

На c ++ x11 он выдает 44 КБ сообщений об ошибках, в которых компилятор пытается сказать: Пожалуйста, определите местозаполнитель для первого аргумента, если вы определите его для второго.

Посмотри на Ideone .




C ++

На основе решения BЈовић:

Файл: golf.cpp:

#include "golf.cpp"
#include "golf.cpp"

Выполнение этого в G ++ не закончится, однако, я вычислил длину ошибки, которую он в конечном итоге испустит, примерно 85 * 2 ^ 140 терабайт.


C ++ 11 вариационных шаблонов (69 символов)

template<int... p>
void f()
{
    return f<0,p...>();
}

int main() {
    f();
}

Конфигурируя максимальную глубину создания шаблона, вы можете установить длину ошибки. Вот пример использования GCC 4.8.1 с глубиной шаблона по умолчанию (900):

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}] ‘return f <0, р …> (); ^ prog.cpp: 4: 22: требуется рекурсивно из ‘void f () [with int … p = {0}]’ prog.cpp: 4: 22: требуется из ‘void f () [с int .. .p = {}] ‘prog.cpp: 8: 4: требуется отсюда 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}] ‘return f <0, p …> () ; ^ prog.cpp: 4: 22: требуется рекурсивно из ‘void f () [with int … p = {0}]’ prog.cpp: 4: 22: требуется из ‘void f () [с int .. .p = {}] ‘prog.cpp: 8: 4: требуется отсюда 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}] ‘return f <0, p …> () ; ^ prog.cpp: 4: 22: требуется рекурсивно из ‘void f () [with int … p = {0}]’ prog.cpp: 4: 22: требуется из ‘void f () [с int .. .p = {}] ‘prog.cpp: 8: 4: требуется отсюда

prog.cpp: 4: 22: ошибка: нет соответствующей функции для вызова функции ‘f ()’ prog.cpp: 4: 22: примечание: кандидат: prog.cpp: 2: 6: примечание: шаблон void f () void f () ^ prog.cpp: 2: 6: примечание: подстановка выведенных аргументов шаблона привела к ошибкам, показанным выше prog.cpp: 4: 22: ошибка: оператор возврата со значением, в функции, возвращающей ‘void’ [-fpermissive ] return f <0, p …> (); ^

Также вы можете добавить еще десять символов и использовать недопустимое целое число без знака, чтобы увеличить длину ошибки:

template<unsigned int... p>
void f()
{
    return f<0-1,p...>();
}

int main() {
    f();
}

4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u}] вернуться е <0-1, р …> (); ^ prog.cpp: 4: 24: рекурсивно требуется от ‘void f () [с беззнаковым int … p = {4294967295u}]’ prog.cpp: 4: 24:
требуется от ‘void f () [с неподписанным int … p = {}]’ prog.cpp: 8: 4:
требуется отсюда

prog.cpp: 4: 24: ошибка: нет соответствующей функции для вызова функции ‘f ()’ prog.cpp: 4: 24: примечание: кандидат: prog.cpp: 2: 6: примечание: шаблон void f () void f () ^ prog.cpp: 2: 6: примечание: подстановка выведенных аргументов шаблона привела к ошибкам, показанным выше prog.cpp: 4: 24: ошибка: оператор возврата со значением в функции, возвращающей ‘void’ [-fpermissive ] return f <0-1, p …> ();

                  ^

Вот пример работы на ideone.


82 байта: этот работает аналогично подходу Джои Адамса , но сообщение об ошибке будет расти в геометрической прогрессии по отношению к -ftemplate-depth(потому что std::set<T>на самом деле std::set<T, std::less<T>, std::allocator<T>>).

Так (x = -ftemplate-depth) >= 28, будет 1460 × 3 x-27 + 269x — 5381 байт сообщений об ошибках (скомпилировано gcc 7.2.0). То есть в настройках по умолчанию (x = 900) теоретически будет выдано около 4,9 × 10 419 байт сообщения об ошибке .

Обратите внимание, что без returnоператора сообщения об ошибках будут создаваться только в конце компиляции. (поэтому в настройках по умолчанию вы не получите сообщения — сначала вам не хватит памяти.)

Предупреждение: компиляция этой программы будет занимать много памяти.

#include<set>
template<class T>T f(T a){return f(std::set<T>());}int main(){f(0);}

Попробуйте онлайн!





Это дает бесконечный вывод на GCC 5.2 и Clang 3.6 (на Clang требуется -ferror-limit=0, на GCC работает с настройками по умолчанию):

#include __FILE__
#include __FILE__


Файл с именем a.cpp. Код:

main(){
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
#include "a.cpp"
}

Это вилочная бомба, где n = 40.


  • 50 байт: Результатом будет сумма длин всех положительных чисел с одним сообщением об ошибке:

=>

#include<utility>
std::make_index_sequence<-1>::x;
  • 174 байта: квадратичный взрыв с несколькими сообщениями об ошибках:

=>

#include<utility>
template<size_t N, size_t... M>
void a(std::index_sequence<N, M...>) {
  a(std::index_sequence<M...>{});
  static_assert(!N);
}
auto x{a(std::make_index_sequence<C>{})};

компилировать с

g++ -c truc.cpp -std=c++17 -DC=10 2>&1 > /dev/null | wc -c 

index_sequence, кажется, обходит проблему ограничения глубины инстанцирования шаблона

  • для C = 10: 8238 символов
  • для C = 100: 264288 символов
  • для C = 1000: 23118522 символов

ошибки выглядят так: вся последовательность цифр 0 … C-1 выглядит так, как будто она напечатана 4 * C раза

truc.cpp:7:6: error: « void x » a un type incomplet
 auto x{a(std::make_index_sequence<C>{})};
      ^
truc.cpp: Dans l'instanciation de « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 1; long unsigned int ...M = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] » :
truc.cpp:4:4:   requis par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 0; long unsigned int ...M = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:7:39:   requis depuis ici
truc.cpp:5:3: error: l'assertion statique a échoué
   static_assert(!N);
   ^~~~~~~~~~~~~
truc.cpp: Dans l'instanciation de « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 2; long unsigned int ...M = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] » :
truc.cpp:4:4:   requis récursivement par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 1; long unsigned int ...M = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:4:4:   requis par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 0; long unsigned int ...M = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:7:39:   requis depuis ici
truc.cpp:5:3: error: l'assertion statique a échoué
truc.cpp: Dans l'instanciation de « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 3; long unsigned int ...M = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] » :
truc.cpp:4:4:   requis récursivement par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 1; long unsigned int ...M = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:4:4:   requis par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 0; long unsigned int ...M = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:7:39:   requis depuis ici
truc.cpp:5:3: error: l'assertion statique a échoué
truc.cpp: Dans l'instanciation de « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 4; long unsigned int ...M = {5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] » :
truc.cpp:4:4:   requis récursivement par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 1; long unsigned int ...M = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:4:4:   requis par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 0; long unsigned int ...M = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:7:39:   requis depuis ici
truc.cpp:5:3: error: l'assertion statique a échoué
truc.cpp: Dans l'instanciation de « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 5; long unsigned int ...M = {6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>  » :
truc.cpp:4:4:   requis récursivement par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 1; long unsigned int ...M = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:4:4:   requis par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 0; long unsigned int ...M = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:7:39:   requis depuis ici
truc.cpp:5:3: error: l'assertion statique a échoué
truc.cpp: Dans l'instanciation de « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 6; long unsigned int ...M = {7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 6, 7, 8, 9, 10, 11, 12, 13, 14>] » :
truc.cpp:4:4:   requis récursivement par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 1; long unsigned int ...M = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:4:4:   requis par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 0; long unsigned int ...M = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:7:39:   requis depuis ici
truc.cpp:5:3: error: l'assertion statique a échoué
truc.cpp: Dans l'instanciation de « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 7; long unsigned int ...M = {8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 7, 8, 9, 10, 11, 12, 13, 14>] » :
truc.cpp:4:4:   requis récursivement par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 1; long unsigned int ...M = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:4:4:   requis par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 0; long unsigned int ...M = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:7:39:   requis depuis ici
truc.cpp:5:3: error: l'assertion statique a échoué
truc.cpp: Dans l'instanciation de « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 8; long unsigned int ...M = {9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 8, 9, 10, 11, 12, 13, 14>] » :
truc.cpp:4:4:   requis récursivement par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 1; long unsigned int ...M = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:4:4:   requis par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 0; long unsigned int ...M = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:7:39:   requis depuis ici
truc.cpp:5:3: error: l'assertion statique a échoué
truc.cpp: Dans l'instanciation de « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 9; long unsigned int ...M = {10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 9, 10, 11, 12, 13, 14>] » :
truc.cpp:4:4:   requis récursivement par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 1; long unsigned int ...M = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:4:4:   requis par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 0; long unsigned int ...M = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:7:39:   requis depuis ici
truc.cpp:5:3: error: l'assertion statique a échoué
truc.cpp: Dans l'instanciation de « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 10; long unsigned int ...M = {11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 10, 11, 12, 13, 14>] » :
truc.cpp:4:4:   requis récursivement par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 1; long unsigned int ...M = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:4:4:   requis par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 0; long unsigned int ...M = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:7:39:   requis depuis ici
truc.cpp:5:3: error: l'assertion statique a échoué
truc.cpp: Dans l'instanciation de « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 11; long unsigned int ...M = {12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 11, 12, 13, 14>] » :
truc.cpp:4:4:   requis récursivement par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 1; long unsigned int ...M = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:4:4:   requis par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 0; long unsigned int ...M = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:7:39:   requis depuis ici
truc.cpp:5:3: error: l'assertion statique a échoué
truc.cpp: Dans l'instanciation de « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 12; long unsigned int ...M = {13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 12, 13, 14>] » :
truc.cpp:4:4:   requis récursivement par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 1; long unsigned int ...M = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:4:4:   requis par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 0; long unsigned int ...M = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:7:39:   requis depuis ici
truc.cpp:5:3: error: l'assertion statique a échoué
truc.cpp: Dans l'instanciation de « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 13; long unsigned int ...M = {14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 13, 14>] » :
truc.cpp:4:4:   requis récursivement par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 1; long unsigned int ...M = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:4:4:   requis par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 0; long unsigned int ...M = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:7:39:   requis depuis ici
truc.cpp:5:3: error: l'assertion statique a échoué
truc.cpp: Dans l'instanciation de « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 14; long unsigned int ...M = {}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 14>] » :
truc.cpp:4:4:   requis récursivement par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 1; long unsigned int ...M = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:4:4:   requis par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 0; long unsigned int ...M = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14>] »
truc.cpp:7:39:   requis depuis ici
truc.cpp:4:4: error: pas de fonction correspondant à l'appel « a(std::index_sequence<>) »
   a(std::index_sequence<M...>{});
   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
truc.cpp:3:6: note: candidate: template<long unsigned int N, long unsigned int ...M> void a(std::index_sequence<N, M ...>)
 void a(std::index_sequence<N, M...>) {
      ^
truc.cpp:3:6: note:   la déduction/substitution de l'argument du patron a échoué:
truc.cpp:4:4: note:   le candidat attend 2 arguments, 0 fourni(s)
   a(std::index_sequence<M...>{});
   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
truc.cpp:5:3: error: l'assertion statique a échoué
   static_assert(!N);
   ^~~~~~~~~~~~~
[1]    11052 exit 1     g++ -c -O3 truc.cpp -std=c++17 -DC=15

и числовые последовательности могут превышать установленный по умолчанию предел глубины создания шаблона, конечно, потому что он встроен:

... requis récursivement par « void a(std::index_sequence<N, M ...>) [avec long unsigned int N = 1; long unsigned int ...M = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499}; std::index_sequence<N, M ...> = std::integer_sequence<long unsigned int, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499>

Расшифровка 55 состояний прикладного протокола HTTP (протокол передачи гипертекста): от информационных сообщений до ошибок.

Во время запроса информации с удаленного веб-сервера может возникнуть ошибка. Тогда веб-сервер посылает в ответ код ошибки HTTP. Например 404 — Not Found (ресурс не найден).

Коды состояния HTTP состоят из трех цифр от 100 и до 510. Они делятся на следующие группы:

  1. Информационные (100-105).
  2. Успешные (200-226).
  3. Перенаправление (300-307).
  4. Ошибка клиента (400-499).
  5. Ошибка сервера (500-510).

Чтобы получить сведения об ошибке, введите её код в поле поиска по странице. Для этого нажмите сочетание клавиш CTRL + F и укажите номер.

100

Continue
Cервер удовлетворён начальными сведениями о запросе, клиент может продолжать пересылать заголовки. Появился в HTTP/1.1.

101

Switching Protocols
Сервер предлагает перейти на более подходящий для указанного ресурса протокол; список предлагаемых протоколов сервер обязательно указывает в поле заголовкаUpdate. Если клиента это заинтересует, то он посылает новый запрос с указанием другого протокола. Появился в HTTP/1.1.

102

Processing
Запрос принят, но на его обработку понадобится длительное время. Используется сервером, чтобы клиент не разорвал соединение из-за превышения времени ожидания. Клиент при получении такого ответа должен сбросить таймер и дожидаться следующей команды в обычном режиме. Появился в WebDAV.

200

ОК
Успешный запрос. Если клиентом были запрошены какие-либо данные, то они находятся в заголовке и/или теле сообщения. Появился в HTTP/1.0.

201

Created
В результате успешного выполнения запроса был создан новый ресурс. Сервер должен указать его местоположение в заголовке Location. Серверу рекомендуется[источник не указан 336 дней] ещё указывать в заголовке характеристики созданного ресурса (например, в поле Content-Type). Если сервер не уверен, что ресурс действительно будет существовать к моменту получения данного сообщения клиентом, то лучше использовать ответ с кодом 202. Появился в HTTP/1.0.

202

Accepted
Запрос был принят на обработку, но она не завершена. Клиенту не обязательно дожидаться окончательной передачи сообщения, так как может быть начат очень долгий процесс. Появился в HTTP/1.0.

203

Non-Authoritative Information
Аналогично ответу 200, но в этом случае передаваемая информация была взята не из первичного источника (резервной копии, другого сервера и т. д.) и поэтому может быть неактуальной. Появился в HTTP/1.1.

204

No Content
Сервер успешно обработал запрос, но в ответе были переданы только заголовки без тела сообщения. Клиент не должен обновлять содержимое документа, но может применить к нему полученные метаданные. Появился в HTTP/1.0.

205

Reset Content
Сервер обязывает клиента сбросить введённые пользователем данные. Тела сообщения сервер при этом не передаёт и документ обновлять не обязательно. Появился в HTTP/1.1.

206

Partial Content
Сервер удачно выполнил частичный GET-запрос, возвратив только часть сообщения. В заголовке Content-Range сервер указывает байтовые диапазоны содержимого. Особое внимание при работе с подобными ответами следует уделить кэшированию. Появился в HTTP/1.1. (подробнее…)

207

Multi-Status
Сервер передаёт результаты выполнения сразу нескольких независимых операций. Они помещаются в само тело сообщения в виде XML-документа с объектом multistatus. Не рекомендуется размещать в этом объекте статусы из серии 1xx из-за бессмысленности и избыточности. Появился в WebDAV.

226

IM Used
Заголовок A-IM от клиента был успешно принят и сервер возвращает содержимое с учётом указанных параметров. Введено в RFC 3229 для дополнения протокола HTTP поддержкой дельта-кодирования.

300

Multiple Choices
По указанному URI существует несколько вариантов предоставления ресурса по типу MIME, по языку или по другим характеристикам. Сервер передаёт с сообщением список альтернатив, давая возможность сделать выбор клиенту автоматически или пользователю. Появился в HTTP/1.0.

301

Moved Permanently
Запрошенный документ был окончательно перенесен на новый URI, указанный в поле Location заголовка. Некоторые клиенты некорректно ведут себя при обработке данного кода. Появился в HTTP/1.0.

302

Found, Moved Temporarily
Запрошенный документ временно доступен по другому URI, указанному в заголовке в поле Location. Этот код может быть использован, например, приуправляемом сервером согласовании содержимого. Некоторые клиенты некорректно ведут себя при обработке данного кода. Введено в HTTP/1.0.

303

See Other
Документ по запрошенному URI нужно запросить по адресу в поле Location заголовка с использованием метода GET несмотря даже на то, что первый запрашивался иным методом. Этот код был введён вместе с 307-ым для избежания неоднозначности, чтобы сервер был уверен, что следующий ресурс будет запрошен методом GET. Например, на веб-странице есть поле ввода текста для быстрого перехода и поиска. После ввода данных браузер делает запрос методом POST, включая в тело сообщения введённый текст. Если обнаружен документ с введённым названием, то сервер отвечает кодом 303, указав в заголовке Location его постоянный адрес. Тогда браузер гарантировано его запросит методом GET для получения содержимого. В противном случае сервер просто вернёт клиенту страницу с результатами поиска. Введено в HTTP/1.1.

304

Not Modified
Сервер возвращает такой код, если клиент запросил документ методом GET, использовал заголовок If-Modified-Since или If-None-Match и документ не изменился с указанного момента. При этом сообщение сервера не должно содержать тела. Появился в HTTP/1.0.

305

Use Proxy
Запрос к запрашиваемому ресурсу должен осуществляться через прокси-сервер, URI которого указан в поле Location заголовка. Данный код ответа могут использовать только исходные HTTP-сервера (не прокси). Введено в HTTP/1.1.

306

(зарезервировано)
использовавшийся раньше код ответа, в настоящий момент зарезервирован. Упомянут в RFC 2616 (обновление HTTP/1.1).

307

Temporary Redirect
Запрашиваемый ресурс на короткое время доступен по другому URI, указанный в поле Location заголовка. Этот код был введён вместе с 303 вместо 302-го для избежания неоднозначности. Введено в RFC 2616 (обновление HTTP/1.1).

400

Bad Request
Сервер обнаружил в запросе клиента синтаксическую ошибку. Появился в HTTP/1.0.

401

Unauthorized
Для доступа к запрашиваемому ресурсу требуется аутентификация. В заголовке ответ должен содержать поле WWW-Authenticate с перечнем условий аутентификации. Клиент может повторить запрос, включив в заголовок сообщения поле Authorization с требуемыми для аутентификации данными.

402

Payment Required
Предполагается использовать в будущем. В настоящий момент не используется. Этот код предусмотрен для платных пользовательских сервисов, а не для хостинговыхкомпаний. Имеется в виду, что эта ошибка не будет выдана хостинговым провайдером в случае просроченной оплаты его услуг. Зарезервирован, начиная с HTTP/1.1.

403

Forbidden
Сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе для клиента к указанному ресурсу. Если для доступа к ресурсу требуется аутентификация средствами HTTP, то сервер вернёт ответ 401 или 407 при использовании прокси. В противном случае ограничения были заданы администратором сервера или разработчиком веб-приложения и могут быть любыми в зависимости от возможностей используемого программного обеспечения. В любом случае клиенту следует сообщить причины отказа в обработке запроса. Наиболее вероятными причинами ограничения может послужить попытка доступа к системным ресурсам веб-сервера (например, файлам .htaccess или .htpasswd) или к файлам, доступ к которым был закрыт с помощью конфигурационных файлов, требование аутентификации не средствами HTTP, например, для доступа к системе управления содержимым или разделу для зарегистрированных пользователей либо сервер не удовлетворён IP-адресом клиента, например, при блокировках. Появился в HTTP/1.0.

404

Not Found
Самая распространенная ошибка при пользовании Интернетом, основная причина — ошибка в написании адреса Web-страницы. Сервер понял запрос, но не нашёл соответствующего ресурса по указанному URI. Если серверу известно, что по этому адресу был документ, то ему желательно использовать код 410. Ответ 404 может использоваться вместо 403, если требуется тщательно скрыть от посторонних глаз определённые ресурсы. Появился в HTTP/1.0.

405

Method Not Allowed
Указанный клиентом метод нельзя применить к текущему ресурсу. В ответе сервер должен указать доступные методы в заголовке Allow, разделив их запятой. Эту ошибку сервер должен возвращать, если метод ему известен, но он не применим именно к указанному в запросе ресурсу, если же указанный метод не применим на всём сервере, то клиенту нужно вернуть код 501 (Not Implemented). Появился в HTTP/1.1.

406

Not Acceptable
Запрошенный URI не может удовлетворить переданным в заголовке характеристикам. Если метод был не HEAD, то сервер должен вернуть список допустимых характеристик для данного ресурса. Появился в HTTP/1.1.

407

Proxy Authentication Required
Ответ аналогичен коду 401 за исключением того, что аутентификация производится для прокси-сервера. Механизм аналогичен идентификации на исходном сервере. Появился в HTTP/1.1.

408

Request Timeout
Время ожидания сервером передачи от клиента истекло. Клиент может повторить аналогичный предыдущему запрос в любое время. Например, такая ситуация может возникнуть при загрузке на сервер объёмного файла методом POST или PUT. В какой-то момент передачи источник данных перестал отвечать, например, из-за повреждения компакт-диска или потеря связи с другим компьютером в локальной сети. Пока клиент ничего не передаёт, ожидая от него ответа, соединение с сервером держится. Через некоторое время сервер может закрыть соединение со своей стороны, чтобы дать возможность другим клиентам сделать запрос. Этот ответ не возвращается, когда клиент принудительно остановил передачу по команде пользователя или соединение прервалось по каким-то иным причинам, так как ответ уже послать невозможно. Появился в HTTP/1.1.

409

Conflict
Запрос не может быть выполнен из-за конфликтного обращения к ресурсу. Такое возможно, например, когда два клиента пытаются изменить ресурс с помощью метода PUT.Появился в HTTP/1.1.

410

Gone
Такой ответ сервер посылает, если ресурс раньше был по указанному URL, но был удалён и теперь недоступен. Серверу в этом случае неизвестно и местоположение альтернативного документа, например, копии). Если у сервера есть подозрение, что документ в ближайшее время может быть восстановлен, то лучше клиенту передать код 404. Появился в HTTP/1.1.

411

Length Required
Для указанного ресурса клиент должен указать Content-Length в заголовке запроса. Без указания этого поля не стоит делать повторную попытку запроса к серверу по данному URI. Такой ответ естественен для запросов типа POST и PUT. Например, если по указанному URI производится загрузка файлов, а на сервере стоит ограничение на их объём. Тогда разумней будет проверить в самом начале заголовок Content-Length и сразу отказать в загрузке, чем провоцировать бессмысленную нагрузку, разрывая соединение, когда клиент действительно пришлёт слишком объёмное сообщение. Появился в HTTP/1.1.

412

Precondition Failed
Возвращается, если ни одно из условных полей заголовка[неизвестный термин] запроса не было выполнено. Появился в HTTP/1.1.

413

Request Entity Too Large
Возвращается в случае, если сервер отказывается обработать запрос по причине слишком большого размера тела запроса. Сервер может закрыть соединение, чтобы прекратить дальнейшую передачу запроса. Если проблема временная, то рекомендуется в ответ сервера включить заголовок Retry-After с указанием времени, по истечении которого можно повторить аналогичный запрос. Появился в HTTP/1.1.

414

Request-URL Too Long
Сервер не может обработать запрос из-за слишком длинного указанного URL. Такую ошибку можно спровоцировать, например, когда клиент пытается передать длинные параметры через метод GET, а не POST. Появился в HTTP/1.1.

415

Unsupported Media Type
По каким-то причинам сервер отказывается работать с указанным типом данных при данном методе. Появился в HTTP/1.1.

416

Requested Range Not Satisfiabl
В поле Range заголовка запроса был указан диапазон за пределами ресурса и отсутствует поле If-Range. Если клиент передал байтовый диапазон, то сервер может вернуть реальный размер в поле Content-Range заголовка. Данный ответ не следует использовать при передаче типа multipart/byteranges[источник не указан 336 дней]. Введено в RFC 2616 (обновление HTTP/1.1).

417

Expectation Failed
По каким-то причинам сервер не может удовлетворить значению поля Expect заголовка запроса. Введено в RFC 2616 (обновление HTTP/1.1).

422

Unprocessable Entity
Сервер успешно принял запрос, может работать с указанным видом данных, в теле запроса XML-документ имеет верный синтаксис, но имеется какая-то логическая ошибка, из-за которой невозможно произвести операцию над ресурсом. Введено в WebDAV.

423

Locked
Целевой ресурс из запроса заблокирован от применения к нему указанного метода. Введено в WebDAV.

424

Failed Dependency
Реализация текущего запроса может зависеть от успешности выполнения другой операции. Если она не выполнена и из-за этого нельзя выполнить текущий запрос, то сервер вернёт этот код. Введено в WebDAV.

425

Unordered Collection —
Посылается, если клиент послал запрос, обозначив положение в неотсортированной коллекции или используя порядок следования элементов, отличный от серверного[уточнить]. Введено в черновике по WebDAV Advanced Collections Protocol[14].

426

Upgrade Required
Сервер указывает клиенту на необходимость обновить протокол. Заголовок ответа должен содержать правильно сформированные поля Upgrade и Connection. Введено вRFC 2817 для возможности перехода к TLS посредством HTTP.

449

Retry With
Возвращается сервером, если для обработки запроса от клиента поступило недостаточно информации. При этом в заголовок ответа помещается поле Ms-Echo-Request. Введено корпорацией Microsoft для WebDAV. В настоящий момент как минимум используется программой Microsoft Money.

456

Unrecoverable Error
Возвращается сервером, если обработка запроса вызывает некорректируемые сбои в таблицах баз данных[источник не указан 336 дней]. Введено корпорацией Microsoftдля WebDAV.

500

Internal Server Error
Любая внутренняя ошибка сервера, которая не входит в рамки остальных ошибок класса. Появился в HTTP/1.0.

501

Not Implemented
Сервер не поддерживает возможностей, необходимых для обработки запроса. Типичный ответ для случаев, когда сервер не понимает указанный в запросе метод. Если же метод серверу известен, но он не применим к данному ресурсу, то нужно вернуть ответ 405. Появился в HTTP/1.0.

502

Bad Gateway
Сервер, выступая в роли шлюза или прокси-сервера, получил недействительное ответное сообщение от вышестоящего сервера. Появился в HTTP/1.0.

503

Service Unavailable
Сервер временно не имеет возможности обрабатывать запросы по техническим причинам (обслуживание, перегрузка и прочее). В поле Retry-After заголовка сервер может указать время, через которое клиенту рекомендуется повторить запрос. Хотя во время перегрузки очевидным кажется сразу разрывать соединение, эффективней может оказаться установка большого значения поля Retry-After для уменьшения частоты избыточных запросов. Появился в HTTP/1.0.

504

Gateway Timeout
Сервер в роли шлюза или прокси-сервера не дождался ответа от вышестоящего сервера для завершения текущего запроса. Появился в HTTP/1.1.

505

HTTP Version Not Supported
Сервер не поддерживает или отказывается поддерживать указанную в запросе версию протокола HTTP. Появился в HTTP/1.1.

506

Variant Also Negotiates
В результате ошибочной конфигурации выбранный вариант указывает сам на себя, из-за чего процесс связывания прерывается. Экспериментальное. Введено в RFC 2295 для дополнения протокола HTTP технологией Transparent Content Negotiation.

507

Insufficient Storage
Не хватает места для выполнения текущего запроса. Проблема может быть временной. Введено в WebDAV.

509

Bandwidth Limit Exceeded
Используется при превышении веб-площадкой отведённого ей ограничения на потребление трафика. В данном случае владельцу площадки следует обратиться к своему хостинг-провайдеру. В настоящий момент данный код не описан ни в одном RFC и используется только модулем «bw/limited», входящим в панель управления хостингом cPanel, где и был введён.

510

Not Extended
На сервере отсутствует расширение, которое желает использовать клиент. Сервер может дополнительно передать информацию о доступных ему расширениях. Введено в RFC 2774 для дополнения протокола HTTP поддержкой расширений.

В некоторые модели материнских плат уже предустановлен диагностический модуль, который показывает эти самые сигналы. Если же в вашей материнской плате отсутствует такой модуль, то для работы с приведенными кодами потребуется приобрести POST-карту.

Если в приведенном материале отсутствуют нужные модели BIOS, сообщите нам об этом в комментариях, мы постараемся найти эти данные для вас.

Ниже приведена расшифровка сигналов и кодов. Если вам интересна более подробноя информация о том, почему ПК пищит, читайте ее здесь.


1. IBM BIOS

Последовательность звуковых сигналов Описание ошибки
1 короткий Успешный POST
1 сигнал и пустой экран Неисправна видеосистема
2 коротких Неисправна Видеосистема
3 длинных Неисправна материнская плата (ошибка контроллера клавиатуры), неконтакт оперативной памяти
1 длинный, 1 короткий Неисправна материнская плата
1 длинный, 2 коротких Неисправна видеосистема (Mono/CGA)
1 длинный, 3 коротких Неисправна видеосистема (EGA/VGA)
Повторяющийся короткий Неисправности связаны с блоком питания или материнской платой
Непрерывный Проблемы с блоком питания или материнской платой
Отсутствует Неисправны блок питания, материнская плата, или динамик

2. Award BIOS

Последовательность звуковых сигналов Описание ошибки
1 короткий Успешный POST
2 коротких Обнаружены незначительные ошибки.
На экране монитора появляется предложение войти в программу CMOS Setup Utility и исправить ситуацию.
Проверьте надежность крепления шлейфов в разъемах жесткого диска и материнской платы.
3 длинных. Ошибка контроллера клавиатуры
1 короткий, 1 длинный. Ошибка оперативной памяти (RAM)
1 длинный, 2 коротких Ошибка видеокарты
1 длинный, 3 коротких. Ошибка клавиатуры
1 длинный, 9 коротких. Ошибка при чтении из ПЗУ
Повторяющийся короткий — Проблемы с блоком питания;
— Проблемы с ОЗУ
Повторяющийся длинный. Проблемы с ОЗУ
Повторяющаяся высокая-низкая частота. Проблемы с CPU
Непрерывный. Проблемы с блоком питания

3. AMI BIOS

Последовательность звуковых сигналов Описание ошибки
1 короткий Ошибок не обнаружено, ПК исправен
2 коротких Ошибка чётности ОЗУ или вы забыли выключить сканер или принтер
3 коротких Ошибка в первых 64 КБ ОЗУ
4 коротких Неисправность системного таймера. Замените материнскую плату.
5 коротких Проблемы с процессором
6 коротких Ошибка инициализации контроллера клавиатуры
7 коротких Проблемы с материнской платой
8 коротких Ошибка памяти видеокарты
9 коротких Контрольная сумма BIOS неверна
10 коротких Ошибка записи в CMOS
11 коротких Ошибка кэша, расположенного на материнской плате
1 длинный, 1 короткий Проблемы с блоком питания
1 длинный, 2 коротких Ошибка видеокарты (Mono-CGA)
1 длинный, 3 коротких Ошибка видеокарты (EGA-VGA)
1 длинный, 4 коротких Отсутствие видеокарты
1 длинный, 8 коротких Проблемы с видеокартой или не подключён монитор
3 длинных Оперативная память — тест чтения/записи завершен с ошибкой.
Переустановите память или замените исправным модулем.
Отсутствует и пустой экран Неисправен процессор. Возможно изогнута(сломана) контактная ножка процессора.
Проверьте процессор.
Непрерывный звуковой сигнал Неисправность блока питания либо перегрев компьютера

4. AST BIOS

Последовательность звуковых сигналов Описание ошибки
1 короткий Ошибка при проверке регистров процессора. Неисправность процессора
2 коротких Ошибка буфера клавиатурного контроллера. Неисправность клавиатурного контроллера.
3 коротких Ошибка сброса клавиатурного контроллера. Неисправность клавиатурного контроллера или системной платы.
4 коротких Ошибка связи с клавиатурой.
5 коротких Ошибка клавиатурного ввода.
6 коротких Ошибка системной платы.
9 коротких Несовпадение контрольной суммы ПЗУ BIOS. Неисправна микросхема ПЗУ BIOS.
10 коротких Ошибка системного таймера. Системная микросхема таймера неисправна.
11 коротких Ошибка микросхемы системной логики (чипсета).
12 коротких Ошибка регистра управления питанием в энергонезависимой памяти.
1 длинный Ошибка контроллера DMA 0. Неисправна микросхема контроллера DMA канала 0.
1 длинный, 1 короткий Ошибка контроллера DMA 1. Неисправна микросхема контроллера DMA канала 1.
1 длинный, 2 коротких Ошибка гашения обратного хода кадровой развёртки. Возможно, неисправен видеоадаптер.
1 длинный, 3 коротких Ошибка в видеопамяти. Неисправна память видеоадаптера.
1 длинный, 4 коротких Ошибка видеоадаптера. Неисправен видеоадаптер.
1 длинный, 5 коротких Ошибка памяти 64K.
1 длинный, 6 коротких Не удалось загрузить векторы прерываний. BIOS не смог загрузить векторы прерываний в память
1 длинный, 7 коротких Не удалось инициализировать видеоподсистему.
1 длинный, 8 коротких Ошибка видеопамяти.

5. Phoenix BIOSн

Последовательность звуковых сигналов Описание ошибки
1-1-2 Ошибка при тесте процессора. Процессор неисправен. Замените процессор
1-1-3 Ошибка записи/чтения данных в/из CMOS-памяти.
1-1-4 Обнаружена ошибка при подсчете контрольной суммы содержимого BIOS.
1-2-1 Ошибка инициализации материнской платы.
1-2-2 или 1-2-3 Ошибка инициализации контроллера DMA.
1-3-1 Ошибка инициализации схемы регенерации оперативной памяти.
1-3-3 или 1-3-4 Ошибка инициализации первых 64 Кбайт оперативной памяти.
1-4-1 Ошибка инициализации материнской платы.
1-4-2 Ошибка инициализации оперативной памяти.
1-4-3 Ошибка инициализации системного таймера.
1-4-4 Ошибка записи/чтения в/из одного из портов ввода-вывода.
2-1-1 Обнаружена ошибка при чтении/записи 0-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-1-2 Обнаружена ошибка при чтении/записи 1-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-1-3 Обнаружена ошибка при чтении/записи 2-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-1-4 Обнаружена ошибка при чтении/записи 3-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-2-1 Обнаружена ошибка при чтении/записи 4-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-2-2 Обнаружена ошибка при чтении/записи 5-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-2-3 Обнаружена ошибка при чтении/записи 6-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-2-4 Обнаружена ошибка при чтении/записи 7-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-3-1 Обнаружена ошибка при чтении/записи 8-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-3-2 Обнаружена ошибка при чтении/записи 9-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-3-3 Обнаружена ошибка при чтении/записи 10-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-3-4 Обнаружена ошибка при чтении/записи 11-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-4-1 Обнаружена ошибка при чтении/записи 12-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-4-2 Обнаружена ошибка при чтении/записи 13-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-4-3 Обнаружена ошибка при чтении/записи 14-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-4-4 Обнаружена ошибка при чтении/записи 15-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
3-1-1 Ошибка инициализации второго канала DMA.
3-1-2 или 3-1-4 Ошибка инициализации первого канала DMA.
3-2-4 Ошибка инициализации контроллера клавиатуры.
3-3-4 Ошибка инициализации видеопамяти.
3-4-1 Возникли серьёзные проблемы при попытке обращения к монитору.
3-4-2 Не удается инициализировать BIOS видеоплаты.
4-2-1 Ошибка инициализации системного таймера.
4-2-2 Тестирование завершено.
4-2-3 Ошибка инициализации контроллера клавиатуры.
4-2-4 Критическая ошибка при переходе центрального процессора в защищенный режим.
4-3-1 Ошибка инициализации оперативной памяти.
4-3-2 Ошибка инициализации первого таймера.
4-3-3 Ошибка инициализации второго таймера.
4-4-1 Ошибка инициализации одного из последовательных портов.
4-4-2 Ошибка инициализации параллельного порта.
4-4-3 Ошибка инициализации математического сопроцессора.
Длинные, непрекращающиеся сигналы Неисправна материнская плата.
Звук сирены с высокой на низкую частоту Неисправна видеокарта, проверить электролитические емкости, на утечку или заменить все на новые, заведомо исправные.
Непрерывный сигнал Не подключен (неисправен) кулер CPU.

6. Compaq BIOS

Звуки Описание
1 короткий Ошибок нет. Нормальная загрузка системы.
1 длинный + 1 короткий Ошибка контрольной суммы памяти CMOS BIOS. Возможно сел аккумулятор ROM.
2 коротких Глобальная ошибка.
1 длинный + 2 коротких Ошибка инициализации видеокарты. Проверьте правильность установки видеокарты.
7 сигналов (1 длинный, 1 с, 1?, 1 короткий, пауза, 1 длинный, 1 короткий, 1 короткий) Неисправность видеокарты AGP. Проверьте правильность установки.
1 длинный постоянный Ошибка оперативной памяти, попробуйте перезагрузиться.
1 короткий + 2 длинных Неисправность оперативной памяти. Перезагрузитесь через Reset.

7. DELL BIOS

Последовательность звуковых сигналов Описание ошибки
1-2 Не подключена видеокарта
1-2-2-3 Ошибка контрольной суммы ПЗУ BIOS
1-3-1-1 Ошибка обновления DRAM
1-3-1-3 Ошибка клавиатуры 8742
1-3-3-1 Неисправна память
1-3-4-1 Ошибка ОЗУ на линии xxx
1-3-4-3 Ошибка ОЗУ на младшем бите
1-4-1-1 тест Ошибка ОЗУ на старшем бите

8. Quadtel BIOS

Последовательность звуковых сигналов Описание ошибки
1 короткий сигнал Ошибок не обнаружено, ПК исправен
2 коротких сигнала CMOS RAM повреждена. Заменить IC, если это возможно
1 длинный, 2 коротких сигнала Ошибка видеоадаптера. Неисправен видеоадаптер. Переустановите видеоадаптер или замените адаптер, если это возможно
1 длинный, 3 коротких сигнала Один или несколько из периферийных контроллеров неисправен. Замените контроллеры и проведите повторное тестирование

Коды ошибок и процессов BIOS

Коды ошибок POST-терминала.


1. AMI BIOS

American Megatrends, Inc. (AMI)

Контрольные точки процедур POST, выполняемых в AMIBIOS, были переработа- ны и дополнены в 1995 году и до настоящего времени не претерпели существенных из- менений. Первое описание POST кодов или как их называет AMI — «check points» в их нынешнем виде появилось в связи с выходом в свет ядра V6.24, 15/07/95. Некоторые изменения внесены в AMIBIOS V7.0, что отражается в настоящем документе.

Особенности выполнения стартовых процедур AMIBIOS

Если в процессе старта в диагностическом порту появляются данные 55h, AAh, не следует сопоставлять эту информацию с POST кодами — мы имеем дело с типовой тестовой последовательностью, в задачи которой входит проверка целостности шины данных.

На этапе старта вывод в диагностический порт данных носит специфический для каждой платформы характер. В некоторых реализациях первый визуализируемый код связан с действиями, который компания AMI называет chipset specific stuff. Эта проце- дура сопровождается выводом в порт 80h значения CCh и выполнением ряда действий по настройке регистров системной логики. Как правило, код CCh возникает в тех слу- чаях, когда используется системная логика от Intel, построенная на основе контроллера PIIX — это чипсеты TX, LX, BX.

Некоторые бортовые микросхемы ввода-вывода содержат RTC и контроллер кла- виатуры, которые по старту находятся в отключенном состоянии. Цель BIOS — проини- циализировать эти ресурсы платы для дальнейшего использования. В этом случае пер- вая стартовая процедура, связанная с настройкой контроллера клавиатуры, сопровож- дается выводом значения 10h, затем выполняется инициализация RTC, о чем свиде- тельствует появление в диагностическом порту кода DDh. Следует отметить, что отказ хотя бы одного из этих ресурсов повлечет нестарт системной платы в целом на первом же этапе выполнения POST.

На ряде плат процесс инициализации начинается с перевода CPU в защищенный режим. В этом случае вслед за первым визуализируемым кодом 43h выполнение POST продолжается так, как описано в документации AMIBIOS — управление передается в точку D0h.

Коды неупакованной процедуры инициализации

Uncompressed Init Code Check Points

Код ошибки Описание ошибки
EE В современных реализациях AMIBIOS первый визуализируемый код связан с об- ращением к устройству, с которого возможна загрузка для восстановления BIOS
CC Инициализация регистров системной логики CD Тип Flash ROM не опознан
CE Несовпадение контрольных сумм в стартовом BIOS CF Ошибка в доступе к запасной микросхеме Flash ROM
DD Ранняя инициализация RTC, который интегрирован в SIO чип
D0 Запрет немаскируемого прерывания NMI. Отработка временной задержки для за- тухания переходных процессов. Проверка контрольной суммы Boot Block, оста- нов при несовпадении
D1 Выполнение процедуры регенерации памяти и Basic Assurance Test. Переход в 4 GB режим адресации памяти
D3 Определение объема и первичный тест памяти
D4 Возврат в реальный режим адресации памяти. Ранняя инициализация чип сета. Установка стека
D5 Перенос модуля POST из Flash ROM в транзитную область памяти
D6 При несовпадении контрольной суммы или CTRL+Home выполняется переход на процедуру восстановления Flash ROM (Код E0)
D7 Передача управления служебной программе, осуществляющей распаковку сис- темного BIOS
D8 Полная распаковка системного BIOS
D9 Передача управления системному BIOS в Shadow RAM
DA Чтение информации из SPD (Serial Presence Detect) модулей DIMM DB Настройка MTRR регистров центрального процессора
DC Контроллер памяти программируются согласно данным, полученным из SPD DE Ошибка конфигурации системной памяти. Фатальная ошибка
DF Ошибка конфигурации системной памяти. Звуковой сигнал 10 Ранняя инициализация контроллера клавиатуры
11 Возврат из состояния STR (Suspend to RAM)
12 Восстановление доступа к SMRAM (System Management RAM)
13 Восстановление регенерации памяти
14 Поиск и инициализация VGA BIOS

Коды процедуры перезаписи Flash ROM

Boot Block Recovery Codes

Код ошибки Описание ошибки
E0 Выполняется подготовка к перехвату INT19 и проверяется возможность старта системы в упрощенном режиме
E1 Установка векторов прерываний
E3 Восстановление содержимого CMOS, поиск и инициализация BIOS
E2 Подготовка контроллеров прерываний и непосредственного доступа к памяти
E6 Разрешение прерываний от системного таймера и FDC
EC Повторная инициализация контроллеров IRQ и DMA ED Инициализация дисковода
EE Чтение загрузочного сектора с дискеты EF Ошибка дисковых операций
F0 Поиск файла AMIBOOT.ROM
F1 В корневом каталоге файл AMIBOOT.ROM не найден F2 Считывание FAT
F3 Считывание AMIBOOT.ROM
F4 Объем файла AMIBOOT.ROM не соответствует объему Flash ROM
F5 Запрет Internal Cache
FB Определение типа Flash ROM
FC Стирание основного блока Flash ROM
FD Программирование основного блока Flash ROM
FF Рестарт BIOS

Коды распакованного системного BIOS, выполняемые в ShadowRAM

Runtime code is uncompressed in F000 shadow RAM

Код ошибки Описание ошибки
03 Запрет немаскируемого прерывания NMI. Определение типа сброса
05 Инициализация стека. Запрет кэширования памяти и контроллера USB
06 Выполнение в ОЗУ служебной программы
07 Распознавание процессора и инициализация APIC
08 Проверка контрольной суммы CMOS
09 Проверка отработки клавиш End/Ins
0A Проверка сбоя батарейного питания
0B Очистка буферных регистров контроллера клавиатуры
0C Контроллеру клавиатуры передается команда тестирования
0E Поиск дополнительных устройств, обслуживаемых контроллером клавиатуры
0F Инициализация клавиатуры
10 Клавиатуре передается команда сброса
11 Если нажата клавиша End или Ins, выполняется сброс CMOS 12 Перевод в пассивное состояние контроллеров DMA
13 Инициализация чип сета и кэш L2
14 Проверка системного таймера
19 Выполняется тест формирования запросов на регенерацию DRAM
1A Проверка длительности цикла регенерации
20 Инициализация устройств вывода
23 Считывается порт ввода контроллера клавиатуры. Опрашивается Keylock Switch и Manufacture Test Switch
24 Подготовка к инициализации таблицы векторов прерываний
25 Инициализация векторов прерываний завершена
26 Через порт ввода контроллера клавиатуры опрашивается состояние перемычки Turbo Switch
27 Первичная инициализация контроллера USB. Обновление микрокода стартового процессора
28 Подготовка к установке видеорежима
29 Инициализация LCD панели
2A Поиск устройств, обслуживаемых дополнительными ROM
2B Инициализации VGA BIOS, проверка его контрольной суммы
2C Выполнение VGA BIOS
2D Согласование INT 10h и INT 42h
2E Поиск видеоадаптеров CGA
2F Тест видеопамяти адаптера CGA
30 Тест схем формирования разверток адаптера CGA
31 Ошибка видеопамяти или схем формирования разверток. Поиск альтернативного видеоадаптера CGA
32 Тест видеопамяти альтернативного видеоадаптера CGA и схем разверток
33 Опрос состояния перемычки Mono/Color
34 Установка текстового режима 80х25
37 Видеорежим установлен. Экран очищен
38 Инициализация бортовых устройств
39 Вывод сообщений об ошибках на предыдущем шаге
3A Вывод сообщения «Hit DEL» для входа в CMOS Setup
3B Начало подготовки к тесту памяти в защищенном режиме
40 Подготовка дескрипторных таблиц GDT и IDT
42 Переход в защищенный режим
43 Процессор в защищенном режиме. Прерывания разрешены
44 Подготовка к проверке линии A20
45 Тест линии A20
46 Определение размера ОЗУ выполнено
47 Тестовые данные записаны в Conventional Memory
48 Повторная проверка Conventional Memory
49 Тест Extended Memory
4B Обнуление памяти
4C Индикация процесса обнуления
4D Запись в CMOS полученных размеров Conventional и Extended memory 4E Индикация реального объема системной памяти
4F Выполняется расширенный тест Conventional Memory
50 Коррекция размера Conventional Memory
51 Расширенный тест Extended Memory
52 Объемы Conventional Memory и Extended Memory сохранены
53 Обработка отложенных ошибок четности
54 Запрет контроля четности и обработки немаскируемых прерываний
57 Инициализация региона памяти для POST Memory Manager
58 Выводится приглашение для входа в CMOS Setup
59 Возврат процессора в реальный режим
60 Проверка страничных регистров DMA
62 Тест регистров адреса и длины пересылки контроллера DMA#1
63 Тест регистров адреса и длины пересылки контроллера DMA#2
65 Программирование контроллеров DMA
66 Очистка регистров Write Request и Mask Set POST
67 Программирование контроллеров прерываний
7F Разрешение запроса NMI от дополнительных источников
80 Устанавливается режим обслуживания прерываний от порта PS/2
81 Тест интерфейса клавиатуры при ошибках сброса
82 Установка режима работы контроллера клавиатуры
83 Проверка статуса Keylock
84 Верификация объема памяти
85 Вывод на экран сообщений об ошибках
86 Настройка системы для работы Setup
87 Распаковка программы CMOS Setup в Conventional Memory.
88 Работа программы Setup завершена пользователем
89 Завершено восстановление состояния после работы Setup
8B Резервирование памяти дополнительному блоку переменных BIOS
8C Программирование конфигурационных регистров
8D Первичная инициализация контроллеров HDD и FDD
8F Повторная инициализация контроллера FDD
91 Конфигурирование контроллера жестких дисков
95 Выполняется ROM Scan для поиска дополнительных BIOS
96 Дополнительная настройка системных ресурсов
97 Проверка сигнатуры и контрольной суммы дополнительного BIOS
98 Настройка System Management RAM
99 Установка счетчика таймера и переменных параллельных портов 9A Формирование списка последовательных портов
9B Подготовка области в памяти для теста сопроцессора
9C Инициализация сопроцессора
9D Информация о сопроцессоре сохраняется в CMOS RAM
9E Идентификация типа клавиатуры
9F Поиск дополнительных устройств ввода
A0 Формирование регистров MTRR (Memory Type Range Registers)
A2 Сообщений об ошибках на предыдущих этапах инициализации
A3 Установка временных характеристик автоповтора клавиатуры
A4 Дефрагментирование неиспользованных регионов RAM
A5 Установка видео режима
A6 Очистка экрана
A7 Перенос исполняемого кода BIOS область Shadow RAM
A8 Инициализация дополнительного BIOS в сегменте E000h
A9 Возврат управления системному BIOS AA Инициализация USB шины
AB Подготовка модуля INT13 для обслуживания дисковых сервисов
AC Построение таблиц AIOPIC для поддержки мультипроцессорных систем AD Подготовка модуля INT10 для обслуживания видео сервисов
AE Инициализация DMI
B0 Таблица конфигурации системы выведена B1 Инициализация ACPI BIOS
00 Программное прерывание INT19h – загрузка Boot Sector

Особенности выполнения Device Initialization Manager

Кроме выше указанных POST кодов, в диагностический порт выводятся сообще- ния о событиях в процессе выполнения Device Initialization Manager (DIM). Существует несколько контрольных точек, в которых отображается состояние инициализации сис- темных или локальных шин.

Код ошибки Описание ошибки
2A Инициализация устройств на системной шине
38 Инициализация устройств, с которых возможна загрузка операционной системы — Initial Program Load (IPL)
39 Индикация ошибок, возникающих при инициализации шин
95 Инициализация шин, управляемых с помощью дополнительных BIOS DE Ошибка конфигурации системной памяти
DF Ошибка конфигурации системной памяти

Информация отображается в формате слова, младший байт которого совпадает с системным POST кодом, а старший байт указывает на тип выполняемой инициализационной процедуры. Старшая тетрада в старшем байте указывает тип выполняемой процедуры, а младшая определяет шинную топологию для ее применения.

Старшая тетрада

Коды.

Код ошибки Описание ошибки
0 инициализация всех устройств на всех шинах запрещена
1 инициализация статических устройств
2 инициализация устройств вывода информации
3 инициализация устройств ввода информации
4 инициализация устройств системной загрузки (IPL)
5 инициализация устройств общего назначения
6 сообщение об ошибках
7 инициализация устройств, управляемых дополнительными ROM
Младшая тетрада

Коды.

Код ошибки Описание ошибки
0 системные процедуры инициализации (DIM)
1 шины подключения бортовых устройств
2 шина ISA Legacy
3 шина EISA
4 шина ISA PnP
5 шина PCI
6 шина PCMCIA
7 шина MCA

В случае если обнаружена ошибка конфигурации системной памяти, в порт 80h выводится последовательно в бесконечном цикле код DE, код DF, код ошибки конфигурации, который может принимать следующие значения:

Код ошибки Описание ошибки
00 Оперативная память не обнаружена
01 Установлены модули DIMM различных типов (пример, EDO и SDRAM) 02 Чтение содержимого SPD закончилась неудачей
03 Модуль не соответствует требованиям для работы на заданной частоте 04 Модуль не может быть использован в данной системе
05 Информация в SPD не позволяет использовать установленные модули
06 Обнаружена ошибка в младшей странице памяти

2. Award BIOS V4.51PG Elite

AwardBIOS V4.51PG Elite

Динамично развивающаяся компания Award Software в 1995 году предложила новое на то время решение в области низкоуровневого программного обеспечения — AwardBIOS «Elite», более известное как V4.50PG. Режим обслуживания контрольных точек не изменился ни в широко распространенной версии V4.51, ни в раритетном исполнении V4.60. Суффиксы P и G обозначают соответственно поддержку механизма PnP и обслуживание функций энергосбережения (Green Function).

Выполнение стартовых процедур POST из ROM

Коды

Код ошибки Описание ошибки
C0 Запрет External Cache. Запрет Internal Cache. Запрет Shadow RAM. Программирование контроллера DMA, контроллера прерываний, таймера, блока RTC
C1 Определение типа памяти, суммарного объем и размещение по строкам
C3 Проверка первых 256К DRAM для организации Temporary Area. Распаковка BIOS в Temporary Area
C5 Выполняемый код POST переносится в Shadow
C6 Определение присутствия, объема и типа External Cache
C8 Проверка целостности программ и таблиц BIOS CF Определение типа процессора

Выполнение POST в Shadow RAM

Коды

Код ошибки Описание ошибки
03 Запрет NMI, PIE (Periodic Interrupt Enable), AIE (Alarm Interrupt Enable), UIE (Update Interrupt Enable). Запрет генерации программируемой частоты SQWV
04 Проверка формирования запросов на регенерацию DRAM
05 Проверка и инициализация контроллера клавиатуры
06 Тест области памяти, начинающейся с адреса F000h, где размещен BIOS 07 Проверка функционирования CMOS и батарейного питания
BE Программирование конфигурационных регистров Южного и Северного Мостов
09 Инициализация кэш-памяти L2 и регистров расширенного управления кэширова- нием процессора Cyrix
0A Генерация таблицы векторов прерываний. Настройка ресурсов Power Management и установка вектора SMI
0B Проверка контрольной суммы CMOS. Сканирование шины PCI устройств. Обнов- ление микрокода процессора
Инициализация контроллера клавиатуры
0D Поиск и инициализация видеоадаптера. Настройка IOAPIC. Измерения тактовой частоты, установка FSB
0E Инициализация MPC. Тест видеопамяти. Вывод на экран Award Logo
0F Проверка первого контроллера DMA 8237. Определение клавиатуры и ее внут- ренний тест. Проверка контрольной суммы BIOS
10 Проверка второго контроллера DMA 8237
11 Проверка страничных регистров контроллеров DMA
14 Тест канала 2 системного таймера 15 Тест регистра маскирования запросов 1-го контроллера прерываний
16 Тест регистра маскирования запросов 2-го контроллера прерываний 19 Проверка пассивности запроса немаскируемого прерывания NMI
30 Определение объема Base Memory и Extended Memory. Настройка APIC. Программное управление режимом Write Allocation

Подготовка таблиц, массивов и структур для старта операционной системы

Коды

Код ошибки Описание ошибки
31 Основной отображаемый на экране тест оперативной памяти. Инициализация USB
32 Выводится заставка Plug and Play BIOS Extension. Настройка ресурсов Super I/O. Программируется Onboard Audio Device
39 Программирование тактового генератора по шине I2C
3C Установка программного флага разрешения входа в Setup
3D Инициализация PS/2 mouse
3E Инициализации контроллера External Cache и разрешения Cache BF Настройка конфигурационных регистров чип сета
41 Инициализация подсистемы гибких дисков
42 Отключение IRQ12 если PS/2 mouse отсутствует. Выполняется программный сброс контроллера жестких дисков. Сканирование других IDE устройств
43 Инициализация последовательных и параллельных портов
45 Инициализация сопроцессора FPU
4E Индикация сообщений об ошибках
4F Запрос пароля
50 Восстановление ранее сохраненного в ОЗУ состояния CMOS
51 Разрешение 32 битного доступа к HDD. Настройка ресурсов ISA/PnP
52 Инициализация дополнительных BIOS. Установка значений конфигурационных регистров PIIX. Формирование NMI и SMI
53 Установка счетчика DOS Time в соответствии с Real Time Clock
60 Установка антивирусной защиты BOOT Sector
61 Завершающие действия по инициализации чип сет
62 Чтение идентификатора клавиатуры. Установка ее параметров
63 Коррекция блоков ESCD, DMI. Очистка ОЗУ
FF Передача управления загрузчику. BIOS выполняет команду INT 19h

3. Award BIOS V6.0 Medallion

AwardBIOS V6.0 Medallion

Первое упоминание об Award Medallion BIOS, Version 6.0 датируется 12 мая 1999 года. Структура нового продукта осталась неизменной, сохранив раннюю (Early), позд- нюю (Late) и финальную (System) фазы инициализации аппаратного обеспечения. Су- щественные изменения коснулись алгоритмов выполнения POST, что отразилось на но- вой кодировке контрольных точек, значительно расширив их сферу применения. Вме- сте с тем, в новом BIOS не нашлось места устаревшим технологиям, таким как EISA, и по этой причине ряд POST кодов было упразднено.

Выполнение стартовых процедур POST из ROM

На этапе ранней инициализации программный код BIOS выполняется из загру- зочного блока (Boot Block) во Flash ROM, и сопровождается выводом в диагностический порт контрольных точек 91h…FFh

Код ошибки Описание ошибки
91 Выбор сценария старта платформы CF Определение типа процессора
C0 Запрет External Cache. Запрет Internal Cache. Запрет Shadow RAM. Программирование контроллера DMA, контроллера прерываний, таймера, блока RTC C1 Определение типа памяти, суммарного объем и размещение по строкам 0С Проверка контрольных сумм
C3 Проверка первых 256К DRAM для организации Temporary Area. Распаковка BIOS в Temporary Area
C5 Если контрольные суммы совпали, выполняемый код POST переносится в Shadow. В противном случае управление передается на процедуру восстановления BIOS
B0 Инициализация North Bridge
A0-AF Аппаратно-зависимая процедура инициализации системной логики E0-EF Ошибка в процессе инициализации системной логики

Восстановление BIOS

Коды

Код ошибки Описание ошибки
01 Подготовка Conventional Memory для операционной системы
05 Инициализация контроллера клавиатуры
0B Настройка контроллера прерываний
0D Поиск и инициализация VGA BIOS
10 Вывод сообщения «BIOS ROM checksum error»
11 Зарезервировано для использования в будущих реализациях
12 Генерация таблицы векторов прерываний
41 Инициализация дисковода FDD
FF Передача управления на восстановление BIOS

Выполнение POST в Shadow RAM

Поздняя инициализация выполняется в оперативной памяти и продолжается до момента вызова пользовательского меню — CMOS Setup. Для этой фазы POST характерно использование сегмента памяти E000h, в котором отрабатывается прохождение кон- трольных точек от 01h до 7Fh.

Код ошибки Описание ошибки
01 Распаковка XGROUP по физическому адресу 1000:0000h
03 Ранняя инициализация ресурсов Super I/O
05 Установке начальных значений переменных, задающих атрибуты изображения. Проверка флага состояния CMOS
07 Проверка и инициализация контроллера клавиатуры
08 Определение типа интерфейса подключенной клавиатуры
0A Процедура автоопределения клавиатуры и мыши. Финальные настройки кон- троллера клавиатуры с использованием регистров пространства PCI
0E Тестирование сегмента памяти F000h
10 Определения типа установленной памяти FlashROM
12 Тест CMOS
14 Процедура инициализации регистров чипсета
16 Первичная инициализация бортового частотного синтезатора
18 Определения установленного процессора и объем его Cache L1 и L2 1B Генерация таблицы векторов прерываний
1C Проверка достоверности CMOS и батарейного питания
1D Первичная настройка системы Power Management
1F Загрузка из внешнего модуля XGROUP клавиатурной матрицы
21 Инициализация подсистемы Hardware Power Management
23 Тестирование сопроцессора. Определение типа накопителя FDD. Подготовитель- ный этап для создания карты ресурсов PnP устройств
24 Процедура обновления микрокода процессора. Обновление карты распределения ресурсов
25 Первичная инициализация и сканирование шины PCI
26 Настройка логики, обслуживающей линии VID (Voltage Identification Device). Инициализация бортовой системы мониторинга напряжений и температур
27 Повторная инициализация контроллера клавиатуры
29 Инициализация APIC, входящего в состав центрального процессора. Измерение частоты, на которой работает процессор. Настройка регистров системной логики. Инициализация контроллера IDE
2A Зарезервировано, очистка Carry Flag
2B Поиск VGA BIOS
2D Вывод на экран данных о процессоре
33 Выполнение Reset для подключенной клавиатуры
35 Проверка первого канала контроллера DMA 8237
37 Проверка второго канала контроллера DMA 8237
39 Тестирование страничных регистров DMA
3C Настройка контроллера Programmable Interval Timer (8254)
3E Инициализация Master контроллера 8259
40 Инициализация Slave контроллера 8259
43 Подготовка контроллера прерываний к работе. Прерывания запрещены, их раз- решение выполняется позже, после теста памяти
45 Проверка пассивности запроса немаскируемого прерывания (NMI)
47 Выполнение ISA/EISA тестов
49 Определение объема базовой и расширенной памяти. Программное управление режимом Writes Allocation путем настройки регистров AMD K5
4E Тестирование памяти в пределах первого мегабайта и визуализация результатов на экране дисплея. Инициализация схем кэширования для одно- и многопроцессорных систем, настройка регистров процессора Cyrix M1
50 Инициализация USB
52 Тестирование всей доступной системной памяти, включая регион для встроенно- го видео контроллера (Shared Memory). Визуализация результатов на экране дисплея
53 Сброс пароля на вход в систему
55 Визуализация количества обнаруженных процессоров
57 Начальная инициализация ISA PnP устройств, каждому из которых назначается CSN (Card Select Number). Визуализация логотипа EPA
59 Инициализация системы антивирусной поддержки
5B Старт процедуры обновления BIOS с накопителя на гибких дисках 5D Инициализация бортовых SIO и Audio контроллеров
60 Доступ к CMOS Setup открыт
63 Инициализация PS/2 Mouse
65 Инициализация USB Mouse
67 Использование IRQ12 устройствами PCI, если в системе PS/2 Mouse отсутствует 69 Полная инициализация контроллера кэш L2
6B Инициализация чипсета согласно CMOS Setup
6D Настройка ресурсов для устройств ISA PnP в режиме конфигурирования SIO 6F Инициализация подсистемы гибких дисков
73 Предварительные действия по инициализации подсистемы жестких дисков. На некоторых платформах — опрос ALT+F2 для запуска AwardFlash
75 Поиск и инициализация IDE устройств
77 Инициализация последовательных и параллельных портов
7A Программный сброс сопроцессора, запись управляющего слова в регистр FPU CW 7C Установка защиты от несанкционированной записи на жесткие диски
7F Вывод сообщений об ошибках. Обслуживание клавиш DEL и F1

Подготовка таблиц, массивов и структур для старта операционной системы

Начиная с кода 82h, POST осуществляет конфигурирование системы согласно установкам CMOS. Финальная его фаза выполняется из области Shadow RAM (сегмент E800h) и завершается передачей управления операционной системе — код FFh.

Код ошибки Описание ошибки
82 Выделяется область в системной памяти для управления питанием
83 Восстановление данных из стека временного хранения в CMOS
84 Вывод на экран сообщения «Initializing Plug and Play Cards…»
85 Инициализация USB завершена
86 Зарезервировано, очистка Carry Flag
87 Построение таблиц SYSID в области DMI
88 Зарезервировано, очистка Carry Flag
89 Генерация таблиц обслуживания ACPI
8A Зарезервировано, очистка Carry Flag
8B Поиск и инициализация BIOS дополнительных устройств
8C Зарезервировано, очистка Carry Flag
8D Инициализация процедур обслуживания бита четности
8E Зарезервировано, очистка Carry Flag
8F Разрешение IRQ12 для «горячего» подключения манипулятора «мышь» 90 Зарезервировано, очистка Carry Flag
91 Инициализация Legacy-ресурсов платформы
92 Зарезервировано, очистка Carry Flag
93 Предположительно, не используется
94 Заключительные действия по инициализации основного набора логики перед загрузкой операционной системы. Завершается инициализация системы управления питанием. Снимается стартовая заставка BIOS, выводится на экран таблица распределения ресурсов. Для процессоров семейства AMD K6® выполняются специфические настройки. Обновление микрокода для процессоров семейства Intel Pentium® II и выше
95 Установка режима автоматического перехода на зимнее/летнее время. Программирование контроллера клавиатуры на частоту автоповтора
96 В мультипроцессорных системах выполняются финальные настройки системы и создаются служебные таблицы и поля. Для процессоров семейства Cyrix выполняется дополнительная настройка регистров. Построение таблицы ESCD «Extended System Configuration Data». Установка счетчика DOS Time в соответствии с Real Time Clock. Выполняется сохранение разделов загрузочных устройств для далнейшего использования встроенными антивирусными средствами: Trend AntiVirus или Paragon Anti-Virus Protection. На системный динамик подается сигнал окончания выполнения POST. Строится и сохраняется таблица MSIRQ
FF Загрузка операционной системы

Ряд процессов, происходящих в Award Medallion BIOS, обозначается особыми группами контрольных точек. К ним относятся:

System Event codes — контрольные точки системных событий.

Код ошибки Описание ошибки
B0 Ошибка исключения в Protected Mode
B1 Нераспознанный запрос NMI
B2 Остановка в активном состоянии запроса NMI

Power Management Debug codes — контрольные точки, возникающие в процессе выполнения сервисов APM или ACPI.

Код ошибки Описание ошибки
55 Энергосбережение с отключением питающего напряжения +12 вольт 66 Переход в режим энергосбережения с минимальным потреблением D0 Прерывание для выхода из режима энергосбережения по событию
D1 Переход CPU в режим энергосбережения путем снижения его тактовой частоты D2 Режим частичного энергосбережения с использованием функций ACPI
D3 System Management Interrupt для перевода в режим энергосбережения D7 Переход CPU в режим энергосбережения средствами APM-сервиса
D8 Переход системы в состояние энергосбережения средствами APM-сервиса D9 Перевод системы в состояние полного энергосбережения

System Error codes — сообщения о фатальных ошибках.

Код ошибки Описание ошибки
EC Ошибка обслуживания ECC
ED Ошибка HDD при возврате из режима энергосбережения
EF Несовпадение записанных и считанных данных в сегменте F000h

Debug codes for MP system — точки инициализации многопроцессорных платформ.

Код ошибки Описание ошибки
A0-A4 Процедура инициализации Local APIC одного из четырех установленных CPU
F0-F4 Сбой одного из CPU на этапе выполнения Built-In Self Test

Особенности ускоренного прохождения POST

Для сокращения времени загрузки системы пользователь в CMOS Setup может выбрать опцию «Quick Power On Self Test». В этом случае прохождение POST будет ускорено за счет отказа от выполнения некоторых процедур (Quick Boot).

Схема работы Quick Boot замещает позднюю и финальную фазы POST и не отражается на работе загрузочного блока. Award Software предлагает кодификацию испол- няемых процедур ускоренного прохождения POST, отличную от стандартной. Quick Boot начинается с вывода в диагностический порт контрольной точки 65h и заканчивается POST кодом 80h. Затем управление передается операционной системе с отображением обычного для Award BIOS кодом FFh.

Код ошибки Описание ошибки
65 Ранняя инициализация SIO контроллера, программный сброс видео контроллера. Настройка контроллера клавиатуры, тест клавиатуры и манипулятора «мышь». Инициализация звукового контроллера. Проверка целостности структур BIOS. Распаковка процедур обслуживания Flash ROM. Инициализация бортового синтезатора частот
66 Инициализация кэш-памяти L1/L2 согласно результатам, полученным по команде CPUID. Генерация таблицы векторов, состоящей из указателей на процедуры обработки прерываний. Инициализация аппаратных средств Power Managment
67 Проверка достоверности CMOS и батарейного питания. Настройка регистров чипсета согласно установкам CMOS. Инициализация контроллера клавиатуры в составе чипсета. Формирование переменных BIOS Data Area
68 Инициализация видео системы
69 Настройка i8259 контроллера прерываний
6A По специальному алгоритму выполняется ускоренный однопроходный тест оперативной памяти
6B Визуализация количества обнаруженных процессоров, логотипа EPA и вывод приглашения для запуска утилиты AwardFlash. Настройка ресурсов встроенного контроллера ввода-вывода в режиме конфигурирования
70 Приглашения для входа в Setup. Инициализация PS/2 и USB Mouse
71 Инициализация кэш-контроллера
72 Настройка конфигурационных регистров системной логики. Формирование списка Plug and Play устройств. Инициализация FDD контроллера
73 Инициализация контроллера HDD
74 Инициализация сопроцессора
75 Если пользователем предписано в установках CMOS Setup, выполняется защитаот записи IDE HDD
77 Запрос пароля и вывод сообщения: «Press F1 to continue, DEL to enter Setup»
78 Инициализация BIOS дополнительных устройств на шинах ISA и PCI
79 Инициализация Legacy ресурсов платформы
7A Генерация корневой таблицы RSDT и таблиц устройств DSDT, FADT и т.п.
7D Поиск информации о разделах загрузочных устройств
7E Настройка служб и сервисов BIOS перед загрузкой операционной системы
7F Установка флага NumLock согласно CMOS SetUp
80 Передача управления операционной системе

Выполнение POST в режиме энергосбережения

Одно из состояний платформы, когда содержимое оперативной памяти сохраняется на жестком диске, называется Hibernate. В спецификации ACPI («Advanced Configuration and Power Interface Specification», Revision 2.0a от 31/03/2002) оно определяется как режим энергосбережения S4 (Non-Volatile Sleep). Возврат к полноценному функционированию предполагает особый способ прохождения POST.

Схема работы ACPI S4, как и при ускоренном старте, замещает позднюю и финальную фазы POST. Существенным моментом становится проверка в загрузочном блоке сценария старта. В зависимости от того, в каком ACPI состоянии находится система после аппаратного сигнала Reset, принимается решение о выходе из состояния S4, который начинается с вывода в диагностический порт контрольной точки 90h и заканчивается POST кодом 9Fh.

Код ошибки Описание ошибки
90 Ранняя инициализация SIO контроллера, программный сброс видео контроллера. Настройка контроллера клавиатуры, тест клавиатуры и манипулятора «мышь»
91 Проверка достоверности CMOS и батарейного питания
92 Инициализация регистров системной логики и бортового синтезатора частот
93 Инициализация кэш-памяти по информации CPUID
94 Генерация таблицы векторов, состоящей из указателей на процедуры обработки прерываний. Инициализация аппаратных средств Power Managment
95 Сканирование PCI шины
96 Инициализация встроенного контроллера клавиатуры
97 Инициализация видео системы
98 Вывод сообщений VGA адаптера
99 Проверка первого канала контроллера DMA8237 путем записи и контрольного считывания регистров базового адреса и длины блока пересылки 9A Настройка i8259 контроллера прерываний
9B Инициализация PS/2 и USB Mouse. Распаковка ACPI кода. Инициализация кэшконтроллера
9C Настройка конфигурационных регистров системной логики. Формирование списка Plug and Play устройств. Инициализация FDD и HDD контроллеров
9D Резервирование PM-региона в системной памяти не выполняется, если таковой создан в Shadow RAM или SMRAM. В некоторых случаях требуется повторная, завершающая инициализация USB шины, выполняемая при отключенной кэш- памяти L1
9E Настройка Power Management, входящей в состав системной логики. Инициализация схем генерации SMI и установка вектора SMI. Программирование ресурсов, отвечающих за мониторинг системных событий PM
9F С помощью операции запрещения и разрешения очищается кэш-память L1/L2 и восстанавливается ее актуальный размер. Настройки управления режимом энергосбережения, заданные в CMOS Setup, сохраняются в PM RAM. Для мобильных платформ выполняется проверка возврата к полноценному функционированию после отключения всех питающих напряжений (режим Zero Volt Suspend)

4. Phoenix BIOS 4.0 Release 6.0

Phoenix Technologies, Ltd.

Один из лидеров разработки низкоуровневого программного обеспечения Phoe- nix Technologies приурочил к выходу Windows95 новую версию PhoenixBIOS 4.0. Поддержка семейства процессоров Intel Pentium отражается в названии промежуточных ревизий. Одна из последних — Release 6.0 — легла в основу всех выпускаемых BIOS. С появлением Release 6.1 существенных изменений в выполнении процедур POST не про- изошло, и, следовательно, это не отразилось на индикации контрольных точек.

Отличительная особенность PhoenixBIOS состоит в том, что если в процессе выполнения POST возникают ошибки тестирования 512 Кбайт основной памяти (коды 2Ch, 2Eh, 30h), в порт 80h выводится дополнительная информация в формате слова, биты которого идентифицируют сбойную адресную линию или ячейку данных. Например, код «2C 0002» означает, что обнаружен сбой памяти по адресной линии 1. Код «2E 1020» в этом случае будет означать, что обнаружен сбой по линиям данных 12 и 5 в младшем байте шины данных памяти. В системах 386SX, где используется шестнадцати битная шина данных, возникновение ошибки на этапе выполнения кода 30h невозможно

Вывод в диагностический порт POST кода сопровождается выводом на системный динамик звукового сигнала. Схема формирования звукового сигнала следующая:

  • Восьми битный код преобразуется в четыре двух битные группы
  • Значение каждой группы увеличивается на единицу
  • По полученному значению генерируется короткий звуковой сигнал (например: код 16h = 00 01 01 10 = 1-2-2-3)

Выполнение стартовых процедур POST из ROM

Коды

Код ошибки Описание ошибки
01 Инициализация контроллера Baseboard Management (BMC)
02 Проверка текущего режим работы процессора
03 Запрет выполнения немаскируемых прерываний
04 Определяется тип установленного процессора
06 Начальные установки регистров PIC и DMA
07 Область в памяти, предназначенная для копии BIOS, обнуляется
08 Ранняя инициализация регистров системной логики
09 Установка программного флага выполнения POST
0A Инициализация программных ресурсов процессора
0B Разрешение Internal Cache
0E Инициализация ресурсов Super I/O
0C Инициализация кэш L1/L2 согласно значениям CMOS
0F Инициализация IDE
10 Инициализация подсистемы Power Management
11 Установка значений альтернативных регистров
12 Выполняется установка значения регистра MSW (Machine Status Word)
13 Ранняя инициализация PCI устройств
14 Инициализация контроллера клавиатуры
16 Проверка контрольной суммы ROM BIOS
17 Определение объема кэш L1/L2
18 Инициализация системного таймера 8254
1A Инициализация контроллера DMA
1C Сброс значений программируемого контроллера прерываний
20 Проверка формирования запросов регенерации DRAM
22 Проверка работы контроллера клавиатуры
24 Установка селектора для обслуживания плоской 4Gb модели памяти
26 Разрешение линии А20
28 Определение суммарного объема установленной памяти
29 Инициализация POST Memory Manager (PMM)
2A Обнуление 640Kb основной памяти
2C Тестирование адресных линий
2E Сбой по одной из линий данных в младшем байте шины данных памяти
2F Выбор протокола работы кэш памяти
30 Тест доступной системной памяти
32 Определение тактовых параметров CPU и частоты шины

Выполнение процедур POST из RAM

Коды

Код ошибки Описание ошибки
33 Инициализация Phoenix Dispatch Manager
34 Запрет на выключение питания с помощью ATX Power Button
35 Настройки регистров системной логики, управляющих формированием временных характеристик доступа к памяти, портам ввода/вывода, системным и локальным шинам
36 Выполняется рестарт при неудачном переходе к следующей процедуре POST. Последовательностью процедур управляет Watch Dog Service
37 Завершается процесс настройки регистров системной логики
38 Содержимое Runtime модуля BIOS распаковывается и переписывается в область, предназначенную для Shadow RAM
39 Повторная инициализация контроллера кэш-памяти
3A Повторное определение размера кэш L2
3B Инициализация трассировки выполнения BIOS
3C Дополнительная настройка регистров логики для конфигурирования мостов PCI-PCI и поддержки распределенных PCI шин
3D Выполняется настройка регистров системной логики в соответствии с установками CMOS Setup
3E Read Hardware Configuration
3E Проверка подключения системы ROM Pilot
40 Определение тактовых параметров CPU
41 Инициализация ROM Pilot — управления удаленной загрузкой
42 Формирование таблицы векторов прерываний
44 Set BIOS Interrupt
45 Инициализация устройств до включения PnP механизма
46 По специальному алгоритму вычисляется контрольная сумма BIOS
47 Инициализация I2O контроллеров ввода/вывода
48 Поиск видеоадаптера
49 Инициализация PCI
4A Инициализация системных видеоадаптеров
4B Выполняется Quiet Boot — сокращенная последовательность старта системы, используемая для ускоренного прохождения POST
4C Содержимое VGA BIOS переписывается в транзитную область
4E Визуализация текстовой строки BIOS Copyright
4F Резервирование памяти для меню выбора загрузочных устройств
50 Визуализируется тип процессора и его тактовая частота
51 Инициализация контроллера и устройств EISA
52 Программирование контроллера клавиатуры
54 Активизирован режим звукового сопровождения клавиш
55 Инициализация контроллера USB
58 Поиск необслуживаемых запросов на прерывания
59 Инициализация процедуры POST Display Service (PDS) 5A Вывод сообщения «Press F2 to enter SETUP»
5B Запрет CPU Internal Cache
5C Проверка Conventional Memory
5E Detect Base Address
60 Проверка Extended Memory
62 Проверка адресных линий Extended Memory
64 Передача управления на выполняемый блок, генерируемый производителем системной платы (Patch1)
66 Настройка регистров управления кэшированием
67 Минимальная инициализация контроллеров APIC
68 Разрешение кэш L1/L2
69 Подготовка System Management Mode RAM
6A Визуализируется объем External Cache
6B Установка значений CMOS Setup по умолчанию
6C Визуализация информации об использовании Shadow RAM
6E Визуализация информации об Upper Memory Blocks (UMB)
70 Вывод сообщений об ошибках
72 Проверка текущей конфигурации системы и информации в CMOS
76 Проверка информации об ошибках клавиатуры
7A Проверка состояния средств программной (System Password) или аппаратной (Key Lock Switch) блокировки клавиатуры
7C Установка векторов аппаратных прерываний
7D Инициализации системы слежения за питанием
7E Инициализация сопроцессора
80 Запрещается бортовой контроллер ввода/вывода SIO
81 Выполняется подготовка к загрузке операционной системы
82 Поиск и определение портов RS232
83 Конфигурирование внешних IDE контроллеров
84 Поиск и определение параллельных портов
85 Инициализация устройств ISA PnP
86 Бортовые ресурсы контроллера SIO конфигурируются в соответствии с установками CMOS Setup
87 Конфигурирование MCD (Motherboard Configurable Devices)
88 Устанавливаются значения блока переменных в области BIOS Data Area
89 Разрешается формирование немаскируемого прерывания
8A Установка значений переменных, находящихся в области Extended BIOS Data Area
8B Проверка схем подключения PS/2 Mouse
8C Инициализация контроллера дисковода
8F Определение количества подключенных ATA устройств
90 Инициализация и конфигурирование контроллеров жестких дисков
91 Установка временных параметров работы жестких дисков в режиме PIO
92 Передача управления на выполняемый блок, генерируемый производителем системной платы (Patch2)
93 Построение таблицы конфигурации мультипроцессорной системы
95 Выбор процедуры обслуживания CD-ROM
96 Возврат в Real Mode
97 Построение MP Configuration Table
98 Выполняется процедура ROM Scan
99 Проверка состояния параметра SMART 9A Содержимое ROM переписывается в RAM
9C Настройка подсистемы Power Management
9D Инициализация ресурсов для защиты от несанкционированного доступа
9E Разрешаются аппаратные прерывания
9F Определяется количество накопителей IDE и SCSI
A0 Установка DOS Time по состоянию RTC A1 Назначение данного кода неизвестно A2 Проверка состояния Key Lock
A4 Установки характеристик автоповтора клавиатуры
A8 Сообщение «Press F2 to enter Setup» удаляется с экрана
AA Проверяется наличие SCAN кода клавиши F2 во входном буфере AC Запускается программа Setup
AE Очищается флаг перезапуска, выполняемого по CTRL+ALT+DEL B0 Генерируется сообщение «Press F1 to resume, F2 to Setup»
B1 Снимается флаг выполнения POST B2 Процедура POST завершена
B4 Выдача звукового сигнала перед загрузкой
B5 Фаза Quiet Boot завершена
B6 Проверка пароля, если данный режим включен в Setup B7 Инициализация ACPI BIOS
B9 Поиск загрузочных устройств на USB шине BA Инициализация параметров DMI
BB Повторное выполнение процедуры ROM Scan
BC Обнуляется триггер фиксации ошибки четности RAM
BD Визуализируется меню для выбора загрузочного устройства BE Очистка экрана перед загрузкой операционной системы BF Активизация антивирусной поддержки
C0 Запускается процедура обработки программного прерывания INT 19h — загрузчик Boot Sector. Процедура обработки прерывания последовательно пытается загрузить Boot Sector, опрашивая дисковые устройства в порядке, предписанном Setup
C1 Начальная инициализация процедуры обслуживания сбоев (PEM) C2 Вызов служебных процедур для ведения протокола ошибок
C3 Визуализация сообщений об ошибках в порядке их поступления С4 Установка флагов начальных состояний
C5 Инициализация расширенного блока ячеек CMOS RAM
C6 Первичная инициализация док-станции
C7 Отложенная инициализация док-станции
С8 Выполнение находящихся в составе Boot Block тестовых процедур определения целостности структур BIOS
С9 Проверка целостности внешних по отношению к системному BIOS структур и/или модулей
CA Запуск Console Redirect для обслуживания удаленной клавиатуры CB Эмуляция дисковых устройств в RAM/ROM
CC Запуск Console Redirect для обслуживания видео CD Поддержка обмена данными с PCMCIA
CE Настройка контроллера светового пера

Сообщения о фатальных ошибках

D0 Ошибка, вызванная исключительной ситуацией (Exception error) D2 Вызов процедуры обработки прерывания от не идентифицированного источника D4 Ошибка, связанная с нарушением протокола выдачи и снятия запросов на пре- рывание D6 Выход из защищенного режима с программным формированием сброса D7 Для сохранения состояния видеоадаптера требуется больший объем памяти, чем доступно в SMRAM D8 Ошибка при программном формировании импульса сброса процессора DA Потеря управления при возврате в Real Mode DC Выход из защищенного режима с программным формированием сброса без по- вторной инициализации контроллера прерываний DD Ошибка при тестировании расширенной памяти DE Ошибка контроллера клавиатуры DF Ошибка управления линией A20 19

Выполнение процедур из Boot Block

Коды

Код ошибки Описание ошибки
E0 Настройка конфигурационных регистров чипсета E1 Инициализация Северного и Южного мостов
E2 Инициализация CPU
E3 Инициализация системного таймера
E4 Инициализация ресурсов Super I/O
E5 Проверка состояния Recovery Jumper, установка которого принудительно запускает режим BIOS Recovery
E6 Проверка контрольной суммы BIOS
E7 Управление передается BIOS, если его контрольная сумма вычислена правильно E8 Инициализация поддержки MPS
E9 Переход к плоской 4Gb модели памяти
EA Инициализация нестандартного оборудования
EB Настройка контроллера прерываний и прямого доступа к памяти
EC Путем записей и контрольных считываний по специальному алгоритму определя-ется тип памяти: FPM, EDO, SDRAM, в соответствии с результатом настраиваются конфигурационные регистры Host Bridge
ED Путем записей и контрольных считываний по специальному алгоритму определя-ется объем банков памяти и размещение по строкам. В соответствии с результа том настраиваются конфигурационные регистры Host Bridge (DRAM Row Boundary)
EE Содержимое Boot Block копируется в Shadow RAM EF Подготовка SMM RAM для обработчика SMI
F0 Тест памяти
F1 Инициализация векторов прерываний
F2 Инициализация Real Time Clock
F3 Инициализация видео подсистемы
F4 Генерация звукового сигнала перед загрузкой
F5 Загрузка операционной системы, хранящейся во Flash ROM
F6 Возврат в Real Mode
F7 Boot to Full DOS
F8 Инициализация контроллера USB
FA…FF Коды взаимодействия с процедурой PhDebug

5. Insyde BIOS Mobile Pro

Insyde Software Corp.

Инсайдер рынка мобильных систем прочно обосновался там, где требуется верность традициям и консервативный подход к построению BIOS. Получив в наследство исходный код от SystemSoft, компания постоянно работает над его совершенствованием. Последняя из ревизий MobilePRO активно используется в ноутбуках Mitac и Clevo, документация к которым и легла в основу таблицы Error Codes — так в Insyde Software называют контрольные точки выполнения POST.

Контрольные точки загрузочного блока

Несмотря на то, что свой первый BIOS компания Insyde Software создала в 1992 году, устоявшая модель загрузочного блока, — или Boot Loader, как его назвали сами создатели, — окончательно сформировалась только к концу 1995 года. С этого момента стартовая процедура получила нумерацию по версии и дате создания.

Наиболее существенным моментом с точки зрения сервисного инженера, иссле- дующего процесс загрузки компьютерной системы с InsydeBIOS, становится устройство отображения диагностических кодов. Хотя, как правило, Boot Loader использует стандартный в таких случаях Manufacture’s Diagnostic Port 80h, в некоторых случаях вывод контрольных точек выполняется только на PIO Port (Parallel Input/Output port for diagnostic purpose), который представляет собой не что иное, как параллельный порт 378h. Существуют реализации, в которых диагностические коды, посылаемые в порт 80h, дублируются и в параллельный порт.

Код ошибки Описание ошибки
00 Стартовая точка выполнения загрузочного блока 01 Запрет линии А20 (не используется)
02 Обновление микрокода центрального процессора
03 Тестирование оперативной памяти
04 Перенос загрузочного блока в оперативную память
05 Выполнение загрузочного блока из оперативной памяти
06 Форсирование процедуры восстановления Flash ROM
07 Перенос системного BIOS в оперативную память
08 Верификация контрольной суммы системного BIOS
09 Запуск процедуры POST
0A Запуск процедуры восстановления Flash ROM с накопителя FDD
0B Инициализация синтезатора частот
0C Завершение процедуры восстановления BIOS
0D Альтернативная процедура восстановления Flash ROM с FDD
0F Останов в случае возникновения фатальной ошибки
BB Ранняя инициализация LPC SIO
CC Стартовая точка начала восстановления Flash ROM
88 Разрешение функций ACPI
99 Ошибка при выходе из режима STR
60 Переход в режим Big Real Mode
61 Инициализация SM Bus. Данные SPD сохраняются в CMOS A0 Чтение и анализ полей SPD, ранее сохраненных в CMOS A1 Инициализация контроллера памяти
A2 Определение логических банков модуля DIMM
A3 Программирование регистров DRB (DRAM Row Boundary)
A4 Программирование регистров DRA (DRAM Row Attributes)
AE В системе обнаружены модули DIMM, которые разнятся между собой функциями Error Correcting Codes (ECC)
AF Первичная инициализация регистров контроллера памяти, отображаемых в пространстве памяти
E1 Выполнение загрузочной процедуры прекращается, если модуль DIMM не оснащен микросхемой SPD
E2 Тип модуля DIMM не соответствует требованиям системы
EA Минимальное время между активацией строк DIMM модуля и переходом в состояние регенерации не соответствует системным требованиям
EC Регистровые модули не поддерживаются ED Проверка режимов CAS Latency
EE Организация модуля DIMM не поддерживается системной платой

Выполнение процедур POST из RAM

Самые современные решения InsydeBIOS используют 16-битное отображение контрольных точек. Для этого используются порты 80h и 81h, последний из которых предназначен для расширения стандартной диагностики.

Изучение контрольных точек затрудняется их нерегулярным построением, когда различные по смыслу процессы сопровождаются одними и теми же кодами. В дуальных диагностических системах существуют разнородности другого порядка: некоторые POST коды отображаются только в один из портов без привычного в таких случаях дублирования.

Код ошибки Описание ошибки
10 Инициализация кэш-памяти, проверка CMOS
11 Запрет линии А20. Установка регистров контроллеров 8259.
12 Определение способа загрузки
13 Инициализация контроллера памяти
14 Поиск подключенного к шине ISA видео адаптера
15 Установка значений системного таймера
16 Установка регистров системной логики по CMOS
17 Подсчет общего объема оперативной памяти
18 Тестирование младшей страницы Conventional Memory
19 Проверка контрольной суммыы образа Flash ROM
1A Повторная установка регистров контроллера прерываний
1B Инициализация видео адаптера
1C Инициализация подмножества регистров видео адаптера, совместимых с программной моделью 6845
1D Инициализация EGA адаптера
1E Инициализация CGA адапетра
1F Тест страничных регистров DMA контроллера
20 Проверка контроллера клавиатуры
21 Инициализация контроллера клавиатуры
22 Сравнение полученного объема оперативной памяти со значением в CMOS
23 Проверка автономного батарейного питания и Extended CMOS
24 Тестирование регистров контроллера DMA
25 Установка параметров DMA контроллера
26 Формирование таблицы векторов прерываний
27 Ускоренное определение объема установленной памяти
28 Защищенный режим
29 Тест системной памяти выполнен
2A Выход из защищенного режима
2B Перенос процедуры Setup в оперативную память
2C Запуск процедуры инициализации видео
2D Повторный поиск CGA адаптера
2E Повторный поиск EGA/VGA адаптера
2F Вывод на экран сообщений VGA BIOS
30 Пользовательская процедура инициализации контроллера клавиатуры
31 Проверка подключенной клавиатуры
32 Проверка прохождения запроса от клавиатуры
33 Проверка регистра статуса клавиатуры
34 Тест и обнуление системной памяти
35 Защищенный режим
36 Расширенный тест памяти завершен
37 Выход из защищенного режима
38 Запрет линии А20
39 Инициализация кэш-контроллера 3A Проверка системного таймера
3B Установка счетчика DOS Time в соответствии с Real Time Clock
3C Инициализация таблицы аппаратных прерываний
3D Поиск и инициализация манипуляторов и указателей
3E Установка статуса клавиши NumLock
3F Инициализация последовательных и параллельных портов
40 Конфигурирование последовательных и параллельных портов
41 Инициализация FDD контроллера
42 Инициализация HDD контроллера
43 Инициализация Power Management для шины USB
44 Поиск и инициализация дополнительных BIOS
45 Повторная установка статуса клавиши NumLock
46 Проверка функциональности сопроцессора
47 Инициализация PCMCIA
48 Подготовка к старту операционной системы
49 Передача управления исполняемому Bootstrap коду
50 Инициализация ACPI
51 Инициализация Power Management
52 Инициализация контроллера шины USB

Надеемся, информация будет и/или была полезна. Если имеются замечания или дополнения, тогда присылайте их на почту — исправим и добавим информацию.

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в рунете Pyatilistnik.org. В прошлый раз я вас научил запрещать автоматическое воспроизведение видео в хроме, многие были благодарны этой информации. Сегодня я хочу поговорить про еще одну насущную проблему, а именно как распознать сигналы BIOS. Очень часто люди производят модернизацию своего компьютера или ноутбука, элементарно меняют процессор или оперативную память, но если что-то пошло не так ваш железный конь не заведется, а вместо этого издаст некий набор звуков, вот эти звуки мы и поймем как интерпретировать и переводить на человеческий язык. Я постараюсь описать все известные мне сигналы биос, чтобы вам не пришлось бегать по разным сайтам.

Тут все просто, вы сами сможете диагностировать проблему и понимать методы ее решения. Это позволит вам не попасться на удочку недобросовестных мастеров в различных салонах по ремонту компьютерной техники.

Если компьютер издает звуковой сигнал и Windows не запускается должным образом, существует более серьезная проблема с оборудованием. Наиболее частые проблемы, вызывающие звуковой сигнал:

  • Сбои, связанные с памятью и перегревом, вызванные скоплением пыли в критических зонах охлаждения

  • Клавиша клавиатуры застряла

  • Модуль памяти DIMM или кабель жесткого диска неправильно вставлен

  • Компонент на материнской плате вышел из строя

  • Не удалось запустить базовую функцию компьютера

Что делать при появлении звукового сигнала

Прослушайте звуковой сигнал и запишите количество звуковых сигналов перед каждой паузой, если звуковые сигналы длинные или короткие, или если звуковые сигналы являются высокими или низкими. После определения шаблона используйте следующие таблицы звуковых сигналов, чтобы определить, какой компонент может вызывать проблему и обязательно выясните у себя модель производителя и тип BIOS.

Что издает звуковой сигнал БИОС?

В современных компьютерах есть такая вещь, как динамик (Speaker) — в задачи которого входит оповестить пользователя, о состоянии оборудования при включении. Speaker бывает внешний

Внешний динамик Speaker
Внешний динамик Speaker
А бывает и встроенный в материнскую плату
Встроенный Speaker
При желании его можно отключать на компьютере.

Самотестирование при включении (POST)

В статье «Как работает компьютер» я вам подробно описал процесс, когда происходит проверка компонентов и издание звуковых сигналов BIOS, но давайте я тут слегка напомню:

Когда компьютер впервые смотрит в BIOS, он начинает самотестирование при включении (POST — power-on self-test). Эта последовательность обеспечивает наличие и правильное функционирование необходимых компонентов. Если компьютер не проходит ни один из этих тестов, он обнаруживает нерегулярный POST. Нерегулярный POST — это звуковой код, который отличается от стандартного одного или двух звуковых сигналов. Например, нерегулярный POST может не генерировать звуковых сигналов или сочетать разные звуковые сигналы, чтобы указать причину сбоя.

Ниже я вам представлю подробный список нерегулярных POST сигналов биос по разных производителей. Так же вы сможете и в документации к материнской плате найти эти сигналы POST. Также можно посмотреть производителя BIOS на первой – второй заставках при загрузке компьютера. Вот пример выдержки из инструкции из раздела «Troubleshooting». 

Сигналы биос в документации к материнской плате

Звуковые коды AMI BIOS (Сигналы BIOS AMI)

Ниже приведены звуковые коды AMI BIOS с их подробными расшифровками и действиями, которые помогут их устранить. Однако из-за большого количества различных производителей компьютеров с этой BIOS звуковые коды могут отличаться. Вот так вот выглядит экран компьютера при включении, имеющего AMI BIOS.

Экран AMI BIOS

А вот так вот выглядит сам AMI BIOS, это серый фон с голубым текстом.

AMI BIOS

  • 1 короткий сигнал биос — Ошибка обновления DRAM / Второе значение, что ошибки не найдены и компьютер исправен
  • 2 коротких  сигнала — Сбой цепи четности. Два коротких звуковых сигнала означают, что в базовой памяти произошла ошибка четности. Эта проблема затрагивает первый блок памяти размером 64 КБ в вашей оперативной памяти. Файл ROM не найден в корневом каталоге
  • 3 коротких сигнала биос — Сбой ОЗУ 64 КБ. Три коротких звуковых сигнала означают, что произошла ошибка теста чтения/записи базовой памяти в первом блоке памяти размером 64 КБ. Замена ОЗУ обычно решает этот звуковой сигнал AMI биос. Если вы недавно добавили или пытались добавить дополнительную память к компьютеру и начали получать эти звуковые сигналы, удалите новую память, которую вы добавили в компьютер. Если после извлечения новой памяти компьютер работает нормально, ваша память несовместима или неисправна. Вставить следующий том мультимедиа
  • 4 коротких сигнала- Сбой системного таймера. Четыре коротких звуковых сигнала означают, что таймер материнской платы не работает должным образом, но это также может означать, что есть проблема с модулем памяти ОЗУ, который находится в нижнем (обычно помеченном 0) слоте. Обычно  этот звуковой сигнал может вызвать аппаратный сбой карты расширения (RAID контроллер, звуковая карта) или проблема с самой материнской платой. Начните с переустановки ОЗУ, а затем замените ее, если это не поможет. Если это не дало эффекта, переустановите все карты расширения, а затем замените те, которые кажутся виновными. В качестве последнего варианта заменить материнскую плату.
  • 5 коротких сигналов биос- Сбой процессора (CPU). Пять коротких звуковых сигналов означают, что произошла ошибка процессора, это очень серьезно. Этот звуковой код AMI может выдавать поврежденная карта расширения, ЦП или сама материнская плата. Начните с переустановки ЦП, возможно он греется, проверьте наличие термопасты. Если это не помогает, попробуйте переустановить все карты расширения (RAID контроллеры, звуковые карты, видеокарты). Однако есть вероятность, что потребуется замена ЦП (CPU), он мог сгореть.
  • 6 коротких сигналов BIOS — Ошибка контроллера клавиатуры Gate A20. Шесть коротких звуковых сигналов означают, что произошла ошибка теста 8042 Gate A20. Этот звуковой сигнал обычно вызван неисправностью карты расширения или материнской платы, которая больше не работает. Вы также можете столкнуться с определенным типом сбоя клавиатуры, если услышите 6 коротких звуковых сигналов. Попробуйте переустановить или заменить любые карты расширения. Наконец, возможно, вы столкнулись с серьезной неисправностью, требующей замены материнской платы.
  • 7 коротких сигналов — Ошибка исключения виртуального режима. Семь коротких звуковых сигналов указывают на общую ошибку исключения. Этот звуковой сигнал AMI может быть вызван проблемой карты расширения, аппаратной проблемой материнской платы или повреждением процессора. Замена любого неисправного оборудования, вызывающего проблему, обычно является исправлением этого звукового сигнала. Тут вам придется самим поочередно выискивать сбойную деталь. Flash EPROM не обнаружен.
  • 8 коротких сигналов — Сбой проверки чтения/записи памяти видеокарты.  Восемь коротких звуковых сигналов означают, неисправна видеокарта . Замена видеокарты обычно устраняет это, но перед покупкой замены убедитесь, что она правильно установлена ​​в слоте расширения. Иногда этот звуковой сигнал AMI возникает из-за криво воткнутой карты.
  • 9 коротких сигналов — Ошибка контрольной суммы ROM BIOS. Буквально это указывает на проблему с микросхемой BIOS на материнской плате. Однако, поскольку замена микросхемы BIOS иногда невозможна, эту проблему AMI BIOS обычно устраняют путем замены материнской платы.
  • 10 коротких сигналов — Десять коротких звуковых сигналов означают, что произошла ошибка чтения/записи регистра выключения CMOS. Этот звуковой сигнал обычно возникает из-за аппаратного сбоя микросхемы AMI BIOS. Эту проблему обычно решает замена материнской платы, хотя в редких случаях она может быть вызвана повреждением карты расширения. Прежде чем приступить к замене, начните с очистки CMOS и переустановки всех карт расширения. Сбой при стирании флеш-памяти
  • 11 коротких сигналов биос — Ошибка кеша-памяти. Одиннадцать коротких звуковых сигналов означают, что тест кэш-памяти не прошел. Обычно в этом звуковом коде AMI BIOS виновато какое-то существенное неисправное оборудование. Часто это материнская плата. Возможна ошибка прошивки.
  • 12 коротких гудков — Проблема с размером файла ROM
  • 13 коротких гудков — Образ ПЗУ не соответствует требованиям BIOS
  • 1 длинный и 2 коротких сигнала — Один длинный сигнал и два коротких сигнала обычно указывают на сбой в памяти, которая является частью видеокарты. Здесь почти всегда следует заменить видеокарту, но попробуйте сначала удалить и переустановить ее, проверьте, что она плотно воткнута, ровно.
  • 1 длинный, 3 коротких Обычный/расширенный сбой плашки памяти (Неисправна ОЗУ на видеокарте или несовместима) — Если вы слышите один длинный звуковой сигнал, за которым следуют три коротких, это связано с ошибкой, превышающей отметку 64 КБ в системной памяти компьютера. Тут либо недоткнули видеокарту, либо ее нужно менять
  • 1 длинный, 8 коротких сигналов- Не удалось выполнить тест дисплея, всему виной опять видеокарта. Один длинный сигнал, за которым следуют восемь коротких сигналов, означает, что тест видеоадаптера не прошел. Попробуйте переустановить видеокарту и убедитесь, что к источнику питания подключено все необходимое вспомогательное питание. Возможно придется ее заменить.
  • Двухтональная сирена  — Низкая скорость вращения вентилятора у процессора, проблема с уровнем напряжения. Наконец, если вы слышите чередующийся шум сирены в  любой  момент во время использования компьютера, при загрузке или после этого, вы имеете дело либо с проблемой уровня напряжения, либо с вентилятором процессора, который работает слишком медленно. Это явный признак того, что вам следует выключить компьютер и проверить вентилятор процессора и, если возможно, настройки напряжения процессора в BIOS/UEFI.
  • Сигналов нет — неисправен или не подключен к материнской плате блок питания

Коды звуковых сигналов Award BIOS (Сигналы Award BIOS)

Ниже приведены звуковые коды Award BIOS с их подробными расшифровками и действиями, которые помогут их устранить. Однако из-за большого количества различных производителей компьютеров с этой BIOS звуковые коды могут отличаться. Вот так вот выглядит экран компьютера при включении, имеющего Award BIOS.

Экран Award BIOS

А вот всем известный внешний вид Award BIOS, это голубой фон и желто-белый текст

Award BIOS

  • Отсутствие сигнала — У вас проблема с блоком питания, он либо не работает, либо не правильно подключен
  • 1 короткий сигнал — У вас все отлично и ошибок не обнаружено, ваш персональный компьютер или ноутбук полностью исправен. У меня такой сигнал постоянно при включении компьютера
  • 2 коротких сигнала — В данном случае у вас есть незначительные ошибки. Вам необходимо проверить все шлейфы от деталей подключаемых к материнской плате. Установите в BIOS значения по умолчанию
  • 1 длинный повторяющийся сигнал — В данном случае у вас проблемы с оперативной памятью. Проверьте ее правильное и плотное подключение, возможно она не исправна и вам нужно воткнуть другую. Так же нужно проверить по документации совместимость и разрядность память с вашей материнской платой.
  • 1 длинный и 1 короткий сигнал — В данном случае у вас проблемы с оперативной памятью. Проверьте ее правильное и плотное подключение, возможно она не исправна и вам нужно воткнуть другую. Так же нужно проверить по документации совместимость и разрядность память с вашей материнской платой.
  • 1 длинный и 2 коротких сигнала — Один длинный сигнал, за которым следуют два коротких сигнала, указывает на то, что в видеокарте произошла какая-то ошибка и BIOS не может инициализировать видеокарту для отображения дополнительной информации. Возможно, потребуется переустановить видеокарту или правильно подключить кабели.
  • 1 длинный, 3 коротких — Один длинный сигнал, за которым следуют три коротких сигнала, означает, что либо видеокарта не установлена, либо память на видеокарте неисправна. Повторная установка или замена видеокарты обычно устраняет причину этого звукового сигнала. В ряде случаев может быть проблема с клавиатурой.
  • 1 длинный и 9 коротких сигналов — ошибка при чтении данных из микросхемы BIOS
  • 3 длинных сигнала — неисправность контроллера клавиатуры
  • Бесконечно повторяющиеся звуковые сигналы (1 короткий повторяющийся сигнал) — Проблема с оперативной памятью или блоком питания
  • Повторяющиеся звуковые сигналы чередуются с высокой и низкой частотой — Повторяющийся звуковой сигнал высокой/низкой частоты является признаком проблемы с процессором. CPU может перегреваться или работать неправильно.
  • Повторяющиеся высокочастотные гудки во время работы ПК. Перегрев процессора (CPU)

Звуковые коды Dell (Сигналы Dell BIOS)

Ниже приведены звуковые коды для Dell BIOS с их подробными расшифровками и действиями, которые помогут их устранить. Однако из-за большого количества различных производителей компьютеров с этой BIOS звуковые коды могут отличаться. Вот так вот выглядит экран компьютера при включении, имеющего Dell BIOS.

Dell BIOS

  • 1 гудок — Повреждение или сбой ПЗУ BIOS
  • 2 гудка — Ваши планки памяти (RAM) не обнаружены
  • 3 гудка — Отказ материнской платы. Серьезный сбой на плате
  • 4 гудка — Сбой памяти (ОЗУ), обычно можно попробовать произвести ее проверку сторонними утилитами и устранить проблему. Если же она физического характера, то только замена.
  • 5 гудков — Отказ батареи CMOS
  • 6 гудков — Сбой видеокарты. Тут нужно проверить ее правильность подключения, все ли плотно установлено
  • 7 гудков — Проблемы с  процессором (ЦП). Возможен перегрев, или брак.

Звуковые коды IBM BIOS (Сигналы IBM BIOS)

Ниже приведены общие звуковые сигналы IBM BIOS. Однако из-за большого количества моделей, поставляемых с этим BIOS, звуковые коды могут отличаться.

  • Нет гудков — Тут может быть проблема  как с материнской платой, с блоком питания, с памятью или видеокартой. Отсутствие сигнала, это не хорошо в большинстве случаев
  • 1 короткий звуковой сигнал — Обычный результат POST, компьютер в порядке и готов к работе
  • 2 коротких звуковых сигнала — Ошибка POST, проверьте экран на наличие кода ошибки. Как правило вы сразу увидите корень проблем
  • Непрерывный звуковой сигнал — Нет питания или его недостаток, не видится видеокарта, ОЗУ или короткое замыкание.
  • Повторяющийся короткий звуковой сигнал — Нет питания или его недостаток, не видится видеокарта, ОЗУ или короткое замыкание.
  • 1 длинный и 1 короткий звуковой сигнал — Если вы слышите один длинный звук и один короткий, то это говорит, что у вас проблема с материнской платой
  • 1 длинный и 2 коротких сигнала — Проблема с видео (схема моно/CGA-дисплея).
  • 1 длинный и 3 коротких сигнала. Проблема с видео. Схема видео (EGA) дисплея.
  • 3 длинных сигнала — Ошибка клавиатуры или платы клавиатуры.
  • 1 звуковой сигнал — Проблема с видеокартой, которая не может вывести изображение

Звуковые коды Phoenix BIOS (Сигналы Phoenix BIOS Q3.07 ​​или 4.x)

Ниже приведены звуковые коды для Phoenix BIOS Q3.07 ​​или 4.x. с их подробными расшифровками и действиями, которые помогут их устранить. Однако из-за большого количества различных производителей компьютеров с этой BIOS звуковые коды могут отличаться. Вот как нужно интерпритировать эти сигналы, читаются как x сигналов — пауза — y сигналов — пауза — z сигналов пауза — w сигналов. Например 1-3-4-1 — один — пауза — три — пауза — четыре — пауза — один.

  • 1-1-1-1 — Чаще всего проблема с системной памятью. Эта проблема Phoenix BIOS обычно устраняется заменой ОЗУ или извлечением одной из плат памяти
  • 1-1-1-3 — Проверка режима Real Mode. Реальный режим , также называемый режимом реального адреса , — это режим работы всех x86- совместимых процессоров . Этот режим получил свое название от того факта, что адреса в реальном режиме всегда соответствуют реальным ячейкам памяти.
  • 1-1-2-1 — Bios не может получить тип процессора, попробуйте указать его вручную, может быть проблема с материнской платой
  • 1-1-2-3 — Необходимо заново инициализировать системное оборудование.
  • 1-1-3-1 — Не удалось выполнить тест с начальными значениями POST.
  • 1-1-3-2 — Необходимо установить флаг POST.
  • 1-1-3-3 — Необходимо инициализировать CPU.
  • 1-1-4-1 — Необходимо инициализировать кеш до начальных значений POST.
  • 1-1-4-3 — Необходимо инициализировать устройства ввода-вывода.
  • 1-2-1-1 — Необходимо инициализировать управление питанием.
  • 1-2-1-2 — Загрузите альтернативные регистры с начальными значениями POST.
  • 1-2-1-3 — Перейти на контрольную метку UserPatch0.
  • 1-2-2-1 — Необходимо инициализировать контроллер клавиатуры.
  • 1-2-2-3 — Шаблон звукового сигнала 1-2-2-3 означает, что произошла ошибка контрольной суммы ПЗУ в BIOS. Буквально это указывает на проблему с микросхемой BIOS на материнской плате. Поскольку замена микросхемы BIOS зачастую невозможна, эта проблема Phoenix BIOS обычно устраняется заменой всей материнской платы.
  • 1-2-3-1 — Ошибка инициализации 8254 таймера.
  • 1-2-3-3  — Ошибка инициализации контроллера DMA 8237.
  • 1-2-4-1 — Необходимо сбросить программируемый контроллер прерываний.
  • 1-3-1-1 — Данный звуковой код 1-3-1-1 в системе PhoenixBIOS означает, что при тестировании обновления DRAM возникла проблема. Это может быть проблема с системной памятью, картой расширения или материнской платой.
  • 1-3-1-3 — Протестируйте контроллер клавиатуры 8742. Шаблон звукового сигнала 1-3-1-3 означает, что тест контроллера клавиатуры 8742 не прошел. Обычно это означает, что есть проблема с подключенной в данный момент клавиатурой, но это также может указывать на проблему с материнской платой.
  • 1-3-2-1 — Установите для сегмента ES значение 4 ГБ.
  • 1-3-3-1 — Проблема автоматического изменение размера DRAM.
  • 1-3-3-3 — Очистите 512 КБ базовой ОЗУ.
  • 1-3-4-1 — Протестируйте 512 базовых адресных строк. — Шаблон звукового сигнала 1-3-1-1 в системе PhoenixBIOS означает, что существует какая-то проблема с ОЗУ. Обычно эту проблему решает замена системной памяти.
  • 1-3-4-3 — Проблема тестирования базовой памяти 512 КБ — Шаблон звукового сигнала 1-3-1-1 указывает на некую проблему с памятью. Замена оперативной памяти — обычная рекомендация для решения этой проблемы.
  • 1-4-1-1 — Шаблон звукового сигнала 1-4-1-1 в системе PhoenixBIOS означает, что существует проблема с системной памятью. Обычно эту проблему решает замена оперативной памяти.
  • 1-4-1-3 — Необходимо проверить тактовую частоту CPU.
  • 1-4-2-4 — Повторно инициализируйте набор микросхем.
  • 1-4-3-1 — Проблема с оперативной памятью.
  • 1-4-3-2 — Повторно инициализируйте кеш.
  • 1-4-3-3 — Автоматическое изменение размера кеша.
  • 1-4-4-1 — Настройте расширенные регистры набора микросхем.
  • 1-4-4-2 — Загрузите альтернативные регистры со значениями CMOS. Необходимо обновить BIOS
  • 2-1-1-1 — Необходимо задать базовую частоту процессора.
  • 2-1-1-3 — Инициализировать векторы прерывания.
  • 2-1-2-1 — Необходимо инициализировать прерывания BIOS.
  • 2-1-2-3 — Шаблон звукового сигнала 2-1-2-3 означает, что произошла ошибка ПЗУ BIOS, что означает проблему с микросхемой BIOS на материнской плате. Эта проблема Phoenix BIOS обычно устраняется заменой материнской платы.
  • 2-1-2-4 — Проблема с подключением ОЗУ или другого устройства в PCI, проверьте контакт.
  • 2-1-3-1 — Проверьте конфигурацию видео в CMOS.
  • 2-1-3-2 — Инициализируйте шину PCI и устройства.
  • 2-1-3-3 — Инициализируйте все видеокарты в системе.
  • 2-1-4-1 — Проблема с памятью в видеокарте
  • 2-1-4-3 — Проблема с памятью или PCI устройством
  • 2-2-1-1 — Проблема с процессором и отображением скорости работы
  • 2-2-1-3 — Необходимо протестировать контроллер клавиатуры и само устройство.
  • 2-2-2-1 — Установите нажатие клавиши, если включено.
  • 2-2-2-3 — Необходимо включить клавиатуру.
  • 2-2-3-1 — Проверить на непредвиденные прерывания. Шаблон звукового сигнала 2-2-3-1 в системе PhoenixBIOS означает, что возникла проблема при тестировании оборудования, связанного с IRQ. Это может быть аппаратная проблема, неправильная конфигурация карты расширения или какой-либо сбой материнской платы.
  • 2-2-3-3 — Подсказка на дисплее Нажмите F2, чтобы войти в BIOS для настройки .
  • 2-2-4-1 — Необходимо протестировать оперативную память на участках блоков между 512 и 640 КБ.
  • 2-3-1-1 — Необходимо протестировать расширенную память.
  • 2-3-1-3 — Необходимо протестировать адресные строки расширенной памяти.
  • 2-3-2-1 — Перейти на контрольную метку UserPatch1.
  • 2-3-2-3 — Настройте расширенные регистры кэша.
  • 2-3-3-1 — Включите внешний кэш и кэш CPU.
  • 2-3-3-3 — Показать размер внешнего кеша.
  • 2-3-4-1 — Показать теневое сообщение.
  • 2-3-4-3 — Покажите одноразовые сегменты.
  • 2-4-1-1 — Посмотрите сообщения об ошибках
  • 2-4-1-3 — Проверьте наличие ошибок конфигурации.
  • 2-4-2-1 — Проверьте настройки часов.
  • 2-4-2-3 — Проверьте наличие ошибок клавиатуры.
  • 2-4-4-1 — Настройте векторы аппаратных прерываний.
  • 2-4-4-3 — Необходимо проверить сопроцессор, если он есть.
  • 3-1-1-1 — Отключите встроенные порты ввода-вывода.
  • 3-1-1-3 — Необходимо обнаружить и установить внешние порты RS232.
  • 3-1-2-1 — Необходимо обнаружить и установить внешние параллельные порты.
  • 3-1-2-3 — Повторно инициализируйте встроенные порты ввода-вывода.
  • 3-1-3-1 — Необходимо заново инициализировать BIOS.
  • 3-1-3-3 — Необходимо инициализировать расширенную область данных BIOS.
  • 3-1-4-1 — Необходимо инициализировать контроллер гибких дисков (Флопик).
  • 3-2-1-1 — Необходимо инициализировать контроллер жесткого диска.
  • 3-2-1-2 — Необходимо инициализировать контроллер жесткого диска локальной шины.
  • 3-2-1-3 — Перейти на контрольную метку к UserPatch2.
  • 3-2-2-1 — Отключить адресную строку A20.
  • 3-2-2-3 — Очистить регистр огромного сегмента ES.
  • 3-2-3-1 — Найдите дополнительные ПЗУ.
  • 3-2-3-3 — ПЗУ с теневым вариантом.
  • 3-2-4-1 — Настройте управление питанием.
  • 3-2-4-3 — Необходимо разрешить аппаратные прерывания.
  • 3-3-1-1 — Установите время суток.
  • 3-3-1-3 — Проверьте блокировку клавиш.
  • 3-3-3-1 — Удалите подсказку F2.
  • 3-3-3-3 — Нажатие клавиши F2.
  • 3-3-4-1 — Войдите в настройки CMOS.
  • 3-3-4-3 — Очистить флаг POST.
  • 3-4-1-1 — Проверка оборудования выполнена на наличие ошибок
  • 3-4-1-3 — POST выполнен, подготовьтесь к загрузке операционной системы.
  • 3-4-2-1 — все ок
  • 3-4-2-3 — Проверить пароль (необязательно).
  • 3-4-3-1 — Очистить глобальную таблицу дескрипторов.
  • 3-4-4-1 — Очистить средства проверки четности.
  • 3-4-4-3 — Очистить экран (необязательно).
  • 3-4-4-4 — Проверьте напоминания о вирусах и резервном копировании.
  • 4-1-1-1 — Попробуйте загрузиться с INT 19.
  • 4-2-1-1 — Ошибка обработчика прерывания.
  • 4-2-1-3 — Ошибка обработчика прерывания.
  • 4-2-2-1 — Ошибка обработчика прерывания.
  • 4-2-2-3 — Ошибка инициализации дополнительного ПЗУ.
  • 4-2-3-1 — Ошибка выключения.
  • 4-2-3-3 — Расширенный ход блока.
  • 4-2-4-1 — Ошибка выключения 10.
  • 4-3-1-3 — Необходимо инициализировать набор микросхем.
  • 4-3-1-4 — Необходимо инициализировать счетчик обновления.
  • 4-3-2-1 — Проверьте Forced Flash
  • 4-3-2-2 — Необходимо проверить аппаратное состояние ПЗУ.
  • 4-3-2-3 — Проверка ПЗУ в BIOS пройдена.
  • 4-3-2-4 — Необходимо выполнить полный тест памяти RAM.
  • 4-3-3-1 — Сделайте OEM инициализацию.
  • 4-3-3-2 — Необходимо инициализировать контроллер прерываний.
  • 4-3-3-3 — Прочтите код начальной загрузки.
  • 4-3-3-4 — Необходимо инициализировать все векторы.
  • 4-3-4-1 — Проблема с прошивкой BIOS
  • 4-3-4-2 — Инициализируйте загрузочное устройство.
  • 4-3-4-3 — Загрузочный код прочитан нормально.
  • Двухтональная сирена — Низкая скорость вращения вентилятора процессора, проблема с уровнем напряжения.

Звуковые коды BIOS для HP и Compaq

Ниже приведены общие звуковые сигналы HP BIOS. Однако из-за большого количества моделей, поставляемых с этим BIOS, звуковые коды могут отличаться. При восстановлении, прошивки или обновлении BIOS могут возникать следующие звуковые сигналы:

  • 1 короткий звуковой сигнал — Устаревший дисковод гибких дисков или дисковод CD/DVD не обнаружен
  • 2 коротких звуковых сигнала — Дискета или компакт-диск не обнаружены
  • 3 коротких звуковых сигнала — Невозможно начать перепрошивку (например, при отсутствии утилиты или образа BIOS)
  • 4 коротких звуковых сигнала — Ошибка прошивки (ошибка контрольной суммы, поврежденный образ и т.д.)
  • 5 коротких звуковых сигналов — Восстановление BIOS прошло успешно
  • 2 коротких сигнала, 2 длинных сигнала — Восстановление BIOS прошло успешно
  • 1 короткий сигнал и 1 длинный сигнал — Проблема с памятью
  • 2 коротких сигнала и 1 длинный сигнал (повторяется 5 раз) — Невозможно инициализировать видео или видеокарту
  • 3 коротких сигнала и 1 длинный сигнал — Ошибка конфигурации CPU или тип CPU несовместим

Звуковые коды AST Research BIOS

Ниже приведены общие звуковые сигналы AST Research BIOS. Однако из-за большого количества моделей, поставляемых с этим BIOS, звуковые коды могут отличаться.

  • 1 короткий звуковой сигнал —  Не удалось выполнить проверку низкоуровневого процессора (POST 1)
  • 2 коротких звуковых сигнала — Не удалось очистить буферы контроллера клавиатуры (POST 2)
  • коротких звуковых сигнала — Ошибка сброса контроллера клавиатуры (POST 3)
  • коротких звуковых сигнала — Тест интерфейса контроллера клавиатуры низкого уровня (POST 4)
  • коротких звуковых сигналов — Ошибка чтения данных с контроллера клавиатуры (POST 5)
  • 6 коротких звуковых сигналов — Ошибка инициализации микросхемы поддержки системной платы (POST 6)
  • коротких звуковых сигналов — Ошибка проверки чтения / записи регистра процессора (POST 7)
  • коротких звуковых сигналов — Ошибка инициализации таймера CMOS (POST 8)
  • коротких звуковых сигналов — Ошибка проверки контрольной суммы ROM BIOS (POST 9)
  • 10 коротких звуковых сигналов — Инициализировать основное видео (POST 10)
  • 11 коротких звуковых сигналов — 8254 ошибка при тестировании 0 канала таймера (POST 11)
  • 12 коротких звуковых сигналов — 8254 ошибка при тестировании 1 канала таймера (POST 12)
  • 13 коротких звуковых сигналов — 8254 ошибка теста таймера 2 канала (POST 13)
  • 14 коротких звуковых сигналов -Ошибка включения питания CMOS и проверки времени (POST 14)
  • 15 коротких звуковых сигналов — Ошибка при проверке байта отключения CMOS (POST 15)
  • 1 длинный звуковой сигнал —  Ошибка теста 0 канала DMA (POST 16)
  • 1 длинный и 1 короткий звуковой сигнал —  Ошибка теста 1 канала DMA (POST 17)
  • 1 длинный и 2 коротких сигнала — Ошибка при проверке регистрации страницы DMA (POST 18)
  • 1 длинный и 3 коротких сигнала — Ошибка теста интерфейса контроллера клавиатуры (POST 19)
  • 1 длинный и 4 коротких сигнала — Не удалось выполнить тест переключения обновления памяти (POST 20)
  • 1 длинный и 5 коротких сигналов — Не удалось выполнить первый тест памяти объемом 64 КБ (POST 21)
  • 1 длинный и 6 коротких сигналов — Ошибка установки таблицы векторов прерываний (POST 22)
  • 1 длинный и 7 коротких сигналов — Ошибка инициализации видео (POST 23)
  • 1 длинный и 8 коротких сигналов — Ошибка теста видеопамяти (POST 24)

Вот как нужно интерпритировать эти сигналы, читаются как x сигналов — пауза — y сигналов — пауза — z сигналов

  • 1-1-3 — Ошибка чтения/записи CMOS
  • 1-1-4 — Ошибка контрольной суммы ROM BIOS
  • 1-2-1 — Сбой программируемого интервального таймера. Неисправна материнская плата
  • 1-2-2 — Ошибка инициализации DMA
  • 1-2-3 — Ошибка чтения/записи регистра страницы контроллера DMA. Ошибка при попытке чтения/записи в один из каналов DMA
  • 1-3-1 — Ошибка проверки обновления ОЗУ. Ошибка регенерации оперативной памяти
  • 1-3-3 — Сбой первого чипа RAM 64 КБ. Ошибка при тестировании первых 64 Кб оперативной памяти
  • 1-3-4 — Сбой первого чипа RAM 64 КБ. Ошибка при тестировании первых 64 Кб оперативной памяти
  • 1-4-1 — Сбой первой адресной строки ОЗУ 64 КБ
  • 1-4-2 — Сбой проверки четности первых 64 КБ ОЗУ
  • 2-1-1 — Проблемы с первыми 64к памяти бит 0
  • 2-1-2 — Проблемы с первыми 64к памяти бит 1
  • 2-1-3 — Проблемы с первыми 64к памяти бит 2
  • 2-1-4 — Проблемы с первыми 64к памяти бит 3
  • 2-2-1 — Проблемы с первыми 64к памяти бит 4
  • 2-2-2 — Проблемы с первыми 64к памяти бит 5
  • 2-2-3 — Проблемы с первыми 64к памяти бит 6
  • 2-2-4 — Проблемы с первыми 64к памяти бит 7
  • 2-3-1 — Проблемы с первыми 64к памяти бит 8
  • 2-3-2 — Проблемы с первыми 64к памяти бит 9
  • 2-3-3 — Проблемы с первыми 64к памяти бит A
  • 2-3-4 — Проблемы с первыми 64к памяти бит B
  • 2-4-1 — Проблемы с первыми 64к памяти бит C
  • 2-4-2 — Проблемы с первыми 64к памяти бит D
  • 2-4-3 — Проблемы с первыми 64к памяти бит E
  • 2-4-4 — Проблемы с первыми 64к памяти бит F
  • 3-1-1  — Ошибка инициализации второстепенного канала DMA
  • 3-1-2— Ошибка инициализации основного канала DMA
  • 3-1-3 — Сбой регистра маски прерывания второстепенного устройства. Неисправна материнская плата
  • 3-1-4 — Сбой маски прерывания ведомого второстепенного устройства. Неисправна материнская плата
  • 3-2-4 — Ошибка теста контроллера клавиатуры
  • 3-3-4 — Ошибка тестирования видеопамяти
  • 3-4-1  — Ошибка инициализации видеокарты
  • 3-4-2 — Ошибка видеокарты
  • 3-4-3 — Ошибка поиска видео ROM
  • 4-2-1 — Ошибка системного таймера
  • 4-2-3 — Выход из строя Gate-A20
  • 4-2-4 — Неожиданное прерывание в защищенном режиме. Возможно, неисправен центральный процессор;
  • 4-3-1 —  Ошибка при тестировании оперативной памяти
  • 4-3-4 — Ошибка часов реального времени
  • 4-4-1 — Ошибка тестирования последовательного порта. Может быть вызвана устройством, использующим данный порт
  • 4-4-2 — Ошибка при тестировании параллельного порта. См. выше
  • 4-4-3 — Ошибка при тестировании математического сопроцессора

Дополнительные методы устранения проблем при звуковых сигналах BIOS

Выполните следующие шаги, чтобы устранить проблемы со звуковым сигналом.

  • Выключите компьютер, а затем отсоедините шнур питания. После выполнения задачи закройте все крышки, снова подсоедините шнур питания, включите компьютер и прислушайтесь к звуковому сигналу.
  • Удалите все носители из дисководов для гибких дисков, дисководов CD/DVD, портов USB и слотов для чтения карт памяти, а также отключите все второстепенные устройства (принтеры, сканеры, внешние жесткие диски и т.д.)
  • Отсоедините мышь и клавиатуру, а затем перезагрузите компьютер. Если звуковой сигнал прекратился, отремонтируйте или замените эти устройства.
  • Горячий воздух может повредить внутренние компоненты! Удалите все препятствия, закрывающие вентиляционные отверстия. Очистите вентиляционные отверстия на корпусе от пыли. Если охлаждающие вентиляторы перестают вращаться или издают странные звуки, отремонтируйте компьютер.
  • Снимите крышку корпуса и переустановите все модули памяти. Если компьютер перестает пищать, возможно, модуль памяти не полностью вставлен или не подключен.
  • Если в компьютере несколько модулей памяти, включите компьютер только с одним установленным модулем памяти. Если компьютер перестает пищать, возможно, неисправен модуль памяти или тип памяти не подходит для материнской платы. Снова вставьте память в сокет, чтобы убедиться, что проблема связана с подключением; в противном случае замените модуль. Повторите этот процесс для всех модулей памяти, установленных в компьютере.

Часто бывает так, что даже опытный сисадмин забывает коды и сигналы BIOS (тем более, что новые материнские платы уже вовсю комплектуются UEFI), что уж говорить про не профессионала. Да и знания сигналов помогут быстро, а в бытовых случаях еще и зачастую бесплатно решить проблему с не стартующим компьютером или ноутбуком.

Распознаем коды phoenix ami и award bios с помощью звуковых команд.

Так выглядят микросхемы BIOS от AWARD AMI и Phoenix.

Что такое BIOS. Основные понятия

Кстати, для справки: BIOS — это Basic Input-Output system или по-русски говоря, базовая система ввода-вывода. Иными словами, это программа низкого уровня, вшитая намертво в чип материнской платы вашего компьютера. BIOS загружается при включении компьютера и отвечает за инициализацию его аппаратных компонентов, проверку их работоспособности и корректности запуска. Затем, запускается  программа-загрузчик, запускающую операционную систему Windows, Linux ну или что у вас там установлено…

Экран прохождения post- теста BIOS от AMI

Экран прохождения post- теста BIOS от AMI

Тут надо сделать небольшое отступление и рассказать, что сигналы этого самого BIOS могут отличаться в зависимости от фирмы-производителя. Рассмотрим самые популярные варианты, всего их будет три – AMI BIOS,  AWARD BIOS, Phoenix BIOS.

Под катом таблицы с описанием ошибок BIOS.

Звуковые сигналы AMI BIOS

Во всех версиях AMI BIOS успешным окончанием самотестирования является один короткий звуковой сигнал, после которого происходит загрузка установленной OC. Другие звуковые сигналы AMI BIOS я указал в таблице:

Звуковой сигнал

Описание

2 коротких

Ошибка чётности оперативной памяти

3 коротких

Ошибка защищенного сектора 64 Кб оперативной памяти

4 коротких

Неисправность системного таймера материнской платы

5 коротких

Неисправность центрального процессора

6 коротких

Ошибка клавиатуры

7 коротких

Общая неисправность материнской платы

8 коротких

Неисправность памяти видеокарты

9 коротких

Ошибка контрольной суммы BIOS

10 коротких

Невозможно выполнить запись в CMOS

11 коротких

Ошибка оперативной памяти

1 длинный и 1 короткий

Неисправность блока питания

1 длинный и 2 коротких

Ошибка работы видеокарты

1 длинный и 3 коротких

Ошибка работы видеокарты

1 длинный и 4 коротких

Отсутствует видеокарта, видеокарта не найдена

1 длинный и 8 коротких

Не подключен монитор, проблемы с видеокартой

3 длинных

Неполадки с оперативной памятью, тест памяти не пройден

5 коротких и 1 длинный

Отсутствует оперативная память

постоянный сигнал

Проблемы с блоком питания, перегрев ПК

Звуковые сигналы AWARD BIOS

C корректным сигналом пост-теста тут все так же, как и у предыдущего варианта – один короткий звуковой сигнал AWARD BIOS означает, что все ОК.

Остальные сигналы несколько отличаются – смотрим в таблицу:

Звуковой сигнал

Описание

1 короткий, повторяющийся

Неисправность блока питания

1повторяющийся, длинный

Неисправность оперативной памяти

3 длинных

Ошибка клавиатуры

1 длинный и 1 короткий

Неисправность оперативной памяти

1 длинный и 2 коротких

Ошибка работы видеокарты

1 длинный и 3 коротких

Ошибка клавиатуры

1 длинный и 9 коротких

Ошибка чтения ПЗУ

1 длинный и 8 коротких

Не подключен монитор, проблемы с видеокартой

3 длинных

Неполадки с оперативной памятью, тест памяти не пройден

постоянный сигнал

Проблемы с блоком питания, перегрев ПК

Звуковые сигналы Phoenix BIOS

Третья версия сигналов от Phoenix. БИОС от этого производителя встречается все реже, но тем не менее.

Тут надо сказать, что с ним все не так, как с предыдущими двумя. Да-да, ребята решили выпендриться, и сделать не так как у всех сигналы у них не двойные, а тройные. На практике это значит лишь то, что например, сигнал о проблемах с подачей питания на видеокарту будет выглядеть как три коротких сигнала, пауза, три коротких сигнала, пауза, потом 4 коротких сигнала. В таблице я их запишу как 3–3–4. Итак, поехали…

Коды ошибок от Phoenix:

Звуковой
сигнал

Описание

112

Ошибка центрального процессора

113

Ошибка записи в CMOS, неисправность материнской
платы

114

Ошибка в контрольной сумме BIOS ROM

121

Неисправен таймер прерываний

122

Ошибка контроллера DMA

1–23

Ошибка чтения или записи контроллера DMA

132

Ошибка оперативной памяти

133

Ошибка контроллера оперативной памяти

134

Ошибка контроллера оперативной памяти

141

Ошибка адресной оперативной памяти

142

Ошибка четности оперативной памяти

324

Ошибка
клавиатуры

331

Неисправность батарейки CMOS на материнской плате

334

Неисправность видеокарты

341

Неисправность видеокарты

421

Неисправность системного таймера

422

Ошибка CMOS

423

Неисправность  клавиатуры

424

Ошибка работы центрального процессора

431

Ошибка в тесте оперативной памяти

433

Ошибка таймера

434

Ошибка в работе RTC

441

Неисправность последовательного порта

442

Неисправность параллельного порта

443

Неполадки в работе сопроцессора

Хочется лишь добавить, что в случае самостоятельного ремонта ПК или ноутбука всегда отключайте его от сети питания и уже потом  можете спокойно лезть внутрь вооружившись отверткой и прочим необходимым инструментом.

В следующей статье я расскажу про UEFI. Что это такое, зачем она к нам пришла и прочие интересные моменты.

P.S. В некоторых случаях с ошибками по памяти помогает вытащить планки памяти из слотов, протереть контакты плат оперативной памяти обычным мягким ластиком и память снова в строю! Если память не сгорела а просто сбоит, то можно попробовать так же поменять платы с оперативной памятью местами по банкам, при условии, что сама память которую вы местами меняете одинаковая.

P.P.S.  В конце этой статьи выкладываю просто таблицы кодов трех BIOS в виде картинок. Их можно использовать как шпаргалку сохранив на телефон, планшет или компьютер.

Шпаргалки с описанием сигналов BIOS для печати

Звуковые коды ami bios в удобной таблице

Звуковые коды award bios в удобной таблице

Звуковые коды phoenix bios в удобной таблице

Вроде бы все что хотел написать – написал. Старался чётко и без воды, как всегда. Если есть какие-то вопросы – отвечаю в комментариях.

По сравнению со звуковыми сигналами других производителей BIOS звуковые сигналы BIOS AMI отличаются большим разнообразием. В большинстве  случаев эти звуковые сигналы позволяют определить неисправность еще на стадии загрузки компьютера и процедуры проверки оборудования POST. Как правило, для определения того компонента, который вызывает проблему, необходимо лишь сосчитать количество издаваемых системным динамиком сигналов.

звуковые сигналы ami bios

Ниже приведены звуковые сигналы, издаваемые BIOS AMI. Во всех случаях указано  количество сигналов и их тип (длинные/короткие).

  • Нет сигналов

Данная ситуация, возможно, самая неприятная из тех, с которыми может столкнуться пользователь. Как правило, она означает, что питание на материнскую плату  не подается или BIOS вообще неисправна. Отсутствие питания на материнской плате обычно означает либо неисправность/обрыв кабеля питания, либо неисправность блока питания компьютера.

  • Один короткий

Один-единственный короткий сигнал – это тот самый сигнал, который привыкли слышать каждый раз при запуске ПК все пользователи. Он означает, что никаких ошибок и проблем в ходе проверки оборудования не было обнаружено, и компьютер может загружаться дальше.

  • Длинный непрерывный

Такой  сигнал означает, что неисправен блок питания ПК. Тем не менее, в отличие от ситуации с полным отсутствием сигналов, в данном случае питание на материнскую плату поступает, однако его параметры не соответствуют номиналу.

  • Два коротких

Этот сигнал говорит об ошибке в оперативной памяти. Данная ошибка может свидетельствовать как о неисправности самих модулей памяти, так и всего лишь о том, что какой-то из модулей плохо вставлен в слот.

  • Три коротких

Данная разновидность сигнала тоже свидетельствует об ошибке в ОЗУ. Но это ошибка довольно специфическая и редко встречающаяся – это ошибка в первых 64 КБ оперативной памяти.

  • Четыре коротких

Данный сигнал говорит о неисправности  системного таймера. К счастью, подобный вид неисправности встречается нечасто, однако нередко единственным способом его устранения является замена всей материнской платы.

  • Пять коротких

Подобным образом BIOS сообщает пользователю о неисправности сердца персонального компьютера – центрального процессора. Однако далеко не всегда данная неисправность может быть связана с дефектом самого чипа процессора. Часто для устранения проблемы достаточно бывает проверить надежность установки процессора в сокете.

  • Шесть коротких

Это сообщение указывает на неисправность контроллера клавиатуры, а также на отсутствие самой клавиатуры. Очень часто для исправления подобной ситуации достаточно бывает проверить контакт в разъеме клавиатуры на системном блоке.

  • Семь коротких

Подобный набор звуков указывает на довольно серьезную неисправность – а именно, на отказ системной платы. Впрочем, иногда ошибка может исчезнуть после проверки контактов кабеля питания на системной плате.

  • Восемь коротких

Сообщение BIOS, свидетельствующее об отказе видеопамяти. Но здесь, как и при многих других ошибках, иногда проблема может заключаться всего лишь в плохом контакте – в данном случае, между слотом материнской платы и видеокартой.

  • Девять коротких

В данном случае BIOS сигнализирует об ошибке контрольной суммы памяти BIOS. Причины данного явления могут быть разными – ошибка в новой версии BIOS или случайный сбой в памяти CMOS. Часто проблему можно исправить перепрошивкой BIOS.

  • Десять коротких

При таком наборе сигналов БИОС сообщает об ошибке записи в память CMOS. Как правило, эта ошибка серьезнее предыдущей и часто требует вмешательства специалиста из сервисной мастерской.

  • Одиннадцать коротких

Если вы сумели досчитать до одиннадцати и не сбиться, то знайте, что BIOS сигнализирует вам об ошибке расположенной на материнской плате кэш-памяти. В этом случае обычно требуется замена микросхемы кэш-памяти.

  • Один длинный, затем два, три или восемь коротких

Этот тип информационного сообщения говорит пользователю о наличии ошибок видеокарты. Обычно подобные звуковые сигналы подаются только при использовании старых видеокарт (Mono/CGA/EGA), поэтому шанс встретиться с ними в настоящее время крайне мал. В большинстве случаев данная неисправность ликвидируется при помощи тщательной установки видеокарты в разъеме.

6 декабря 2010, понедельник
23:42

MSI 3060 Ti Ventus OC дешевле 40 тр

3070 Gigabyte Gaming за 50 тр с началом

-20% на RTX 4070 Ti — скидки начались

3080 дешевле 70 тр — цены снова пошли вниз

-13% на 13900K в Ситилинке

3060 Gigabyte Gaming за 30 тр с началом

Этот материал написан посетителем сайта, и за него начислено вознаграждение.

Вступление

Ошибки возникают в работе любого оборудования и часто в самый неожиданный момент, например, во время игры происходит зависание, после которого компьютер отказывается грузиться и показывает неизвестную вам надпись или просто пищит. Чтобы быстро решить проблему нужно знать, что привело к появлению ошибки: умерла какая-то плата, посыпался винчестер или просто запылился вентилятор на процессоре и произошёл перегрев.

Для решения таких проблем BIOS, являющийся основой любого компьютера и предназначенный для настройки оборудования и обеспечения функций ввода/вывода, имеет широкие диагностические возможности, которые выявляют ошибки и сообщают об этом с помощью звуковых сигналов и сообщений.

Процедура тестирования — POST

Давайте рассмотрим как происходит запуск ПК. После нажатия кнопки питания компьютера включается блок питания, и, если все питающие напряжения в допустимых значениях, включается центральный процессор, который обращается к микросхеме BIOS для выполнения процедуры тестирования (POSТ):

    инициализируются и настраиваются процессор, чипсет, оперативная пямять и видеоадаптер;
    проверяется контрольная сумма CMOS-памяти и состояние батарейки (в случае неправильной контрольной суммы CMOS-памяти настройки сбрасываются);
    тестируются процессор и оперативная память;
    инициализируются и настраиваются периферийные устройства;
    распределяются ресурсы между устройствами;
    инициализируются устройства с собственной BIOS;
    вызывается загрузчик операционной системы;

В случае успешного завершения процедуры POST, запускается система инициации загрузочного сектора (на приведённом ниже скриншоте POST не пройден из-за ошибки контрольной суммы CMOS). Если обнаружена ошибка, проверка останавливается с подачей звуковых сигналов или вывода сообщения на экран монитора.

Основные сообщения об ошибках для AMI, Award и Phoenix BIOS

    8042 Gate — A20 Error — ошибка линии A20, которая управляется при помощи контроллера клавиатуры.
    Adress Line Short — ошибка схемы адресации памяти.
    Bad Cache Memory — Do not Enable — кэш-память неисправна.
    Bad PnP Serial ID Checksum — ошибка контрольной суммы идентификационного номера Plug and Play-устройсва.
    Boot Error — Press To Retry — система не обнаружила ни одного загрузочного диска.
    BIOS ROM Checksum error — System halted — система заблокирована из-за неправильной контрольной суммы BIOS.
    BIOS Update For Installed CPU Failed — ошибка в обновлении микрокода центрального процессора.
    BootSector Write! — обнаружена попытка записи в загрузочный сектор жёсткого диска.
    C: Drive Error — ошибка жёсткого диска.
    C: Drive Failure — ошибка жёсткого диска.
    Driver Error C: — ошибка жёсткого диска.
    Cache Memory Bad — неисправность кэш-памяти.
    CH -2 Timer Error — ошибка второго таймера системной платы.
    Checking NVRAM — обновление конфигурации компьютера.
    CMOS Battery State Low — батарея питания CMOS на системной плате разрядилась.
    CMOS Battery Failed — батарея питания CMOS на системной плате разрядилась.
    System Battery Is Dead — батарея питания CMOS на системной плате разрядилась.
    CMOS Checksum Failure — ошибка контрольной суммы CMOS-памяти, все настройки BIOS будут выставлены по умолчанию.
    CMOS Checksum Error — Defaults Loaded — ошибка контрольной суммы CMOS-памяти, все настройки BIOS будут выставлены по умолчанию.
    CMOS Memory Size Mismatch — объём оперативной памяти не совпадает с данными CMOS-памяти.
    CMOS System Options Not Set — значения в CMOS-памяти ошибочны либо отсутствуют.
    CMOS Time and Date Not Set — значения времени и даты в CMOS-памяти нарушены либо отсутствуют.
    CPU Has Been Changed, Or CPU Ratio Changed Fail — частота шины или коэффициент умножения были изменены.
    Disk Boot Failure, Insert System Disk And Press Enter — не было обнаружено загрузочное устройство.
    Diskette Boot Failure — ошибка при загрузке дискеты.
    DMA Error — ошибка контроллера DMA.
    DMA #1 Error — ошибка канала первичного контроллера DMA.
    DMA #2 Error — ошибка канала вторичного контроллера DMA.
    DMA Bus Time out — неисправность контроллера DMA или одного из периферийных устройств.
    Multi-Bit ECC Error — множественная ошибка чётности в модуле памяти.
    Parity Error — критическая ошибка контроля чётности, продолжение работы будет остановлено.
    RAM R/W test failed — POST чтения/записи оперативной памяти не пройден.
    CMOS Memory Size Wrong — объём оперативной памяти не соответствует данным CMOS.
    Boot Failure… — ошибка загрузки.
    Invalid Boot Diskette — дискета не является загрузочной.
    Drive Not Ready — устройство не готово.
    Insert BOOT diskette in A: — вставьте загрузочную дискету в дисковод «A”.
    Reboot and Select proper Boot device or Insert Boot Media in selected Boot device — перезагрузите ПК и выберите другое загрузочное оборудование или вставьте загрузочный диск в выбранное устройство.
    NO ROM BASIC — не найдено ПЗУ с интерпретатором BASIC.
    Primary Master Hard Disk Error — ошибка подключения накопителя как основного к первичному каналу стандартного IDE/SATA-контроллера.
    Primary Slave Hard Disk Error — ошибка подключения накопителя как дополнительного к первичному каналу стандартного IDE/SATA-контроллера.
    Primary Master Drive — ATAPI Incompatible — накопитель, подключенный как основной к первичному каналу стандартного IDE/SATA-контроллера, не является ATAPI-устройством.
    Primary Slave Drive — ATAPI Incompatible — накопитель, подключенный как ведомый к первичному каналу стандартного IDE/SATA-контроллера, не является ATAPI-устройством.
    S.M.A.R.T. Capable but Command Failed — ошибка при отправке команды накопителю с поддержкой S.M.A.R.T.
    S.M.A.R.T. Command Failed — ошибка при отправке команды накопителю с поддержкой S.M.A.R.T.
    S.M.A.R.T. Status BAD, Backup and Replace — накопитель, поддерживающий S.M.A.R.T., находится в неудовлетворительном состоянии.
    S.M.A.R.T. Capable and Status BAD — накопитель, поддерживающий S.M.A.R.T., находится в неудовлетворительном состоянии.
    VIRUS: Continue (Y/N)? — запрос на перезапись загрузочного сектора.
    Microcode Error — ошибка загрузки микрокода в процессор, исправляющий известные ошибки.
    NVRAM Checksum Bad, NVRAM Cleared — ошибка контрольной суммы содержимого CMOS-памяти, CMOS-память очищена.
    Resource Conflict — конфликт ресурсов: несколько устройств пытаются использовать одни и те же системные ресурсы.
    NVRAM Ignored — системная конфигурация, сохранённая в CMOS-памяти, проигнорирована.
    NVRAM Bad — в системной конфигурации содержатся ошибки.
    Static Resource Conflict — несколько устройств пытаются использовать одни и те же системные ресурсы.
    PCI I/O conflict — конфликт ресурсов ввода/вывода устройств на шине PCI.
    PCI ROM conflict — конфликт ресурсов устройств на шине PCI.
    PCI IRQ conflict — устройства на шине PCI используют один и тот же ресурс — прерывание.
    PCI IRQ routing table Error — ошибка назначения прерываний для устройств на шине PCI.
    Timer Error — ошибка в работе системного таймера.
    Refresh timer test failed — ошибка прохождения POST системного таймера.
    Interrupt Controller-1 Error — ошибка инициализации первичного контроллера прерываний.
    Interrupt Controller-2 Error — ошибка инициализации вторичного контроллера прерываний.
    CMOS Settings Wrong — данные в CMOS-памяти ошибочны.
    KBC BAT Test failed — контроллер клавиатуры не прошёл POST.
    Keyboard Error — неисправность или отсутствие клавиатуры.
    PS2 Keyboard not found — PS/2-клавиатура не обнаружена.
    PS2 Mouse not found — PS/2-мышь не обнаружена.
    Keyboard/Interface Error — клавиатура/контроллер клавиатуры неисправен.
    Unlock Keyboard — клавиатура заблокирована.
    System Halted — система остановлена.
    «INS» Pressed — была нажата клавиша Ins во время загрузки, настройки BIOS будут выставлены по умолчанию.
    Password check failed — введён неверный пароль.
    Unknown BIOS Error. Error code = 004Ah — модуль меню BIOS не найден.
    Unknown BIOS Error. Error code = 004Bh — языковой модуль BIOS не найден.
    Floppy Controller Failure — не найден контроллер дисковода.
    Warning! Unsupported USB device found and disabled! — найдено USB-устройство, загрузка с которого невозможна, устройство отключено.
    Warning! Port 60h/64h emulation is not supported by this USB Host Controller! — USB-контроллер не может обеспечить поддержку USB-клавиатуры в BIOS.
    Warning! EHCI controller disabled. It requires 64bit data support in the BIOS — EHCI-интерфейс USB-контроллера отключен, USB-контроллер будет работать в режиме USB 1.1.
    Not enough space in Runtime area! SMBIOS data will not be available — размер данных BIOS превышает доступное для их хранения пространство.
    Warning! This system board does not support the power requirements of the installed processor. The processor will be run at a reduced frequency, which will impact system performance — установлен процессор с тепловым пакетом, превышающим возможности материнской платы: он будет работать на пониженных частотах, что снизит производительность системы.
    Insufficient Runtime space for MPS data! System may operate in PIC or Non-MPS mode — недостаточно места для сохранения таблицы MPS, компьютер будет функционировать в однопроцессорном режиме со стандартным режимом контроллера прерываний.
    Mem Optimal Error – разный объём памяти на каналах.
    Memory Parity Error — ошибка контроля чётности памяти.
    Memory Size Decrease Error — уменьшение количества системной памяти.
    Memory size has changed since last boot — объём оперативной памяти был изменён с момента последней загрузки.
    Memory test fail — проверка оперативной памяти не пройдена.
    Missing Operation System — отсутствие операционной системы.
    Missing OS — отсутствие операционной системы.
    No Operating System Found — операционная система не обнаружена.
    NVRAM Cleared by Jumper — системные данные очищены при помощи перемычки на системной плате.
    Operating System Not Found — операционная система не найдена.
    Override enabled — Defaults — система не загрузилась, поэтому были загружены значения по умолчанию.
    Press a key to reboot — нажмите любую клавишу для перезагрузки системы.
    Press ESC to skip Memory Test — нажмите Esc, чтобы пропустить тест проверки памяти.
    Press F1 to disable NMI, F2 to reboot — ошибка не маскируемого прерывания NMI, нажмите F1, чтобы отключить NMI, F2 — перезагрузиться.
    Press TAB to show POST Screen — нажмите Tab, для показа результатов POST.
    Primary IDE channel no 80 conductor cable installed — на первичном IDE-канале используется не 80-жильный кабель.
    Resuming disk, Press TAB to show POST screen — восстановление системы с жёсткого диска, нажмите Tab, чтобы увидеть окно с результатами POST.
    Software Port NMI Inoperational — ошибка порта немаскируемого прерывания NMI.
    SPD Toler Error Serial Presence Detect — ошибка чтения данных из чипа SPD.
    Unknown PCI Error — неизвестная ошибка шины PCI.
    Update failed — обновления закончились неудачно.
    Update OK — обновления закончились успешно.[list]
    Warning! CPU has been changed or Overclock fail — система будет загружена в безопасном режиме после неудачного разгона.

В тех случаях, когда система не может вывести сообщение о неисправности на экран, используются звуковые сигналы, но некоторые современные корпуса не имеют динамиков (speaker), а значит, мы не услышим звукового сигнала об ошибке. В таком случае можно воспользоваться индикатором POST-кодов (о них вы узнаете в конце статьи).

Звуковые сигналы

AMI BIOS:

    отсутствуют — неисправен блок питания или материнская плата.
    1 короткий — ошибки отсутствуют.
    2 коротких — ошибка чётности оперативной памяти.
    3 коротких — неисправны первые 64 Кб оперативной памяти.
    4 коротких — неисправен системный таймер.
    5 коротких — неисправен процессор.
    6 коротких — неисправен контроллер клавиатуры.
    7 коротких — неисправна материнская плата.
    8 коротких — ошибка видеопамяти.
    9 коротких — неправильная контрольная сумма BIOS.
    10 коротких — ошибка записи в CMOS-память.
    11 коротких — ошибка кэш-памяти.
    1 длинный 2 коротких — неисправна видеокарта.
    1 длинный 3 коротких — неисправна видеокарта.
    2 длинный 2 коротких — ошибка контроллера гибких дисков.

Award BIOS:

    Отсутствуют — неисправен блок питания или материнская плата.
    1 короткий — отсутствие ошибок.
    Повторяющийся короткий — блок питания неисправен, ошибка оперативной памяти.
    1 длинный — ошибка оперативной пямяти.
    Повторяющийся длинный — ошибка оперативной пямяти.
    1 длинный 2 коротких — видеокарта необнаружена или ошибка видеопамяти.
    1 длинный 3 коротких — ошибка видеоадаптера или ошибка клавиатуры.
    3 длинных — ошибка контроллера клавиатуры.
    1 длинный 9 коротких — ошибка чтения BIOS или неисправен чип BIOS.
    2 коротких — критическая ошибка.

Индикаторы POST-кодов

Если причину неполадки не удалось определить по звуковому сигналу или сообщению на экране, то стоит посмотреть POST-код ошибки и расшифровать его. На некоторых материнских платах встроены индикаторы POST-кодов, а расшифровка их находится в руководстве пользователя данного оборудования.

Также, существуют POST-карты — платы расширения с цифровым индикатором, на который выводятся коды инициализации материнской платы. С помощью такого устройсва достаточно просто определить почти любую неполадку. Имея возможность определить неисправность компьютера, можно своими силами вернуть его в рабочее состояние и прилично сэкономить на ремонте.

Белоусов Максим aka T.R.Knight / 02 декабря 2010

Этот материал написан посетителем сайта, и за него начислено вознаграждение.

Лента материалов

Интересные материалы

17 января 2023

71

Возможно вас заинтересует

Зачем нужен BIOS:

1. При загрузке компьютера он проверяет наличие основного оборудования и его работоспособность. Если «сгорели», к примеру, оперативная память, процессор или иное необходимое для работы ПК устройство, BIOS подаст сигнал особым звуком (для каждого компонента набор сигналов будет разным).

2. BIOS загружает загрузчик, который в свою очередь загружает ОС.

3. BIOS позволяет ОС взаимодействовать с периферийным оборудованием.

4. BIOS позволяет настраивать многие компоненты оборудования, следить за их состоянием, параметрами работы. Там сохраняются сделанные пользователем настройки, например актуальная дата и время, позволяет включать-выключать встроенное в материнскую плату оборудование.
Для определения вида BIOS  я рекомендую посмотреть на момент загрузки, обычно в верхней левой части экрана есть информация  о производителе и версии BIOS, либо зайти в настройки BIOS, как правило  нажимая несколько раз на клавишу Delete после включения ПК.

UEFI (BIOS)

Asus UEFI BIOS

Последовательность звуковых сигналов

Описание ошибки

1 короткий

Загрузка прошла успешно

2 коротких

Имеются не критичные ошибки.

3 длинных

Ошибку выдал контроллер клавиатуры

1 короткий + 1 длинный

Неисправна оперативная память

1 длинный + 2 коротких

Об ошибке сигнализирует видеокарта

1 длинный + 3 коротких

Ошибка видеопамяти

1 длинный + 9 коротких

Ошибка при чтении из ПЗУ

Непрерывные короткие сигналы 

Неисправность блока питания или оперативной памяти

Непрерывные длинные гудки

Проблемы с ОЗУ

Попеременные длинный и короткий сигналы

Неисправность процессора

Непрерывающийся сигнал

Сигнализирует о проблемах с блоком питания

IBM BIOS.

IBM BIOS

IBM BIOS

  Последовательность звуковых сигналов Описание ошибки Bios
   
1 короткий Успешный POST
1 сигнал и пустой экран Неисправна видеосистема
2 коротких Не подключен монитор
3 длинных Неисправна материнская плата (ошибка контроллера клавиатуры)
1 длинный 1 короткий Неисправна материнская плата
1 длинный 2 коротких Неисправна видеосистема (Mono/CGA)
1 длинный 3 коротких Неисправна видеосистема (EGA/VGA)
Повторяющийся короткий Неисправности связаны с блоком питания или материнской платой
Непрерывный Проблемы с блоком питания или материнской платой
Отсутствует Неисправны блок питания, материнская плата, или динамик

Award BIOS

AWARD BIOS

Последовательность звуковых сигналов Описание ошибки
   
1 короткий Успешный POST
2 коротких Обнаружены незначительные ошибки. На экране монитора появляется предложение войти
в программу CMOS Setup Utility и исправить ситуацию. Проверьте надежность крепления
шлейфов в разъемах жесткого диска и материнской платы.
3 длинных Ошибка контроллера клавиатуры
1 короткий 1 длинный Ошибка оперативной памяти (RAM)
1 длинный 2 коротких Ошибка видеокарты
1 длинный 3 коротких Ошибка видеопамяти
1 длинный 9 коротких Ошибка при чтении из ПЗУ
Повторяющийся короткий Проблемы с блоком питания; Проблемы с ОЗУ
Повторяющийся длинный Проблемы с ОЗУ
Повторяющаяся высокая-низкая частота Проблемы с CPU
Непрерывный Проблемы с блоком питания

AMI BIOS

AMI BIOS

Последовательность звуковых сигналов Описание ошибки
   
1 короткий Ошибок не обнаружено, ПК исправен
2 коротких Ошибка чётности RAM или вы забыли выключить сканер или принтер
3 коротких Ошибка в первых 64 КБ RAM
4 коротких Неисправность системного таймера
5 коротких Проблемы с процессором
6 коротких Ошибка инициализации контроллера клавиатуры
7 коротких Проблемы с материнской платой
8 коротких Ошибка памяти видеокарты
9 коротких Контрольная сумма BIOS неверна
10 коротких Ошибка записи в CMOS
11 коротких Ошибка кэша, расположенного на системной плате
1 длинный 1 короткий Проблемы с блоком питания
1 длинный 2 коротких Ошибка видеокарты (Mono-CGA)
1 длинный 3 коротких Ошибка видеокарты (EGA-VGA)
1 длинный 4 коротких Отсутствие видеокарты
1 длинный 8 коротких Проблемы с видеокартой или не подключён монитор
3 длинных Оперативная память — тест чтения/записи завершен с ошибкой.
Переустановите память или замените исправным модулем.
Отсутствует и пустой экран Неисправен процессор. Возможно изогнута(сломана) контактная ножка процессора. Проверьте процессор.
Непрерывный звуковой сигнал Неисправность блока питания либо перегрев компьютера

AST BIOS

Последовательность звуковых сигналов Описание ошибки
   
1 короткий Ошибка при проверке регистров процессора. Неисправность процессора
2 коротких Ошибка буфера клавиатурного контроллера. Неисправность клавиатурного контроллера.
3 коротких Ошибка сброса клавиатурного контроллера. Неисправность клавиатурного контроллера или системной платы.
4 коротких Ошибка связи с клавиатурой.
5 коротких Ошибка клавиатурного ввода.
6 коротких Ошибка системной платы.
9 коротких Несовпадение контрольной суммы ПЗУ BIOS. Неисправна микросхема ПЗУ BIOS.
10 коротких Ошибка системного таймера. Системная микросхема таймера неисправна.
11 коротких Ошибка чипсета.
12 коротких Ошибка регистра управления питанием в энергонезависимой памяти.
1 длинный Ошибка контроллера DMA 0. Неисправна микросхема контроллера DMA канала 0.
1 длинный 1 короткий Ошибка контроллера DMA 1. Неисправна микросхема контроллера DMA канала 1.
1 длинный 2 коротких Ошибка гашения обратного хода кадровой развёртки. Возможно, неисправен видеоадаптер.
1 длинный 3 коротких Ошибка в видеопамяти. Неисправна память видеоадаптера.
1 длинный 4 коротких Ошибка видеоадаптера. Неисправен видеоадаптер.
1 длинный 5 коротких Ошибка памяти 64K.
1 длинный 6 коротких Не удалось загрузить векторы прерываний. BIOS не смог загрузить векторы прерываний в память
1 длинный 7 коротких Не удалось инициализировать видеооборудование.
1 длинный 8 коротких Ошибка видеопамяти.

Compaq BIOS

Compaq BIOS

Compaq BIOS

Звуки Описание
   
1 короткий Ошибок нет. Нормальная загрузка системы.
1 длинный 1 короткий Ошибка контрольной суммы памяти CMOS BIOS. Возможно сел аккумулятор ROM.
2 коротких Глобальная ошибка.
1 длинный 2 коротких Ошибка инициализации видеокарты. Проверьте правильность установки видеокарты.
7 сигналов Неисправность видеокарты AGP. Проверьте правильность установки.
1 длинный постоянный Ошибка оперативной памяти, попробуйте перезагрузиться.
1 короткий 2 длинных Неисправность оперативной памяти. Перезагрузитесь через Reset.

Quadtel BIOS

Quadtel BIOS

Последовательность звуковых сигналов Описание ошибки
   
1 короткий Ошибок не обнаружено, ПК исправен
2 коротких CMOS RAM повреждена. Заменить IC если это возможно
1 длинный 2 коротких Ошибка видеоадаптера. Неисправен видеоадаптер. Переустановите или замените адаптер
1 длинный 3 коротких Один или несколько из периферийных контроллеров неисправен.
Замените контроллеры и проведите повторное тестирование

Далее: Beep-коды представлены последовательностью звуковых сигналов. Например, 1-1-2 означает 1 звуковой сигнал, пауза, 1 звуковой сигнал, пауза, и 2 звуковых сигнала.

Dell BIOS

Dell BIOS

Последовательность звуковых сигналов Описание ошибки
   
1-2 Не подключена видеокарта
1-2-2-3 Ошибка контрольной суммы ПЗУ BIOS
1-3-1-1 Ошибка обновления DRAM
1-3-1-3 Ошибка клавиатуры 8742
1-3-3-1 Неисправна память
1-3-4-1 Ошибка ОЗУ на линии xxx
1-3-4-3 Ошибка ОЗУ на младшем бите xxx
1-4-1-1 Ошибка ОЗУ на старшем бите xxx

Phoenix BIOS
Phoenix BIOS

Звуковые сигналы Phoenix BIOS состоят из нескольких серий коротких гудков, которые следуют с некоторым интервалом. Например, сигнал с кодом 1-2-3 будет звучать так: один короткий гудок, пауза, два коротких гудка, пауза, три коротких гудка.

Сигнал

Значение (расшифровка)

1-1-3

Ошибка при чтении данных из микросхемы встроенной памяти СМОS

1-1-4

Ошибка контрольной суммы микросхемы CMOS

1-2-1

Ошибка на системной плате

1-2-2

Ошибка контроллера DМА системной платы

1-2-3

Ошибка чтения или записи данных в один из каналов DМА

1-3-1

Ошибка в оперативной памяти

1-3-3

Ошибка первых 64 Кбайт основной памяти

1 3-4

Ошибка тестирования оперативной памяти

1-4-1

Ошибка системной платы

1-4-2

Ошибка тестирования оперативной памяти

от 2-1-1 до 2-4-4

Ошибка одного из битов первых 64 Кбайт оперативной памяти

3-1-1

Ошибка в первом канале DMA

3-1-2

Ошибка во втором канале DМА

3-1-3

Ошибка при обработке прерываний

3-1-4

Ошибка контроллера прерываний материнской  платы

3-2-4

Ошибка контроллера клавиатуры

3-3-4

Ошибка видеоадаптера

3-4-1

Ошибка при тестировании видеопамяти

3-4-2

Ошибка при поиске видеопамяти

4-2-1

Ошибка системного таймера

4-2-2

Завершение тестирования

4-2-3

Ошибка контроллера клавиатуры

4-2-4

Ошибка центрального процессора

4-3-1

Ошибка тестирования оперативной памяти

4-3-3

Ошибка системного таймера

4-3-4

Ошибка часов реального времени

4-4-1

Ошибка последовательного порта

4-4-2

Ошибка параллельного порта

4-4-3

Ошибка математического сопроцессора

1-2

Ошибка в работе адаптеров, имеющих собственный BIOS

1-2-2-3

Ошибка при подсчете контрольной суммы BIOS

1-3-1-1

Ошибка в работе оперативной памяти

1-3-1-3

Ошибка контроллера клавиатуры

1-3-4-1

Ошибки при тестировании оперативной памяти

2-1-2-3

Ошибка при проверке уведомления об авторском праве ROM BIOS

2-2-3-1

Ошибка при обработке непредвиденных прерываний

Последовательность звуковых сигналов, описание ошибок без таблицы:

1-1-2 Ошибка при тесте процессора. Процессор неисправен. Замените процессор
1-1-3 Ошибка записи/чтения данных в/из CMOS-памяти.
1-1-4 Обнаружена ошибка при подсчете контрольной суммы содержимого BIOS.
1-2-1 Ошибка инициализации материнской платы.
1-2-2 или 1-2-3 Ошибка инициализации контроллера DMA.
1-3-1 Ошибка инициализации схемы регенерации оперативной памяти.
1-3-3 или 1-3-4 Ошибка инициализации первых 64 Кбайт оперативной памяти.
1-4-1 Ошибка инициализации материнской платы.
1-4-2 Ошибка инициализации оперативной памяти.
1-4-3 Ошибка инициализации системного таймера.
1-4-4 Ошибка записи/чтения в/из одного из портов ввода/вывода.
2-1-1 Обнаружена ошибка при чтении/записи 0-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-1-2 Обнаружена ошибка при чтении/записи 1-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-1-3 Обнаружена ошибка при чтении/записи 2-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-1-4 Обнаружена ошибка при чтении/записи 3-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-2-1 Обнаружена ошибка при чтении/записи 4-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-2-2 Обнаружена ошибка при чтении/записи 5-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-2-3 Обнаружена ошибка при чтении/записи 6-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-2-4 Обнаружена ошибка при чтении/записи 7-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-3-1 Обнаружена ошибка при чтении/записи 8-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-3-2 Обнаружена ошибка при чтении/записи 9-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-3-3 Обнаружена ошибка при чтении/записи 10-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-3-4 Обнаружена ошибка при чтении/записи 11-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-4-1 Обнаружена ошибка при чтении/записи 12-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-4-2 Обнаружена ошибка при чтении/записи 13-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-4-3 Обнаружена ошибка при чтении/записи 14-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-4-4 Обнаружена ошибка при чтении/записи 15-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
3-1-1 Ошибка инициализации второго канала DMA.
3-1-2 или 3-1-4 Ошибка инициализации первого канала DMA.
3-2-4 Ошибка инициализации контроллера клавиатуры.
3-3-4 Ошибка инициализации видеопамяти.
3-4-1 Возникли серьёзные проблемы при попытке обращения к монитору.
3-4-2 Не удается инициализировать BIOS видеоплаты.
4-2-1 Ошибка инициализации системного таймера.
4-2-2 Тестирование завершено.
4-2-3 Ошибка инициализации контроллера клавиатуры.
4-2-4 Критическая ошибка при переходе центрального процессора в защищенный режим.
4-3-1 Ошибка инициализации оперативной памяти.
4-3-2 Ошибка инициализации первого таймера.
4-3-3 Ошибка инициализации второго таймера.
4-4-1 Ошибка инициализации одного из последовательных портов.
4-4-2 Ошибка инициализации параллельного порта.
4-4-3 Ошибка инициализации математического сопроцессора.
Длинные, непрекращающиеся сигналы — неисправна материнская плата.
Звук сирены с высокой на низкую частоту — неисправна видеокарта, проверить электролитические емкости, на утечку или заменить все на новые, заведомо исправные.
Непрерывный сигнал — не подключен (неисправен) кулер CPU.

Наверняка, каждый пользователь компьютера слышал один или несколько звуковых сигналов, издающихся спикером материнской платы сразу после включения ПК. Если компьютер исправно функционирует, при его включении обычно издается всего один или (реже) два коротких сигнала. Но если их становится больше, и ПК или Windows при этом перестают включаться или загружаться, налицо первые признаки неисправности устройства или системы. Что делать в этой ситуации? Рассмотрим данный вопрос.

Откуда берутся звуковые сигналы?

Любая современная материнская плата оборудована микропрограммой BIOS, о функциях которой можно почитать в этой статье. Именно она отвечает за последовательное включение электронных компонентов системной платы, что в конечном итоге приводит к полноценному запуску компьютера в целом.

Если с одним из встроенных или внешне подключаемых к материнской плате происходит сбой, BIOS сигнализирует об этом, издавая звуковые сигналы. То же самое относится и к ситуациям, когда причина сбоя загрузки компьютера заключается в программных неисправностях самой микропрограммы BIOS.

BIOS

По количеству, характеру (длинный/короткий) и последовательности издаваемых сигналов можно определить, какое из устройств ПК дает сбой. Причем один и тот же вид неисправности на разных моделях (версиях) BIOS может кодироваться по-своему. Рассмотрим звуковые коды ошибок самых распространенных моделей BIOS.

Определяем версию BIOS

В случае с операционными системами семейства Windows для определения версии BIOS нужно проделать следующее:

  • Найдите в меню «Пуск» элемент «Выполнить» и кликните по нему либо нажмите сочетание клавиш «Win+R».
  • Откроется небольшое окошко. Впишите в него команду «msinfo32» и нажмите «ОК».
  • Откроется программа «Сведения о системе».
  • В центральной части будет приведена таблица, найдите в ней элемент «Версия BIOS».
  • В столбце «Значение» напротив данного элемента будет приведена версия BIOS, как показано на изображении ниже.

В данном конкретном случае версия BIOS — «American Megatrends Inc. P2.70, 10.09.2012» или «AMI BIOS». Далее рассмотрим ошибки AMI BIOS, а также еще двух популярных версий данных микропрограмм — Award и Phoenix BIOS.

Версия BIOS

Ошибки AMI BIOS

При возникновении ошибок BIOS производства «American Megatrends Inc.» пользователь может услышать несколько коротких или длинных сигналов либо их чередование.

Сигнал

Описание ошибки

Возможное решение проблемы

1 короткий

Ошибок нет

Не требуется.

2 коротких

Ошибка четности ОЗУ, в настройках BIOS установлено слишком малое значение задержки чтения данных из ОЗУ

В первом случае может помочь перестановка планки ОЗУ в другой слот либо их очистка их контактов от загрязнений. При неправильно выставленных значениях задержки помогает сброс настроек BIOS. Если не помогает, ОЗУ придется заменить.

3 коротких

Ошибка чтения данных из первых 64 КБ ОЗУ

Решение, как и в предыдущем случае.

4 коротких

Неисправность системного таймера: возможно, что проблема связана с питанием микросхемы CMOS, неисправностями блока питания или материнской платы

Если села батарейка, поддерживающая питание CMOS — ее нужно заменить. В остальных случаях может потребоваться профилактика/ремонт/замена блока питания или материнской платы.

5 коротких

Неисправность центрального процессора

Извлечь процессор, очистить путем продувания контактную площадку, установить обратно. Если не помогает — заменить ЦПУ.

7 коротких

Неисправности материнской платы

Провести полную профилактику компьютера. Если не помогает — заменить материнскую плату.

8 коротких

Неисправности ОЗУ видеоадаптера (память RAM)

Извлечь видеоадаптер, очистить от пыли его и слот материнской платы, в который устанавливается видеокарта. Заменить видеоадаптер, если не мероприятия не помогут.

9 коротких

Ошибка в данных микросхемы BIOS (контрольная сумма неверна)

Произвести аппаратный сброс настроек BIOS. Если не помогает, микросхему придется заменить, что можно сделать только в сервисном центре.

10 коротких

Ошибка при попытке BIOS записать данные в память CMOS

Решение, как и в предыдущем случае.

11 коротких

Ошибка кэш-памяти материнской платы

Скорее всего, материнскую плату придется заменить.

1 длинный и 1 короткий

Ошибка блока питания

Снять блок питания и выполнить профилактику. Если не помогает, ПБ придется ремонтировать или заменить.

1 длинный, 2 или 3 коротких

Неисправность видеокарты

Профилактика видеокарты или ее замена.

1 длинный и 4 коротких

Видеокарта не подключена

Извлечь видеокарту, очистить контакты от грязи, очистить слот материнской карты. Если не помогает — заменить видеокарту.

1 длинный, 8 коротких

Неисправность видеоадаптера либо не подключен монитор

Выполнить профилактику видеокарты. Проверить кабель монитора. Возможно, его придется заменить.

Сигнал отсутствует, монитор не включается

Аппаратная неисправность центрального процессора

Выполнить профилактику процессора. Заменить ЦПУ, если не помогает.

Непрерывный звуковой сигнал

Аппаратная неисправность блока питания либо перегрев системной платы

Выполнить профилактику компьютера в целом. Заменить блок питания.

Ошибки Award BIOS

Сигнал

Описание ошибки

Возможное решение проблемы

1 короткий

Ошибок нет

Не требуется

2 коротких

Обнаружены мелкие неисправности, на экране монитора должно появиться сообщение о необходимости входа в настройки BIOS для устранения проблем

Выполнить сброс настроек BIOS. Проверить надежность подключения шлейфов жестких дисков.

3 длинных

Неисправности контроллера клавиатуры, расположенного на материнской плате

Отключить клавиатуру и включить компьютер. Если загрузка компьютера продолжится либо появится сообщение об отсутствии клавиатуры, последнюю нужно заменить. Если используется USB-клавиатура, попробовать подключить ее в другой USB-порт.

1 короткий и 1 длинный

Ошибка оперативной памяти видеоадаптера (RAM)

Если видеокарта съемная — выполнить профилактику. Заменить видеоадаптер, если не помогает.

1 длинный и 2 коротких

Общая ошибка видеоадаптера

Решение, как и в предыдущем случае.

1 длинный и 3 коротких

Общая неисправность клавиатуры

Ошибка может быть связана с физическим повреждением провода клавиатуры. Также это наблюдается после пролития на клавиатуру жидкости. В этом случае ее нужно разобрать и просушить. Если не помогает — заменить клавиатуру.

1 длинный и 9 коротких

Ошибка ПЗУ микросхемы BIOS

Выполнить аппаратный сброс настроек BIOS. Если помогло, но после очередного включения компьютера ошибка повторяется, прошить BIOS.

Непрерывно повторяющиеся короткие сигналы

Неисправности блока питания или оперативной памяти (ОЗУ)

Если общая профилактика компьютера не помогает, ПБ или ОЗУ придется заменить.

Непрерывно повторяющиеся длинные сигналы

Неисправности оперативной памяти

Решение, как и в предыдущем случае.

Непрерывный сигнал с чередующейся частотой (низкая/высокая)

Неисправности центрального процессора

Профилактика слота материнской платы для установки процессора. Замена ЦПУ или материнской платы.

Непрерывный сигнал

Неисправности блока питания

Если профилактика БП не помогает — ремонт или замена.

Ошибки Phoenix BIOS

Ошибки данной версии BIOS представляются в виде трех блоков звуковых сигналов, между которыми присутствует небольшая пауза. В одном таком блоке может быть от 1 до 4 коротких сигналов. Например, 2 — 3 — 2: два сигнала — пауза — три сигнала — пауза — два сигнала.

Сигнал

Описание ошибки

Возможное решение проблемы

1 — 1 — 2

Критическая ошибка процессора

Единственный выход — заменить ЦПУ.

1 — 1 — 3

Ошибка записи/чтения из динамической памяти CMOS

Выполнить аппаратный сброс настроек BIOS.

1 — 1 — 4

Программная ошибка BIOS

Решение, как и в предыдущем случае.

1 — 2 — 1 или 1 — 4 — 1

Не удается инициализировать материнскую плату

Проблема может быть в одном из встроенных или подключенных к плате устройств либо в блоке питания. Выполнить общую профилактику компьютера. Если не помогает — поочередно заменять комплектующие компьютера с целью обнаружения неисправного устройства.

1 — 2 — 2 или 1 — 2 — 3

3 — 1 — 1

3 — 1 — 2

3 — 1 — 4

Неисправности устройства прямого доступа к памяти (DMA)

Требуется ремонт или замена материнской платы.

1 — 3 — 1

Не удается инициализировать схему регенерации ОЗУ

Проблема может быть в самой оперативной памяти или в материнской плате. Также сбой может возникать из-за неправильных настроек работы ОЗУ в BIOS. Сначала нужно попробовать сбросить настройки BIOS. Если не помогает — выполнить профилактику ПУ. В остальных случаях придется менять ОЗУ или материнскую плату.

1 — 4 — 1

4 — 3 — 1

Не удается инициализировать ОЗУ

Переставить планку ОЗУ в свободный слот материнской платы. Очистить контакты планки ОЗУ и слота для ее установки. Заменить оперативную память.

1 — 4 — 2

4 — 2 — 1

Не удается инициализировать системный таймер

Возможно, села батарейка питания микросхемы CMOS. Если ее замена не помогает, выполнить профилактику ПК. Заменить материнскую плату.

1 — 4 — 4

Ошибка на одном из портов ввода-вывода информации материнской платы

Возможно, присутствует неисправность в одном из внешне подключаемых устройств — USB-устройства, монитор, принтер и т.д. Нужно отключить все устройства и включить компьютер. Если ошибка устранена, не подключать устройство, дающее сбой. В остальных случаях — ремонт или замена материнской платы.

2 — х — х, где вместо «х» может присутствовать число от 1 до 4

Ошибка при попытке записи/чтения в одном из битов (от 0 до 15) первых 64 Кбайт ОЗУ

Скорее всего, из строя вышла оперативная память и ее нужно заменить. Если не помогает, из строя вышла материнская плата.

3 — 2 — 4

4 — 2 — 3

Неисправен контроллер клавиатуры

Сбросить настройки BIOS, заменить клавиатуру.

3 — 3 — 4

Ошибка оперативной памяти видеокарты (RAM)

Профилактика видеокарты или ее замена.

3 — 4 — 1

Ошибка при обращении к монитору

Проверить работоспособность монитора, заменить подключаемый к ПК кабель

3 — 4 — 2

Ошибка собственного BIOS видеоплаты

Профилактика видеокарты или ее замена.

4 — 3 — 2

4 — 4 — 1

4 — 4 — 2

4 — 4 — 3

Непрекращающиеся длинные сигналы

Неисправность материнской платы либо одного из ее таймеров (первого или второго), последовательного или параллельного порта

В большинстве случаев — замена материнской платы.

Непрерывный сигнал с изменяющейся частотой

Аппаратная ошибка видеокарты

Может помочь замена электролитических конденсаторов видеокарты.

Непрерывный сигнал одной частоты

Неисправен вентилятор охлаждения процессора либо он был отключен от системной платы

Проверить, подключен ли вентилятор. Заменить, если не вращается.

Коды ошибок омпьютеровКоды ошибок компьютеров

В настоящее время, сложно себе представить жизнь без компьютеров «PC», помогая, а часто и заменяя человека, компьютеры выполняют огромное количество разнообразной работы. Тем не менее, как и любая другая техника, они могут выходить из строя, при этом, ошибка обозначающая характер проблемы будет отражена на экране.

Различных неполадок в компьютерах может быть достаточно много, более того, они могут быть как аппаратные, так и программные. Отличие состоит в том, что, аппаратная ошибка означает выход из строя каких-либо комплектующих компьютера, тоесть, материнской платы, процессора, и т.д., а программная ошибка, связана с ошибкой в работе программного обеспечения. Для облегчения диагностики, в компьютерах используются коды ошибок, они помогают специалисту выявить проблему программного обеспечения. К сожалению, отобразившаяся ошибка не дает гарантии что произошла именно та ошибка, которую он означает. Это связано с тем, что возникновение одной ошибки, могло быть спровоцировано другой, но в итоге на экране будет отображена именно последняя.

Например:

появился синий экран, с отображением кода ошибки оперативной памяти, эта ошибка возникает в результате выхода из строя модуля памяти, не стоит сразу думать, что ее нужно менять, а старый модуль пора выбрасывать. В большинстве случаев, данная ошибка возникает по причине перегрузки памяти, тоесть вы запустили приложение, которому требуется больше памяти чем имеет ваш компьютер и достаточно будет его перезагрузить для дальнейшей работы.

Помимо кодов ошибок, компьютер может сигнализировать пользователю о каких-либо проблемах звуковым сигналом, это называется «Аппаратная ошибка». Как пример, при включении компьютера и стандартной загрузке системы, вы можете слышать один сигнал, это так называемое POST (Power-On-Self-Test), тестирование компонентов перед запуском, один сигнал означает что тестирование компонентов прошло успешно, в противном случае компьютер сигналами сообщит об ошибке. Звуковые ошибки можно расшифровать с помощью инструкции от системной платы. Либо воспользоваться описанием на сайте.

Аппаратные ошибки

Аппаратные ошибки делятся на два вида, звуковые и текстовые

Звуковые ошибки

При включении компьютера, он сразу же проводит быструю диагностику системы и в зависимости от ее результата, выдает один сигнал сигнализирующий о том, что все в порядке, либо серию звуковых сигналов, обозначающих что произошла та или иная ошибка. Как правило, звуковые сигналы достаточно точно указывают что произошла ошибка. Но ошибка может быть вызвана целым рядом неисправностей и перед ее устранением, необходимо выявить также причину образовавшую данную ошибку.

Определение звуковых сигналов, означающих ошибку

Для «AMI BIOS»

1 короткий и 1 длинный сигнал Проблема с блоком питания
4 коротких сигнала Ошибка системного таймера
5 коротких сигналов Ошибка процессора
6 коротких сигналов Ошибка клавиатуры
7 коротких сигналов Проблема с материнской платой
1 длинный 2 коротких (или 3 коротких) Ошибка видеокарты
1 длинный 8 коротких Ошибка подключения монитора

Для «AWARD BIOS»

3 длинных сигнала Ошибка подключения клавиатуры
1 длинный 1 короткий Ошибка оперативной памяти
1 длинный 2 коротких Ошибка видеокарты
Постоянно повторяющиеся короткие сигналы Проблема с блоком питания
Постоянно повторяющиеся длинные сигналы Проблема с оперативной памятью

Текстовые сообщения

Если видеосистема работает в штатном режиме, то компьютер также может выдавать текстовые сообщения об аппаратных ошибках, как правило это либо дополнительные к звуковым, либо отдельные сообщения, уведомляющие обычно что, произошла несерьезная ошибка.

Определение текстовых сообщений, означающих ошибку

CMOS battery failed Не работает батарейка на материнской плате
Hard disk install failure Ошибка подключения жесткого диска
Primary master hard disk fail Ошибка основного жесткого диска
Primary slave hard disk fail Ошибка второстепенного жесткого диска
0x0000002E: DATA_BUS_ERROR Ошибка оперативной памяти

Конечно же это только несколько кодов из их огромного разнообразия, но очень часто именно эти коды указывают на то, что произошла ошибка. При возникновении проблем с компьютером, конечно же лучшим вариантом будет проведение его диагностики мастером, но стоит учитывать то что сообщение о том, что произошла ошибка не редкость и появляется у многих пользователей достаточно часто. Конечно же, не стоит каждый раз, когда компьютер выдает ошибку обращаться за помощью к мастеру, попробуйте для начала просто перезагрузить его, если все же включить его не удается, или ошибка возникает снова и снова, тогда смело обращайтесь за помощью специалиста.

Программные ошибки

Программные ошибки являются наиболее распространенными, при возникновении проблем, компьютер выдает ту или иную ошибку. Причем способ отображений ошибки, может быть разный, как правило это всплывающее окно с сообщением, в большинстве случаев текст самого сообщения содержит ссылку и код ошибки. Нельзя даже точно сказать какое количество кодов может отобразить комп, их очень много. Например, только ошибки операционной системы могут выдать более 1000 сообщений, при этом очень многие программы имеют свои ошибки. К сожалению, программные ошибки не настолько точны и зачастую реальная проблема может быть связана абсолютно с другими вещами. Тем не менее, для профессионального мастера, «отобразившаяся ошибка с кодом, говорит о многом», понимая весь принцип работы программного обеспечения и его зависимость от аппаратных средств, можно звуковых сигналов контрольная сумма понять, что вызвало данную ошибку.

Шестнадцатеричный код ошибки

Ошибки в шестнадцатеричном коде отображаются на BSOD экране, или как его еще называют «синий экран смерти» многие пользователи очень этого боятся, ошибочно считая, что это означает что-то очень плохое с компьютером и это фатальная ошибка. На самом деле, все не совсем так, начнем с того, что это очень полезная вещь, данный экран действительно уведомляет пользователя о том, что произошла действительно фатальная ошибка системы, тем не менее, в большинстве случаев, помогает банальная перезагрузка системы. Конечно, будет очень полезно ознакомится все-таки и с отобразившейся ошибкой, чтобы понять, что она означает, но в большинстве случаев, пользователи просто перезагружают компьютер и продолжают им пользоваться до следующего возникновения ошибки. Часто, именно тот факт, что пользователи не пытаясь выяснить причину возникновения ошибки сбрасывают ее и пользуются дальше, приводит к более серьезным неисправностям.

Таблица наиболее частых ошибок

Ошибка Описание ошибки
0x00000001: APC INDEX MISMATCH Внутренняя ошибка в ОС
0x0000000A:

IRQL NOT LESS OR EQUAL

Ошибка драйвера устройства
0x00000002E: DATA BUS ERROR Ошибка оперативной памяти
0x00000004C: FATAL UNHANDLED HARD ERROR Фатальная ошибка обращения (может быть много вариантов возникновения данной ошибки)
0x00000004D: NO PAGES AVAILABLE Ошибка драйвера
0x000000050: PAGE FAULT IN NONPAGED AREA Неисправен модуль оперативной памяти
0x000000051: REGISTRY ERROR Ошибка работы реестра ОС
0x000000073: CONFIG LIST FAILED Ошибка в работе реестра либо недостаток места в основном разделе HDD
0x000000074: BAD SYSTEM CONFIG INFO Ошибка чтения системных файлов
0x00000008B: MBR CHECKSUM MISMATCH Данная ошибка зачастую связана с заражением компьютера вирусом.

Если отобразилась какая-либо данная ошибка, то в большинстве случаев необходима помощь специалиста, так как самостоятельно исправить ее достаточно сложно и в большинстве случаев чтобы ошибка была полностью убрана, а также удалены все факторы, вызвавшие данную ошибку, необходимо форматировать и переустановить систему.

Причины появления кода ошибки компьютера

Основная причина отображения сообщения об ошибке — это программный сбой. Чтобы понять из-за чего он происходит, необходимо глубже разобраться в принципе работы компьютера. На абсолютном большинстве компьютеров, установлены операционные системы, операционная система, это фактически программа, которая взаимодействуя со всеми аппаратными средствами компьютера, обеспечивает работу дополнительного программного обеспечения. Дополнительное программное обеспечение, это то что пользователь устанавливает на компьютер, будь то игры или какие-либо рабочие программы. Многие, в основном большие программы, прежде чем запустить, необходимо установить. При установке программы, файлы программы копируются в определенную папку операционной системы для дальнейшей работы, при этом она, делает в своем реестре запись, о том, что определенная программа размещена в таком-то месте. После установки программы, она запускается. В момент запуска, программа отправляет операционной системе запрос, на предоставление ей необходимых для нормальной работы ресурсов, например, определенное количество оперативной памяти, виде памяти и т.д. Операционка предоставляет необходимые ресурсы для работы программы. Но бывает так, что она не может предоставить необходимое количество определенных ресурсов, допустим потому что, в компьютере нет их необходимого количества. Тогда, не получив ресурсов для нормальной работы программы, происходит ошибка инициализации, то есть сбой подготовки запуска программы, так же может быть отображено сообщение, что контрольная сумма с ошибкой, фактически это тоже самое, но имеет несколько другую структуру неисправности. В результате, на экране отображается сообщение что произошла ошибка. Эта ошибка может быть отражена как самой программой, если в ней это предусмотрено, либо сообщение показывает операционка. Код ошибки зависит от того, кто отобразил сообщение об ошибке, операционка или приложение.

Помимо операционной системы, ошибки выдают различные приложения (программы), это сделано в большей степени для разработчиков данного программного обеспечения. Практически все возможные ошибки приложения, заранее предусмотрены в программном обеспечении и если возникает какая-либо ошибка, часто, программа не просто показывает код ошибки, но и предлагает пользователю отправить отчет о данной ошибке. Этот отчет отправляется на определенный, заранее прописанный в программе адрес, по этому адресу, все ошибки распределяются по кодам, грубо говоря распределяются по папкам, и разработчики программного обеспечения могут видеть какие ошибки и в каком количестве произошли. Выявив наиболее часто возникающие ошибки, разработчики начинают внимательно просматривать каждый такой отчет. Дело в том, что программа или операционка, отправляя отчет об ошибке, часто помимо самой ошибки, отправляет важные для разработчиков данного программного обеспечения данные о компьютере пользователя, точнее о его характеристиках. К примеру, если программа в своей работе использует 1Гб оперативной памяти, то разработчикам важно знать, сколько оперативной памяти на компьютере пользователя. И уже проанализировав все поступившие данные, программистами выпускается так называемый «патч» для программы, благодаря которому исправляется какая-либо ошибка в программе, что в итоге приводит к более стабильной работе программного обеспечения и предотвращает возникновение ошибки.

Появилась ошибка компьютера

Если на мониторе отобразилась ошибка, это еще не говорит о проблемах с компьютером. В абсолютном большинстве случаев, ошибку вызывают приложения, установленные в компьютере, помимо приложений, для правильной работы многих программ и внешних устройств, используются драйвера, а это по сути такие же программы, которые не редко вызывают ошибку инициализации. В этом случае, ошибка устраняется путем установки необходимого драйвера.

Устранение ошибок компьютера

Для того чтобы ошибка была устранена, специалист проводит полную диагностику компьютера, только так можно выяснить истинную причину ее появления. После обнаружения причины, проводится удаление, некорректно работающий программной части и замена его другим. Далее проверяется работоспособность, а также тестирование в различных режимах. Если после проведения восстановительных работ и тестирования ошибка не появляется, проверяются различные внутренние хранилища компьютера на остатки удаленных файлов и удаление таковых, дабы в будущем они не вызвали еще какую-либо ошибку.

Сложно назвать время, которое уходит у мастера на то чтобы была устранена ошибка, это зависит от ее типа и характера. Большинство исправляется в течении нескольких минут, но есть и такие на которые можно потратить более часа, так как устраненная ошибка могла нанести вред программному обеспечению и это так же нужно исправить. Тем не менее, в среднем, чтобы устранить ошибку, а также последствия ее работы уходит не более часа.

Выводы

Ошибка не появляется сама по себе, это результат процессов, проходящих в компьютере и его программном обеспечении, игнорировать вновь и вновь появляющиеся ошибка нельзя, так как это игнорирование предупреждений компьютера и некорректной работе оборудования или программного обеспечения. Приложения работают не всегда стабильно и появляющиеся ошибки крайне важны, как обычным пользователям, так и разработчикам различного программного обеспечения, они помогают проверить с чем связана та или иная ошибка компьютера или программного обеспечения. Тем не менее, все же определить неисправность по ошибке обычному пользователю бывает достаточно сложно, из-за взаимосвязи различных процессов, так что нельзя с уверенностью сказать, что, найдя описание ошибки, проблема будет именно в этом и ошибку можно будет достаточно просто исправить. Достаточно часто, чтобы исправить ошибку, а также все негативные факторы, повлиявшие на ее появление, необходима полная переустановка системы. В связи с этим, при возникновении какой-либо ошибки компьютера, рекомендуем не экспериментировать с самостоятельным ремонтом, так как это может привести к более серьезным последствиям, а обратится в сервисный центр «ЕТехник». Специалисты сервисного центра имеют большой опыт по ремонту компьютерной техники, а также настройке разнообразного программного обеспечения, они быстро разберутся в причине возникновения ошибки и исправят все неполадки.

Наши цены

Цены сервисного центра «ЕТехник» абсолютно прозрачны, никаких накруток или «сюрпризов» для клиента, после проведения диагностики, мастер называет точную и окончательную цену ремонта и только после одобрения клиентом, приступает к работе. Благодаря большой клиентской базе и солидному материально-техническому оснащению, сервисный центр «ЕТехник» предлагает не только высокое качество работ, но и одни из лучших цен на рынке. Обращаясь в сервисный центр «ЕТехник», вы обращаетесь к профессионалам.

Зачем нужен BIOS:

1. При загрузке компьютера он проверяет наличие основного оборудования и его работоспособность. Если “сгорели”, к примеру, оперативная память, процессор или иное необходимое для работы ПК устройство, BIOS подаст сигнал особым звуком (для каждого компонента набор сигналов будет разным).

2. BIOS загружает загрузчик, который в свою очередь загружает ОС.

3. BIOS позволяет ОС взаимодействовать с периферийным оборудованием.

4. BIOS позволяет настраивать многие компоненты оборудования, следить за их состоянием, параметрами работы. Там сохраняются сделанные пользователем настройки, например актуальная дата и время, позволяет включать-выключать встроенное в материнскую плату оборудование.
Для определения вида BIOS  я рекомендую посмотреть на момент загрузки, обычно в верхней левой части экрана есть информация  о производителе и версии BIOS, либо зайти в настройки BIOS, как правило  нажимая несколько раз на клавишу Delete после включения ПК.

UEFI (BIOS)

Asus UEFI BIOS

Последовательность звуковых сигналов

Описание ошибки

1 короткий

Загрузка прошла успешно

2 коротких

Имеются не критичные ошибки.

3 длинных

Ошибку выдал контроллер клавиатуры

1 короткий + 1 длинный

Неисправна оперативная память

1 длинный + 2 коротких

Об ошибке сигнализирует видеокарта

1 длинный + 3 коротких

Ошибка видеопамяти

1 длинный + 9 коротких

Ошибка при чтении из ПЗУ

Непрерывные короткие сигналы 

Неисправность блока питания или оперативной памяти

Непрерывные длинные гудки

Проблемы с ОЗУ

Попеременные длинный и короткий сигналы

Неисправность процессора

Непрерывающийся сигнал

Сигнализирует о проблемах с блоком питания

IBM BIOS.

IBM BIOS

IBM BIOS

  Последовательность звуковых сигналов Описание ошибки Bios
   
1 короткий Успешный POST
1 сигнал и пустой экран Неисправна видеосистема
2 коротких Не подключен монитор
3 длинных Неисправна материнская плата (ошибка контроллера клавиатуры)
1 длинный 1 короткий Неисправна материнская плата
1 длинный 2 коротких Неисправна видеосистема (Mono/CGA)
1 длинный 3 коротких Неисправна видеосистема (EGA/VGA)
Повторяющийся короткий Неисправности связаны с блоком питания или материнской платой
Непрерывный Проблемы с блоком питания или материнской платой
Отсутствует Неисправны блок питания, материнская плата, или динамик

Award BIOS

AWARD BIOS

Последовательность звуковых сигналов Описание ошибки
   
1 короткий Успешный POST
2 коротких Обнаружены незначительные ошибки. На экране монитора появляется предложение войти
в программу CMOS Setup Utility и исправить ситуацию. Проверьте надежность крепления
шлейфов в разъемах жесткого диска и материнской платы.
3 длинных Ошибка контроллера клавиатуры
1 короткий 1 длинный Ошибка оперативной памяти (RAM)
1 длинный 2 коротких Ошибка видеокарты
1 длинный 3 коротких Ошибка видеопамяти
1 длинный 9 коротких Ошибка при чтении из ПЗУ
Повторяющийся короткий Проблемы с блоком питания; Проблемы с ОЗУ
Повторяющийся длинный Проблемы с ОЗУ
Повторяющаяся высокая-низкая частота Проблемы с CPU
Непрерывный Проблемы с блоком питания

AMI BIOS

AMI BIOS

Последовательность звуковых сигналов Описание ошибки
   
1 короткий Ошибок не обнаружено, ПК исправен
2 коротких Ошибка чётности RAM или вы забыли выключить сканер или принтер
3 коротких Ошибка в первых 64 КБ RAM
4 коротких Неисправность системного таймера
5 коротких Проблемы с процессором
6 коротких Ошибка инициализации контроллера клавиатуры
7 коротких Проблемы с материнской платой
8 коротких Ошибка памяти видеокарты
9 коротких Контрольная сумма BIOS неверна
10 коротких Ошибка записи в CMOS
11 коротких Ошибка кэша, расположенного на системной плате
1 длинный 1 короткий Проблемы с блоком питания
1 длинный 2 коротких Ошибка видеокарты (Mono-CGA)
1 длинный 3 коротких Ошибка видеокарты (EGA-VGA)
1 длинный 4 коротких Отсутствие видеокарты
1 длинный 8 коротких Проблемы с видеокартой или не подключён монитор
3 длинных Оперативная память – тест чтения/записи завершен с ошибкой.
Переустановите память или замените исправным модулем.
Отсутствует и пустой экран Неисправен процессор. Возможно изогнута(сломана) контактная ножка процессора. Проверьте процессор.
Непрерывный звуковой сигнал Неисправность блока питания либо перегрев компьютера

AST BIOS

Последовательность звуковых сигналов Описание ошибки
   
1 короткий Ошибка при проверке регистров процессора. Неисправность процессора
2 коротких Ошибка буфера клавиатурного контроллера. Неисправность клавиатурного контроллера.
3 коротких Ошибка сброса клавиатурного контроллера. Неисправность клавиатурного контроллера или системной платы.
4 коротких Ошибка связи с клавиатурой.
5 коротких Ошибка клавиатурного ввода.
6 коротких Ошибка системной платы.
9 коротких Несовпадение контрольной суммы ПЗУ BIOS. Неисправна микросхема ПЗУ BIOS.
10 коротких Ошибка системного таймера. Системная микросхема таймера неисправна.
11 коротких Ошибка чипсета.
12 коротких Ошибка регистра управления питанием в энергонезависимой памяти.
1 длинный Ошибка контроллера DMA 0. Неисправна микросхема контроллера DMA канала 0.
1 длинный 1 короткий Ошибка контроллера DMA 1. Неисправна микросхема контроллера DMA канала 1.
1 длинный 2 коротких Ошибка гашения обратного хода кадровой развёртки. Возможно, неисправен видеоадаптер.
1 длинный 3 коротких Ошибка в видеопамяти. Неисправна память видеоадаптера.
1 длинный 4 коротких Ошибка видеоадаптера. Неисправен видеоадаптер.
1 длинный 5 коротких Ошибка памяти 64K.
1 длинный 6 коротких Не удалось загрузить векторы прерываний. BIOS не смог загрузить векторы прерываний в память
1 длинный 7 коротких Не удалось инициализировать видеооборудование.
1 длинный 8 коротких Ошибка видеопамяти.

Compaq BIOS

Compaq BIOS

Compaq BIOS

Звуки Описание
   
1 короткий Ошибок нет. Нормальная загрузка системы.
1 длинный 1 короткий Ошибка контрольной суммы памяти CMOS BIOS. Возможно сел аккумулятор ROM.
2 коротких Глобальная ошибка.
1 длинный 2 коротких Ошибка инициализации видеокарты. Проверьте правильность установки видеокарты.
7 сигналов Неисправность видеокарты AGP. Проверьте правильность установки.
1 длинный постоянный Ошибка оперативной памяти, попробуйте перезагрузиться.
1 короткий 2 длинных Неисправность оперативной памяти. Перезагрузитесь через Reset.

Quadtel BIOS

Quadtel BIOS

Последовательность звуковых сигналов Описание ошибки
   
1 короткий Ошибок не обнаружено, ПК исправен
2 коротких CMOS RAM повреждена. Заменить IC если это возможно
1 длинный 2 коротких Ошибка видеоадаптера. Неисправен видеоадаптер. Переустановите или замените адаптер
1 длинный 3 коротких Один или несколько из периферийных контроллеров неисправен.
Замените контроллеры и проведите повторное тестирование

Далее: Beep-коды представлены последовательностью звуковых сигналов. Например, 1-1-2 означает 1 звуковой сигнал, пауза, 1 звуковой сигнал, пауза, и 2 звуковых сигнала.

Dell BIOS

Dell BIOS

Последовательность звуковых сигналов Описание ошибки
   
1-2 Не подключена видеокарта
1-2-2-3 Ошибка контрольной суммы ПЗУ BIOS
1-3-1-1 Ошибка обновления DRAM
1-3-1-3 Ошибка клавиатуры 8742
1-3-3-1 Неисправна память
1-3-4-1 Ошибка ОЗУ на линии xxx
1-3-4-3 Ошибка ОЗУ на младшем бите xxx
1-4-1-1 Ошибка ОЗУ на старшем бите xxx

Phoenix BIOS
Phoenix BIOS

Звуковые сигналы Phoenix BIOS состоят из нескольких серий коротких гудков, которые следуют с некоторым интервалом. Например, сигнал с кодом 1-2-3 будет звучать так: один короткий гудок, пауза, два коротких гудка, пауза, три коротких гудка.

Сигнал

Значение (расшифровка)

1-1-3

Ошибка при чтении данных из микросхемы встроенной памяти СМОS

1-1-4

Ошибка контрольной суммы микросхемы CMOS

1-2-1

Ошибка на системной плате

1-2-2

Ошибка контроллера DМА системной платы

1-2-3

Ошибка чтения или записи данных в один из каналов DМА

1-3-1

Ошибка в оперативной памяти

1-3-3

Ошибка первых 64 Кбайт основной памяти

1 3-4

Ошибка тестирования оперативной памяти

1-4-1

Ошибка системной платы

1-4-2

Ошибка тестирования оперативной памяти

от 2-1-1 до 2-4-4

Ошибка одного из битов первых 64 Кбайт оперативной памяти

3-1-1

Ошибка в первом канале DMA

3-1-2

Ошибка во втором канале DМА

3-1-3

Ошибка при обработке прерываний

3-1-4

Ошибка контроллера прерываний материнской  платы

3-2-4

Ошибка контроллера клавиатуры

3-3-4

Ошибка видеоадаптера

3-4-1

Ошибка при тестировании видеопамяти

3-4-2

Ошибка при поиске видеопамяти

4-2-1

Ошибка системного таймера

4-2-2

Завершение тестирования

4-2-3

Ошибка контроллера клавиатуры

4-2-4

Ошибка центрального процессора

4-3-1

Ошибка тестирования оперативной памяти

4-3-3

Ошибка системного таймера

4-3-4

Ошибка часов реального времени

4-4-1

Ошибка последовательного порта

4-4-2

Ошибка параллельного порта

4-4-3

Ошибка математического сопроцессора

1-2

Ошибка в работе адаптеров, имеющих собственный BIOS

1-2-2-3

Ошибка при подсчете контрольной суммы BIOS

1-3-1-1

Ошибка в работе оперативной памяти

1-3-1-3

Ошибка контроллера клавиатуры

1-3-4-1

Ошибки при тестировании оперативной памяти

2-1-2-3

Ошибка при проверке уведомления об авторском праве ROM BIOS

2-2-3-1

Ошибка при обработке непредвиденных прерываний

Последовательность звуковых сигналов, описание ошибок без таблицы:

1-1-2 Ошибка при тесте процессора. Процессор неисправен. Замените процессор
1-1-3 Ошибка записи/чтения данных в/из CMOS-памяти.
1-1-4 Обнаружена ошибка при подсчете контрольной суммы содержимого BIOS.
1-2-1 Ошибка инициализации материнской платы.
1-2-2 или 1-2-3 Ошибка инициализации контроллера DMA.
1-3-1 Ошибка инициализации схемы регенерации оперативной памяти.
1-3-3 или 1-3-4 Ошибка инициализации первых 64 Кбайт оперативной памяти.
1-4-1 Ошибка инициализации материнской платы.
1-4-2 Ошибка инициализации оперативной памяти.
1-4-3 Ошибка инициализации системного таймера.
1-4-4 Ошибка записи/чтения в/из одного из портов ввода/вывода.
2-1-1 Обнаружена ошибка при чтении/записи 0-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-1-2 Обнаружена ошибка при чтении/записи 1-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-1-3 Обнаружена ошибка при чтении/записи 2-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-1-4 Обнаружена ошибка при чтении/записи 3-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-2-1 Обнаружена ошибка при чтении/записи 4-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-2-2 Обнаружена ошибка при чтении/записи 5-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-2-3 Обнаружена ошибка при чтении/записи 6-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-2-4 Обнаружена ошибка при чтении/записи 7-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-3-1 Обнаружена ошибка при чтении/записи 8-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-3-2 Обнаружена ошибка при чтении/записи 9-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-3-3 Обнаружена ошибка при чтении/записи 10-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-3-4 Обнаружена ошибка при чтении/записи 11-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-4-1 Обнаружена ошибка при чтении/записи 12-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-4-2 Обнаружена ошибка при чтении/записи 13-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-4-3 Обнаружена ошибка при чтении/записи 14-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
2-4-4 Обнаружена ошибка при чтении/записи 15-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ
3-1-1 Ошибка инициализации второго канала DMA.
3-1-2 или 3-1-4 Ошибка инициализации первого канала DMA.
3-2-4 Ошибка инициализации контроллера клавиатуры.
3-3-4 Ошибка инициализации видеопамяти.
3-4-1 Возникли серьёзные проблемы при попытке обращения к монитору.
3-4-2 Не удается инициализировать BIOS видеоплаты.
4-2-1 Ошибка инициализации системного таймера.
4-2-2 Тестирование завершено.
4-2-3 Ошибка инициализации контроллера клавиатуры.
4-2-4 Критическая ошибка при переходе центрального процессора в защищенный режим.
4-3-1 Ошибка инициализации оперативной памяти.
4-3-2 Ошибка инициализации первого таймера.
4-3-3 Ошибка инициализации второго таймера.
4-4-1 Ошибка инициализации одного из последовательных портов.
4-4-2 Ошибка инициализации параллельного порта.
4-4-3 Ошибка инициализации математического сопроцессора.
Длинные, непрекращающиеся сигналы – неисправна материнская плата.
Звук сирены с высокой на низкую частоту – неисправна видеокарта, проверить электролитические емкости, на утечку или заменить все на новые, заведомо исправные.
Непрерывный сигнал – не подключен (неисправен) кулер CPU.

Понравилась статья? Поделить с друзьями:
  • Самый лучший это какая ошибка
  • Самый главный это речевая ошибка
  • Самый главный ошибка или нет
  • Самый главнейший какая ошибка
  • Самый высочайший ошибка