海思芯片移植

promote vediotype

一、移植uboot为 uboot_hi3520d.bin

1、拷贝海思SDK到linux ubuntu,按照海思SDK的说明文档txt,生成uboot_hi3520d

二、生成内核kernel

1、依然在海思SDK包内,有 osdrv/kernel/linux3.0.y,到此目录下,make menuconfig ARCH=arm,按文档进行相关配置,至少有一个重点的地方是:CROSS COMPILE,必须手动指定

为(前缀) arm-hisiv100nptl-linux-,配置完毕后,在linux3.0.y目录下执行 make uImage ARCH=arm CROSS_COMPILE= arm-hisiv100nptl-linux- ,正确执行完毕后,会在这个目录

下的 arch/arm/boot目录下生成 zImage 、 uImage等

三、生成根文件系统

1、到busybox目录下,同样设置 make menuconfig,同样指定目标芯片为 hisiv3520d,指定交叉编译为 arm-hisiv100nptl-linux-,全配置好了之后,对busybox进行编译安装,

make 然后 make install,就会在 _install目录下生成 usr 、bin 、 sbin 、linuxrc几个关键文件

 

2、在当前PC linux的根目录下, mkdir rootbox,然后将 usr  bin sbin linuxrc四个文件拷贝到rootbox中,注意此处拷贝,有些是链接,所以拷贝时要用 cp -R -a, 然后手动 

mkdir etc dev lib lib32  proc media mnt sys cfg,其中, etc  dev lib三个目录需要从别处或当前PC linux拷贝相应的文件到此目录下

3、制作根文件(注意该硬件flash的块大小block size:0x40即64k): mkfs.jffs2  -s 0x1000  -e 0x40 -p 0x500000 -d  rootbox/ -o root.jffs2

四、烧录

1、windows8下,打开fastboot_bvt,将海思板子用串口线和PC连接起来(不需通电),选择 'burn fastboot',下拉选择 “spi flash”,选中当前目录下的 uboot_hi3520d.bin,

先不通电点击“burn" 按钮,显示 downloading时,再给板子通电,则界面显示下载uboot_hi3520d.bin的进度(#号表示),完成则显示OK(在我的windows8和另一台win7上烧录不

正常,但dbb的win10烧录正常) (这个步骤还不需要用到网线)

2、关闭fastboot,用putty 串口登录uboot,输入pri显示相关信息,根据海思SDK里的文档,在WINDOWS端打开 tftp.exe即可(相当于 tftp server),然后在 uboot里按文档烧录

内核 

mw.b 0x82000000 0xff 0x1e00000;tftp 0x82000000 uImage;sf probe 0;sf erase 0x100000 0x1e00000;sf write 0x82000000 0x100000 0x1e00000

3、同样界面,烧录根文件系统到相应地址(注意烧录的地址,拷贝root.jffs2文件到windows8当前文件夹):

mw.b 82000000 ff b00000; tftp 0x82000000 root.jffs2; sf probe 0; sf erase 500000 b00000; sf write 82000000 500000 b00000

4、设置 uboot的参数:

setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),4M(kernel),11M(rootfs)'

setenv bootcmd 'sf probe 0;sf read 0x82000000 0x100000 0x400000;bootm 0x82000000'

saveenv

5、然后 uboot里,输入命令 reset,即可启动内核和根文件系统

===============================================================
五、考虑将uImage和root.jfss2两个文件合并为一个映像文件,在上述 二、生成内核kernel 的 1步骤中,make menuconfig ARCH=arm,其中 General setup -- Initial RAM 

filesystem and RAM disk (initramfs / initrd) support要选中,紧接着下面一行:Initramfs source file(s)要指定目录 /rootbox

编译内核出错

/home/xyp/Hi3520D_SDK_V1.0.4.0/osdrv/kernel/linux-3.0.y/usr/Makefile:58: *** multiple target patterns.  Stop.
make: *** [usr] Error 2

经查 http://blog.csdn.net/andoubi/article/details/52052186,执行以下语句

root@ubuntu:/home/xyp/Hi3520D_SDK_V1.0.4.0/osdrv/kernel/linux-3.0.y# rm -rf usr/.initramfs_data.cpio.d

再重新编译

root@ubuntu:/home/xyp/Hi3520D_SDK_V1.0.4.0/osdrv/kernel/linux-3.0.y# make uImage ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux-

成功!

 

转载于:https://my.oschina.net/sicilycorleone/blog/733978

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值