| 
在线时间3 小时
UID3288800
注册时间2019-7-9
NXP金币0 
 该用户从未签到 注册会员 
 
 
	积分56 
最后登录2021-10-25 | 
 
 
 楼主|
发表于 2021-5-21 14:39:32
|
显示全部楼层 
| 本帖最后由 shidayimeng 于 2021-5-21 14:43 编辑 
 附个Jlink 读取 Flash 计算 MD5的脚本
 
 
 复制代码from loguru import logger
from pylink import JLink, Library
from pylink.enums import JLinkInterfaces
from pylink.errors import JLinkException
JLINK_SN = "123456789"
def read_back(addr, size):
    try:
        with JLink(lib=Library(r"C:\Program Files (x86)\SEGGER\JLink\JLink_x64.dll"), error=logger.error, warn=logger.warning) as jlink:
            # logger.debug(f"jlink dll name | {jlink._dll._name} | v{jlink.version}")
            jlink.open(JLINK_SN)
            # switch to SWD target interface
            # https://github.com/square/pylink/issues/27
            jlink.set_tif(JLinkInterfaces.SWD)
            jlink.connect("LPC1754", speed=4000)
            jlink.reset()
            read_bytes = bytes(jlink.memory_read8(addr, size))
            return read_bytes
    except JLinkException as e:
        logger.error(f"read back failed from {addr} size {size} | {repr(e)}")
    return None
def get_md5_hash(addr, size):
    hash = None
    read_bytes = read_back(addr, size)
    if read_bytes:
        hash = md5(read_bytes).hexdigest().upper()
        logger.success(f"addr {addr} size {size} md5 hash {hash}")
    return hash
 
 
 
 | 
 |