---------------------------------------------------------------------------- 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. 批量发货版本,首版。