From c3cc5d89b87e4e22b27e326284d2a10b0defcc5b Mon Sep 17 00:00:00 2001 From: david Date: Sun, 15 Feb 2009 12:59:30 +0100 Subject: [PATCH] o add directy list o add file selectr --- poc/lpc2148_efsl/test/main.bin | Bin 23076 -> 22132 bytes poc/lpc2148_efsl/test/main.c | 131 ++++++++++++++------------------- 2 files changed, 54 insertions(+), 77 deletions(-) diff --git a/poc/lpc2148_efsl/test/main.bin b/poc/lpc2148_efsl/test/main.bin index 61c3bfb77c9681b7cbb3f1c00a568b1640f56505..9d4dd46a530a88f8279b932d436183560ae3011e 100755 GIT binary patch delta 1860 zcmY*ZeN5D49REJgy>Q&|atI=CgC7SNZ_4>Hb5!mGBx95(9Jd5nWL(omK!Aqgf*iJG z&R`F0X|4OUr8DQ6`EzAX87;_s*=nseH)-SU{1tM`kfph4UZ3Y=%l`Q6`+UEj@5}Rj zp6~N~dWQXVk`3jjZZ{LP0#ZtB1zOC*<@>C?M6*+Gk!!nm_`A9-!WaB&cUE; zC*m>$??fV2A~hr(QaHI}@$)E@g|#f^LGUHSxFOvr;zp6fvWOdPqezN#L{A={(8pmb zb)gYb1AC)2_6KQP4Mg0AU}QWin1y(gy;KcYl)>O_6qN%A>{6hM8a8Ee}r`!B-z!_-{8?xkh0XI^?;H27mp-T<~`J%guj$S z@ZSeN9BJ@DByw&BwpQqJ&yA2%&|4t8$P>zzSM5~m0#{+YipH-he!X&G4)Q>b!+sX_ zJ|um74%|p^-1Xla9E9IU42mwy!BBJ#24LNR$QDR5vf6NzE1Xr)JGJ0Wom7P@qF^t! zE+-N#2ILiNMU32THSBAEi;>7I4e;qXoZN9EQGOlKMqJ%$$SS}CD1e+Nd9?%%bCvkN z!D_A3ju?(`(GruwhZ4oEn5Fzcy!bfg9ez7bEVVfJyYZsNlFi?U6R%l5XB$L%Y#G0v zATnZ$`9Z4`tU-JN+byg33AVmC@i5lG)dbC9EoP}#@KOq$qdK_;rw!CPZMOfS@3V_- zw!87yK$*~*ky@tL3tyZ_Ul&K=R;OP#kUP+ygQtXMO*rngA}PKsX+2nJS*widePEvv zo8zBNPla{hu^7`rj9q*YUy@`3D}7hfpe`9E{)q2jMOt%0CF}RwD13${1M$wE^#qKO z**O^<;lr?>h20K&671FmyMR3z`gw42Bkw~`g+8{RzXx4`eu_Qf_d?Hyo&GVaGxcn)tyvV4J^ z13Me5)ueh2Njc!<9QNBSK^ckW(?8^TtoB02N>+SQ{zNpYn{n7Os`-8do-t8R`CEMk z{w`*zvrapaxz5BCaZ@Q{DIz`hJ$~CNj^#S|UYod_+sF#F0!K2F_gaI&ZhulJy9Hx0w_Rfz4qnPyG;DxyjWgQ%xmXGV?_Ybt2l z(JVs>6|9tPyL)`yN|BYs2Odvxy|2ypN{=G5A_>u!j-5(pm#@1Uxylv%8arR_ERSXr MV+|Eri+95CFZkk{`v3p{ delta 2740 zcmb7Fdr(x@8UOCtUG@Phi#$dU;Q)#}6s`szp-x=_g2`w_c||+zKwPXO$Wj*5m}I&{ zO=7Dy=+TaoYWCJiopxdz(zOlaphJx@ts^rgnwdIfbnjiRwQQ#YnP}5#>h^bF(`oxx zJF~z2zTfvc-#Pc(?|yz(dHcLFxG-zfMl=FQDRCYcwjHV7>&hUS9REIf=WRQ3bxTsI zLa~&~;v6ds9w&<3S3>4_$O$Pu6uTRb$Ht*whW>j<@@UbQkrF45LAhF54RA#XWnS>m z{89La5qAms8=9}Q{H6c?j)C!$cO^>VThQqVp z*ns%Y<8hZ4@qMV7hniOSSHqr*npFiM^Q@zGW>?WwaF)Qq;dnK%2#Q6SdgYHj=-g8i zGFh$`wQ^1Wf{x8IrWcifi|;Dw!TYcVka-=_@1R&dmhHf@3lhsp`w36T9O5DK zApAJXXcm0Ku%Cq8huk5^6W}+o;vnP~kOvTt^Vbi7Z$ch27&?qd%Ikj=uN*jNjC;2|Zah!-xKd z__~|Aym~T;k*1S+!<0?n>bewlYDULnmp>v6{8L-t4R&NNNyFX$fUnI%%sacdJ z?zkSh_rPVt8Cj`4VhBB1WZzApm`@Fv7HZUk`FItuF^rd-+v0FaWtsu6w5;aG&6nW4 zBgRr1vfqbw;NNm=iJbSuQg?aU8F*!E740{r=d|c@`;}|q+wNM0d9k_FtY@ncGfW@q z9`%-)hB4$)Kb(2nt6)zDAAwJIWgD(M}m*ANx z;;q!>EIlRsN$MP%a!cqL>G*$;@jg5066Z3r*g;qLYG$h?ZPYnCgMuE1p`>X#_LBV* z_L?hvEql4bHaf+loIKZ42zrPYZ?q*`Jpb!9=qP}38 z^1JX)3(^&~G+F$*uuvHmw+p|?d`_{l=$CApQ%n|ZW0lTu{lZoS2XkuC9~9Q)5HBvi zrd$*2N1=$XL7Jv}+qHeTp8G6B zKdfRQbE}PF3Te^TG2%Ei7)iJ%D=~F~G+=1^aNP&B=mBcLb<%WBUZe6WpGCvCYKTai z^p!d&7*hs+V8}#9Tca|03h%{%Ax*c_bN>p=M}g60vsX_xp?LQjcFfi@?V5fE@owy0 zPUn}BFcTZKXqFm@T0Dmh2iKy9Fx5#NGnK|MlL6ZiBje>+u_Zw*T5X**%z=R;!QDP) zu7FM6HXD~CNYg!oW2TyjlebRVmw?-`ki2zY#bsil;zXPsG4cj3PVgM)Xh<(gaHp&h zgfTy1sD(bkL*{(&2nKiqc94vQR-xlt;9C+qdJMcp#iBSuH;O!3HfFj=(_7F?9D3Ws z_{291Y^w)U28gnrkER00uuK$KFvy=#q zro#3h!5xX1X>hqi*@P_iIEqWjJqHYFTLDglV;(N?+wn zUk{}j2(Pc$ket&F?GSJt7y+&TH-Pch@VUpIx3So?C|+B}-kBC#);^__iBoIyl?HKf zZ8^IzEhgc4aav?~FDaGcQ*XXf6n@}cWo6bjQL*mQ+}t*zI^YF>29hFLTlmqs9ZKF1 z_;p|cus)5C9#8@_0z01$?`^oJxK2RVq^%{~_hcU{{5kXyU;^-LC8`4Yfk9vd7~d+A zHW(~rTX=HA8LODu+`OW(uQL$fwfV(6^Nasyl(fdU3++4M}G(J_w#xryItge&Lzvyj*hNw7ly=^C%)CZvn#;y z>+$#VUVk9a^$eEr?e3IWT|I%_J9cz!@9OO7=Yh`c{ryIVf8{1Zh73Zei2 diff --git a/poc/lpc2148_efsl/test/main.c b/poc/lpc2148_efsl/test/main.c index fd18b06..003b74d 100644 --- a/poc/lpc2148_efsl/test/main.c +++ b/poc/lpc2148_efsl/test/main.c @@ -26,7 +26,6 @@ #define BIT(x) ((unsigned long)1<40MHz - MAMTIM = MAM_FETCH; - // c. enable MAM - MAMCR = MAM_MODE; - - // --- set VPB speed --- - VPBDIV = VPBDIV_VAL; - - // --- map INT-vector --- - #if defined(RAM_RUN) - MEMMAP = MEMMAP_USER_RAM_MODE; - #elif defined(ROM_RUN) - MEMMAP = MEMMAP_USER_FLASH_MODE; - #else - #error RUN_MODE not defined! - #endif -} -*/ static void gpioInit(void) { LEDSET = BIT(LED1PIN); // set Bit = LED off (active low) @@ -88,24 +47,60 @@ static void gpioInit(void) LEDSET = BIT(LED1PIN); // set Bit = LED off (active low) } - -#if 0 -static void hang(void) -{ - while (1); -} - - -#endif /* */ EmbeddedFileSystem efs; EmbeddedFile filer, filew; DirList list; unsigned short e; unsigned char buf[513]; + +void list_roms(){ + uint8_t cnt = 0; + rprintf("Directory of 'root':\n"); + ls_openDir(&list, &(efs.myFs), "/"); + while (ls_getNext(&list) == 0) { + cnt++; + list.currentEntry.FileName[LIST_MAXLENFILENAME - 1] = '\0'; + rprintf("[%li] %s ( %li bytes )\n",cnt, list.currentEntry.FileName, list.currentEntry.FileSize); + } +} + +uint8_t * get_filename(uint8_t idx){ + uint8_t cnt = 0; + if (idx<1 || idx>9) + return NULL; + ls_openDir(&list, &(efs.myFs), "/"); + while (ls_getNext(&list) == 0) { + cnt++; + //list.currentEntry.FileName[LIST_MAXLENFILENAME - 1] = '\0'; + if (cnt==idx) + return list.currentEntry.FileName; + } + return NULL; +} + +void dump_filename(uint8_t * filename){ + if (file_fopen(&filer, &efs.myFs, filename, 'r') == 0) { + rprintf("File %s open. Content:\n", filename); + while ((e = file_read(&filer, 512, buf)) != 0) { + buf[e] = '\0'; + uart0Puts((char *) buf); + } + rprintf("\n"); + file_fclose(&filer); + } else { + rprintf("Failed to open %s\n",filename); + } +} + + + + int main(void) { int ch; int8_t res; + uint8_t * filename; + Initialize(); gpioInit(); uart0Init(UART_BAUD(BAUD), UART_8N1, UART_FIFO_8); // setup the UART @@ -118,25 +113,13 @@ int main(void) if ((res = efs_init(&efs, 0)) != 0) { rprintf("failed with %i\n", res); } - rprintf("Press Command: d r a \n"); + list_roms(&efs); + rprintf("Select File:\n"); while (1) { if ((ch = uart0Getch()) >= 0) { uart0Puts("You pressed : "); uart0Putch(ch); uart0Puts("\r\n"); - if (ch == 'M') { - rprintf("Creating FS\n"); - fs_umount(&efs.myFs); - mkfs_makevfat(&efs.myPart); - } - if (ch == 'd') { - rprintf("Directory of 'root':\n"); - ls_openDir(&list, &(efs.myFs), "/"); - while (ls_getNext(&list) == 0) { - list.currentEntry.FileName[LIST_MAXLENFILENAME - 1] = '\0'; - rprintf("%s ( %li bytes )\n", list.currentEntry.FileName, list.currentEntry.FileSize); - } - } if (ch == 'r') { if (file_fopen(&filer, &efs.myFs, LogFileName, 'r') == 0) { rprintf("File %s open. Content:\n", LogFileName); @@ -147,19 +130,13 @@ int main(void) file_fclose(&filer); } } - if (ch == 'a') { - if (file_fopen(&filew, &efs.myFs, LogFileName, 'a') == 0) { - rprintf("File %s open for append. Appending...", LogFileName); - strcpy((char *) buf, "Append Dummy Data to File\r\n"); - if (file_write(&filew, strlen((char *) buf), buf) == strlen((char *) buf)) { - rprintf("ok\n\n"); - } else { - rprintf("fail\n\n"); - } - file_fclose(&filew); - fs_umount(&efs.myFs); - } - } + if (ch >='1' && ch <='9'){ + + filename = get_filename(ch - 48); + rprintf("Dump: %s\n",filename); + dump_filename(filename); + } + ledToggle(); } }