- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VIVI分析VIVI分析
1.1 Vivi简介
Vivi 是韩国mizi 公司开发的bootloader, 适用于ARM9处理器。 Vivi有两种工作模式:启动加载模式和下载模式。启动加载模式可以在一段时间后(这个时间可更改)自行启动linux内核,这时vivi的默认模式。在下载模式下,vivi为用户提供一个命令行接口,通过接口可以使用vivi提供的一些命令,见下表:
命令 功能 Load 把二进制文件载入Flash或RAM Part 操作MTD分区信息。显示、增加、删除、复位、保存MTD分区 Param 设置参数 Boot 启动系统 Flash 管理Flash,如删除Flash的数据 1.2 vivi的配置与编译
1.2.1 建立交叉开发环境
1、在宿主机上安装标准Linux 操作系统:Redhat 9.0。
2、宿主机上安装交叉编译器。
交叉编译器工具:arm-linux-gcc-2.95.3(源码为cross-2.95.3.tar.bz2)。然后修改PATH 变量:为了可以方便使用arm-linux-gcc编译器系统, 把arm-linux工具链目录加入到环境变量PATH中。
1.2.2 配置和编译vivi
?????? 如果vivi的源代码已根据开发板作了相应改动,则需要对源代码进行配置和编译,以生成烧入flash的vivi 二进制映象文件。由于vivi要用到kernel的一些头文件,需要kernel的源代码,所以先要把linux的kernel准备好。将vivi和kernel都解到相应目录下。
????? 需修改/vivi/Makefile里的一些变量设置:
LINUX_INCLUDE_DIR = /kernel/include/
(LINUX_INCLUDE_DIR 为kernel/include的对应目录,我的是usr/src/linux-2.6.21.5/include)
因此修改为:
LINUX_INCLUDE_DIR = usr/src/linux-2.6.21.5/include
CROSS_COMPILE = /usr/local/arm/2.95.3/bin/arm-linux-
(CROSS_COMPILE 为arm-linux安装的相应目录,我的是/usr/local/arm/2.95.3/bin/arm-linux-)
因此修改为:
CROSS_COMPILE = /usr/local/arm/2.95.3/bin/arm-linux-
ARM_GCC_LIBS = /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3
(需根据你arm-linux的安装目录修改,我的是/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3)
进入/vivi目录执行make distclean。(目的是确保编译的有效性,在编译之前将vivi里所有的“*.o”和“*.o.flag”文件删掉)
进入/vivi目录里,输入“make menuconfig”,开始选择配置。可以Load一个写好的配置文件也可以自己修改试试。注意Exit时一定要选“Yes”保存配置。
再输入“make”正式开始编译,一会儿就完了。如果不报错,在/vivi里面就有你自己的“vivi”了。这个就是后面要烧写到flash中的bootloader。1.3 vivi代码分析
vivi的代码包括arch,init,lib,drivers和include等几个目录,共200多文件。
Vivi主要包括下面几个目录:
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定义了与开发板相关的资源配置参数,我们往往只需要修改这个文件就可以配置目标板的参数,如波特率、引导参数、物理内存映射等。1.4 vivi的运行vivi的运行也可以分为两个阶段:
1.4.1 vivi的第一阶段完成含依赖于CPU的体系结构硬件初始化的代码,包括禁止中断、初始化串口、复制自身到RAM等。相关代码集中在head.S(viviarchs3c24xx目录下):Head.S:#include config.h
您可能关注的文档
- TTT讲师培训案例 ,PCT企业培训-陈恭华TTT讲师培训案例 ,PCT企业培训-陈恭华.pdf
- TT人物外貌描写TT人物外貌描写.ppt
- TT作曲家1.2(标准版)使用教程TT作曲家1.2(标准版)使用教程.doc
- TT作曲家_简谱作曲操作手册TT作曲家_简谱作曲操作手册.doc
- TT及信用证TT及信用证.doc
- TU-1901双光束紫外可见分光光度计TU-1901双光束紫外可见分光光度计.pdf
- TUV测试报告(EN71-1-2-3 AZO 6pTUV测试报告(EN71-1-2-3 AZO 6p.pdf
- TU-1800 TU-1800S 紫外可见分光光度计TU-1800 TU-1800S 紫外可见分光光度计.ppt
- tuxedo服务封装tuxedo服务封装.ppt
- TT型平台机器人TT型平台机器人.pdf
文档评论(0)