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

127 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### 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 (未加密)
5. 加密则执行解密动作擦除FLASH上内容
> B5 34 84 52 BF
< 01
6. 准备下载ramcode
> 00 00 00 00 20 A4 07 00 00 CB
< 01
7. 开始下载ramcode
> B8 0A ... 9F
< 01
8. 启动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
0. 修改通信用波特率
- 修改成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
2. 校验错误
> 49 05 00 00 00 00 20 00 5E
< 49 01 00 00 00 00 00 00 4A
3. 请求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
4. 请求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
5. 空白检测
> 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
6. 整片擦除
> 49 02 00 00 00 00 00 00 4B
7. 页擦除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
8. 编程
> 49 04 00 00 00 00 20 00 <data> CHK
< 49 00 00 00 00 00 00 00 49
9. 校验,所有数据的累加和取最后两个字节
> 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 <data> 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 <data> 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