1 Star 0 Fork 196

huaziforever/H7-TOOL_STM32H7_App

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
CHANGELOG 27.68 KB
一键复制 编辑 原始数据 按行查看 历史
----------------------------------------------------------------------------
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. 批量发货版本,首版。
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/huaziforever/H7-TOOL_STM32H7_App.git
git@gitee.com:huaziforever/H7-TOOL_STM32H7_App.git
huaziforever
H7-TOOL_STM32H7_App
H7-TOOL_STM32H7_App
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385