davnici dm6446中flash程序固化
http://ansondeng.blog.163.com/blog/static/182682482201212092338857/ 1.?????配置编译一个符合要求的内核 ? 首先,IDE驱动和flash驱动有冲突必须disable,路径为: ????????Device drivers --> ATA/ATAPI/MFM/RLL support?à?ATA/ATAPI/MFM/RLL support ???????然后,使能flash驱动,nor路径: ??????????????Device drivers --> memory technology devices?à?RAM/ROM/Flash chip drivers?àsupport for AMD ???????Nand路径: ??????????????Device drivers --> memory technology devices?à?NAND Flash device driver?àNAND device support ???????最后,使能支持jffs2,路径: ??????????????File system?à?miscellaneous filesysytems?à?Journalling flash file system v2(JFSS2) support
#CONFIG_IDE is not set ? CONFIG_MTD=y CONFIG_MTD_PARTITIONS=y ? CONFIG_MTD_CHAR=y CONFIG_MTD_BLKDEVS=y CONFIG_MTD_BLOCK=y CONFIG_MTD_CFI=y CONFIG_MTD_GEN_PROBE=y CONFIG_MTD_MAP_BANK_WIDTH_1=y CONFIG_MTD_MAP_BANK_WIDTH_2=y CONFIG_MTD_MAP_BANK_WIDTH_4=y CONFIG_MTD_CFI_I1=y CONFIG_MTD_CFI_I2=y CONFIG_MTD_CFI_AMDSTD=y CONFIG_MTD_CFI_UTIL=y CONFIG_MTD_PHYSMAP=y CONFIG_MTD_PHYSMAP_START=0x8000000 CONFIG_MTD_PHYSMAP_LEN=0 CONFIG_MTD_PHYSMAP_BANKWIDTH=2 CONFIG_MTD_NAND=y CONFIG_MTD_NAND_VERIFY_WRITE=y CONFIG_MTD_NAND_IDS=y CONFIG_MTD_NAND_DAVINCI=y CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y CONFIG_JFFS2_ZLIB=y CONFIG_JFFS2_RTIME=y ? 另外,程序固化后出现错误?Sending DHCP and RARP requests,解决办法: 把下面几个选项去掉就OK了 networking?-》networking options?-》IP:Kernel level autoconfiguration不能选下面三个子项 2.制作一个文件系统镜像
?? host$ mkdir -p /home/user/workdir
?? host$ cd /home/user/workdir ?? host$ cp <ramdisk location>/ramdisk.gz .
?? host$ mkdir ram ?? host$ gunzip ramdisk.gz ?? host$ mount ramdisk ram -o loop
host$ mkfs.jffs2 -r ram -e 64 -o rootfs.jffs2 生成的rootfs.jffs2就是所要的镜像文件 第二种方法,通过裁剪target文件自己制作一个镜像,此方法比较复杂,具体见TI Davinci DM6446?开发攻略.doc 3.将内核与文件系统镜像固化到flash中,以nor flash烧写rootfs.jffs2为例 ?????? 第一种方法,使用uboot: ???????先通过网络下载到ram中, ?????????????? dvevm# tftp 0x80700000 rootfs.jffs2 ???????擦除nor中用于存储的区域,具体地址根据partition_mtd分区表确定 ?????????????? dvevm# erase 0x02440000 + ???????从ram中拷贝到nor中 ?????????????? dvevm# cp.b 0x80700000 0x2440000 0x27eeec ???????更改启动参数?bootargs,此处示例表示mtd中的第四个分区存储文件系统 ?????????????? "... root=/dev/mtdblock3 rw rootfstype=jffs2 ..." ???????另外,烧写kernel可用同样方法,只需改变nor中存储的地址即可。最后需要更改启动方式:setenv bootcmd bootm 0x02040000,此地址即为kernel存储的地址。 第二种方法,使用linux: ???????先擦除nor的分区 ?????????????? target$ flash_eraseall -j /dev/mtd3 ???????烧写fs进nor的分区 ?????????????? target$ flashcp <image dir>/rootfs.jffs2 /dev/mtd3 ??????????????重启,改bootargs,偶了 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |