diff --git a/poc/lpc2148_efsl/test/main.bin b/poc/lpc2148_efsl/test/main.bin index 61c3bfb..9d4dd46 100755 Binary files a/poc/lpc2148_efsl/test/main.bin and b/poc/lpc2148_efsl/test/main.bin differ 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(); } }