📄 main.c
字号:
/****************************************Copyright (c)****************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name: main.c
** Last modified Date: 2004-09-16
** Last Version: 1.0
** Descriptions: The main() function example template
**
**--------------------------------------------------------------------------------------------------------
** Created by: Chenmingji
** Created date: 2004-09-16
** Version: 1.0
** Descriptions: The original version
**
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
*********************************************************************************************************/
#include "main.h"
/*********************************************************************************************************
TASK0 任务ID、优先级、堆栈设置及函数声明
*********************************************************************************************************/
#define TASK0_ID 11 /* 任务的ID */
#define TASK0_PRIO TASK0_ID /* 任务的优先级 */
#define TASK0_STACK_SIZE 512 /* 定义用户堆栈长度 */
OS_STK TASK0_STACK[TASK0_STACK_SIZE]; /* 定义任务0 堆栈 */
void TASK0(void *pdata); /* 声明任务0 */
OS_STK TaskFileStk[256];
/*********************************************************************************************************
** Function name: main
** Descriptions: 主函数
** Input parameters: None
** output parameters: None
** Created Date:
*********************************************************************************************************/
int main (void)
{
OSInit();
OSTaskCreateExt(TASK0,
(void *)0,
&TASK0_STACK[TASK0_STACK_SIZE-1],
TASK0_PRIO,
TASK0_ID,
&TASK0_STACK[0],
TASK0_STACK_SIZE,
(void *)0,
OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
OSStart();
return 0;
}
#define DATA_N 1024 /* 读/写文件长度 */
char GcWritFileData[DATA_N]; /* 写文件缓冲区 */
char GcReadFileData[DATA_N]; /* 读文件缓冲区 */
/*********************************************************************************************************
** Function name: TASK0
** Descriptions: None
** input parameters: None
** output parameters: None
*********************************************************************************************************/
void TASK0 (void *pdata)
{
char cBuf[40];
char cBuf1[4] = "rw";
char cStr[] = "ZLG/USBHOST & ZLG/FS---Designed by ZLGMCU\r\n";
HANDLE FHandle;
uint32 i;
uint32 uiLen;
pdata = pdata;
TargetInit ();
UART0_SendStr("\r\nThis is the usb host demo\r\n");
usbHostInitialize(4, 5, NULL, NULL); /* 初始化USB HOST */
while (!usbIsDeviceReady()) { /* 等待枚举完设备 */
OSTimeDly(100);
}
OSTaskCreate(OSFileTask, (void *)0, &TaskFileStk[255], 6); /* 创建文件系统任务 */
for (i = 0; i < DATA_N; i++) {
GcWritFileData[i] = cStr[i % (sizeof(cStr) - 1)];
}
OSAddFileDriver(usbCammand); /* 增加设备 */
UART0_SendStr("\r\nStart test...\r\n");
sprintf(cBuf, "a:\\usb.txt");
FHandle = OSFileOpen(cBuf, cBuf1); /* 打开文件 */
if (FHandle == 0xFF) {
UART0_SendStr("\r\n\tOSFileOpen failed!\r\n");
}
/*
* 写:将文件写入存储设备
*/
OSFileSeek(FHandle, 0, SEEK_END); /* 文件指针移到文件末尾 */
uiLen = OSFileWrite(GcWritFileData, sizeof(GcWritFileData), FHandle);
/* 写入文件 */
if (uiLen > 0) {
OSAllCacheWriteBack();
}
OSFileClose(FHandle);
if (uiLen >= sizeof(GcWritFileData)) { /* 写文件成功 */
UART0_SendStr("\r\nWritefile sucess!");
} else {
UART0_SendStr("\r\nWrite file failed!\r\n");
}
memset(GcReadFileData, 0, DATA_N);
/*
* 读:从存储设备中读取文件
*/
FHandle = OSFileOpen(cBuf, cBuf1); /* 打开文件 */
if (FHandle == 0xFF) {
UART0_SendStr("\r\n\tOSFileOpen failed!\r\n");
}
OSFileSeek(FHandle, 0, SEEK_SET); /* 文件指针移到文件末尾 */
uiLen = OSFileRead(GcReadFileData, sizeof(GcReadFileData), FHandle);
/* 读出文件 */
OSFileClose(FHandle);
if (uiLen >= sizeof(GcReadFileData)) { /* 写文件成功 */
UART0_SendStr("\r\nReadfile sucess!");
} else {
UART0_SendStr("\r\nRead file failed!\r\n");
}
/*
* 校验: 将读出的文件与写入的文件进行比较
*/
if (memcmp(GcReadFileData, GcWritFileData, DATA_N)) {
UART0_SendStr("\r\nverify failed!\r\n");
} else {
UART0_SendStr("\r\nverify sucess!\r\n");
}
strcpy(cBuf, "a:\\USB&FS");
OSMakeDir(cBuf); /* 创建文件夹 */
OSAllCacheWriteBack();
OSRemoveFileDriver(0); /* 移除设备 */
while (1) {
OSTimeDly(2);
}
}
/*********************************************************************************************************
END FILE
*********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -