Example #1
0
            Rem("Jump table select"),
            sel(),
            ll("exit"),
        ]


if __name__ == "__main__":
    r = CharPad.SplitChomp()
    print(r.code())
    if False:
        log.critical("TESTING")
        console = Console()
        w = Window()
        w.req("val")
        ll = LocalLabels()
        s.test = "this is a test"
        w.req(["pad", "value"])
        cs = Switch(w, w.val)
        cs.add(("c", [ll("a")]))
        cs.add(("r", [ll("b")]))
        cs.add(("s", [ll("c")]))
        cs.add((43, [ll("d")]))
        cs.add((10, [ll("e")]))
        cs.add((13, [ll("f")]))
        d = cs.dump()
        print(d)
        r = Instr.assemble(d)
        d = Instr.disassemble(r)
        print(r)
        print(d)
Example #2
0
        _flash_wait()

    print("Reloading flash data...")
    for page in range(num_pages):
        addr = ((page + 512) * page_size).to_bytes(3, byteorder="big")
        # start read operation
        _bl_flash_txn_imm(ser, ident[2], write_data=[0x0B, *addr, 0])
        # and actually read the data
        _bl_flash_txn(
            ser,
            page * 128,
            read_len=min((len(firmware) - (page * 128)) * 2, 256),
            deassert_cs=True,
        )
    print("Verifying flash...")
    calc_crc = _bl_crc(ser, 0, len(firmware))
    if calc_crc != correct_crc:
        raise Exception("verification failed!", calc_crc, correct_crc)

    print("Beginning execution...")
    _bl_jump_to_code(ser, 0)
    print("Complete!")


if __name__ == "__main__":
    f = boneload_fw()
    for w in f:
        print(Instr.disassemble([w]))
    x = len(f)
    print("c:", x, "o:", x - 256, "r:", 512 - x)