精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>嵌入式开发>>操作系统设计与实现>>参考资料:通电之后……(补遗)

主题:参考资料:通电之后……(补遗)
发信人: wenbobo()
整理人: wenbobo(2003-01-09 10:08:30), 站内信件
下面是摘自于HELPPC2.1中的有关机器启动过程的信息
wenbobo翻译<[email protected]>

POST - Cold Boot / Power On Self Test Activities
POST - 冷启动、开机自检
 - power supply starts Clock Generator (8284) with Power
   通电后8284时序发生器开始工作
   Good signal on BUS
   总线产生正常信号
 - CPU reset line is pulsed resetting CPU
   CPU的复位引脚被触发,CPU复位
 - DS, ES, and SS are cleared to zero
   DS,ES,SS初始值为0(CPU处于实模式下)

Cold and Warm Boot both execute the following sequence
冷启动和热启动都会执行一下序列
 - CS:IP are set to FFFF:0000 (address of ROM POST code)
   CS:IP初始值为FFFF:0000(该地址为BIOS的ROM POST代码)
 - jump to CS:IP  (execute POST, Power On Self test)
   CPU工作,开始取第一条指令(执行POST,开机自检)
 - interrupts are disabled
   关中断
 - CPU flags are set, read/write/read test of CPU registers
   设置CPU标志位,用读、写、读来测试CPU寄存器
 - checksum test of ROM BIOS
   检测ROM BIOS的校验和
 - Initialize DMA (verify/init 8237 timer, begin DMA RAM refresh)
   初始化DMA(校验、初始化 8237时钟控制器,开始DMA 内存刷新)
 - save reset flag then read/write test the first 32K of memory
   保存复位标志,然后对内存的前32K字节进行读写测试
 - Initialize the Programmable Interrupt Controller (8259)
   and set 8 major BIOS ~interrupt~ vectors (interrupts 10h-17h)
   初始化8259可编程中断控制器,设置好8个主要的BIOS中断向量(INT 10h-17H)
 - determine and set configuration information
   检测并设置好CMOS配置信息
 - initialize/test CRT controller & test video memory (unless 1234h
   found in reset word)
   初始化/测试CRT控制器,测试显存(除非在复位字的位置找到1234h)
 - test ~8259~ Programmable Interrupt Controller
   测试8259可编程中断控制器
 - test Programmable Interrupt Timer (~8253~)
   测试8253可编程时钟中断控制器
 - reset/enable keyboard, verify scan code (AAh), clear keyboard,
   check for stuck keys, setup interrupt vector lookup table
   复位、激活键盘,校验扫描码,清除键盘缓冲区,检查是否有卡住的键,设置中断查找表
 - hardware interrupt vectors are set
   设置硬件中断向量
 - test for expansion box, test additional RAM
   测试扩展设备,测试扩充内存
 - read/write memory above 32K (unless 1234h found in reset word)
   读写测试32K字节以上的内存(除非在复位字的位置找到1234h)
 - addresses C800:0 through F400:0 are scanned in 2Kb blocks in
   search of valid ROM. If found, a far call to byte 3 of the ROM
   is executed.
   以2K字节大小的块为单位,从c800:0到f400:0扫描,查找有效映射的ROM。找到后,对ROM的第3个字节进行远程调用。
 - test ROM cassette BASIC (checksum test)
   检测ROM BASIC(校验和测试,现在的BIOS已取消ROM BASIC了……)
 - test for installed diskette drives & ~FDC~ recalibration & seek
   检测安装了的硬盘驱动器、软盘控制器。
 - test printer and RS-232 ports.  store printer port addresses
   at 400h and RS-232 port addresses at 408h.  store printer
   time-out values at 478h and Serial time-out values at 47Ch.
   检测打印机口和RS-232串口。把打印口地址保存在内存的400h,串口地址保存在408h。打印机超时值保存在478h,串口超时值保存在47Ch。
 - NMI interrupts are enabled
   激活NMI中断
 - perform ~INT 19~ (bootstrap loader), pass control to boot record
   or cassette BASIC if no bootable disk found
   执行INT 19h(引导装载程序),把控制权转交给引导程序
 - ~WARM BOOT~ procedure is now executed
   现在热启动已经执行完毕了


----
掬水月在手
弄花香满身

[关闭][返回]