From 46ddacf533b2b154373f0ac98c85b4ac172ccfa6 Mon Sep 17 00:00:00 2001 From: Björn Stenberg Date: Tue, 22 Oct 2002 15:06:08 +0000 Subject: Fat32 write updates: Nixed some bugs. Basic file creation now works. Todo: Long filenames and extensive test cases. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2742 a1c6a512-1295-4272-9138-f99709370657 --- firmware/test/fat/ata-sim.c | 8 ++++---- firmware/test/fat/main.c | 42 +++++++++++++++--------------------------- 2 files changed, 19 insertions(+), 31 deletions(-) (limited to 'firmware/test/fat') diff --git a/firmware/test/fat/ata-sim.c b/firmware/test/fat/ata-sim.c index a37fabcfc0..a64e0a4d4d 100644 --- a/firmware/test/fat/ata-sim.c +++ b/firmware/test/fat/ata-sim.c @@ -9,7 +9,7 @@ static FILE* file; int ata_read_sectors(unsigned long start, unsigned char count, void* buf) { - DEBUGF("Reading block 0x%lx\n",start); + DEBUGF("[Reading block 0x%lx]\n",start); if(fseek(file,start*BLOCK_SIZE,SEEK_SET)) { perror("fseek"); return -1; @@ -17,14 +17,14 @@ int ata_read_sectors(unsigned long start, unsigned char count, void* buf) if(!fread(buf,BLOCK_SIZE,count,file)) { printf("Failed reading %d blocks starting at block 0x%lx\n",count,start); perror("fread"); - return -1; + return -2; } return 0; } int ata_write_sectors(unsigned long start, unsigned char count, void* buf) { - DEBUGF("Writing block 0x%lx\n",start); + DEBUGF("[Writing block 0x%lx]\n",start); if (start == 0) { DEBUGF("Holy crap! You're writing on sector 0!\n"); @@ -37,7 +37,7 @@ int ata_write_sectors(unsigned long start, unsigned char count, void* buf) } if(!fwrite(buf,BLOCK_SIZE,count,file)) { perror("fwrite"); - return -1; + return -2; } return 0; } diff --git a/firmware/test/fat/main.c b/firmware/test/fat/main.c index 1b9fd22183..91e7444999 100644 --- a/firmware/test/fat/main.c +++ b/firmware/test/fat/main.c @@ -19,6 +19,7 @@ void panicf( char *fmt, ...) { va_list ap; va_start( ap, fmt ); + printf("***PANIC*** "); vprintf( fmt, ap ); va_end( ap ); exit(0); @@ -82,17 +83,20 @@ void dbg_dir(char* currdir) } } -void dbg_mkfile(char* name) +void dbg_mkfile(char* name, int num) { - char* text = "Detta är en dummy-text\n"; + char text[800]; int i; int fd = open(name,O_WRONLY); if (fd<0) { DEBUGF("Failed creating file\n"); return; } - for (i=0;i<200;i++) - if (write(fd, text, strlen(text)) < 0) + for (i=0; i= 0 ) { - rc = read(fd, buf, SECTOR_SIZE); - if( rc > 0 ) - { - buf[rc]=0; - printf("%d: %s\n", strlen(buf), buf); - } - else if ( rc == 0 ) { - DEBUGF("EOF\n"); - } - else - { - DEBUGF("Failed reading file: %d\n",rc); - } - } - else { - perror("lseek"); - } - - rc = lseek(fd,-100,SEEK_CUR); + rc = lseek(fd,-512,SEEK_END); if ( rc >= 0 ) { rc = read(fd, buf, SECTOR_SIZE); if( rc > 0 ) @@ -284,6 +268,8 @@ void dbg_console(void) } } +extern void ata_exit(void); + int main(int argc, char *argv[]) { int rc,i; @@ -325,12 +311,14 @@ int main(int argc, char *argv[]) //dbg_console(); //dbg_dir("/"); #if 1 - dbg_head("/bepa.txt"); + dbg_tail("/depa.txt"); #else - dbg_mkfile("/bepa.txt"); + dbg_mkfile("/depa.txt", 10); #endif dbg_dir("/"); + ata_exit(); + return 0; } -- cgit v1.2.3