微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于TFFS的成像声呐文件系统设计

基于TFFS的成像声呐文件系统设计

时间:04-29 来源:电子产品世界 点击:

设备ID是其支持的设备ID,则对FLFlash结构成员进行初始化;否则返回失败。

Flash地址映射函数将系统传递给map函数的Flash片内地址转换为系统地址。一般直接在片内地址的基础上加上Flash的基地址即可。

Flash擦除函数主要用于擦除TrueFFS管理的Flash区域。Flash的擦除操作是成块进行的,擦除前先要对扇区进行解锁,然后写入擦除建立和擦除扇区命令,擦除成功后,内容应该均为1,以此来判断是否擦除成功。

Flash写函数主要实现写Flash操作。写入前首先要对扇区解锁,然后判断是否是改写操作,若是则需要进行擦除操作,否则直接写命令、写数据。最后需要判断数据是否写完。

MTD驱动文件的编写需要注意几个方面:(1)Flash芯片的数据手册中给出指令地址是按字而言的,在本文中不能直接使用,需要左移一位。(2)擦除和写操作是需要屏蔽中断的,可以用intLock()函数来屏蔽中断,用intUnlock()函数来使能中断。(3)可以在各个操作函数中添加打印信息以方便调试。

4 嵌入式文件系统的创建

一旦VxWorks包含了TrueFFS系统,启动时usrRoot()会调用tffsDev()进行设备初始化,通过xxxRegister()函数注册socket驱动。此过程如图 5所示。

4.1 Flash设备的识别

在TrueFFS中包含了INCLUDE_TFFS_SHOW 和INCLUDE_SHOW_ROUTINES后,就可以在shell中使用tffsShow()和tffsShowAll()任意一个显示程序来识别Flash设备。

4.2 格式化TrueFFS

在实际加载使用TrueFFS之前,需要格式化TrueFFS。格式化是否成功,在于你的MTD驱动代码是否正确。因此可以用格式化操作来调试MTD层。在shell中输入tffsDevFormat命令来格式化TrueFFS,tffsDevFormat最终会调用s29gl512MTDErase()和s29gl512MTDWrite()函数。这两个函数是MTD层的主要的两个函数。格式化成功则返回0,否则返回-1。

4.3 挂载DOS设备名

格式化TrueFFS成功之后,就可以给Flash设备挂接DOS设备名了。在usrTffs.c文件中提供了一个标准的初始化函数usrTffsConfig(),可用来在TrueFFS块设备上建立dosFs文件系统。加载完成后,就可以使用加载点来访问文件系统了。

5 文件系统测试

一般为了调试MTD驱动的方便,在VxWorks映像中建立文件系统而非在BootRom中建立文件系统。先通过网络加载VxWorks映像。在shell中调试MTD驱动,创建TrueFFS系统。然后使用dosFs文件系统的相关命令如copy等将VxWorks映像拷贝到TrueFFS文件系统中,改变config.h中的启动引导行,从文件系统加载。修改完后,重新编译生成bootrom_uncmp.bin,并把它烧写到Flash中然后重新启动,在超级终端中即可看到如图 6和图 7所示的启动画面。

6 结束语

本文首先介绍了VxWorks系统的启动流程和加载方式,分析了网络加载的缺点和建立Flash文件系统的必要性;接着介绍了VxWorks下支持的文件系统,选择了适用于硬件平台和系统需求的TrueFFS文件系统;然后分析了TrueFFS文件系统需要配置的文件以及驱动层的编写;最后在文件配置好的基础上创建TrueFFS文件系统并对文件系统进行了测试,成功基于文件系统加载了VxWorks映像,将系统的启动时间缩短到了20s,提高了产品的用户体验。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top