##// END OF EJS Templates
Removed error on fat32 library, seems now to be able navigate among sectors in...
Removed error on fat32 library, seems now to be able navigate among sectors in both directions. Improved SDLCD drawing performances by almost 1000x.

File last commit:

r68:104125d87b89 dev_alexis
r68:104125d87b89 dev_alexis
Show More
main.c
138 lines | 3.2 KiB | text/x-c | CLexer
#include <stdio.h>
#include <fat32.h>
#include <gpio.h>
#include <uart.h>
#include <bsp.h>
#include <core.h>
#include <bsp.h>
#include <spi.h>
#include <fat32.h>
#include <ucdirent.h>
#include <string.h>
#include <unistd.h>
#include <terminal.h>
#include <stdarg.h>
#include <malloc.h>
extern streamdevice* __opnfiles__[];
extern void test_Block_Move(LCD_t* LCD,int x,int y,int w,int h,int color);
extern void test_address(LCD_t* LCD);
extern void printRootClustersChain(FAT32fs* sdcard2FAT32part);
char buffer[512];
//void streamdevicePrint(streamdevice* dev, const char* format,...)
//{
// char str_buffer[512]="";
// int i;
// va_list ap;
// va_start(ap,format);
// vasprintf(str_buffer,format,ap);
// va_end(ap);
// i=strlen(str_buffer);
// dev->ops->write(dev,(void*)str_buffer,1,i);
//}
int _write(int file, char *ptr, int len)
{
if(file<__MAX_OPENED_FILES__ && __opnfiles__[file]!=NULL)
{
if(__opnfiles__[file]->ops->write(__opnfiles__[file],ptr,1,len)) return len;
}
return len;
}
int _write_r (struct _reent *r, int file, char * ptr, int len)
{
return _write(file, ptr, len);
}
//int printf(const char *format,...)
//{
// char str_buffer[512]="";
// for(int i =0;i<512;i++)str_buffer[i]='\0';
// int i;
// va_list ap;
// va_start(ap,format);
// vasprintf(str_buffer,format,ap);
// va_end(ap);
// i=strlen(str_buffer);
// __opnfiles__[1]->ops->write(__opnfiles__[1],(void*)str_buffer,1,i);
//}
void lcd_print()
{
lcd0.paintFilRect(&lcd0,10,10,100,100,0,0,0x0F0F);
// __opnfiles__[1]->ops->write(__opnfiles__[1],(void*)"hello",1,5);
}
void playFile(ucdirent* file,FAT32fs* part)
{
extern volatile vs10XXDev audioCodec0;
char direntName[]=" \n";
uint32_t fileLba,nextLba;
int i=0;
fat32getdirentname(file,direntName);
//gpioset(LCD_BACKL);
printf("%s\n",direntName);
nextLba=fat32getdirentlba(file);
//printf("Streaming File\n");
//gpioclr(LCD_BACKL);
}
void listFiles()
{
extern FAT32fs sdcard2FAT32part1,sdcard2FAT32part2,sdcard2FAT32part3,sdcard2FAT32part4;
ucdirent root;
if(DIRENT_noErr==fat32mkdirent(&sdcard2FAT32part1,&root))
{
printf("Reading on SDCARD2 part1\n");
if(DIRENT_noErr==fat32getrootfirstent(&root))
{
do{
playFile(&root,&sdcard2FAT32part1);
}while (DIRENT_noErr==fat32nextdirent(&root));
}
}
gpioset(LED2);
if(DIRENT_noErr==fat32mkdirent(&sdcard2FAT32part2,&root))
{
printf("Reading on SDCARD2 part2\n");
if(DIRENT_noErr==fat32getrootfirstent(&root))
{
do{
playFile(&root,&sdcard2FAT32part2);
}while (DIRENT_noErr==fat32nextdirent(&root));
}
}
}
int libuc_main2()
{
printRootClustersChain(&sdcard2FAT32part1);
}
int libuc_main()
{
char in[255];
//lcd_print();
printf("hello world\n");
delay_100us(10000);
// streamdevicePrint(__opnfiles__[1],"test Hello %d %f \n",1234567,8.96);
lcd0.paintText(&lcd0,"A",10,100,&ComicSansMS_18,0x0);
//while(1)test_address(&lcd0);
listFiles();
// while (scanf("%c",in))
// {
sleep(5);
// }
}