-
Notifications
You must be signed in to change notification settings - Fork 160
/
CHANGELOG
499 lines (428 loc) · 27.7 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
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
----------------------------------------------------------------------------
2021-03-25 V1.49 对应PC软件版本 V1.4.6
1.完善脱机烧录功能
- 脱机烧录菜单变更,进入后选择烧录模式,再进入烧录界面,方面单路和多路切换
- 一拖四功能支持单独烧录第2路、单独烧录第3路、单独烧录第4路。
- 脱机烧录的滚码支持64bit整数,支持修改递增步长
- PC传送配置文件时,TOOL自动切换到烧录状态
- 新增国民技术MCU的烧录支持
2.EMMC磁盘文件更新
- 滚码支持64bit整数,支持递增步长设置
- 新增国民技术MCU的配置文件
- 支持单独烧录第2路、单独烧录第3路、单独烧录第4路
- 完善SPI Flash的全片擦除功能
3.提示:建议BOOT升级到V2.01版本,完善了U盘拖放升级功能.
----------------------------------------------------------------------------
2021-03-17 V1.48 对应PC软件版本 V1.4.5
1.系统设置参数增加一个进入boot的入口,升级APP固件
2.针对多路SWD烧录,新增一个延迟参数 MUL_DELAYUS_READ_ACK
3.EMMC磁盘文件更新
- 解决STM32F103C8T6多路烧录异常
- 解决UID加密示范文件的bug
- 机台输出信号NG输出状态在某种情况下存在bug
----------------------------------------------------------------------------
2021-01-24 V1.47 对应PC软件版本 V1.4.4
1. 优化插入自动烧录功能。识别到IDCODE后延迟一段时间后再进行烧录。
解决上电较快但是硬件复位比较慢的板子自动烧录失败的问题。
延迟时间通过PC配置,参数名称:重新上电后的延迟(ms)
2. 解决灵动MM32L07X芯片多路烧录时失败的问题。
增加一个配置参数,在读内存指令之间增加几十us级别的延迟(50us)。
迟时间通过PC配置,参数名称:读内存指令间延迟(us)
3. EMMC磁盘文件更新: MM32L07x_128.lua --新增缺省参数 MUL_DELAYUS_READ_DATA = 50
----------------------------------------------------------------------------
2021-01-08 V1.46 对应PC软件版本 V1.4.3
1. 部分界面文字颜色加深
2. DAP固件升级到V1.05, 解决反复进入DAP,偶尔死机问题
3. bsp_cpu_adc.c 取消DMA中断, ADC缓冲区内存区域设置为not cashe.
----------------------------------------------------------------------------
2020-12-26 V1.45 对应PC软件版本 V1.4.2
1. 增加PC机截屏功能(用于编写说明书)
2. 增加PC机模拟按键功能
3. 虚拟串口界面返回时退到扩展菜单
4. 脱机烧录界面显示数据文件的累加校验和
5. 增加恢复基本参数缺省值(不含校准参数)的功能(PC控制)
6. status_system_set.c中几个装态拆分到单独的文件status_usb_emmc.c,
status_usb_uart.c, status_esp32.c
7. emmc磁盘文件更新prog_lib.lua文件,增加通道参数异常时报错
----------------------------------------------------------------------------
2020-12-24 V1.44 对应PC软件版本 V1.4.1
1. 传送脱机烧录的文件增加MD5完整性校验,并解决文件写入不全的BUG
2. USB虚拟串口功能单独做到扩展功能菜单中,其他状态均为PC USB通信模式
3. 取消上电启动lua时蜂鸣一声.
4. 上位机可以无需下载lua文件,直接执行临时窗口的lua程序
5. SPI-Flash烧录部分代码,解决几个缓冲区size偏小的bug
6. Modbus解码异常时禁止发送应答:MODS_SendAckErr(ERR_PACKAGE);
7. 新增文件:nvic_prio_cfg.h 全局统一配置每个中断的优先级
8. 升级STM32H7的HAL库
9. LwIP由2.0.3 升级到2.1.2
10.USB上电延迟2秒后再初始化,解决win7下USB使用异常
11.00界面增加USB,以太网联机状态指示。g_tVar.LinkState 变量表示联机状态
----------------------------------------------------------------------------
2020-12-17 V1.43 对应PC软件版本 V1.4.0
1.脱机烧录增加苏州国芯的2个M4芯片.
2.脱机烧录增加SPI Flash型号:MXIC的MX25L256, MX25L512和镁光25QL128、25QL256、25QL512等几个大容量芯片
3.解决脱机烧录中的几个BUG
- 解决SST25VFXXX系列串行FLASH不能正确识别的问题。这个片子读ID和编程的方法与其他厂家差别较大
- 解决大容量芯片(大于16MB)烧录异常的问题(需要4字节地址访问)
- ARM芯片烧录,编程完毕后执行FLM中的uninit()、target_flash_init(_FlashAddr, 0, FLM_INIT_VERIFY) 后再执行读回校验
- 解决FLM文件不规范导致的器件信号区信号解码错误(目前为止,只遇到过一个这样的FLM)
- FLM有verify校验函数的, page_size按照FLM中来
- 查空前, 先执行FLM中的init(verify), 再装载和执行check_blank函数。实测有些FLM文件不行,放弃改动.
- 单路模式机台信号,D7无法触发烧录,原因:
(1)void status_ProgWork(void) 单路和多路SWD GPIO初始代码反了,导致D7配置为输出
(2)从00界面进入脱机界面,未启动ADC多通道扫描,导致lua脚本判断TVCC过低,不执行触发信号检测
4. PC机传送文件到H7-TOOL,解决小文件(比如ini文件)不会写入的bug
5. PC机传送文件,增加USB接口支持.
6. 调整USB中断和EMMC中断优先级,避免死机问题
7. USB串口中断中处理modbus指令,遇到写SD卡操作,会阻塞死机,已解决
8. 通信协议中新增加一个指令,PC可以控制H7-TOOL进入U盘模式、DAP模式
9. lua_DrawLine(), 解决颜色形参取值bug
----------------------------------------------------------------------------
2020-12-09 V1.42
1.DAP固件升级到V1.04版本
-增加离线版RTT Viewer功能(无需PC机)
-增加离线串口监视功能(无需PC机)
2.APP固件修正bsp_InitHardTimer()函数的bug(运行时间us数错误)
3.00联机界面去掉端口号显示
----------------------------------------------------------------------------
2020-12-06 V1.41b
1.DAP固件升级到V1.03版本,解决低电流板子调试异常问题
----------------------------------------------------------------------------
2020-12-04 V1.41
1.lua接口增加LCD显示函数,可以构建图形元素. 新增文件 lua_if_disp.c
2.DAP固件升级到V1.02版本,解决复位方面的小BUG,增加NRST电平指示功能.
3.bsp_InitTVCC() 内部取消TVCC_OFF的语句. 避免从DAP固件跳入后TVCC短暂关闭
----------------------------------------------------------------------------
2020-11-29 V1.40 【重大更新】
新增功能:
1.增加SPI Flash脱机烧录功能(需要升级PC软件,更新EMMC磁盘文件)
2.增加CMSIS-DAP仿真器功能。新增2个参数控制TVCC电压和蜂鸣器使能
3.增加DS18B20温度传感器驱动接口,D0-D7可外接8个传感器.
- 新增lua接口函数 ok,temp = read("DS18B20", 2) --读D2口外接的传感器数据
- 数据监视器菜单下新增DS18B20温度表(显示8路温度值)
BUG:
1.解决串口监视器BUG,ASCII模式如果收到0x00, 则不显示后面的数据。需要将不可见字符转换空格
2.解决在非lua小程序界面执行lua(PC机下载)无法长按C退出的问题
其他优化:
1.按键驱动底层忽略从其他状态跳转过来时,第一个长按键和按键弹起事件
2.上电不显示logo界面(以前有2秒延迟)
3.lwip初始化代码拆分到 lwip_pro() 中执行,加快界面启动速度
----------------------------------------------------------------------------
2020-10-19 V1.35
1.解决CX32芯片机台信号异常(1拖2模式解除SWD保护时,机台GPIO输出解锁脉冲)
2.增加lua i2c总线和spi总线接口函数,pc软件支持I2C,SPI总线控制
----------------------------------------------------------------------------
2020-10-19 V1.34a
1.解决旧版升级到新固件后,串口监视界面死机问题。原因是缺省参数不正确。
----------------------------------------------------------------------------
2020-10-19 V1.34
1. 修改net_udp.c中lua_udp_SendBuf()函数,遇到0x0A就立即发送,解决PC软件显示log不全问题
2. V1.33 emmc磁盘文件有误,machine_if.lua和prog_lib.lun需要更新
3. 多路模式烧录,最后发复位指令时需要忽略错误标志
4. i2c操作的函数lua接口api汇总到一个函数i2c_bus(), 第1个形参用字符串表示操作指令
----------------------------------------------------------------------------
2020-10-18 V1.33
1. 增加新唐N76E003芯片脱机烧录
2. 增加恒烁CX32L003系列脱机烧录
3. 增加烧录机台信号接口
- 增加lua文件: machine_if.lua 实现机台接口
- 单路模式实现机台信号(无需转接板)
- 在1拖4转接板上实现1拖2模式下的机台信号
- 目前1拖4模式下GPIO不够用,不能实现机台接口,后期将开发带扩展IO的转接板来实现
- 出错终止策略可通过lua设置,
- 终止时NG(No Good)策略可通过lua设置
4. 多路烧录时,某一个芯片出错可选择终止或者继续烧录, 烧录提示音区别
- 全部成功: 短音1声
- 部分成功: 长音1声,LCD会显示出错通道
- 全部失败: 滴滴滴急促3声
5. 统一参数设置页面的操作方法
- 扩展功能-系统设置-参数设置
- 扩展功能-脱机烧录器-烧录设置-烧录参数
- 扩展功能-数据监视器-串口(TII/485/232)-设置串口参数
5. 可在H7-TOOL上手动修改IP地址
BUG修复:
1. 修改休眠后按键唤醒功能,没有忽略首次唤醒键.
----------------------------------------------------------------------------
2020-09-24 V1.32
1. 增加串口监视功能
- 联机模式界面,长按S进入进入扩展功能界面,选择数据监视器
- 支持2路串口数据显示,第1路: 232RX,485,TTTLRX 第2路:D1 URX
- 支持HEX,ASCII格式选择,字体12点阵和16点阵
- 支持加时间戳功能,精确显示到us (双路时误差30us)
2. 优化emmc驱动
- 由1线模式修改为了8线
- MSC_MEDIA_PACKET 由512改为16*1024
- 4线的读速度10.5MB/s, 8线的读速度15.2MB/s
- 8线模式,写速度 6-9MB/s
3. 脱机烧录器 (需要配套PC软件升级V0.9)
- 新增支持雅特力AT32。
AT32F403的FLM文件中page size字段不正确超过了OB Size,导致写OB失败。
程序进行自动修正,page size 必须小于等于device size.
- 重新加入复位模式选择参数。上个版本做的自动模式在无RST条件下成功率不高。PC软件上选择复位模式
-- 自动模式临时按软件模式操作,0自动模式 1软件模式 2硬件模式
- 烧录完毕后,在硬件复位期间同时发送软件复位指令. static int h7_reset(lua_State* L)
- PC软件显示的烧录算法列表可以通过lua文件设置
4. 显示驱动修正 void ST7789_DrawScreen(void) 等待DMA传输完毕的语句放到DMA传输之后,死等。
之前的固件是先等待在DMA传输,容易导致视觉闪裂现象
5. 串口驱动优化
- UART_IRQ(). 增加奇偶校验判断,但是没起作用,无论是无校验、奇校验、偶校验都可以接收数据
if ((isrflags & USART_ISR_RXNE_RXFNE) != 0 && (isrflags & USART_ISR_PE) == 0U)
- 串口中断添加 IdleLine回调函数,字符间超时中断。 用于串口监视功能
6. bsp_timer.c 增加精确到us的运行时间函数,uint64_t类型。用于串口监视器功能
- uint64_t bsp_GetRunTimeUs() 获得CPU运行时间uint64_t
- uint64_t bsp_CheckRunTimeUs(x) 当前时间和之前的时间差值
7. LCD_DrawMemo(), 文本框显示函数修改为FiFo机制. 文本框缓冲调大到4KB.
8. 新增c文件:modify_param.c, 专门用于设置应用程序参数.
BUG修复:
1.完善示波器普通触发功能,修正触发死机问题(不过很小几率还是会挂,并未完全解决)
2. lua_udp_SendBuf() 中 bsp_StartHardTimer(3, 5, udp_print_send), 单位是us,原计划是5ms的
(此处未改,改了PC界面居然打印显示不全)
3. 电压表功能,修改自动量程的判断条件
static void AutoVoltRange(void) 中,最后一档100mV量程判据由0.1V改为0.095V.
----------------------------------------------------------------------------
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. 批量发货版本,首版。