飞凡Hi3536内核编译与烧写

来源:互联网 发布:尤西雷 知乎 编辑:程序博客网 时间:2024/04/28 03:24

开发平台:飞凡嵌入式Hi3536

         开发板采用SPI NORFlash启动,默认内核不支持USB摄像头工作,需重新编译内核,并烧写系统。

         一、编译内核

         采用Hisi官方提供的SDK中内核linux-3.10.y,配置文件为hi3536_full_A17_slave_defconfig。主要流程:

         #cd /opt/hi3536/Hi3536_SDK_V2.0.2.0/osdrv/opensource/kernel/linux-3.10.y

         #cp arch/arm/configs//hi3536_full_A17_slave_defconfig .config

         #make ARCH=arm CROSS_COMPILE=arm-hisiv400-linux- menuconfig

   由于对Linux驱动架构不熟悉,也不能确定所使用USB摄像头的属类,这里将所有V4L2相关驱动全部选上,在menuconfig 搜索V4L2将所有的选为Y,注意依赖项的选择,如果依赖关系不正确的,menuconfig会提示。


保存、退出得到所需要的配置文件,然后编译内核

         #make ARCH=arm CROSS_COMPILE=arm-hisiv400-linux- uImage

二、烧写系统

       

1、参数配置

         配置tftp服务器

    #可以使用任意的tftp服务器,将相关文件拷贝到tftp服务器目录下;

    #单板上电后,敲任意键进入u-boot。设置serverip(即tftp服务器的ip)、ipaddr(单板ip)和ethaddr(单板的MAC地址)。

   setenv serverip xx.xx.xx.xx

   setenv ipaddr xx.xx.xx.xx

   setenv ethaddr xx:xx:xx:xx:xx:xx

   setenv netmask xx.xx.xx.xx

   setenv gatewayip xx.xx.xx.xx

   ping serverip,确保网络畅通。

2、根据系统硬件的配置,选择合适的烧写方案。我的开发办为SPI NOR启动,采用的是“烧写双主控(SPIBOOT_NAND256M).txt”,注意的是由于我编译出的内核大于了4M,按照原本的文件内核空间是没有4M的,是没有办法烧写的,所以要做修改。修改后文件如下:
*****************************************************************************烧写双主控(SPIBOOT_NAND256M).txt*****************************************************************************烧写Glibc映像文件到SPI Flash1)地址空间说明(其中,m表示master arm;s表示slave arm)|      1M       |      6M       |      12M      |      1M       |      4M       |      6M       ||---------------|---------------|---------------|---------------|---------------|---------------||     boot(m)   |     kernel(m) |     empty(m)  |     boot(s)   |     kernel(s) |     rootfs(s) |以下的操作均基于图示的地址空间分配,您也可以根据实际情况进行调整。2)烧写主u-bootmw.b 0x42000000 0xff 0x100000tftp 0x42000000 osdrv_master/image_glibc/u-boot-hi3536.binsf probe 0sf erase 0x0 0x100000sf write 0x42000000 0x0 0x100000reset3)烧写主内核mw.b 0x42000000 0xff 0x600000tftp 0x42000000 osdrv_master/image_glibc/uImage_hi3536sf probe 0sf erase 0x100000 0x600000sf write 0x42000000 0x100000 0x6000004)擦除空白,主文件系统放nand上sf probe 0sf erase 0x700000 0xc000005)烧写从u-bootmw.b 0x42000000 0xff 0x100000tftp 0x42000000 osdrv_slave/image_glibc/u-boot-hi3536.binsf probe 0sf erase 0x1300000 0x100000sf write 0x42000000 0x1300000 0x1000006)烧写从内核mw.b 0x42000000 0xff 0x400000tftp 0x42000000 osdrv_slave/image_glibc/uImage_hi3536sf probe 0sf erase 0x1400000 0x400000sf write 0x42000000 0x1400000 0x4000007)烧写从文件系统mw.b 0x42000000 0xff 0x600000tftp 0x42000000 osdrv_slave/image_glibc/rootfs-SLV_FULL_REL.cramfs.initrd.imgsf probe 0sf erase 0x1800000 0x600000sf write 0x42000000 0x1800000 0x6000008)烧写主文件系统mw.b 0x42000000 0xff 0x7000000tftp 0x42000000 osdrv_master/image_glibc/rootfs_hi3536_2k_4bit_spiboot.yaffs2nand erase;nand write.yaffs 0x42000000 0x0 0x661b180;(实际的文件系统大小)9)设置启动参数setenv bootargs 'mem=128M console=ttyAMA0,115200 root=/dev/mtdblock3 rootfstype=yaffs2 mtdparts=hi_sfc:1M(boot),6M(kernel),12M(norflash);hinand,256M(rootfs)'setenv bootcmd 'sf probe 0;sf read 0x42000000 0x100000 0x600000;bootm 0x42000000'setenv slave_autostart 1setenv slave_bootcmd 'sf probe 0;sf read 0x81000000 0x1300000 0x80000;sf read 0x82000000 0x1400000 0x400000;sf read 0x83000000 0x1800000 0x600000;bootm 0x81000000 0x82000000 0x83000000'setenv slave_bootargs 'mem=96M console=ttyAMA0,115200'sa

    之后重启,插入USB摄像头,会看到生成的 /dev/video0设备文件。


0 0
原创粉丝点击