switch file id to 32bit and get sram push working

This commit is contained in:
David Voswinkel 2009-08-18 08:38:48 +02:00
parent dc8ed94279
commit 6edd54b092
6 changed files with 23 additions and 15 deletions

View File

@ -34,12 +34,12 @@ void dir_entry_start(){
}
void dir_entry_dump(uint32_t addr, dir_ent_t* ent){
debug(DEBUG_FAT,"dir_entry_dump: addr=0x%06lx id=%i name=%s size=%li attr=%i\n", addr, ent->id, ent->file_name,
debug(DEBUG_FAT,"dir_entry_dump: addr=0x%06lx id=%li name=%s size=%li attr=%i\n", addr, ent->id, ent->file_name,
ent->file_size, ent->file_attr);
}
void dir_entry_add(uint16_t id, uint8_t* file_name,uint32_t file_size,uint8_t file_attr){
void dir_entry_add(uint32_t id, uint8_t* file_name,uint32_t file_size,uint8_t file_attr){
uint32_t addr;
dir_ent_t ent;
strncpy(ent.file_name,file_name,13);
@ -59,3 +59,4 @@ void dir_entry_header(uint16_t position, uint8_t * header){
}

View File

@ -32,15 +32,15 @@
#define DIR_ENTRY_HEADER_OFF 20
typedef struct {
uint16_t id; // 2
uint32_t id; // 4
uint8_t file_name[13]; // 8.3 = 12 + 1 = 13
uint32_t file_size; // 4
uint8_t file_attr; // 1
uint8_t snes_header[43]; // 44
uint8_t snes_header[41]; // 41
} dir_ent_t; // 64
void dir_entry_start();
void dir_entry_add(uint16_t id, uint8_t* file_name,uint32_t file_size,uint8_t file_attr);
void dir_entry_add(uint32_t id, uint8_t* file_name,uint32_t file_size,uint8_t file_attr);
void dir_entry_header(uint16_t position, uint8_t * header);
/*

View File

@ -205,7 +205,7 @@ void lsRowsOfClust_smc(uint32_t start_sec)
fat_loadRowOfSector(row); // reihe eines sektors (auf dem puffer) laden
if ((file.name[0] != 0xE5 && file.name[0] != 0x00)) {
if (file.attrib == 0x20)
dir_entry_add((uint16_t)file.firstCluster, file.name, file.length ,file.attrib);
dir_entry_add(file.firstCluster, file.name, file.length ,file.attrib);
}
}
} while (++sec < fat.secPerClust);

View File

@ -51,7 +51,7 @@
extern const char _rom[] PROGMEM;
extern FILE uart_stdout;
uint8_t debug_level = (DEBUG | DEBUG_USB | DEBUG_CRC | DEBUG_FAT | DEBUG_SRAM );
uint8_t debug_level = (DEBUG | DEBUG_USB | DEBUG_CRC | DEBUG_FAT);
uint8_t read_buffer[TRANSFER_BUFFER_SIZE];
uint32_t req_addr = 0;
@ -314,18 +314,25 @@ int main(void)
uart_init();
stdout = &uart_stdout;
test_sdcard();
info("Sytem start\n");
system_init();
#if 0
test_read_write();
test_bulk_read_write();
test_crc();
while (1);
#if 1
avr_bus_active();
info("Activate AVR bus\n");
info("IRQ off\n");
snes_irq_lo();
snes_irq_off();
info("Set Snes lowrom\n");
snes_lorom();
info("Disable snes WR\n");
snes_wr_disable();
test_sdcard();
#endif
info("Boot startup rom\n");
boot_startup_rom();

View File

@ -22,8 +22,7 @@
#include <stdlib.h>
#include <stdint.h>
#include <avr/io.h>
#include <util/delay.h> /* for _delay_ms() */
#include <util/delay.h>
#include "config.h"
#include "sram.h"

View File

@ -126,6 +126,7 @@ void test_sdcard(void){
printf("Root dirlist\n");
ffls_smc();
dump_memory(DIR_ENTRY_LOC , DIR_ENTRY_LOC + (64 * 2));
while(1);
#if (WRITE==1)
char datei[12]="test.txt"; // hier muss platz für 11 zeichen sein (8.3), da fat_str diesen string benutzt !!