-
Notifications
You must be signed in to change notification settings - Fork 160
/
CHANGELOG
286 lines (247 loc) · 15.8 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
----------------------------------------------------------------------------
2020-09-20 V1.31
1. 适配RT1052, 支持Hyper Flash 和 QSPI Flash.
2. 打印FLM文件时,显示第1个扇区的大小
3. lua文件中增加 RESET_DELAY 变量,缺省20ms,可通过lua修改。硬件复位后的延迟时间
4. lua文件中增加 RESET_MODE 变量,缺省0 表示自动. 1表示软件复位
5. FLM擦除扇区超时时间,没有按照FLM中的执行. RT1052擦除256KB扇区,超时3秒
6. 在线传送文件功能,提高效率。缓存16KB后再写入.
7. 示波器ADC缓冲区禁止cashe, 解决波形断裂问题
----------------------------------------------------------------------------
2020-09-10 V1.30 【重大更新】
1. 完善脱机烧录功能 (需PC软件升级到V0.7以上,之前的烧录lua脚本需要用PC软件重新生成)
- 增加支持GD32、新唐部分系列
- 完善滚码、UID加密功能
- 增加RS485数码管显示烧录状态。
- 烧录器LCD背光控制策略改进
- 连续烧录模式,如果背光关闭后再次插入目标板烧录时自动开启背光。
- 烧录开始时屏蔽背光控制,烧录结束后恢复背光控制,避免烧录时间大于1分钟中途关闭背光
- 校验逻辑增加分支: 如果FLM中有Verify则使用它(实测新唐的不行)
- 函数增加形式参数 error_t target_flash_init(uint32_t flash_start, unsigned long clk, unsigned long fnc)
- 完善 h7_Read_OptionBytes 函数,增加新唐片子的支持
- 脱机烧录复位选项取消。先尝试软件复位模式,失败后使用硬件模式
- void lua_do(char *buf) 允许嵌套重入。 烧录脚本需要用到该功能
- 64H下载lua程序的帧格式调整,增加2字节子功能码,用于连续文件下载
- 调整全部lua脚本,增加复位期间关闭看门狗的功能
2. 解决脱机烧录BUG
- 多路烧录,如果扇区擦除超时失败,则不能提示是哪一路失败
- 查空函数判断不严谨,target_flash_check_blank(uint32_t addr, uint32_t size)
- 0和1表示空和不空,没有通信失败的分支
- swd_flash_syscall_exec_ex() 修改返回值类型,可以识别出通信失败
- 多路烧录。写入1K的小文件(小于16K)时校验失败,读回校验bug
- 多路模式选择读回模式校验失败,CRC校验OK。
- 可能导致死循环的BUG, uint8_t *MUL_swd_transfer_retry(uint32_t req, uint32_t *data)
bug , uint8_t err_cout[4]; 应该为uint16_t类型。
3.其他
- lua_if_uart.c 取消通信失败的调试print语句
- 在主界面显示APP版本
- 调整内存分配,将ADC缓冲区合计(128K + 64K)迁移到其他内存块。扩大堆空间,用于运行更大的lua程序.
/* 0x38000000 64KB */
uint16_t *aADCH1ConvertedData = (uint16_t *)0x38000000;
uint16_t *aADCH2ConvertedData = (uint16_t *)(0x38000000 + 32 * 1024);
/* 0x20000000 128KB */
float *g_Ch1WaveBuf = (float *)0x20000000;
float *g_Ch2WaveBuf = (float *)(0x20000000 + 64 * 1024);
- DAC波形发生器,低于30Hz频率异常,已修正,下限可以到1Hz.
- 删除doc文件夹下的emmc磁盘文件。跟随PC软件发布.
4.遗留问题
- 示波器功能还存在缺陷,普通触发模式显示波形断裂.争取下个版本解决.
----------------------------------------------------------------------------
2020-06-02 V1.21
1. 完善脱机烧录功能
- 烧录部分bin文件时,读回校验和软件CRC无问题,但硬件CRC有问题。
原因:bin文件长度不是4字节整数倍时存在计算错误
解决办法,补齐4字节再进行校验。
- 修改校验部分的代码,当FLM中有Verify校验函数时, 则优先用FLM中的Verify,而不是读回校验
- lua函数pg_reset() 支持带形参(复位时间ms)和无形参(缺省用20ms)
- 修复emmc磁盘文件的bug,解决STM8编程编程失败的问题
- 增加STM8AF模板,验证了STM8AF5288
- 修复SLOW低速时钟模式,发送32bit数据未插入延迟的bug。主要用于多路烧录,应对线长的情况。
----------------------------------------------------------------------------
2020-05-27 V1.20 【重大更新,发布1拖4脱机烧录功能,请使用PC软件 V0.4版】
1. 完善脱机烧录功能
- 完成1拖4同步烧录功能(仅验证STM32。暂不支持STM8系列1拖4功能)
- 校验模式可以通过lua设置(读回校验,软件CRC,硬件CRC)
- 调整电压电流显示窗配色
- 烧录时间移到进度条右侧,进度文本信增大到整行宽度
- 编程参数增加多路模式下路数设置:1路,1-2路,1-3路,1-4路
- 解决bug: 烧写8K程序(不足16K),CRC校验出错
- 解决bug: 修正V1.10 BUG,STM8S005C6T6, 烧写32KB文件OK, 烧写20K文件失败。
- 解决bug: bin文件不是4字节整数倍时,CRC32出错
2. EMMC磁盘文件更新H7-TOOL\Programmer
- 完善STM32烧录脚本文件,验证通过的有:
STM32F0xx, STM32F10x, STM32F2xx, STM32F3xx, STM32F4xx, STM32F7xx,
STM32H7x, STM32L0xx, STM32L1xx,STM32L4xx, STM32G0xx, STM32G4xx
- 增加灵动MM32全系列烧录脚本文件, 验证通过的有:
MM32F003, MM32F031, MM32F032, MM32F103, MM32L0xx, MM32L3xx,
MM32SPIN0x, MM32SPIN2x, MM32W0xxB, MM32W3xxB
- 增加LuaLib\fix_data.lua 和 LuaLib\prog_lib.lua 文件, 将公共脚本独立出来
- 改写全部lua脚本,实现一个lua脚本同时支持单路烧录和1拖4烧录
- 之前版本的lua烧录脚本均作废不再支持
3. lua功能增加dofile()函数支持,可以加载子文件,方便模块化编写lua脚本
4. s_lua_read_buf[LUA_READ_LEN_MAX] 修改为32字节对齐
5. 上电缺省启动lua,以前需要下载lua文件才能运行
6. 按键GPIO设置为上拉输入(生产时如果不接屏幕,偶尔会导致错误按键消息产生)。
7. 将显示屏SPI口的SPEED速度由GPIO_SPEED_FREQ_HIGH降到GPIO_SPEED_FREQ_MEDIUM。
7. 修改TVCC缺省的校准参数
8. 解决PC机软件不能停止采集的bug
----------------------------------------------------------------------------
2020-04-08 V1.10
【修改&新增功能】
1. D0、D1口线增加TTL UART7串口功能,lua可以读写该串口。
2. lua接口增加本机按键的访问函数(暂未调通,逻辑还存在问题)
3. lua接口函数modbus_write_u16, 如果只写1个寄存器用06H功能码,多个寄存器才用10H功能码。
4. 脱机下载界面,如果没接芯片长按S键执行了连续烧录,界面会卡住没有提示。
修改为进入连续烧录模式后,按任意键退出连续烧录模式
5. 脱机编程器(缺省使用软件复位模式)
- lua脚本中增加RESET_TYPE变量: RESET_TYPE = 0 -- 0表示软件复位 1表示硬件复位
- 编程参数界面增加复位选项:由lua选择、强制硬件复位、强制软件复位
【bug修复】
1. 修正V1.09新出的BUG, lua读取D8 GPIO异常.
2. 修改界面文字错误,"USB eMMM磁盘"更正为"USB eMMC磁盘"
3. lua小程序功能执行一次后再到脱机界面,会显示lua小程序的输出窗口。
原因:bsp_uart_fifo.c中fputc函数无条件执行LCD_MemoAddChar()函数
4. 屏幕息屏后只能唤醒一次,之后便不会再息屏,切换界面后正常息屏一次,之后又不行。已修复.
【其他】
1. 加入一拖四的源代码备份
- 该功能还未调通,仅调试到能够同步读出4个芯片的ID
- 因为硬盘硬件损坏,编写调试了一个月的代码差一点丢失,因此推送到git先备份起来
- 供电问题:
- 同时烧写4个芯片会涉及到TVCC供电不足的问题.
- TVCC引脚仅支持400mA,
- 5V的引脚只支持1000mA电流(5V输出有1个短路限流保护芯片碍事,早知不要了)
- H7-TOOL主板3.3V电流有270mA,因此无法4个主板同时烧写. 3.3V被拖垮到2.4V
- 上拉电阻问题:主板最初只设计了一路SWD接口(SWDIO引脚需要上拉电阻),其他3路的SWDIO无上拉电阻
- 供电问题和上拉电阻问题可以通过设计一拖四转接板来解决
2. 用户反映运行lua程序界面和脱机界面的按键逻辑和其他的不一样比较不习惯
- 其他界面一般是长按确认执行。但是在这2个界面,因为按钮功能需要频繁使用,所以设计为短按执行.
- 原来准备修改的,但是没有想到更好的操作逻辑,暂时不改了。
3. 接受网友的建议,生成的bin文件名中的全角括号修改为半角括号
4. doc下的修改记录.txt文件取消。内容记录到根目录 CHANGELOG文件.
----------------------------------------------------------------------------
2020-03-12 V1.09
【修改&新增功能】
1.脱机烧录功能
- 增加STM8芯片(STM8S和STM8L系列)
- 增加自动识别硬件烧录不同的程序(识别算法由lua指定)
- 增加组合烧录,比如一键烧写H7-TOOL的boot、app和QSPI Flash
- FLM算法文件和数据文件支持绝对路径和相对路径
- 优化LUA脚本,支持读、写保护状态识别,自动解除保护状态
- 取消程序文件的大小显示,本次计数采用32点阵字体
- 支持PC机联机调试lua程序
- 打印内核ID、flash内容、RAM内容、UID、Option bytes
- 修改和显示目标CPU的RAM和任意寄存器
- 擦除CPU内部Flash、EEPROM
- 加读保护、解除保护
- 启动编程
- 解决无法烧录STM32L0xx芯片的BUG,L0系列的Init函数需要传递形参1-2才行
- 烧录时LED快闪,烧录成功候常亮,烧录失败后熄灭
- 烧录界面增加清零本次计数、清零累计计数功能。修改产品序号功能未做,后面有空再做。
2.LUA
- print_hex 函数支持显示宽度和显示地址
【bug修复】
1.脱机编程算法占用的RAM可以通过lua文件指定,V1.08是固定0x1000。 某些片子不够用
2.READ_FMC()存在不能及时获取数据问题。解决方法:FMC内存空间需要配置为禁止cashe
3.微型数控电源界面如果关闭了蜂鸣器,无法确认是否进入了电压设置状态。
4.00联机模式界面 切换屏幕显示方向时,日期和时间不会显示.
【其他】
1.修改switch case语句缩进格式
----------------------------------------------------------------------------
2020-02-06 V1.08 -- 主要增加脱机烧录功能
1.脱机编程器功能(仅STM32芯片)
- 通过文件浏览方式选择程序文件。不限制目录和文件个数。
- FLM算法文件从KEIL MDK中复制出来,存放到emmc磁盘 \H7-TOOL\Programmer\FLM,按厂商分类
- 目标程序文件、编程脚本存放到:\H7-TOOL\Programmer\User 文件夹。不限制目录级别和数量
- 动态解析FLM文件,分离出内存镜像通过swd加载到目标cpu ram
- 支持多段bin写入
- 支持option bytes编程,烧录完毕设置读保护
- 支持自动解除读保护
- 支持动态填充产品序号、UID加密字段、用户自定义字段
- 自动保存烧录次数,支持剩余次数限制功能
- 支持连续烧录模式,检测到IC后自动烧录
- 可动态显示CPU电压和供电电流
- 通过lua脚本配置算法文件和数据文件(bin)以及控制编程过程
- lua非常灵活,可以很方便扩充功能,比如:
- 日期窗口段内才允许烧录
- 目标板电流超限报警
- 限定UID(CPU唯一序号)符合规则的才允许烧录
- UID加密算法由用户自己定义
- 填充任意短数据(小于1K),比如可以写入生产日期时间或客户代码
- 关于程序文件保密问题。后期再考虑吧。
- 因为H7-TOOL软件开源,文件结构开源,为了避免程序文件被加工厂泄露,初步设想如下:
- 控制USB虚拟磁盘程序入口,增加人工输入密码。
- 在虚拟磁盘扇区读写底层函数,以512字节为单位增加客户自定义加密和解密算法。这样emmc数据内容
就是被加密的,即使emmc芯片被复制出来放到其他H7-TOOL主板也无法识别。
2.菜单变更
- 联机模式长按S进入扩展功能菜单 : 脱机烧录器、LUA小程序、数据记录仪、系统设置
- 系统设置下级菜单:硬件信息、参设设置、ESP32固件升级、USB eMMC磁盘、数据维护
【bug修复】
V1.07 lua新增bug 不在lua小程序界面,执行PC机下下载lua程序会死机
- bsp_tft_lcd.c LCD_DrawMemo()函数,增加: 3284行
if (_pMemo->Text == 0)
{
return;
}
----------------------------------------------------------------------------
2019-12-26 V1.07
1.界面切换S键和C键功能交换,符合正常逻辑。
2.系统设置界面,增加USB磁盘访问eMMC
3.FatFS文件系统建立,支持目录浏览
4.中文字库2MB存放到QSPI Flash末尾,所有汉字都可以显示了,无需CPU内嵌小字库。
5.系统设置界面可以写字库文件,也可以刷新boot程序
6.实现Lua小程序脱机运行
7.数据记录仪只做了菜单(功能下个版本实现)
bug修复:
1. USB通信时,熄屏后唤醒死机 while (wTransferState == 0){}
- 原因:主程序SPI正在DMA传输显示数据,按键中断服务程序中执行LCD休眠操作,SPI被重置
导致DMA传输不能进入完成中断。
----------------------------------------------------------------------------
2019-12-09 V1.06
1.界面风格重新设计。24点阵、32点阵部分ASCII字符调整齐
2.实现长时间不按键自动熄屏功能
3.修改高侧电流界面120mA判据,增加回差控制
4.bsp_key.c按键驱动增加长按弹起事件,和短按弹起事件分开处理. 这样处理后
主状态函数中的 uint8_t ucIgnoreKey 忽略按键的代码就可以去掉了。
5.增加脱机烧录器界面(仅界面实现,未实现烧录功能)
6.联机界面增加时钟显示
----------------------------------------------------------------------------
2019-11-30 V1.05b
1.解决上电花屏2秒问题,原因:logo界面没刷屏
----------------------------------------------------------------------------
2019-11-29 V1.05 - 功能未增加,但是改动比较大,封一个版本。
1.HAL固件库、USB库升级到最新版(来自于en.stm32cubeh7 (V1.5.0))
-所有的GPIO寄存器操作更改为如下宏(因为新固件库取消了 BSRRH、BSRRL寄存器)
#define BSP_SET_GPIO_1(gpio, pin) gpio->BSRR = pin
#define BSP_SET_GPIO_0(gpio, pin) gpio->BSRR = (uint32_t)pin << 16U
2.显示屏驱动采用SPI+DMA驱动。整屏刷新18ms。(驱动由硬汉提供)
- 修bsp_tft_st7789.c文件
- bsp_Idle()函数执行 ST7789_DrawScreen(); /* 硬件SPI+DMA+刷屏 */
- 使用0x30000000开始的240*240*2字节内存做显存
3.为了适应后台刷屏机制。所有的 while循环中bsp_Idle() 位置放到显示刷新后面
while (g_MainStatus == MS_CURRENT_METER)
{
if (fRefresh) /* 刷新整个界面 */
{
fRefresh = 0;
DispCurrentVolt();
AutoCurrentRange();
}
bsp_Idle(); /* 必须在fRefresh语句后边, 否则刚进入界面会有闪烁感 */
...
}
----------------------------------------------------------------------------
2019-11-25 V1.04
1.新增脉冲计数和频率计功能。status_pulse_meter.c
2.lua增加串口MODBUS接口函数
3.增加参数设置界面,目前可以关闭蜂鸣器,选择配色风格功能未做。
4.调整配色方案, ui_def.h文件定义颜色
5.部分界面的文字左对齐
6.系统设置-信息信息界面显示固件版本号
7.CDC串口驱动调整。COM切换时,不开关USB设备。
8.解决虚拟串口波特率低于2400不正确的bug
9.源代码加入Teeny-usb协议栈,未完全调通(临时屏蔽了,还是用ST的USB库)
2019-11-03 V1.03
1. 增加高侧电流表功能,测量负载电压、电流、功率,测量电池放电容量。
2. 增加二极管测量功能,和电阻测量同界面。
2019-10-20 V1.02
1. 批量发货版本,首版。