Files
hc32flash/dump.md
2021-06-03 01:03:42 +08:00

3.0 KiB
Raw Blame History

bootloader启动

  1. 复位RESET引脚约18ms
  2. pc循环发送0x18 0xFF共10组
  3. mcu应答0x11共9组
  4. 检查mcu状态

01 FC 0B 00 00 02 00 00 00 0A < 01 02 EE FF ED (加密) < 01 02 FF FF FE (未加密)

  1. 加密则执行解密动作擦除FLASH上内容

B5 34 84 52 BF < 01

  1. 准备下载ramcode

00 00 00 00 20 A4 07 00 00 CB < 01

  1. 开始下载ramcode

B8 0A ... 9F < 01

  1. 启动ramcode

C0 00 00 00 00 00 00 00 00 C0 < happybaby 00 00

ramcode启动

启动后mcu端发送字符串 happybaby

68 61 70 70 79 62 61 62 79 00 00

  1. 修改通信用波特率
  • 修改成9600bps (00 00 80 25)

49 01 00 00 00 00 04 00 80 25 00 00 F3

  • 修改成115200bps (00 01 C2 00)

49 01 00 00 00 00 04 00 00 C2 01 00 11

  • 应答 < 49 00 00 00 00 00 00 00 49
  1. 请求0x20字节数据 (指定波特率)

49 05 00 00 00 00 20 00 6E < 49 00 00 00 00 00 20 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF EF 38

  1. 校验错误

49 05 00 00 00 00 20 00 5E < 49 01 00 00 00 00 00 00 4A

  1. 请求0x10字节数据

49 05 00 00 00 00 10 00 5E < 49 00 00 00 00 00 10 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FE 48

  1. 请求0x0200字节数据

49 05 00 00 00 00 00 02 50 49 05 00 02 00 00 00 02 52 ... 49 05 00 3C 00 00 00 02 8C 49 05 00 3E 00 00 00 02 8E

  1. 空白检测

49 07 00 00 00 00 04 00 00 40 00 00 94 < 49 00 00 00 00 00 01 00 01 4B 49 07 00 00 00 00 04 00 00 02 00 00 56 < 49 00 0F 00 00 00 01 00 00 59

  1. 整片擦除

49 02 00 00 00 00 00 00 4B

  1. 页擦除1sector=512Bytes

49 03 00 00 00 00 00 00 4C < 49 00 00 00 00 00 00 00 49 49 03 00 02 00 00 00 00 4E < 49 00 00 02 00 00 00 00 4B ... 49 03 00 3E 00 00 00 00 8A 49 00 00 3E 00 00 00 00 87

  1. 编程

49 04 00 00 00 00 20 00 CHK < 49 00 00 00 00 00 00 00 49

  1. 校验,所有数据的累加和取最后两个字节

49 06 00 00 00 00 04 00 20 00 00 00 73 < 49 00 00 00 00 00 02 00 CF 1F 39 49 06 00 00 00 00 04 00 00 40 00 00 93 < 49 00 00 00 00 00 02 00 00 C0 0B

读取FLASH数据

49 05 A0 A1 A2 A3 L0 L1 CHK < 49 00 A0 A1 A2 A3 L0 L1 CHK

  • 49 05: 协议头
  • A3..0: 起始地址
  • L1..0: 字节长度
  • data: FLASH数据

按页擦除FLASH数据

49 03 A0 A1 A2 A3 00 00 CHK < 49 00 A0 A1 A2 A3 00 00 CHK

  • 49 03: 协议头
  • A3..0: 起始地址

整片擦除FLASH数据耗时约40ms

49 02 00 00 00 00 00 00 4B < 49 00 00 00 00 00 00 00 49

  • 49 02: 协议头

空白检测

49 07 00 00 00 00 04 00 A0 A1 A2 A3 CHK < 49 C1 C0 00 00 00 01 00 00 CHK

  • 49 07: 协议头
  • C1..0: 检测值
  • A3..0: 字节长度

校验

49 06 00 00 00 00 04 00 L0 L1 L2 L3 CHK < 49 00 00 00 00 00 02 00 S1 S0 CHK

  • 49 06: 协议头
  • S1..0: 校验和
  • L3..0: 字节长度

编程

49 04 A0 A1 A2 A3 L0 L1 CHK < 49 00 A0 A1 A2 A3 00 00 CHK

  • 49 04: 协议头
  • A3..0: 起始地址
  • L1..0: 字节长度最大支持0x40字节

加密

49 09 00 00 00 00 00 00 52 < 49 00 00 00 00 00 00 00 49