首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

TrueFFS上VxWorks应用程序的启动及动态更新 03

TrueFFS上VxWorks应用程序的启动及动态更新 03

为了在两片Flash上实现2个文件分区,可以采用以下方式:在sysTffs.c中定义新的MTD类型,并根据实际需要定义2片Flash(即两个分区)的起始地址和长度,并根据上述定义完成TrueFFS设备基址和窗口尺寸的设置;在sysTffsInit()函数中进行2次RFaRegister()操作以完成2个分区的注册;在rfaRegister()中根据注册的TrueFFS设备个数设置本TrueFFS设备的设备号。在MTD层接口函数中一般都有一个Flash驱动设备的参数,可以根据该参数来获取2个TrueFFS设备的设备号,然后分别指向对应的Flash地址范围进行相应的操作。
  MTD驱动设计完成后,可以根据VxWorks提供的方式完成TrueFFS的加载。在应用程序中可以通过组件配置界面进行加载配置,而在bootrom中则需要手动修改相应的配置文件。
  由于系统的启动需要从boottom开始,其编译的结果文件必须以二进制方式固化到程序Flash的起始位置,因此每片Flash起始的256 KB空间都预留出来,不参与TrueFFS系统的管理。这样,Flash上文件的操作与bootrom启动代码的保存不存在冲突。
  3 bootrom的改进
  在VxWorks中,修改好的bootrom一般通过硬件调试工具固化到代码Flash中,bootrom启动后通过TFTP方式实现编译好的调试用VxWorks映像文件的下载过程,并完成该映像文件的启动。这样就可以实现基于串口或网络的应用程序调试,使用更加方便灵活。
  为了满足系统的要求,bootrom还需要增加如下功能:支持2个Flash分区的TrueFFS加载;支持FTP功能;支持从TrueFFS加载及启动应用程序,以及从TFTP网络方式加载及启动调试态VxWorks映像文件两种方式,以保证系统即使在现场运行过程中,一旦发现问题,也能够方便地进行仿真调试;支持Flash的格式化及True-FFS的初始化功能,一旦文件系统异常后,可以通过该功能进行TrueFFS的彻底重构。由于boottom的主要工作在bootconfig.c文件中实现,因此上述改进工作也主要在该文件中进行。
  还需要完成以下工作:在对应配置文件中加入IN-CLUDE_TFFS和INCLUDE_FTP_SERVER的定义,从而实现系统对TrueFFS和FTP功能的加载;对bootloader函数进行修改,使其不支持基于TrueFFS的应用程序启动,当需要调试时通过网络方式加载和启动;增加一个类似于bootloader的功能函数,可以以此函数为模版进行修改,完成TrueFFS功能的初始化和加载过程,以及基本网络功能和FTP功能的加载,同时在程序Flash文件分区中存在应用程序文件的前提下,实现该应用程序的加载和启动功能;增加2片Flash的格式化和TrueFFS的初始化功能函数。
返回列表