U-boot移植

U-boot 移植

  U-boot,全称为Universal Boot Loader ,即通用Bootloader,是遵循GPL条款的开源代码项目。为是德国DENX小组的创建的工程。

开发板:FL2440             烧录工具:J-link           下载工具:tftp32           串口工具:340

编译工具:Builroot-2011.11交叉编译器                          调试终端:secureCRT

U-boot版本:u-boot-2010.09   

U-boot所有版本下载地址为:ftp://ftp.denx.de/pub/u-boot/

 

U-boot移植准备:将自己的SecureCRT通过网络与虚拟机桥接

 

使用SecureCRT完成以下操作:

1.创建开发板移植目录结构
   首先我们创建开发板移植相关的目录结构,除了移植 u-boot 的 u-boot 以外,我们还将今后移植的 Linux 内核,根文件系统,驱动,第三方应用程序以及我们自己写的相关程序都放到相应的目录下。


2.准备 u-boot 源码

 

3.U-boot 源码中添加 FL2440 开发板

 

 

4.U-boot 初步编译测试

 


这时候编译出来的 u-boot.bin 就是要烧到开发板上的 u-boot 文件,但这个代码是基于smdk2410 开发板的,我们并没有对这个代码作任何的修改,所以这个 bin 文件只能在smdk2410 这个开发板上跑。如果想运行在 FL2440 这个开发板上,接下来我们就要开始对源代码进行修改。

这里是根据郭工给的u-boot移植文档完成初步修改,修改目录如下(内容略):

5.U-boot 移植之第一阶段汇编代码分析与修改

    5.1 start.S 分析与修改

    5.2 lowlevel_init.S 分析与修改

    5.3 添加 nand_read.c 源文件

6.U-boot 移植之第二阶段 C 代码修改

   6.1 添加 CONFIG_S3C2440 条件编译

   6.2 J-link 下载运行测试

   6.3 添加网络支持

7. 安装下载Notepad++,根据郭工给的4个patch文件继续修改


 

8.修改完成后make,找到修改的错误接着按照正确的继续修改,全部正确后从虚拟机中将自己的u-boot.bin文件调出,用J-link、SecureCRT和FL2440开发板进行烧录(烧录流程可参照本人博客:开发板烧录)。

  以下是SecureCRT的部分过程:

U-Boot 2010.09 (Jul 17 2016 - 06:37:40)

 

DRAM:  64 MiB

NAND:  256 MiB

*** Warning - bad CRC or NAND, using default environment

 

In:    serial

Out:   serial

Err:   serial

Net:   dm9000

Hit any key to stop autoboot:  0

[fl2440@lingyun]# set ipaddr 192.168.1.113

[fl2440@lingyun]# set serverip 192.168.1.2

[fl2440@lingyun]# tftp 30008000 u-boot.bin

dm9000 i/o: 0x20000300, id: 0x90000a46

DM9000: running in 16 bit mode

MAC: 08:00:3e:26:0a:51

could not establish link

Using dm9000 device

TFTP from server 192.168.1.2; our IP address is 192.168.1.113

Filename 'u-boot.bin'.

Load address: 0x30008000

Loading: T

TFTP error: 'File not found' (1)

Not retrying...

[fl2440@lingyun]# tftp 30008000 u-boot.bin

dm9000 i/o: 0x20000300, id: 0x90000a46

DM9000: running in 16 bit mode

MAC: 08:00:3e:26:0a:51

could not establish link

Using dm9000 device

TFTP from server 192.168.1.2; our IP address is 192.168.1.113

Filename 'u-boot.bin'.

Load address: 0x30008000

Loading: ##########

done

Bytes transferred = 145228 (2374c hex)

[fl2440@lingyun]# nand erase 0 100000   (先擦再写)

 

NAND erase: device 0 offset 0x0, size 0x100000

Erasing at 0xe0000 -- 100% complete.

OK

[fl2440@lingyun]# nand write 30008000 0 50000

 

NAND write: device 0 offset 0x0, size 0x50000

 327680 bytes written: OK

[fl2440@lingyun]# reset

resetting ...

 

 

U-Boot 2010.09 (Jul 17 2016 - 06:37:40)

 

DRAM:  64 MiB

NAND:  256 MiB

*** Warning - bad CRC or NAND, using default environment

 

In:    serial

Out:   serial

Err:   serial

Net:   dm9000

Hit any key to stop autoboot:  0

 

NAND read: device 0 offset 0x100000, size 0x800000

 8388608 bytes read: OK

## Booting kernel from Legacy Image at 30008000 ...

   Image Name:   Linux Kernel

   Created:      2015-10-22   7:33:31 UTC

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    7887908 Bytes = 7.5 MiB

   Load Address: 30008000

   Entry Point:  30008040

   Verifying Checksum ... OK

   XIP Kernel Image ... OK

OK

******************************

此处省略N.......

******************************

UBIFS: media format:       w4/r0 (latest is w4/r0)

UBIFS: default compressor: lzo

UBIFS: reserved for root:  1651507 bytes (1612 KiB)

dm9000 dm9000.0: eth0: link down

dm9000 dm9000.0: eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1

 

Copyright (C) 2012 GuoWenxue<guowenxue@gmail.com>

Default Password:  12345

 

 

WirelessRouter login: root

Password:

~ >: ls

apps     data     home     lib      media    proc     stat     usr

backup   dev      info     linuxrc  mnt      root     sys      var

bin      etc      init     logs     opt      sbin     tmp

 

到此烧录完毕,成功完成U-boot移植(注:我没有进行上述6.26.3的过程,所以烧录结果仅供参考)。

 

U-boot移植过程遇到的问题及解决办法:

1.刚开始做时文档修改过程中由于不够细心出现很多修改错误。

如:


解决办法:耐心修改,投入不少精力,重复改过不下4次,重做3次。

2.一开始许多文件操作命令不记得导致进度缓慢。

解决办法:重新看了文件操作命令的视频和通过百度重新学习。

3.烧录过程由于流程比较生疏导致进度缓慢。

解决办法:重新查看自己的博客总结,熟悉原理,结合实践.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值