1 / 34

skyeye下运行u-boot

skyeye下运行u-boot. 实验内容. 1、在u-boot-1.2.0下实现对ep7312的移植 2、在u-boot-1.1.6下实现对s3c2410的移植. u-boot介绍. U-BOOT是Sourceforge上一个开源的固件程序,提供了对PowerPC(MPC5xx,MPC8xx,MPC82xx,4xx)、ARM(ARM7,ARM9,strongARM,Xscale)、MIPS、X86等处理器的支持。主要用来开发嵌入式系统的初始化代码和bootloader. u-boot介绍.

Download Presentation

skyeye下运行u-boot

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. skyeye下运行u-boot

  2. 实验内容 1、在u-boot-1.2.0下实现对ep7312的移植 2、在u-boot-1.1.6下实现对s3c2410的移植

  3. u-boot介绍 • U-BOOT是Sourceforge上一个开源的固件程序,提供了对PowerPC(MPC5xx,MPC8xx,MPC82xx,4xx)、ARM(ARM7,ARM9,strongARM,Xscale)、MIPS、X86等处理器的支持。主要用来开发嵌入式系统的初始化代码和bootloader.

  4. u-boot介绍 • U-Boot的源代码布局和Linux类似,使用了按照模块划分的结构,并且充分考虑了体系结构和跨平台问题,右图为整体架构:

  5. U-Boot启动流程分析 • U-Boot支持许多的处理器和开发板,主要是该软件有良好的架构,以使用ARM处理器的smdk2410开发板为例分析U-Boot的启动流程,在其他的处理器架构上,U-Boot也执行类似的启动流程。 • 关键点: • 每个处理器下的start.S(_start)

  6. U-Boot启动流程分析

  7. U-Boot移植的一般步骤 1.检查U-Boot工程是否支持目标平台 主要检查U-Boot根目录下的Readme文件是否提到目标平台处理器,cpu目录下是否有目标平台的处理器目录,以及board目录下是否有目标平台类似的工程。如果U-Boot已经编写了与目标平台类似的工程文件,移植工作会大大减轻。 2.分析目标平台类似工程目录结构 如果U-Boot有与目标平台类似的工程,需要分析一下目标板工程目录的结构。不同的目标板可能差别很大,分析工程目录中有哪些文件可以被新的目标开发板利用。 3.分析目标平台代码 目标平台代码分析可以按照U-Boot启动流程分析,看哪些代码是额外的,是否需要去掉额外的代码。 4.建立新的开发板平台目录 在board目录下建立新的开发板平台目录,目录下的文件可以从现有类似的开发板平台目录下复制得到。 5.对照手册修改平台差异部分代码 对照硬件手册,按照U-Boot启动流程修改现有代码与新平台有差异的部分。 6.调试新代码 新修改的代码很可能启动不了,需要通过JTag调试器跟踪调试。找出原因修改后再调试,直到正确启动。 以上分析的6个步骤并非必须严格遵守,这里仅是提供一个一般的思路,在移植的时候需要结合自己的目标板情况来分析。

  8. 1、在u-boot-1.2.0下实现对ep7312的移植 • 实验环境: u-boot-1.2.0 arm-linux-gcc (3.3.2) skyeye

  9. 1、在u-boot-1.2.0下实现对ep7312的移植 • 下载u-boot-1.2.0.tar.bz2 • 解压缩: • tar xjvf u-boot-1.2.0.tar.bz2

  10. 1、在u-boot-1.2.0下实现对ep7312的移植 • 因为要模拟EP7312的芯片,而uboot已经支持一个基于EP7312的开发板,所以只要对uboot里面有关EP7312的板子的配置略做修改就可以了。 • uboot里面有关主板的配置文件都在“include/configs/*.h”下 • 所以找到 include/configs/ep7312.h

  11. 1、在u-boot-1.2.0下实现对ep7312的移植 • 找到 #define CONFIG_DRIVER_CS8900 1 改为: #define CONFIG_DRIVER_CS8900 0

  12. 1、在u-boot-1.2.0下实现对ep7312的移植 • 找到 #define CONFIG_COMMANDS(CONFIG_CMD_DFL | CFG_CMD_JFFS2) • 改为 #define CONFIG_COMMANDS(CONFIG_CMD_DFL )

  13. 1、在u-boot-1.2.0下实现对ep7312的移植 • 为编译通过,还需要修改:cpu/arm720t/config.mk

  14. 1、在u-boot-1.2.0下实现对ep7312的移植 • 修改include/asm-arm/processor.h中 • union debug_insn{ • u32 Arm; • u16 thumb; • }

  15. 1、在u-boot-1.2.0下实现对ep7312的移植 • 修改example/Makefile中:(红框为增加内容)

  16. 1、在u-boot-1.2.0下实现对ep7312的移植 • 然后再uboot根目录下,配置,编译: • 执行:make ep7312_config

  17. 1、在u-boot-1.2.0下实现对ep7312的移植 • 在此注意一点,与u-boot-1.2.0相匹配的编译器是arm-linux-gcc为3.3.2版本 • 则要将根目录下的Makefile中的CROSS_COMPILE设置为3.3.2的路径 • 如下图为我的实验环境:

  18. 1、在u-boot-1.2.0下实现对ep7312的移植 • 之后执行 make all • 得到如下结果:

  19. 1、在u-boot-1.2.0下实现对ep7312的移植

  20. 1、在u-boot-1.2.0下实现对ep7312的移植 u-boot.map 将地址和符号的映射关系 u-boot u-boot.bin 二进制文件 u-boot.srec 描述地址与数据的文件格式

  21. 1、在u-boot-1.2.0下实现对ep7312的移植 • 将上述四个文件拷贝到新建的目录中:

  22. 1、在u-boot-1.2.0下实现对ep7312的移植 • 将skyeye配置文件放在相同目录下:

  23. 1、在u-boot-1.2.0下实现对ep7312的移植 • 在/test-uboot/目录下执行 : • skyeye -c skyeye.conf -e u-boot可看到最终结果:

  24. 2、在u-boot-1.1.6下实现对s3c2410的移植 • 实验环境: • u-boot-1.1.6 • arm-linux-gcc 版本为3.3.2

  25. 2、在u-boot-1.1.6下实现对s3c2410的移植 • 配置板子SDROM和FLASH参数为板子实际大小,找到u-boot-1.1.6/include/configs/smdk2410.h,修改其中的PHYS_SDRAM_1_SIZE为板子实际SDRAM大小,CFG_MAX_FLASH_SECT为128,修改PHYS_FLASH_SIZE为板子实际FLASH大小。并保存。 • 修改如下:

  26. 2、在u-boot-1.1.6下实现对s3c2410的移植

  27. 2、在u-boot-1.1.6下实现对s3c2410的移植

  28. 2、在u-boot-1.1.6下实现对s3c2410的移植 • 之后依次执行: make distclean make msdk2410_config make all 执行完毕后,依然可以看到根目录下生成的文件:

  29. 2、在u-boot-1.1.6下实现对s3c2410的移植

  30. 2、在u-boot-1.1.6下实现对s3c2410的移植

  31. 2、在u-boot-1.1.6下实现对s3c2410的移植 新建文件命名为skyeye.conf并放在TestArm目录下,文件内容如下 cpu: arm920t mach: s3c2410x mem_bank:map=I,type=RW,addr=0x48000000,size=0x20000000 #注意此处的addr一定要与上面smdk2410.h配置的SDRAM和FLASH的大小与基地址一定要相同,否则启动不起来,卡在那里。 #下面这一句和FLASH一样 mem_bank:map=M,type=RW,addr=0x00000000,size=0x04000000,file=u-boot,boot=yes #下面这一句和SDRAM一样 mem_bank:map=M,type=RW,addr=0x30000000,size=0x04000000

  32. 2、在u-boot-1.1.6下实现对s3c2410的移植 • 该skyeye.conf已经提供:

  33. 2、在u-boot-1.1.6下实现对s3c2410的移植 • 之后执行命令: • skyeye -c skyeye.conf -e u-boot • 可得到如下结果:

  34. 实验报告 • 1、U-BOOT移植步骤; • 2、分析U-BOOT代码结构、执行流程;

More Related