DSP

DAVINCI之YAFFS2

2019-07-13 20:32发布

       最近在研究软件无线电管理系统,自主研发的软件无线电平台包括SP6 FPFA以及DAVINCI DSP,而涉及其管理系统,需要借助于DAVINCI的ARM核,包括系统移植、内核定制裁剪,文件系统制作固化,以及应用程序和驱动程序编写等。下面简要概述其过程,留作学习笔记,仅供自己学习参考之用。        Linux根文件系统是存放tool软件、lib文件、script(脚本)、配置文件、其他特殊文件、自己开发的应用程序的地方。嵌入式linux的根文件系统rootfs就像windows操作系统的CD盘这种概念机制,FLASH对应硬盘。但linux文件系统是一种挂载点的概念,根文件系统是一个整体,组织到一个树状的目录结构中。这种文件组织遵守文件系统科学分类FHS国际标准。       1、创建工作目录:        host $ mkdir –p /home/user/workdir        2、拷贝ramdisk.gz文件至工作目录        host $ cd /home/user/workdir        host $ cp /ramdisk.gz .       3、解压并挂载至临时ram目录       host $ mkdir ram       host $ gunzip ramdisk.gz       host $ mount ramdisk ram –o loop       可以将需要执行的程序和可执行文件拷贝至相应目录,并可以修改文件系统启动脚本,在脚本文件系统 /etc/init.d/rcS目录下,添加需要启动的程序或可执行文件路径与名称。      4、创建tarball image      host $ cd ram      host $ tar czf ../rootfs.tar.gz * 这样即可将其移植到YAFFS/YAFFS2文件系统。        通常,通过使用Linux MTD子系统来烧写YAFFS/YAFFS2文件系统。MTD(memory technology device内存技术设备)是用来访问memory设备(ROMflash)Linux子系统。MTD的主要目的是为了使新的memory设备的驱动更加简单,为此它在硬件和上层之间提供了一个抽象接口。需要使用MTD工具来擦除和拷贝文件系统至Flash。MTD utils工具,MontaVista已经提供相关工具(/pro/devkit/arm/v5t_le/target)。(备注:需要首先建立NFS文件系统,可参考其他) 1flash_eraseall。用来擦除整个MTD设备,一般情况下,首先要确认Falsh文件系统分区: Target $ cat /proc/mtd 一般会出现以下信息: dev:         size           erasesize     name mtd0:          00040000     00004000     “bootloader” mtd1:           00020000           00004000          “params” mtd2: mtd3: 2、擦除文件系统分区 target $ flash_eraseall /dev/mtd3 3、通过使用block device node挂载Flash文件系统 target $ mkdir –p /mnt/nand target $ mount –t yaffs2 /dev/mtdblock3 /mnt/nand target $ cp /rootfs.tar.gz /mnt/nand target $ cd /mnt/nand target $ tar xzf rootfs.tar.gz target $ rm –rf rootfs.tar.gz target $ ls target $ cd .. target $ umount /mnt/nand 至此已经完成yaffs2文件系统挂载,当然也可以修改u-boot源码,使其支持yaffs.bin文件系统下载。