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

Subversion Repositories openarty

[/] [openarty/] [trunk/] [sw/] [host/] [wbprogram.cpp] - Diff between revs 4 and 14

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 4 Rev 14
Line 33... Line 33...
}
}
 
 
int main(int argc, char **argv) {
int main(int argc, char **argv) {
        FILE    *fp;
        FILE    *fp;
        const int       BUFLN = (1<<20); // 4MB Flash
        const int       BUFLN = (1<<20); // 4MB Flash
        DEVBUS::BUSW    *buf = new DEVBUS::BUSW[BUFLN], v, addr = QSPIFLASH;
        DEVBUS::BUSW    *buf = new DEVBUS::BUSW[BUFLN], v, addr = EQSPIFLASH;
        FLASHDRVR       *flash;
        FLASHDRVR       *flash;
        int             argn = 1;
        int             argn = 1;
 
 
        if ((argc > argn)&&(NULL != strstr(argv[argn],"tty")))
        if ((argc > argn)&&(NULL != strstr(argv[argn],"tty")))
                m_fpga = new FPGA(new TTYCOMMS(argv[argn++]));
                m_fpga = new FPGA(new TTYCOMMS(argv[argn++]));
Line 67... Line 67...
        if (argc <= argn) {
        if (argc <= argn) {
                printf("BAD USAGE: program [@<Address>] file.bin\n");
                printf("BAD USAGE: program [@<Address>] file.bin\n");
                exit(-1);
                exit(-1);
        } else if (argv[argn][0] == '@') {
        } else if (argv[argn][0] == '@') {
                addr = strtoul(&argv[argn][1], NULL, 0);
                addr = strtoul(&argv[argn][1], NULL, 0);
                if ((addr < QSPIFLASH)||(addr > QSPIFLASH*2)) {
                if ((addr < EQSPIFLASH)||(addr > EQSPIFLASH*2)) {
                        printf("BAD ADDRESS: 0x%08x (from %s)\n", addr, argv[argn]);
                        printf("BAD ADDRESS: 0x%08x (from %s)\n", addr, argv[argn]);
                        exit(-1);
                        exit(-1);
                } argn++;
                } argn++;
        }
        }
 
 
Line 88... Line 88...
        fp = fopen(argv[argn], "r");
        fp = fopen(argv[argn], "r");
        sz = fread(buf, sizeof(buf[0]), BUFLN, fp);
        sz = fread(buf, sizeof(buf[0]), BUFLN, fp);
        fclose(fp);
        fclose(fp);
 
 
        try {
        try {
                flash->write(addr, sz, buf, false);
                flash->write(addr, sz, buf, true);
        } catch(BUSERR b) {
        } catch(BUSERR b) {
                fprintf(stderr, "BUS-ERR @0x%08x\n", b.addr);
                fprintf(stderr, "BUS-ERR @0x%08x\n", b.addr);
                exit(-1);
                exit(-1);
        }
        }
 
 

powered by: WebSVN 2.1.0

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