Вы находитесь на странице: 1из 2

Power On Self Test

Cuando se enciende la PC cualquier procesador 80x86 busca en una direccin fija de memoria una instruccin para comenzar la ejecucin de programas. As est dise!ada la m quina de estado de cualquier procesador" busca una instruccin# la ejecuta# busca la siguiente instruccin en la secuencia# $ as sucesi%amente &asta que se lo apague# o encuentro cualquier e%ento que detenga esta m quina de estados 'en el caso de los procesadores 80x86 una instruccin (A)*# por ejemplo+ Por lo tanto para que el procesador pueda arrancar sin incon%enientes# se debe comenzar el primer programa a ejecutar en la direccin de memoria en la que el procesador %a a buscar su primer instruccin. ,se programa cumplir las funciones necesarias para poner al sistema a funcionar# $ como debe ejecutarse ni bien se enciende el equipo deber residir en memoria -./. ,n la PC este programa recibe el nombre de P.0* 'Po1er .n 0elf *est+# $ cumple las funciones de comprobacin del correcto funcionamiento de los componentes b sicos del sistema# inicializacin de los mismos# $ del sistema en general. )as principales acti%idades que se realizan en esta rutina se enumeran a continuacin 'aunque debe tenerse especialmente en cuenta que cada fabricante tiene su propio cdigo de inicializacin# razn por la cual puede %ariar inclusi%e el orden en que se realizan los pasos que se describir n+. C&equeo del procesador en s mismo. 2. Antes de iniciar su operacin el sistema %erificar el correcto funcionamiento de su corazn" la CP3. Para ello se ejecuta un cdigo %erificador compuesto de operaciones que afecten los flags $ se comprueban las condiciones de salto condicionado# de modo que ante cualquier mal funcionamiento se salte a una rutina error en donde lo que se ejecuta es un ()*# deteni4ndose el sistema. 5. 3na %ez establecido el correcto funcionamiento del procesador el paso siguiente es c&equear si el contenido de la -./ es el correcto. Para ello se realiza un c&ec6sum mdulo 200& del contenido de la -./ completa que en f brica se ajusta de modo que el resultado del c&ec6 sea cero. ,l c&ec6sum no es otra cosa que una 7.- del contenido de la memoria descartando cualquier flag que se produzca como resultado de la operacin. 0i el resultado obtenido es diferente de cero se asume que existen problemas# o bien en el contenido de la memoria o bien en la lgica de acceso a la memoria. ,n cualquier caso se ejecuta un &alt# $ el sistema se detiene. 9etecta el tipo de adaptador de %ideo que est instalado en el sistema. )o inicializa en modo texto 80x5:. ,scribe en la ;<.0 9A*A A-,A los principales datos de inter4s para el sistema que proporciona este controlador. ,n las 7* comprobaba el correcto funcionamiento del 85:: $ lo inicializa. ,n las A* comprueba la correcta interaccin con el 80=5 $ setea el modo de trabajo con los diferentes ports de ,>0 que proporciona este c&ip. Comprueba 0i el *imer 2 del 85:8 u 85:= funciona correctamente. 3na forma posible es programarle un modo de trabajo una cuenta $ dispararlo. )uego de %arios ciclos de cloc6 en los que la rutina loopea d ndole tiempo al timer de decrementar su cuenta se accede al registro de cuenta para comprobar que realmente la misma sufri %ariaciones. 0i permaneci sin cambios# significa que el timer no est contando. 0i el *imer 2 funciona correctamente se lo programa para generar un pulso al final de la cuenta# cuenta cclica# $ duracin de la misma 2: seg. Comprueba el correcto funcionamiento para el canal de 9/A 0. 3na forma es programarlo en el modo en el que se lo %a a utilizar $ leer su estado en el registro correspondiente del 858?A. 0i los test descriptos en : $ 6 indican que el *imer 2 $ el canal 0 de 9/A funcionan correctamente# entonces se dispara el refresco de memoria. 3na %ez disparado el refresco de memoria est en condiciones de iniciar el c&ec6 de memoria. ,ste consiste en comprobar si las celdas de memoria se pueden acceder correctamente# $ al mismo tiempo determinar la cantidad de memoria presente en el sistema. ,sta cantidad ser comparada con la programada en el setup. Para comprobar el correcto acceso a la memoria se escriben patrones en cada celda# o cada 5 @ celdas por muestreo $ se lee para comprobar la escritura. 0i en algAn momento la comparacin arroja diferencias se toma como no % lida a. dic&a celda. Bormalmente se escribe AA& se comprueba lectura# luego se escribe

