【K70EK_T7_MQX例程】017TFS(trivial file system)简单的文件系统

By Mcuzone

调试串口波特率:115200-uart2
基于MDKK70-EK_T7硬件平台

程序:


**************************************************************************
*
* $FileName: test.c$
* $Version : 3.8.16.0$
* $Date    : Oct-4-2011$
*
* Comments:
*
*   Test application for trivial file system (TFS)
*
*END************************************************************************/

#include <mqx.h>
#include <bsp.h>
#include <tfs.h>


#if ! BSPCFG_ENABLE_IO_SUBSYSTEM
#error This application requires BSPCFG_ENABLE_IO_SUBSYSTEM defined non-zero in user_config.h. Please recompile BSP with this option.
#endif


#ifndef BSP_DEFAULT_IO_CHANNEL_DEFINED
#error This application requires BSP_DEFAULT_IO_CHANNEL to be not NULL. Please set corresponding BSPCFG_ENABLE_TTYx to non-zero in user_config.h and recompile BSP with this option.
#endif


extern const TFS_DIR_ENTRY tfs_data[];


extern void main_task(uint_32);

const TASK_TEMPLATE_STRUCT  MQX_template_list[] = 
{
   /* Task Index, Function,     Stack, Priority,  Name,     Attributes,          Param, Time Slice */
    { 10L,        main_task,    1400L, 8L,        "Main",   MQX_AUTO_START_TASK, 0,     0 },
    { 0 }
};

/*TASK*-------------------------------------------------------------------

* Task Name : main_task
* Comments  :
*
*END*----------------------------------------------------------------------*/


void main_task
   (
      uint_32 dummy
   )
{
   MQX_FILE_PTR                 file1;
   MQX_FILE_PTR                 file2;
   int_32                       result;
   int_32                       i;
   uchar                        buffer[20];
   uint_32                      param;
   uchar_ptr                    name;
     
   result = _io_tfs_install ("tfs:", tfs_data);
   printf ("\ninstall returned: %08x", result); 
     
   file1 = fopen("tfs:\\INDEX.html", "r");
   printf ("\nfopen1 returned: %p", file1); 

   file2 = fopen("tfs:/", "r");
   printf ("\nfopen2 returned: %p", file2); 

   file2 = fopen("tfs:/readme.txt", "r");
   printf ("\nfopen2 returned: %p", file2); 

   result = fread(buffer, 1, 20, file1);
   printf ("\nfread1 returned: %d and\n", result);
   for (i=0;i<result;i++) printf ("%c",buffer );

   result = ioctl(file1, IO_IOCTL_TFS_GET_ATTRIBUTES, &param);
   printf ("\nioctl1 get flags returned: %08x and %08x", result, param);

   result = ioctl(file2, IO_IOCTL_TFS_GET_NAME, &name);
   printf ("\nioctl2 get name returned: %08x and %s", result, name);

   result = ioctl(file2, IO_IOCTL_TFS_GET_LENGTH, &param);
   printf ("\nioctl2 get length returned: %08x and %d", result, param);

   result = fwrite(buffer, 1, 10, file2);
   printf ("\nfwrite2 returned: %d", result);

   result = ioctl(file2, IO_IOCTL_TFS_GET_LAST_ERROR, NULL);
   printf ("\nioctl2 get last error returned: %08x", result);

   result = fclose(file1);
   printf ("\nfclose1 returned: %d", result);

   result = fread(buffer, 1, 10, file2);
   printf ("\nfread2 returned: %d and ", result);
   for (i=0;i<result;i++) printf ("%c",buffer);

   result = fread(buffer, 1, 10, file2);
   printf ("\nfread2 returned: %d and ", result);
   for (i=0;i<result;i++) printf ("%c",buffer);

   result = fseek (file2, 0, IO_SEEK_END);
   printf ("\nfseek2 to end returned: %08x", result);

   result = fread(buffer, 1, 10, file2);
   printf ("\nfread2 returned: %d and ", result);
   for (i=0;i<result;i++) printf ("%c",buffer);

   result = fseek (file2, 0, IO_SEEK_SET);
   printf ("\nfseek2 to start returned: %08x", result);

   printf ("\nfread2 complete file:\n");
   do
   {
        result = fread(buffer, 1, 4, file2);
        for (i=0;i<result;i++) printf ("%c",buffer);
   } while (result != 0);

   result = fclose(file2);
   printf ("\nfclose2 returned: %d", result);

   _task_block();

} /* Endbody */

/* EOF */


串口输出:
install returned: 00000000
fopen1 returned: 1fff3510
fopen2 returned: 0
fopen2 returned: 1fff3550
fread1 returned: 15 and
<HTML>
</HTML>
ioctl1 get flags returned: 00000000 and 00000000
ioctl2 get name returned: 00000000 and /Readme.txt
ioctl2 get length returned: 00000000 and 25
fwrite2 returned: 0
ioctl2 get last error returned: 00003013
fclose1 returned: 0
fread2 returned: 10 and  Hi world!
fread2 returned: 10 and  I am TFS
fseek2 to end returned: 00000000
fread2 returned: 0 and
fseek2 to start returned: 00000000
fread2 complete file:
Hi world! I am TFS file.
fclose2 returned: 0

串口输出: 

例程及示例:

链接: http://pan.baidu.com/s/1c0y2qxq 密码: 2hg3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值