Vivi 代码分析
一、背景知识
嵌入式系统软件开发主要包括五个方面:bootloader 编写(移植)、驱动程序编写
(移植)、操作系统裁减(移植)、文件系统制作、应用程序编写(移植)。
如 果 想 要 专 研 好 嵌 入 式 技 术 , bootloader 就 是 第 一 步 , 而 vivi 就 是 一 种 常 见 的
bootloader,是用来学习很好的一个典型;
二、vivi 的启动阶段任务
2.1 目录文件的作用
arch:此目录包括了所有 vivi 支持的目标板的子目录,例如 s3c2410,s3c2440 目录。
drivers:其中包括了引导内核需要的设备的驱动程序( MTD 和串口)。MTD 目录下分
map、nand 和 nor 三个目录。
init:这个目录只有 main.c 和 version.c 两个文件。和普通的 C 程序一样,vivi 将从 main 函
数开始执行。
lib:一些平台公共的接口代码,比如 time.c 里的 udelay()和 mdelay()。
include : 头 文 件 的 公 共 目 录 , 其 中 的 s3c24xx.h 定 义 了 这 块 处 理 器 的 一 些 寄 存 器 。
Platform/smdk24xx.h 定义了与开发板相关的资源配置参数,我们往往只需要修改这个文件
就可以配置目标板的参数,如波特率、引导参数、物理内存映射等。
2.2 vivi 分为 2 个启动阶段
阶段 1 的代码在 arch/s3c2410/head.S 中;
评论0