add test dir loop
This commit is contained in:
parent
6edd54b092
commit
dade0ea275
@ -20,6 +20,8 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "dir.h"
|
#include "dir.h"
|
||||||
|
#include "file.h"
|
||||||
|
#include "fat.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "sram.h"
|
#include "sram.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
@ -27,12 +29,15 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
|
||||||
uint16_t positon = 0;
|
uint16_t position = 0;
|
||||||
|
|
||||||
|
extern struct File file;
|
||||||
|
|
||||||
void dir_entry_start(){
|
void dir_entry_start(){
|
||||||
positon = 0;
|
position = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void dir_entry_dump(uint32_t addr, dir_ent_t* ent){
|
void dir_entry_dump(uint32_t addr, dir_ent_t* ent){
|
||||||
debug(DEBUG_FAT,"dir_entry_dump: addr=0x%06lx id=%li 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);
|
ent->file_size, ent->file_attr);
|
||||||
@ -46,17 +51,46 @@ void dir_entry_add(uint32_t id, uint8_t* file_name,uint32_t file_size,uint8_t fi
|
|||||||
ent.id = id;
|
ent.id = id;
|
||||||
ent.file_size = file_size;
|
ent.file_size = file_size;
|
||||||
ent.file_attr = file_attr;
|
ent.file_attr = file_attr;
|
||||||
addr = DIR_ENTRY_LOC + (positon << DIR_ENTRY_SIZE_SHIFT );
|
addr = DIR_ENTRY_LOC + (position << DIR_ENTRY_SIZE_SHIFT );
|
||||||
sram_bulk_copy(addr, (uint8_t *) &ent, DIR_ENTRY_SIZE );
|
sram_bulk_copy(addr, (uint8_t *) &ent, DIR_ENTRY_SIZE );
|
||||||
dir_entry_dump(addr, &ent);
|
dir_entry_dump(addr, &ent);
|
||||||
positon++;
|
position++;
|
||||||
}
|
}
|
||||||
|
|
||||||
void dir_entry_header(uint16_t position, uint8_t * header){
|
void dir_entry_header(uint16_t idx, uint8_t * header){
|
||||||
uint32_t addr;
|
uint32_t addr;
|
||||||
addr = DIR_ENTRY_LOC + ( position << DIR_ENTRY_SIZE_SHIFT ) + DIR_ENTRY_HEADER_OFF;
|
addr = DIR_ENTRY_LOC + ( idx << DIR_ENTRY_SIZE_SHIFT ) + DIR_ENTRY_HEADER_OFF;
|
||||||
sram_bulk_copy(addr, (uint8_t *) header, DIR_ENTRY_HEADER_SIZE);
|
sram_bulk_copy(addr, (uint8_t *) header, DIR_ENTRY_HEADER_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t dir_entry_get(uint32_t idx, dir_ent_t* ent){
|
||||||
|
uint32_t addr;
|
||||||
|
addr = DIR_ENTRY_LOC + ( idx << DIR_ENTRY_SIZE_SHIFT );
|
||||||
|
sram_bulk_read_buffer( addr, (uint8_t *) ent, DIR_ENTRY_SIZE);
|
||||||
|
return addr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void dir_entry_loop(){
|
||||||
|
uint8_t i;
|
||||||
|
uint8_t j;
|
||||||
|
uint32_t addr;
|
||||||
|
dir_ent_t ent;
|
||||||
|
for (i=0; i< position; i++){
|
||||||
|
addr = dir_entry_get(i,&ent);
|
||||||
|
dir_entry_dump(addr,&ent);
|
||||||
|
ffopen( ent.file_name );
|
||||||
|
if (file.length != 524288){
|
||||||
|
ffclose();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
//ffseek(0x7fc0);
|
||||||
|
for (j=0; j< 64; j++)
|
||||||
|
printf ("0x%02x " ,ffread());
|
||||||
|
printf("\n");
|
||||||
|
ffclose();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -126,6 +126,7 @@ void test_sdcard(void){
|
|||||||
printf("Root dirlist\n");
|
printf("Root dirlist\n");
|
||||||
ffls_smc();
|
ffls_smc();
|
||||||
dump_memory(DIR_ENTRY_LOC , DIR_ENTRY_LOC + (64 * 2));
|
dump_memory(DIR_ENTRY_LOC , DIR_ENTRY_LOC + (64 * 2));
|
||||||
|
dir_entry_loop();
|
||||||
while(1);
|
while(1);
|
||||||
|
|
||||||
#if (WRITE==1)
|
#if (WRITE==1)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user