v0.1.2, init

This commit is contained in:
2021-06-03 01:03:42 +08:00
commit 54f4eabff9
17 changed files with 654 additions and 0 deletions

126
dump.md Normal file
View File

@@ -0,0 +1,126 @@
### 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