晟矽微电ISP烧录工具 (版本 {SystemVersion}) 简要介绍:
- 本工具主要实现 MCU 中内存(SRAM)/闪存(Flash)的擦除,导出,烧录, 读/写保护.
并能读系统内存区(System Memory)的除自举程序区(Boot Loader)外的地址,
但不能改写系统内存区.
- 串口连接参数中,须设: 偶校验,8位数据位,1位停止位。 波特率,尽量选高速度,除非出现稳定性问题。
对MS32F031, 已测过最高速 115200, 通讯正常.
- 如果用 JLink 工具连接芯片, 连接速度不一定要设很高 (太高,如 4M,
也许会造成写入/读出不太稳定). 并且,测试中碰到杜邦线连接性能不太稳定,
请尽量用硅胶线。
- MCU对指令的回答,经常有:成功 ACK (0x79, 即字符y), 与 失败 NACK (0x1F).
- 对MS32F031, 选项字开头两字节, 决定了主闪存区的读保护等级 (详见芯片文档,
选项字页,永远不会读保护,永远可读可写):
- 0xAA55: 0级(未读保护).
- 0xCC33: 2级(强读保护,类似砖头样).
- 其它 (如 0xBB44 等): 是1级(普通读保护).
- 摩拖罗拉的S记录(S Record, 或叫S文件, S File), 实际上有三种不同的格式: S19 (两字节地址),
S28(三字节地址), S37(四字节地址). 但有不少用户统称这三种格式为 S19. 我们根据用户习惯,
在这个工具里, 也将泛指 S37 为 S19. 实际上,对32位芯片 4-字节的 S37, 比 2-字节的 S19 更适合。
- 导出文件的格式:
- 建议使用 Hex 或 S19.
- Bin文件格式,完全不包含地址信息。
如果出于特殊原因, 要用 bin 格式,请从主闪存区(或选项字区)的物理起始地址开始。
- Hex可使用2或4字节地址.
- 对 S19/Hex , 连续的4个0xFF, 会被略过,不会被导出。因为后续烧录所导出的文件时,
特定页总是会先被擦除到0xFF状态。
- 对 Bin/S19/Hex 三种格式, 靠近导出区末端(高地址)的连续 0xFF 的部分,不会被导出.
- 按页导出时, 可以将 选项字 与 主闪存 的内容合并成一个文件 (只能存为 S19 或 Hex 格式).
- 原则上 S19/Hex 的行的不连续(空白)区域,应认为是0xFF. 但个别第三方转换软件在转成bin格式时,
有可能会以0x0填充, 造成错误, 请主人明察秋毫.
- 对MS32F031, 擦除一页,与擦除全部页, 耗时基本相同,最长都是40ms. 详见芯片文档.
- 对选项字页,不须要手动擦除,因为芯片上的修改选项字功能,
会先读出页的内容,修改相关内容,然后擦除整页,再写入. 并重启(约需1秒),
以实现选项字的功能配置。
- 页(Page)的大小是固定的, 1024 字节。但"(扇)区/区域" (Sector)的大小,在ARM的文档里,
不同的地方,可能有不同的意思。
-
烧录时, 若数据长度不是4的倍数,会以 0xFF 来填充.
已知问题:
- 有进度条的长时任务, 实际是第二线程执行,因为进度条得在主线程。
不要在任务结束前打开其它页面,会让 MCU 乱套的. 我们已尽量避免。
- 暂时未实现: 停止进度条,取消导出/烧录任务.
- 暂时未实现: 从特定地址烧录bin文件.