示例#1
0
int main(int argc, char **argv) {
    DeviceManager manager;
    Flash flash;

    if(argc != 3) {
        usage(argv[0]);
        return 0;
    }

    string action = argv[1];
    if(action != "dump" && action != "flash") {
        cout << "Invalid action!" << endl;
        usage(argv[0]);
        return 0;
    }

    if(!UsbProgrammer::getProgrammer()->IsInitialized()) {
        cout << "Cannot connect to programmer!" << endl;
        return 1;
    }

    if(!manager.IsSupported()) {
        cout << "Device is NOT supported!" << endl;
        return 1;
    }


    if(action == "dump") {
        if(!flash.dump(argv[2])) {
            cout << "Dumping failed!" << endl;
            return 1;
        }
    } else if(action == "flash"){
        cout << "Action currently not supported!" << endl;
    }

    manager.XapResetAndGo();

    return 0;
}