From 89721b30a9116416509101a37f7f57d0feaf6d39 Mon Sep 17 00:00:00 2001 From: kicer Date: Thu, 3 Jun 2021 10:03:48 +0800 Subject: [PATCH] Update dump.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 简单写下,后面再看时候好知道是咋回事~ --- dump.md | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/dump.md b/dump.md index 5fee19a..2520810 100644 --- a/dump.md +++ b/dump.md @@ -1,3 +1,80 @@ +# 记录下调试过程 +脑袋不好使,过一周就记不清楚了。趁着还有印象,做下调试记录吧。 + + +## 缘起 +原来一直用stm8s003这款芯片,最多时候3颗003配合分工完成功能。 +主控mcu各种IO口模拟多串口接收,数据流交叉流动,再配合自己搞的小调度内核,写起程序来太爽了。 + +直到疫情来了,各种芯片价格暴涨,原来1块的的直接暴涨到10块,而且缺货~ +好日子到头了,只能考虑切换到国产MCU。 + +华大的这款看起来名字不错,比ww产的有更好的发展预期,就定它了。虽然现在国产MCU也缺货~ + + +## HC32F003C4PA +性能看起来不错,很契合手头产品的使用场景。 +* 32Mhz Corex-M0 +* 16K Flash +* 2K RAM +* 低功耗 +* 10Byte Chip ID +* 12bit 1Msps SARADC + + +## 为什么是python +python有多好自不用说,主要是主力开发工具是丐版MacBook Air,一入苹果,终身windows黑了。 +话说之前主力系统是debian,足够清淡了~ + +国产这些MCU们,还没意思到社区的力量。更多diy玩家的参与,足够的热度,流量来了销量也水到渠成。 +类似乐鑫/合宙(*唉,都是最早参与的一批人,就是没有跟随其喝汤,属实可惜*),日子过得真香。 +希望华大成为下一个,虽然看起来完全没有搞社区的意识、能力。 + + +## 番外思考 +借助于自己搞的那套小调度内核,mcu甚至只有基本IO、串口、定时器功能就能完成大部分工作。 +哪天能否自己封测个小mcu? + +8/20脚TSSOP封装,2个串口,2-4个定时器,剩下全是基本IO。售价?5毛不能再多了, +那是不是能发财啦 :] + + +## 小目标 +* **编译/下载**脱离windows环境依赖,支持mac及linux系统 +* python脚本,串口烧录bin文件 +* 离线烧录器,按键自动串口下载固件 (稍后一丢丢) +* 工程模版,gcc编译 + + +## 调试方法 +首先hc系列支持串口下载,高级点的mcu有mode引脚,可以直接进入uart下载模式。 +hc32f003呢,启动时候uart应该是10ms内接收到0x18字节可以直接进入uart下载模式。 + +话说这种有很大风险,如果相连的外设启动后,不小心发了个0x18过来,是不是就炸了~ +关键也没有文档说很清楚,如何退出uart下载模式。先mark下@ + +arm-none-eabi-gcc是支持M0内核编译的,加之华大提供了IAR/MDK的工程模版、启动文件, +移植到mac/linux系统应该是没问题的。 + +先说下烧录固件这部分功能吧,windows下有官方提供的HDSC ISP V2.07在线烧录工具, +连接好串口及RST引脚后,使用逻辑分析仪抓串口数据包就ok了。 +后来发现了文档[HC32F003系列的FLASH串行编程.pdf](https://github.com/kicer/hc32flash/tree/master/docs/HC32F003系列的FLASH串行编程.pdf), +显然是过期的,协议格式不一致,但是有很大参考价值。 + +后面发现ISP烧录工具是Mono .NET的,借助ILSpy反汇编出来。 +可以得到你想得到的一切~ + +当然理论上也是可以直接把反汇编后的代码再重新生成linux/mac上用的。 +但.NET不是本人的菜,自己写个python用起来会更爽~ +下载脚本借鉴了stm8flash、luatool工具的很多代码, +芯片配置数据及ramcode都是从官方ISP软件中复制过来的,没有精力验证。 +遇到坑就填吧,反正有原始反汇编代码可以参考。 + +所以,就这么简单 + + +## 调试过程 + ### bootloader启动 1. 复位RESET引脚约18ms 2. pc循环发送0x18 0xFF共10组