armfly 8577bbe287 完善脱机编程器(可选择复位模式)
D0、D1口线增加TTL UART7串口功能
2020-04-08 02:04:47 +08:00

190 lines
9.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

----------------------------------------------------------------------------
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芯片的BUGL0系列的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. 批量发货版本,首版。