#include #include #include #include "fs_s256.h" #include "8000.h" void create_file(char *fname); void main(int argc, char **argv) { char buf[256]; int i; int folder_index; int filename_index; int folder1, folder2; char filename[256]; int max_fileno = 32; if (argc > 1) max_fileno = atoi(argv[1]); Print("Each folder limited fileno to:%d\r\n", max_fileno); InitLib(); if (! pc_ertfs_init()) return ; if (! pc_mkdir("log")) { Print("err mkdir %s\r\n", "log"); // return ; } for (i=0; i<10000; i++) { folder_index = i / max_fileno; folder1 = folder_index / max_fileno; folder2 = folder_index % max_fileno; sprintf(buf, "log\\%02d", folder1); if (!pc_mkdir(buf)) { Print("err mkdir %s\r\n", buf); // return ; } sprintf(buf, "log\\%02d\\%02d", folder1, folder2); pc_mkdir(buf); if (!pc_mkdir(buf)) { Print("err mkdir %s\r\n", buf); // return ; } sprintf(filename, "log\\%02d\\%02d\\file%04d.txt", folder1, folder2, i); Print("create file %s ....\n", filename); create_file(filename); } } void create_file(char *fname) { PCFD out_fd; char buf[256]; int err, len; long v1, v2; v1 = GetTimeTicks(); if ((out_fd = pc_open(fname,(word) (PO_BINARY|PO_WRONLY|PO_CREAT|PO_APPEND),(word) (PS_IWRITE | PS_IREAD) ) ) < 0){ Print("error open file: [%s]\r\n", fname); return ; } Print("open: %ld\r\n", GetTimeTicks() - v1); sprintf(buf, "[%s][%ld]Hello! This is a simple MMC demo\r\n", fname, GetTimeTicks()); len = strlen(buf); v1 = GetTimeTicks(); err=pc_write(out_fd, buf, len); Print("write: %ld\r\n", GetTimeTicks() - v1); if (err != len){ Print("write error(len=%d,err=%d)\r\n",len,err); return ; } pc_close(out_fd); }