如何自学创建网页?

摘要:网站建设所学内容,怎么自己做一个网页,微商营销宝app下载,广州正规网站建设哪家好bootz 启动 Linux 内核 images 全局变量 不管是 bootz 还是 bootm 命令,在启动 Linux 内核
网站建设所学内容,怎么自己做一个网页,微商营销宝app下载,广州正规网站建设哪家好bootz 启动 Linux 内核 images 全局变量 不管是 bootz 还是 bootm 命令#xff0c;在启动 Linux 内核的时候都会用到一个重要的全局变量#xff1a;images#xff0c; images 在文件 cmd/bootm.c 中有如下定义#xff1a; images 是 bootm_headers_t 类型的全局变量在启动 Linux 内核的时候都会用到一个重要的全局变量images images 在文件 cmd/bootm.c 中有如下定义 images 是 bootm_headers_t 类型的全局变量 bootm_headers_t 是个 boot 头结构体在文件include/image.h 中的定义如下 第 335 行的 os 成员变量是 image_info_t 类型的为系统镜像信息。 第 352~362 行这 11 个宏定义表示 BOOT 的不同阶段。 接下来看一下结构体 image_info_t也就是系统镜像信息结构体此结构体在文件include/image.h 中的定义如下 全局变量 images 会在 bootz 命令的执行中频繁使用到相当于 Linux 内核启动的“灵魂”。 do_bootz 函数 bootz 命令的执行函数为 do_bootz在文件 cmd/bootm.c 中有如下定义 第 629 行调用 bootz_start 函数 bootz_start 函数执行过程稍后分析。 第 636 行调用函数 bootm_disable_interrupts 关闭中断。 第 638 行设置 images.os.os 为 IH_OS_LINUX也就是设置系统镜像为 Linux表示我们要启动的是 Linux 系统后面会用到 images.os.os 来挑选具体的启动函数。 第 639 行调用函数 do_bootm_states 来执行不同的 BOOT 阶段这里要执行的 BOOT 阶段有 BOOTM_STATE_OS_PREP 、BOOTM_STATE_OS_FAKE_GO 和BOOTM_STATE_OS_GO。 bootz_start 函数 bootz_srart 函数也定义在文件 cmd/bootm.c 中函数内容如下 第 584 行调用函数 do_bootm_states执行 BOOTM_STATE_START 阶段。 第 593 行设置 images 的 ep 成员变量也就是系统镜像的入口点使用 bootz 命令启动系统的时候就会设置系统在 DRAM 中的存储位置这个存储位置就是系统镜像的入口点因 此 images-ep0X80800000。 第 598 行调用 bootz_setup 函数此函数会判断当前的系统镜像文件是否为 Linux 的镜像文件并且会打印出镜像相关信息 bootz_setup 函数稍后会讲解。 第 608 行调用函数 bootm_find_images 查找 ramdisk 和设备树(dtb)文件但是我们没有用到 ramdisk因此此函数在这里仅仅用于查找设备树(dtb)文件此函数稍后也会讲解。 先来看一下 bootz_setup 函数此函数定义在文件 arch/arm/lib/bootm.c 中函数内容如下 第 370 行宏 LINUX_ARM_ZIMAGE_MAGIC 就是 ARM Linux 系统魔术数。 第 376 行从传递进来的参数 image(也就是系统镜像首地址)中获取 zimage 头。 zImage 头结构体为 zimage_header。 第 377~380 行判断 image 是否为 ARM 的 Linux 系统镜像如果不是的话就直接返回并且打印出“Bad Linux ARM zImage magic!”。 第 382、 383 行初始化函数 bootz_setup 的参数 start 和 end。 第 385 行打印启动信息如果 Linux 系统镜像正常的话就会输出如图所示的信息 接下来看一下函数 bootm_find_images此函数定义在文件 common/bootm.c 中函数内容如下 第 230~235 行是跟查找 ramdisk但是我们没有用到 ramdisk因此这部分代码不用管。 第 237~244 行是查找设备树(dtb)文件找到以后就将设备树的起始地址和长度分别写到images 的 ft_addr 和 ft_len 成员变量中。
阅读全文