- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
S3C2410linux2.4移植文档_temp
基于S3C2410处理器目标板的Linux移植
本文描述了将Linux移植到基于S3C2410处理器目标板上的方法与过程。介绍了如何搭建移植环境,着重介绍了Bootloader的架构和功能以及Linux内核的移植。移植后Linux在嵌入式系统中运行良好。
ARM处理下底层软件平台搭建:
a.Bootloader的移植;
b.嵌入式Linux操作系统内核的移植;
c.嵌入式Linux操作系统根文件系统的创建;
d.嵌入式Linux应用程序的编写。
Bootloader的移植
BootloaderBootloader,就相当于一个小型的操作系统。在嵌入式领域中,操作系统移植的关键在于Bootloader的移植以及操作系统内核与硬件相关部分的移植。
vivi是由mizi公司针对ARM9处理器系列设计的一个BootLoader,操作简单,而且提供了完备的命令体系,在网络上公开源代码,任何人都可以在mizi公司的官网上免费下载。在标准的vivi中只支持串口与主机通信,使得在下载内核和文件系统时效率很低。由于vivi是源代码的开放,目前很多开发人员对它的功能进行了扩展,添加了USB传输和网络传输等下载方式,极大的提高了vivi的性能,而且很多都是公开源代码的。vivi支持以S3C2410为核心SDMK2410平台(SMDK2410是S3C2410处理器设计的
和所有的BootLoader一样,vivi也有两种工作模式,即启动加载模式和下载模式。
启动加载(Bootloading)模式:BootLoader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。这种模式是BootLoader的正常工作模式,因此在嵌入式产品发布的时候,BootLoader必须工作在这种模式下。
下载(Download)模式:在这种模式下,开发人员用串口或者网络接口把目标机和主机(Host)连接,并从Host下载文件,比如:下载内核映像和根文件系统映像等。BootLoader先把下载的文件保存在RAM中,然后再存储到目标机上的固态存储设备,比如Flash,E2PROM等中。BootLoader的这种操作模式通常只有一次,就是在安装内核与根文件系统时使用;当然,以后的系统更新也会使用BootLoader的这种工作模式。在正常运行的时候都工作在启动加载模式。
vivi的软件架构分为三个层次:vivi配置bootloader stage1、bootloader stage2。另外,Vivi还提供了测试程序和工具,并且有简明的文档。具体如图所示。
图一Vivi启动第一阶段流程图 图二 vivi启动第二阶段流程图
第二阶段的代码用c语言编写,从main()函数开始,该函数在/init/main.c文件中。主要进行一些开发板初始化、内存映射和内存管理单元初始化等工作,最后会跳转到boot-or-Vivi()函数中接收命令并进行处理。具体步骤如图2所示:①调用putstr(Vivi-banner)打印出Vivi的版本,调用reset_handler()将内存清零。②调用board-init()函数对开发板进行初始化,主要是时钟初始化和通用I/O设置。③调用mem-map-init()和mmu-init()函数进行内存映射初始化和内存管理单元的初始化。④调用heap-init()函数进行堆栈初始化。⑤调用mtd-dev-init()函数进行MTD设备初始化。⑥调用init-priv-data()函数进行私有数据初始化。⑦调用init-buildin-cmds()函数进行内置命令初始化。⑧跳转到boot-or-Vivi()函数中。
接下来我们就要开始移植工作:
1.移植交叉编译器
网上下载cross-2.95.3.tar.bz2。
[armlinux@kfb /]$ tar xjvf cross-2.95.3.tar.bz2 –C /usr/local/ 就会在/usr/local/下面生成我们需要的交叉编译器的文件夹以及源文件。
由于在下面vivi文件中是全路径,所以可以不添加路径声明,即修改环境变量,但是一般情况下,我们要修改环境变量,将之添加到系统中,使之开机生效。即:让我们直接运行
修改/root/.bash_profile
添加如下语句:
PATH=$PATH:/usr/local/armv4l/bin/
至此一个交叉编译器移植就完成了。
2.下载vivi
网上下载vivitar.bz2。
[armlinux@kfb /]$ tar xjvf vivitar.bz2 –C /home/king/ 就会在/home/king/下面生成我们需要的vivi文件夹以及源文件。
在此,我们
文档评论(0)