8. =. :.

6. ?. 8.

C. 20. 22. 25. 28. 2=. 2:. 26. 2?. 28.

2C.

::& 'de modo de in%ertir todos los bits de la celda# considerada esta la situacin mas desfa%orable+# se comprueba por lectura# $ finalmente se escribe 00& $ se comprueba por lectura. /ientras realiza esta acti%idad %a contando la cantidad de memoria $ presentando la cuenta en pantalla. 3na %ez finalizada la cuenta de memoria# c&equea los restantes timers $ canales de 9/A. 0i funcionan correctamente los inicializa de acuerdo a la forma en la que %an a trabajar cada uno de ellos. Comprueba el 85:C $ lo inicializa. <nicializa los %alores default de los %ectores de <nterrupcin. A los que usa# los apunta a las rutinas de la -./ correspondientes. A los que no usa los incializa apuntando a un iret residente en alguna posicin de la -./. ,stando $a inicializado el sistema de interrupciones# dispara *imer *ic6. Comprueba el correcto funcionamiento del teclado. ,n la 7* lo que &aca era %erificar la presencia de una se!al pulsante en la lnea de cloc6. ,n la A* por tener comunicacin full duplex con el teclado lo comprueba a tra%4s del juego de comandos establecido para la interaccin entre el sistema $ el teclado. Duncionando correctamente el teclado $ el timer tic6# &abilita sus interrupciones en el 85:C *estea el funcionamiento de las unidades de disco flexible $ rgido. 3na %ez comprobado las inicializa# $ escribe los resultados $ principales par metros en la ;<.0 9A*A A-,A. C&equea si existen ports serie. <nicializa a los que encuentra $ guarda resultados en ;<.0 9A*A A-,A. C&equea si existen ports paralelo. <nicializa a los que encuentra $ guarda resultados en ;<.0 9A*A A-,A. ,stablece si existen extensiones ;<.0. ,sto es" )a -./ ;<.0 de las PC pro%ee un camino para integrar adaptadores de ,>0 con su propia -./ onEboard. Para que esto sea posible# durante el P.0*# una %ez que los %ectores de interrupcin &an sido inicializados# $ con la interrupciones &abilitadas# se realiza una bAsqueda de mdulos -./ adicionales. 0i se encuentra alguna -./ adicional# esta ganar el control interceptando las interrupciones que necesite# enganc& ndose de este modo a s misma en el sistema. ,l rango de direcciones de memoria en las que se puede mapear estas -./s comprende desde la C0000& &asta la ,0000&. )uego el sistema busca dentro de este rango cada 5@ una firma fija e igual a ::AA& 0i la encuentra significa que en esa p gina de 56 comienzo una extensin de ;<.0. )a estructura inicial de la -./ tendr que tener entonces el siguiente formato. ;$te 0 ::& ;$te 2 AA& ;$te 5 )ongitud de la extensin en bloques de :25 b$tes ;$te 8E6 Punto de entrada a tra%4s de un call far Adem s el P.0* realizar del mismo modo que para la -./ del sistema un c&ec6sum en mdulo 200&# cu$o resultado debe ser 0 para que la -./ se considere de contenido % lido. )lama a la rutina ;ootstrap loader para la carga del sistema operati%o

F;<.0 9A*A A-,A" ,s un rea de -A/ que arranca en el segmento 00=0&# que contiene una estructura de %ariables que el P.0* arma relacionadas con los diferentes dispositi%os de entrada salida que soporta el sistema. )uego las rutinas del ;<.0 se basan en parte en esta informacin a la &ora de acceder a los registros de entrada salida del &ard1are al ser llamadas desde los programas. Por ejemplo para el acceso al controlador de %ideo # la <nterrupcin 20& determina en esta rea entre otras cosas el tipo de controlador presente# $a que de tratarse de un monocromo o color# tanto las direcciones de ,>0 como las direcciones de los buffers de -A/ utilizados por estos controladores son diferentes en un caso a otro.

Вам также может понравиться