- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
STEP3STEP2STEP1对vivi进行下载利用JTAG口将vivi下载到目标板的Norflash空间(0x00000---0x20000)。然后对目标板加电,使vivi启动运行,观察运行情况。Linux内核结构Linux移植Linux下载Linux编译本节内容6.2Linux内核及移植Linux操作系统具有很好的移植性,能够很方便地从一个硬件平台移植到另一个硬件平台上,其根本原因是Linux操作系统的代码,将与硬件相关的代码与硬件无关的代码是分开编写的。01Linux移植所涉及的文件:对Linux移植时,只需要修改与硬件相关的代码即可,涉及的文件主要是各个目录下的makefile文件,以及少数的汇编语言文件。02Linux操作系统的移植性6.2.1Linux内核结构Linux内核结构Linux内核有12个主目录,700多个子目录,文件总数11000多个,总长度120多MB。Linux内核的主目录为:arch、drivers、fs、include、init、ipc、kernel、lib、mm、net、、arch目录arch目录包含了与硬件体系结构相关的内核代码,其下面的每一个目录都是一种硬件平台,如ARM和PC机的i386。对于每一平台都包含以下几个目录。boot :与平台相关的启动内核代码kernel :与平台相关的内核代码lib :与平台相关的通用函数mm :与平台相关的内存管理代码math-emu :与平台相关的模拟FPU代码显然,内核移植的重点就是该目录下面的文件。drivers目录该目录下面保存的是所用设备的驱动程序,其下的每个目录是一种设备。fs目录该目录下面列出了Linux所支持的文件系统,其下每个目录代表一种文件系统,文件系统代码与平台无关。include目录该目录下面是编译内核所需要的头文件,与平台无关的部分在linux子目录下面,其余的子目录都是与各种平台相关的头文件。init目录其下只有两个文件:main.c和version.c,前者是核心的初始化代码,后者是版本信息其文件是核心进程的通信代码。ipc目录该目录下面的文件是与平台无关的内存管理代码,与平台相关部分在arch/***/mm下面。mm目录为与平台无关的内核管理代码,与平台相关部分在arch/***/kernel下面。kernel目录该目录下面的文件是与平台无关的通用函数。lib目录net目录是网络功能代码,其每个子目录对应网络的一个方面。其它目录Documentation目录下存放的是说明和应用文档,scripts目录下存放的是配置内核脚本。另外在每个目录下几乎都有一个depend文件和Makefile文件,depend是被包含在Makefile中的,编译目标所依赖的头文件。对于后面的移植,假设内核的目录为/my-arm/kernel,并且设环境变量为$KERNELCODE=/my-arm/kernel。/my-arm/kernel---根目录根目录下只需要修改Makefile文件。该文件的任务有两个:产生Linux内核镜像压缩文件vmlinux和内核模块,Makefile递归进入到各个子目录中,调用子目录中的Makefile最终产生出目标文件。6.2.2Linux移植需要修改的内容:指定目标平台:将: ARCH:=$(shelluname–m|sed–es/i.86/i.386……修改为: ARCH:=arm指定交叉编译器将: CROSS_COMPILE=修改为: CROSS_COMPILE=/friendly-arm/crosstool/arm-linux/将: TOPDIR:=$(shellbin/pwd)修改为: TOPDIR:=$(/my-arm/kernel)修改TOPDIR将: INSTALL_MOD_PATH=/root修改为: INSTALL_MOD_PATH =/my-arm/kernel/arch/arm/root修改export INSTALL_MOD_PATHarch/arm目录对Makefile文件的修改ifeq($(CONFIG_ARCH_S3C2410),y)TEXTADDR = 0xC0008000MACHINE = s3c2410endifTEXTADDR决定内核起始运行地址,即image.ram应下载的位置,其值与具体目标板有关。0xC0008000的含义:从地址0xC0000000开始,共有32MB空间。 2、对config.in文件的修改 config.in是配置文件,运
文档评论(0)