-
Byron Lathi authored
Prints out information about the drive, now inside its own function. Also changes the read function to take in a 32 bit address instead of a 16 bit one. Attempts to read the first file on the disk
Byron Lathi authoredPrints out information about the drive, now inside its own function. Also changes the read function to take in a 32 bit address instead of a 16 bit one. Attempts to read the first file on the disk
main.c 5.45 KiB
#include <stdint.h>
#include <conio.h>
#include "board_io.h"
#include "uart.h"
#include "mapper.h"
#include "sd_card.h"
#include "fat.h"
uint8_t buf[512];
void sd_readblock(uint32_t addr) {
uint32_t resp;
int i;
sd_card_command(addr, 17);
sd_card_resp(&resp);
cprintf("CMD17: %lx\n", resp);
sd_card_wait_for_data();
cprintf("Read data: \n");
for (i = 0; i < 512; i++){
buf[i] = sd_card_read_byte();
}
/*
for (i = 0; i < 512; i++){
if (i % 16 == 0)
cprintf("\n %2x: ", i);
cprintf("%2x ", buf[i]);
}
*/
cprintf("\n");
}
void print_pbp_info(ebpb_t* epbp){
cprintf("Bytes per sector: %d\n", epbp->bpb3.bpb2.bytes_per_sector);
cprintf("Sectors per cluster: %d\n", epbp->bpb3.bpb2.sectors_per_cluster);
cprintf("Reserved Sectors: %d\n", epbp->bpb3.bpb2.reserved_sectors);
cprintf("Fat Count: %d\n", epbp->bpb3.bpb2.fat_count);
cprintf("Max Dir Entries: %d\n", epbp->bpb3.bpb2.max_dir_entries);
cprintf("Total Sector Count: %d\n", epbp->bpb3.bpb2.total_sector_count);
cprintf("Media Descriptor: 0x%x\n", epbp->bpb3.bpb2.media_descriptor);
cprintf("Sectors per Fat: %d\n", epbp->bpb3.bpb2.sectors_per_fat);
cprintf("\n");
cprintf("Sectors per track: %d\n", epbp->bpb3.sectors_per_track);
cprintf("Head Count: %d\n", epbp->bpb3.head_count);
cprintf("Hidden Sector Count: %ld\n", epbp->bpb3.hidden_sector_count);
cprintf("Logical Sector Count: %ld\n", epbp->bpb3.logical_sector_count);
cprintf("Sectors per Fat: %ld\n", epbp->bpb3.sectors_per_fat);
cprintf("Extended Flags: 0x%x\n", epbp->bpb3.extended_flags);
cprintf("Version: %d\n", epbp->bpb3.version);
cprintf("Root Cluster: 0x%lx\n", epbp->bpb3.root_cluster);
cprintf("System Information: 0x%x\n", epbp->bpb3.system_information);
cprintf("Backup Boot Sector: 0x%x\n", epbp->bpb3.backup_boot_sector);
cprintf("\n");
cprintf("Drive Number: %d\n", epbp->drive_num);
cprintf("Extended Signature: 0x%x\n", epbp->extended_signature);
cprintf("Volume ID: 0x%lx\n", epbp->volume_id);
cprintf("Partition Label: %.11s\n", &epbp->partition_label);
cprintf("Partition Label: %.8s\n", &epbp->filesystem_type);
cprintf("\n");
}
int main() {
int i;