Hi3520D_V100R001C01SPC022
文件大小: 80097k
源码售价: 10 个金币 积分规则     积分充值
资源说明:1.osdrv commands description: The design idea of this catalog is to fulfil the requirement that compiling the same set of source code with two different compilation tool chains. So an extra parameter to specify a specific compiler tool chain is needed. The arm-hisiv100nptl-linux toolchain is for uclibc, and the arm-hisiv200-linux toolchain for glibc. Specific commands are as follows: (1)Compile the entire osdrv directory: make OSDRV_CROSS=arm-hisiv100nptl-linux CHIP=hi3521 all make OSDRV_CROSS=arm-hisiv100nptl-linux CHIP=hi3520a all make OSDRV_CROSS=arm-hisiv100nptl-linux CHIP=hi3520d OSDRV_SIZE=full all make OSDRV_CROSS=arm-hisiv100nptl-linux CHIP=hi3520d OSDRV_SIZE=mini all or: make OSDRV_CROSS=arm-hisiv200-linux CHIP=hi3521 all make OSDRV_CROSS=arm-hisiv200-linux CHIP=hi3520a all make OSDRV_CROSS=arm-hisiv200-linux CHIP=hi3520d all (2)Clear all compiled files under osdrv directory: make OSDRV_CROSS=arm-hisiv100nptl-linux CHIP=hi3521 clean make OSDRV_CROSS=arm-hisiv100nptl-linux CHIP=hi3520a clean make OSDRV_CROSS=arm-hisiv100nptl-linux CHIP=hi3520d OSDRV_SIZE=full clean make OSDRV_CROSS=arm-hisiv100nptl-linux CHIP=hi3520d OSDRV_SIZE=mini clean or: make OSDRV_CROSS=arm-hisiv200-linux CHIP=hi3521 clean make OSDRV_CROSS=arm-hisiv200-linux CHIP=hi3520a clean make OSDRV_CROSS=arm-hisiv200-linux CHIP=hi3520d clean (3)Completely remove all compiled files under osdrv directory, and the generated images: make OSDRV_CROSS=arm-hisiv100nptl-linux CHIP=hi3521 distclean make OSDRV_CROSS=arm-hisiv100nptl-linux CHIP=hi3520a distclean make OSDRV_CROSS=arm-hisiv100nptl-linux CHIP=hi3520d OSDRV_SIZE=full distclean make OSDRV_CROSS=arm-hisiv100nptl-linux CHIP=hi3520d OSDRV_SIZE=mini distclean or: make OSDRV_CROSS=arm-hisiv200-linux CHIP=hi3521 distclean make OSDRV_CROSS=arm-hisiv200-linux CHIP=hi3520a distclean make OSDRV_CROSS=arm-hisiv200-linux CHIP=hi3520d distclean (4)Separately compile kernel: Enter the top directory the kernel source code, do the following: cp arch/arm/configs/godarm_defconfig .config cp arch/arm/configs/godcare_defconfig .config cp arch/arm/configs/hi3520d_full_defconfig .config make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- menuconfig make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- uImage or: cp arch/arm/configs/godarm_defconfig .config cp arch/arm/configs/godcare_defconfig .config cp arch/arm/configs/hi3520d_full_defconfig .config make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- menuconfig make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- uImage (5)Separately compile uboot: Enter the top directory of boot source code, do the following: make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- godarm_config make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- godcare_config make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- hi3520d_config make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- or: make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- godarm_config make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- godcare_config make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- hi3520d_config make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- (6)Build file system image: A compiled file system has already been in osdrv/pub/, so no need to re-build file system. All what you need to do is to build the right file system image according to the flash specification of the single-board. Only image of jffs2 format is available for spi flash. While making jffs2 image, you need to specify the spi flash block size. flash block size will be printed when uboot runs. run mkfs.jffs2 first to get the right parameters from it's printed information. Here the block size is 64KB, for example: osdrv/pub/bin/pc/mkfs.jffs2 -d osdrv/pub/rootfs_uclibc -l -e 0x40000 -o osdrv/pub/rootfs_uclibc_256k.jffs2 or: osdrv/pub/bin/pc/mkfs.jffs2 -d osdrv/pub/rootfs_glibc -l -e 0x40000 -o osdrv/pub/rootfs_glibc_256k.jffs2 Only image of yaffs2 format is available for nand flash. While making yaffs2 image, you need to specify it's page size and ECC. This information will be printed when uboot runs. run mkyaffs2image first to get the right parameters from it's printed information. Here to 2KB pagesize, 1bit ecc, for example: osdrv/pub/bin/pc/mkyaffs2image osdrv/pub/rootfs_uclibc osdrv/pub/rootfs_uclibc_2k_1bit.yaffs2 1 1 or: osdrv/pub/bin/pc/mkyaffs2image osdrv/pub/rootfs_glibc osdrv/pub/rootfs_glibc_2k_1bit.yaffs2 1 1 2. Image storage directory description The compiled image, rootfs, etc. stored in osdrv/pub directory pub │ rootfs_uclibc.tgz ------------------------------------------ hisiv100nptl compile the rootfs file system │ rootfs_glibc.tgz ------------------------------------------- hisiv200 compile the rootfs file system │ ├─image_glibc ------------------------------------------------- hisiv200 compile the image file │ uImage_hi35xx---------------------------------------------- kernel image │ u-boot-hi35xx_xxMHz.bin --------------------------------- u-boot image │ rootfs_hi35xx_xxk.jffs2 --------------------------------- jffs2 rootfs image(Corresponding to the spi-flash blocksize = 256K) │ rootfs_hi35xx_2k_1bit.yaffs2 ---------------------------- yaffs2 rootfs image(Corresponding to the nand-flash pagesize=2K ecc=1bit) │ ├─image_uclibc ----------------------------------------------- hisiv100nptl compile the image file │ uImage_hi35xx ----------------------------------------- kernel image │ u-boot-hi35xx_xx_MHz.bin ------------------------------ u-boot image │ rootfs_hi35xx_xxk.jffs2 -------------------------------- jffs2 rootfs image(Corresponding to the spi-flash blocksize = xxK) │ rootfs_hi35xx_xxk.squashfs ----------------------------- squashfs rootfs image(Corresponding to the spi-flash blocksize = xxK) │ rootfs_hi35xx_2k_1bit.yaffs2 --------------------------- yaffs2 rootfs image(Corresponding to the nand-flash pagesize=2K ecc=1bit) │ └─bin ├─pc │ mkfs.jffs2 │ mkimage │ mkfs.cramfs │ mkyaffs2image │ ├─board_glibc -------------------------------------------- hisiv200 compiles the message board with communications tools │ flash_eraseall │ flash_erase │ nandwrite │ mtd_debug │ flash_info │ sumtool │ mtdinfo │ flashcp │ nandtest │ nanddump │ parted_glibc │ gdb-arm-hisiv200-linux │ └─board_uclibc ------------------------------------------- hisiv100nptl compiles the message board with communications tools flash_eraseall flash_erase nandwrite mtd_debug flash_info parted_uclibc sumtool mtdinfo flashcp nandtest gdb-arm-hisiv100nptl-linux nanddump 3.osdrv directory structure: osdrv ├─Makefile ------------------------------ osdrv catalog compiled script ├─busybox ------------------------------- Storage busybox source code directory ├─tools --------------------------------- Storing tools directory │ ├─board_tools ----------------------- A variety of single-board tools │ │ ├─reg-tools-1.0.0 --------------- Register read and write tool │ │ ├─mtd-utils --------------------- tool to read and write flash nude │ │ ├─udev-100 ---------------------- udev toolset │ │ ├─gdb --------------------------- gdb tools │ │ ├─parted ------------------------ Large-capacity hard disk partitioning tool │ │ └─e2fsprogs --------------------- mkfs tools │ └─pc_tools -------------------------- Tools on a variety of pc │ ├─mkfs.cramfs ------------------- tools for making cramfs file system │ ├─mkfs.jffs2 -------------------- tools for making jffs2 file system │ ├─mkimage ----------------------- tools for making uImage │ ├─mkyaffs2image301 -------------- yaffs2 file system creation tools │ └─uboot_tools ------------------- uboot image creation tools, xls files and the ddr initialization script, bootrom tool ├─toolchain ----------------------------- Tool chain store directory │ ├─arm-hisiv100nptl-linux ---------------- hisiv100nptl cross tool chain │ └─arm-hisiv200-linux ---------------- hisiv200 cross tool chain ├─pub ----------------------------------- A variety of image storage directory │ ├─image_glibc ----------------------- Compiler tool chain based hisiv100nptl available FLASH burning of image files, including uboot, kernel, file system │ ├─image_uclibc ---------------------- Compiler tool chain based hisiv200 available FLASH burning of image files, including uboot, kernel, file system │ ├─bin ------------------------------- Not placed in the root file system of various tools │ │ ├─pc ---------------------------- Tools running on the pc │ │ ├─board_glibc ------------------- Compiler tool chain based hisiv100nptl, implementation of tools in a single board │ │ └─board_uclibc ------------------ Compiler tool chain based hisiv200, implementation of tools in a single board │ ├─rootfs_uclibc.tgz ----------------- Hisiv100nptl tool chain based on the root file system compiled │ └─rootfs_glibc.tgz ------------------ Hisiv200 tool chain based on the root file system compiled ├─rootfs_scripts ------------------------ Production of storage root file system directory script ├─uboot --------------------------------- Store uboot source code directory └─kernel -------------------------------- Store kernel source code directory 4.Note (1)If a tool chain needs to be replaced by the other, remove the original compiled files compiled with the former tool chain, and then replace the compiler tool chain with the other. (2)Executable files in Linux may become non-executable after copying them to somewhere else under Windows, and result in souce code cannot be compiled. Many symbolic link files will be generated in the souce package after compiling the u-boot or the kernel. The volume of the source package will become very big, because all the symbolic link files are turning out to be real files in Windows. So, DO NOT copy source package in Windows. (3)The Hi3521 has no hard floating-point unit. The library provided by the file system is a library without hard floating-points units. The tool chain uses armv5 instruction set by default, but the Hi3521 uses armv7 instruction set. Therefore, add the following commands in Makefile when compiling the code of all Hi3521 SDKs. CFLAGS += -march=armv7-a -mcpu=cortex-a9 CXXFlAGS +=-march=armv7-a -mcpu=cortex-a9 Among these, CXXFlAGS may be different according to the specific name in user's Makefile. For example, it maay be changed to CPPFLAGS.
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。