-def set_size_boundaries(start_addr, size):
- if start_addr % SECTOR_SIZE:
- raise ValueError(f"start addr not aligned on sector size {SECTOR_SIZE}")
+def set_size_boundaries(dev, start_addr, size):
- blocks = (size + SECTOR_SIZE - 1) // SECTOR_SIZE
- end_addr = blocks * SECTOR_SIZE + start_addr - 1
+ blocks = (size + sector_size - 1) // sector_size
+ end_addr = blocks * sector_size + start_addr - 1
raise ValueError(f"Binary file is bigger than available ROM space")
return (start_addr, end_addr)
raise ValueError(f"Binary file is bigger than available ROM space")
return (start_addr, end_addr)
msg = unpack_pkt(info)
fmt = '>BIIII'
KOA, SAD, EAD, EAU, WAU = struct.unpack(fmt, bytes(int(x, 16) for x in msg))
msg = unpack_pkt(info)
fmt = '>BIIII'
KOA, SAD, EAD, EAU, WAU = struct.unpack(fmt, bytes(int(x, 16) for x in msg))
- print(f'Area {KOA}: {hex(SAD)}:{hex(EAD)} (erase {hex(EAU)} - write {hex(WAU)})')
+ cfg[i] = {"SAD": SAD, "EAD": EAD, "ALIGN": EAU}
+ if output:
+ print(f'Area {KOA}: {hex(SAD)}:{hex(EAD)} (erase {hex(EAU)} - write {hex(WAU)})')
+
+ return cfg
print(f'Serial interface speed: {SCI} Hz')
print(f'Recommend max UART baud rate: {RMB} bps')
print(f'User area in Code flash [{NOA & 0x1}|{NOA & 0x02 >> 1}]')
print(f'Serial interface speed: {SCI} Hz')
print(f'Recommend max UART baud rate: {RMB} bps')
print(f'User area in Code flash [{NOA & 0x1}|{NOA & 0x02 >> 1}]')
- (start_addr, end_addr) = set_size_boundaries(start_addr, size)
+ (start_addr, end_addr) = set_size_boundaries(dev, start_addr, size)
- (start_addr, end_addr) = set_size_boundaries(start_addr, size)
+ (start_addr, end_addr) = set_size_boundaries(dev, start_addr, size)
- (start_addr, end_addr) = set_size_boundaries(start_addr, size)
+ (start_addr, end_addr) = set_size_boundaries(dev, start_addr, size)
if args.command == "write":
dev = RAConnect(VENDOR_ID, PRODUCT_ID)
if args.command == "write":
dev = RAConnect(VENDOR_ID, PRODUCT_ID)
write_img(dev, args.file_name, args.start_address, args.size, args.verify)
elif args.command == "read":
dev = RAConnect(VENDOR_ID, PRODUCT_ID)
write_img(dev, args.file_name, args.start_address, args.size, args.verify)
elif args.command == "read":
dev = RAConnect(VENDOR_ID, PRODUCT_ID)
read_img(dev, args.file_name, args.start_address, args.size)
elif args.command == "erase":
dev = RAConnect(VENDOR_ID, PRODUCT_ID)
read_img(dev, args.file_name, args.start_address, args.size)
elif args.command == "erase":
dev = RAConnect(VENDOR_ID, PRODUCT_ID)
erase_chip(dev, args.start_address, args.size)
elif args.command == "info":
dev = RAConnect(VENDOR_ID, PRODUCT_ID)
get_dev_info(dev)
erase_chip(dev, args.start_address, args.size)
elif args.command == "info":
dev = RAConnect(VENDOR_ID, PRODUCT_ID)
get_dev_info(dev)