一 加电 系统(x86)加电后,有一个特殊的硬件电路在cpu的一个引脚上产生一个RESET逻辑值,设置寄存器的值,cpu开始执行一特定的物理地址上的代码(即BIOS) 二 BIOS启动 BIOS进行设备初始化, 设置CMOS里的各项参数,启动自举程序, 查找主引导设备读取第一扇区的主引导记录(MBR),将MBR拷贝到内存的0x7c00处(CPU跳转到此处开始执行载入的代码) 三 运行BootLoader Cpu执行MBR程序,检查磁盘分区列表,运行嵌入在MBR中的bootloader(stage1阶...
by cdy_0 - HP文档中心 - 2007-07-09 00:41:23 阅读(2351) 回复(0)
我的开发板是ixp425芯片,flash 16MB,sdram 128MB kernel/arch/arm/Makefile中的TEXTADDR定义为: ifeq ($(CONFIG_CPU_32),y) PROCESSOR = armv TEXTADDR = 0xc0000000 LDSCRIPT = arch/arm/vmlinux-armv.lds.in endif kernel/arch/arm/boot/Makefile中定义的内核地址为: ifeq ($(CONFIG_ARCH_IXP425),y) ZTEXTADDR = 0x1d600000 ZRELADDR = 0x00008000 PARAMS_PHYS = 0x0000...
在自己的笔记本上装了个AS4.0,原本打算尝尝鲜,没想到新编译了一个2.6.11的内核,在AS3.0的版本下完全可以正常使用,但在4.0下就是不能启动,启动到了一行 mount root filesystem readonly unable to open initial console 就没有反应了,反复试了好几次,都是这样,折腾了3天了,已经没招了,估计4.0的init修改了,对内核配置有要求,哪位达人有类似的经验,帮帮忙解决一下。 附件是kernel配置文件。 thanks
在linux的启动部分有这样一段代码 SETUPSEG = 0x9020 setup 程序从这里开始; SYSSEG = 0x1000 system 模块加载到0x10000(64 kB)处; ENDSEG = SYSSEG + SYSSIZE mov ax,#BOOTSEG 将ds 段寄存器置为0x7C0; mov ds,ax mov ax,#INITSEG 将es 段寄存器置为0x9000; mov es,ax mov cx,#256 移动计数值=256 字; sub si,si 源地址 ds:si = 0x07C0:0x0000...
一,系统初启 首先很惭愧的坦白大部分是抄袭他人(XIAOMAN)的因为系统的初起一直是一个麻烦而头疼的问题,不同的体系结构会有较大的不同。X86从硬件启动,读入引导扇区,执行引导程序从实模式开始再转换到保护模式这个复杂的过程其实与操作系统本身的运行机制关系并不大,但忽略过去又无法给linux内核一个完整的 过程,所以我大动剪刀浆糊,但会把精力主要集中在linux内核本身,希望得到大家的谅解。 (以核心2.0.36为主)...