OpenCores
URL https://opencores.org/ocsvn/ao486/ao486/trunk

Subversion Repositories ao486

[/] [ao486/] [trunk/] [syn/] [components/] [sd_card/] [software/] [exe/] [main.c] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 alfik
 
2
#include <stdio.h>
3
#include <system.h>
4
#include <io.h>
5
 
6
int main() {
7
 
8
        volatile unsigned char buf[512];
9
 
10
        int status = IORD(SD_CARD_0_BASE, 0);
11
 
12
        printf("SD card status: %d\n", status);
13
 
14
        memset(buf, 0, sizeof(buf));
15
 
16
        IOWR(SD_CARD_0_BASE, 0, buf);
17
        IOWR(SD_CARD_0_BASE, 1, 0);
18
        IOWR(SD_CARD_0_BASE, 2, 1);
19
        IOWR(SD_CARD_0_BASE, 3, 2); //read
20
 
21
        while(1) {
22
                status = IORD(SD_CARD_0_BASE, 0);
23
                printf("SD card status for read: %d\n", status);
24
 
25
                if(status == 2) break;
26
        }
27
 
28
        int i;
29
        for(i=0; i<512; i++) {
30
                if(i > 0 && (i%32) == 0) printf("\n");
31
 
32
                printf("%02x ", buf[i]);
33
        }
34
        printf("\n");
35
 
36
        for(i=0; i<512; i++) if(buf[i] != (unsigned char)i) printf("Not Equal: %d\n", i);
37
 
38
        for(i=0; i<512; i++) buf[i] = i;
39
 
40
        IOWR(SD_CARD_0_BASE, 0, buf);
41
        IOWR(SD_CARD_0_BASE, 1, 0);
42
        IOWR(SD_CARD_0_BASE, 2, 1);
43
        IOWR(SD_CARD_0_BASE, 3, 3); //write
44
 
45
        while(1) {
46
                status = IORD(SD_CARD_0_BASE, 0);
47
                printf("SD card status for write: %d\n", status);
48
 
49
                if(status == 2) break;
50
        }
51
 
52
 
53
        return 0;
54
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.