⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 app.c

📁 基于LPC2468处理器的源代码
💻 C
📖 第 1 页 / 共 2 页
字号:

    fd_wr = FILE_Open(APP_WRITE_FILE, RDWR, &err);
    if (fd_wr == 0) {
        PRINT_Log("Could not open file %s. err = %d\n", APP_WRITE_FILE, err);
        return;
    }

    do{
        byts_rd = FILE_Read(fd_rd, APP_Buf, APP_BUFFER_SIZE, &err);         /* Read data from a file              */
        if (err == OK) {
            byts_wr = FILE_Write(fd_wr, APP_Buf, byts_rd, &err);                /* Write data into a file             */
            if (err != OK) {
                PRINT_Log("Write failed. err = %d\n", err);
                FILE_Close(fd_wr);
                return;
            }
        } else {
            PRINT_Log("Read failed. err = %d", err);
            FILE_Close(fd_rd);
            return;
        }
    } while (byts_rd != 0);

    if (byts_rd == byts_wr) {
        PRINT_Log("Copy completed\n");
    } else {
        PRINT_Log("Copy failed\n");
    }

    FILE_Close(fd_rd);                                                /* Close the file                     */
    FILE_Close(fd_wr);
}

#endif

/*
**************************************************************************************************************
*                                           DELETE A FILE
*
* Description: This function deletes a file. The file name for the file to be deleted is defined as
*              APP_DEL_FILE
*
* Arguments  : None
*
* Returns    : None
*
**************************************************************************************************************
*/

#if (APP_CFG_TEST_DEL_FILE == DEF_ENABLED)

static  void  APP_TestDelFile (void)
{
    CPU_INT32S  err;


    PRINT_Log("\n");
    PRINT_Log("Deleting the file %s...\n", APP_DEL_FILE);
    err = FILE_Del(APP_DEL_FILE);
    if (err != OK) {
        PRINT_Log("Cannot delete file. err = %d\n", err);
        return;
    }
    PRINT_Log("File deleted\n");
}

#endif

/*
**************************************************************************************************************
*                                          CREATE DIRECTORY
*
* Description: This function creates a directory. The name of the directory to be created is defined
*              as APP_CREAT_DIR.
*
* Arguments  : None
*
* Returns    : None
*
**************************************************************************************************************
*/

#if (APP_CFG_TEST_CREAT_DIR == DEF_ENABLED)

static  void  APP_TestCreatDir (void)
{
    CPU_INT32S  err;


    PRINT_Log("\n");
    PRINT_Log("Creating directory %s...\n", APP_CREAT_DIR);
    err = FILE_CreatDir(APP_CREAT_DIR);
    if (err != OK) {
        PRINT_Log("Cannot create directory. err = %d\n", err);
        return;
    }
    PRINT_Log("Directory created\n");
}

#endif

/*
**************************************************************************************************************
*                                          DELETE DIRECTORY
*
* Description: This function deletes a directory. The name of the diretory to be deleted is defined
*              as APP_DEL_DIR.
*
* Arguments  : None
*
* Returns    : None
*
**************************************************************************************************************
*/

#if (APP_CFG_TEST_DEL_DIR == DEF_ENABLED)

static  void  APP_TestDelDir (void)
{
    CPU_INT32S  err;


    PRINT_Log("\n");
    PRINT_Log("Deleting the directory %s ...\n", APP_DEL_DIR);
    err = FILE_DelDir(APP_DEL_DIR);
    if (err != OK) {
        PRINT_Log("Cannot delete directory. err = %d\n", err);
        return;
    }
    PRINT_Log("Directory deleted\n");
}

#endif

/*
**************************************************************************************************************
*                              NAVIGATE FILESYSTEM
*
* Description: This function is used to navigate through file system. First the
*              user must start the navigation from a file/directory path. The file name of the file from where
*              the navigation should start is defined as APP_NAV_START_FILE.
*
* Arguments  : None
*
* Returns    : None
*
**************************************************************************************************************
*/

#if (APP_CFG_TEST_NAV == DEF_ENABLED)

static  void  APP_TestNav (void)
{
    CPU_INT32S  err;
    FILE_NAV    file_nav;
    FILE_NAV    nxt_nav;
    FILE_NAV    child_nav;
    FILE_INFO   file_info;


    PRINT_Log("\n");
    PRINT_Log("Navigating from %s...\n", APP_NAV_START_FILE);

    err = FILE_NavStart(APP_NAV_START_FILE, &file_nav);          /* Start navigation                        */
    if (err == OK) {
        err = FILE_GetInfo(&file_nav, &file_info);                     /* Get information of the child file       */
        if (err == OK) {
            FILE_PrintInfo(&file_info);                          /* Print the information                   */
        }
    } else {
        PRINT_Log("Cannot start navigation. err = %d\n", err);
        return;
    }    

    err = FILE_NavChild(&file_nav, &child_nav);                   /* Navigate to child                       */
    if (err == OK) {
        FILE_GetInfo(&child_nav, &file_info);                    /* Get information of the child file       */
        FILE_PrintInfo(&file_info);                              /* Print the information                   */
    } else {
        PRINT_Log("Cannot navigate to child. err = %d\n", err);
        return;
    }
    do {
        err = FILE_NavNxt(&child_nav, &nxt_nav);                      /* Navigate to next file                   */
        if (err == OK) {
            FILE_GetInfo(&nxt_nav, &file_info);                      /* Get information of the child file       */
            FILE_PrintInfo(&file_info);                              /* Print the information                   */
        } else {
            if (err == ERR_NO_MORE_ENT) {
                PRINT_Log("No more entries\n");
            } else {
                PRINT_Log("Cannot navigate to next. err = %d\n", err);
                return;
            }
        }
        FILE_NavCpy(&child_nav, &nxt_nav);
    } while(err == OK);
    PRINT_Log("Navigation completed.\n");
}

/*
**************************************************************************************************************
*                              COPY NAVIGATION STRUCTURES
*
* Description: This function is used to copy the contents of the source navigation structure into destination
*              navigation structure.
*
* Arguments  : dest_nav     Destination navigation structure
*              src_nav      Source navigation structure
*
* Returns    : None
*
**************************************************************************************************************
*/

void  FILE_NavCpy (FILE_NAV  *dest_nav,
                   FILE_NAV  *src_nav)
{
    dest_nav->EntClus    = src_nav->EntClus;
    dest_nav->EntClusOff = src_nav->EntClusOff;
    dest_nav->NbrEnt     = src_nav->NbrEnt;
    dest_nav->PartHandle = src_nav->PartHandle;
    dest_nav->DataClus   = src_nav->DataClus;
    dest_nav->FileAttr   = src_nav->FileAttr;
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -