基于OK-2440III的u-boot移植..doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于OK-2440III的u-boot移植.

??? 基于OK-2440III的u-boot移植(一)u-boot的工作过程与硬件关系密切,所以在移植时必须对S3C2440等芯片手册和开发板的硬件有一定的了解。其工作流程主要分为两个部分涉及两个主要的文件:cpu/arm920t/start.S和lib_arm/board.c,先从前面的汇编程序中执行,再跳到后面的C程序中。 ???? 移植思路参考网上友友分为六个步骤:(1)建立好开发板相关的文件,并利用交叉编译器编译生成bin文件用于下载到开发板中运行;(2)修改相关硬件配置,让uboot能在sdram中运行调试;(3)修改norflash相关配置,让uboot在norflash中启动运行;(4)修改nandflash相关配置,让uboot在nandflash中启动运行;(5)增加uboot的功能,如网络、USB等;(6)引导Linux系统启动。 一.移植环境 目标板:飞凌的ok-2440III开发板(ARM9) 芯片型号:三星的S3C2440 Uboot版本:u-boot-2009.08 宿主机:RedHat Linux AS5 交叉编译器:arm-linux-gcc-4.3.2 二.编译 1.建立板级文件夹: (1)在board/samsung目录下新建文件夹ok2440,找到相似的板级文件夹smdk2410,并把该文件夹中的所有文件拷贝到ok2440下; (2)到ok2440目录下,把文件smdk2410.c重命名为ok2440.c;修改该目录下Makefile中的目标(COBJS),把smdk2410.o改为ok2440.o; 2.建立芯片级文件夹: 直接用cpu/arm920t芯片文件夹,不做修改; 3.建立配置文件: 到include/configs目录下,找到相似的配置文件smdk2410.h,将其拷贝并重命名为ok2440.h; 4.建立编译规则: 在根目录下的Makefile中找到ARM体系架构中smdk2410的编译规则 smdk2410_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x0 在此处添加ok2440的编译规则 ok2440_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t ok2440 samsung s3c24x0 (注意Makefile中命令行要以tab键开头) 5.在宿主机linux环境下编译: 在终端进入uboot的根目录下执行两条命令: # make ok2440_config # make (注:执行make命令时,前提是在linux下arm-linux-gcc-4.3.2的安装目录设为PATH环境变量,即交叉工具arm-linux-命令的版本是4.3.2?? 或者执行:#make CROSS_COMPILE=(arm-linux-的安装目录)) (6.由上面编译生成在根目录下的u-boot.bin就可以下载到开发板中,不过还需修改配置才能运行)基于OK-2440III的u-boot移植(二)三、在SDRAM中调试运行 (在 基于OK-2440III的u-boot移植(一) 编译通过后修改一下内容) (注:此移植过程中没有新添加S3C2440的编译条件,都是用原来S3C2410的编译条件) 1.下载到内存中调试时不进行底层初始化、不进行uboot代码拷贝,所以在配置文件include/configs/ok2440.h中加入两句: #?? define CONFIG_SKIP_LOWLEVEL_INIT??? 1???? #?? define CONFIG_SKIP_RELOCATE_UBOOT??? 1 2.修改cpu/arm920t/start.S相关部分: (1).在定义S3C2410的寄存器地址处添加以下寄存器的定义: #?? define LOCKTIME??? 0x4C000000 #?? define MPLLCON???? 0x4C000004 #?? define UPLLCON???? 0x4C000008 #?? define CAMDIVN???? 0x4C000018 (2).修改屏蔽中断的位数,如下: # if defined(CONFIG_S3C2410) ldr r1, =0x7fff ldr r0, =INTSUBMSK str r1, [r0] # endif (3).在中断屏蔽完成后添加下面两个寄存器的配置: ???? ldr r0,=LOCKTIME ???? mov r1,#0xffffff ???? str r1,[r0] ???

文档评论(0)

sa1fs5g1xc1I + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档