Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Altera_Forum
Honored Contributor I
713 Views

DE2 cannot open a file in the SD card

The function alt_up_sd_card_find_first works perfectly, which can help me print out all the file names in the SD card. (So I think it's not any formatting and size problem of the SD card. It's 2GB and FAT16 anyways.) 

 

But when I call alt_up_sd_card_fopen, it returns me -1, so I can't open, create, and write a file. 

 

Below is my simple code of creating a text file, and print out all the file names: 

 

alt_up_sd_card_dev *device_reference = NULL; 

int connected = 0; 

char* fileName; 

device_reference = alt_up_sd_card_open_dev(SD_CARD_NAME); 

 

 

short int handler; 

char buffer[10000] = "Testing Testing\0"; 

int index = 0; 

 

 

if (device_reference != NULL) { 

 

 

 

 

handler = alt_up_sd_card_fopen("test2.txt", false); 

if (handler >= 0){ 

while (buffer[index] != '\0'){ 

alt_up_sd_card_write(handler, buffer[index]); index++;} 

alt_up_sd_card_fclose(handler); 

else printf("cannot open file: %d\n",handler); 

while (1) { 

if ((connected == 0) && (alt_up_sd_card_is_Present())) { 

printf("Card connected. \n"); 

printf("fat16: %d",alt_up_sd_card_is_FAT16()); 

if (alt_up_sd_card_is_FAT16()) { 

printf("FAT16 file system detected. \n"); 

 

 

if(alt_up_sd_card_find_first("",fileName)==0){ 

printf("Files detected: \n"); 

do{ 

printf("%s \n",fileName); 

}while(alt_up_sd_card_find_next(fileName)==0); 

else if (alt_up_sd_card_find_first("",fileName)== -1) 

printf("No files. \n"); 

} else { 

printf("Unknown file system. \n"); 

connected = 1; 

} else if ((connected == 1) && (alt_up_sd_card_is_Present() 

== false)) { 

printf("Card disconnected. \n"); 

connected = 0; 

 

 

I found a similar thread about this issue. 

http://www.alteraforum.com/forum/showthread.php?t=34101 

But I had the interface already... I don't know why it's still nothing changes??? 

 

Please help, thanks
0 Kudos
0 Replies
Reply