uboot-1.1.4在smdk2410上移植.doc
《uboot-1.1.4在smdk2410上移植.doc》由会员分享,可在线阅读,更多相关《uboot-1.1.4在smdk2410上移植.doc(17页珍藏版)》请在咨信网上搜索。
1、uboot-1.1.4在smdk2410上移植 作者: 日期:17 个人收集整理 勿做商业用途uboot的移植1。1u-boot介绍Uboot是德国DENX小组的开发用于多种嵌入式CPU的bootloader程序, UBoot不仅仅支持嵌入式Linux系统的引导,当前,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS嵌入式操作系统。UBoot除了支持PowerPC系列的处理器外,还能支持MIPS、 x86、ARM、NIOS、XScale等诸多常用系列的处理器。本文的代码取自于uboot1。1。4。1。2获取u-boot从下面地址下载uboot的源代码
2、.http:/ubootlocalhost uboottar xjvf uboot1.1.4.tar。bz2ubootlocalhost ubootcd uboot1.1。41.3uboot体系结构1。 目录树.board|commoncpu|disk|doc|drivers|dttexamplesfs|includelib_arm|lib_genericlib_i386lib_m68k|lib_microblaze|lib_mips|lib_nioslib_nios2|lib_ppcnetpostrtctools2。 board:和一些已有开发板有关的文件. 每一个开发板都以一个子目录出现在
3、当前目录中,比如说:SMDK2410,子目录中存放与开发板相关的配置文件。3。 common:实现uboot命令行下支持的命令,每一条命令都对应一个文件.例如bootm命令对应就是cmd_bootm.c.4。 cpu:与特定CPU架构相关目录,每一款Uboot下支持的CPU在该目录下对应一个子目录,比如有子目录arm920t等.5。 disk:对磁盘的支持.5。 doc:文档目录。Uboot有非常完善的文档,推荐大家参考阅读。6。 drivers:Uboot支持的设备驱动程序都放在该目录,比如各种网卡、支持CFI的Flash、串口和USB等。7. fs: 支持的文件系统,Uboot现在支持cr
4、amfs、fat、fdos、jffs2和registerfs.8。 include:Uboot使用的头文件,还有对各种硬件平台支持的汇编文件,系统的配置文件和对文件系统支持的文件。该目录下configs目录有与开发板相关的配置头文件,如smdk2410.h。该目录下的asm目录有与CPU体系结构相关的头文件,asm对应的是asmarm.9. lib_xxxx: 与体系结构相关的库文件。如与ARM相关的库放在lib_arm中。10。 net:与网络协议栈相关的代码,BOOTP协议、TFTP协议、RARP协议和NFS文件系统的实现。11。 tools:生成Uboot的工具,如:mkimage, c
5、rc等等.1.4u-boot编译及配置1.4。1uboot的Makefile分析u-boot的Makefile从功能上可以分成两个部分。一部分是用来编译生成uboot。bin文件;另一部分是用来执行每种board相关的配置。下面以smdk2410为例来说明作了哪些配置。$make smdk2410_config在shell执行以上命令,对应于Makefile执行的命令是smdk2410_config:unconfig。/mkconfig (:_config=) arm arm920t smdk2410 NULL s3c24x0首先执行如下命令,删除文件include/config。h incl
6、ude/config。mk board/config。tmp,后续会发现这些文件是如何建立的。unconfig:rm f include/config.h include/config.mk board/config。tmp然后运行命令。/mkconfig $(:_config=) arm arm920t smdk2410 NULL s3c24x0,mkconfig是脚本文件,传入的参数$1至$6分别为:smdk2410 arm arm920t smdk2410 NULL s3c24x0,根据传入的参数执行如下命令cd 。/includerm f asmln s asm-arm asmrm f
7、 asm-arm/archln s archs3c24x0 asm-arm/archrm f asmarm/procln s proc-armv asmarm/proc生成文件config。mk,文件内容为:ARCH = armCPU = arm920tBOARD = smdk2410SOC = s3c24x0生成文件config.h,文件内容为:/ Automatically generated - do not edit */#include configs/smdk2410.h至此make smdk2410_config的命令全部执行完毕。配置完成与board相关的信息,下面就可以编译此
8、board的u-boot。bin文件,执行如下命令:$make CROSS_COMPILE=arm-linux-Makefile的执行首先包含include include/config。mk文件,获取ARCH CPU BOARD VENDOR SOC的定义,然后根据宏的配置编译指定的文件,最终生成u-boot。bin文件,执行流程请自行分析。1.4。2u-boot.bin的生成根据以上对于makefile的分析,uboot。bin的生成分为两步。如下:对于board进行配置:$make smdk2410_config进行编译生成uboot.bin:make CROSS_COMPILE=arm
9、linux-1。5uboot的启动过程及工作原理1。5。1启动模式介绍大多数 Boot Loader 都包含两种不同的操作模式:”启动加载模式和下载”模式,这种区别仅对于开发人员才有意义.但从最终用户的角度看,Boot Loader 的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。启动加载(Boot loading)模式:这种模式也称为”自主”(Autonomous)模式。也即 Boot Loader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入.这种模式是 BootLoader 的正常工作模式,因此在嵌入式产品发布的时
10、侯,Boot Loader 显然必须工作在这种模式下。下载(Downloading)模式:在这种模式下,目标机上的 Boot Loader 将通过串口连接或网络连接等通信手段从主机(Host)下载文件,比如:下载内核映像和根文件系统映像等。从主机下载的文件通常首先被 BootLoader 保存到目标机的 RAM 中,然后再被 BootLoader 写到目标机上的FLASH 类固态存储设备中.BootLoader 的这种模式通常在第一次安装内核与根文件系统时被使用;此外,以后的系统更新也会使用 BootLoader 的这种工作模式。工作于这种模式下的 Boot Loader 通常都会向它的终端用
11、户提供一个简单的命令行接口.UBoot这样功能强大的 Boot Loader 同时支持这两种工作模式,而且允许用户在这两种工作模式之间进行切换。大多数bootloader都分为阶段1(stage1)和阶段2(stage2)两大部分,uboot也不例外.依赖于CPU体系结构的代码(如CPU初始化代码等)通常都放在阶段1中且通常用汇编语言实现,而阶段2则通常用C语言来实现,这样可以实现复杂的功能,而且有更好的可读性和移植性。1。5.2阶段1介绍uboot的stage1代码通常放在start。s文件中,它用汇编语言写成,其主要代码部分如下:1。5.2。1定义入口由于一个可执行的Image必须有一个入
12、口点,并且只能有一个全局入口,通常这个入口放在ROM(Flash)的0x0地址,因此,必须通知编译器以使其知道这个入口,该工作可通过修改连接器脚本来完成。1. board/smdk2410/uboot。lds: ENTRY(_start) = cpu/arm920t/start。o(.text)2。 uboot在ram的代码区(TEXT_BASE = 0x33F80000)定义在board/smdk2410/config.mk1.5。2。2设置异常向量.globl _start_start:b resetldrpc, _undefined_instructionldrpc, _software
13、_interruptldrpc, _prefetch_abortldrpc, _data_abortldrpc, _not_usedldrpc, _irqldrpc, _fiq当发生异常时,执行cpu/arm920t/interrupts.c中定义的中断处理函数1。5.2。3设置CPU 的模式为SVC 模式mrsr0,cpsrbicr0,r0,#0x1forrr0,r0,#0xd3msrcpsr,r01.5。2。4关闭看门狗,禁掉所有中断,设置CPU 的频率if defined(CONFIG_S3C2400) | defined(CONFIG_S3C2410)ldr r0, =pWTCONmo
14、v r1, #0x0str r1, r0/ mask all IRQs by setting all bits in the INTMR default /movr1, 0xffffffffldrr0, =INTMSKstrr1, r0 if defined(CONFIG_S3C2410)ldrr1, =0x3ffldrr0, =INTSUBMSKstrr1, r0 endif/* FCLK:HCLK:PCLK = 1:2:4 */ default FCLK is 120 MHz ! */ldrr0, =CLKDIVNmovr1, 3strr1, r0#endif/* CONFIG_S3C24
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- uboot 1.1 smdk2410 移植
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。