Bug笔记
2026/9/24 13:32:00 网站建设 项目流程

QT报FTH:(12356)告警

程序能运行正常,但是在运行时会提示“FTH: (12356): *** Fault tolerant heap shim applied to current process.”。经过网上多番查找解决方法如下

解决方案:

  1. 打开CMD命令窗口
  2. 在命令行输入regedit(注册表)命令
  3. 路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers,选中Layers键值,从右侧列表中删除自己的程序路径即可。
  4. 删除程序的调试文件,重新构建新的调试文件

QT读取img文件异常

使用QFile->readAll()读取img文件,返回的QByteArry结果异常,使用qDebug()也没有打印出信息

解决方案:

file.open(QIODevice::ReadOnly); md5File.addData(file.readAll()); if(file.error() != QFileDevice::NoError) // 增加检查错误状态 qDebug() << file.errorString();

error()方法可能是 Qt 文件操作的内部状态机需要某种触发来完成初始化或状态同步,error()、errorString() 调用恰好提供了这种触发。

GD32F107RC+LWIP1.4.1+LAN8720长时间通讯死机问题:

程序能运行正常,但是在运行一段时间后通讯不上。经过在线调试发现ENTER_DMA_STAT的 bit7 RBU 会置位或者 bit2 TBU 会置位,从而导致发送或者接收的DMA挂起。

解决方案:

  1. 根据数据手册发送查询挂起后的处理了解需要处理哪些,接收挂起也类似
  2. 在LWIP的底层发送函数增加代码
staticerr_tlow_level_output(structnetif*netif,structpbuf*p){while((dma_current_txdesc->status&ENET_TDES0_DAV)==(INT32U)RESET)//0:MCU 1:DMA{if(enet_flag_get(ENET_DMA_FLAG_TBU)==SET){enet_flag_clear(ENET_DMA_FLAG_TBU_CLR);// 清除标志位}enet_dmaprocess_resume(ENET_DMA_TX);// 写入任意值让TxDMA重新回到运行状态dma_current_txdesc=(enet_descriptors_struct*)(dma_current_txdesc->buffer2_next_desc_addr);}...// 继续执行剩下步骤}

MCU多任务执行某动作后死机问题:

示例代码带盖入下:

voidmyTask(void*);vTaskCreate(“demo”,&myTask)voidusrFun(){支持C99编译,创建很多局部变量超过4kbswitch(xx){case1:{switch(ii){case1:{inta;}break;}}break;case2:{switch(jj){case2:{intb;}break;}}break;casenn:{switch(kk){case1:{虽然代码不会执行到这里,但是编译器不知道能不能执行到这,会把a数据也 编译成usrFun函数的局部变量;导致每次进入该函数MCU的PSP指针指向地址 已经超过myTask任务堆栈,用到其他任务的内存导致其它任务会触发 HardFault_Handler 异常inta[4096];}break;}}break;}}voidmyTask(void*){fun1();fun2()while(1){循环执行代码; 递归调用用户代码、协议栈代码 符合条件运行 usrFun 函数}}


在这里插入图片描述

Ubuntu文件夹有文件但文件管理器显示为空问题:

可以通过终端ls -lh命令来查看文件夹,但是使用文件管理器来打开文件夹,文件管理器显示内容为空

解决方案:

在终端重启文件管理器(如 Nautilus)

nautilus-q# 退出nautilus&# 重新启动

RK3506偶尔出现重命名失败问题:

使用udev规则来解决网络名乱变动问题,这样可以使运用程序可以直接写死接口。现在是启动时偶尔出现如下内容:

[ 12.292615] ntfs3: Max link count 4000 [ 12.380221] cfg80211: Loading compiled-in X.509 certificates for regulatory database [ 12.394747] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' [ 12.396135] cfg80211: Loaded X.509 cert 'wens: 61c038651aabdcf94bd0ac7ff06c7248db18c600' [ 12.412405] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2 [ 12.412468] cfg80211: failed to load regulatory.db Populating /dev using udev: [ 12.726886] udevd[365]: starting version 3.2.14 [ 12.836369] udevd[366]: starting eudev-3.2.14 [ 13.571111] mtdblock: MTD device 'uboot' is NAND, please consider using UBI block devices instead. [ 13.577260] mtdblock: MTD device 'misc' is NAND, please consider using UBI block devices instead. [ 13.589709] mtdblock: MTD device 'vnvm' is NAND, please consider using UBI block devices instead. [ 13.611712] mtdblock: MTD device 'recovery' is NAND, please consider using UBI block devices instead. [ 13.623132] mtdblock: MTD device 'boot' is NAND, please consider using UBI block devices instead. [ 13.642100] mtdblock: MTD device 'rootfs' is NAND, please consider using UBI block devices instead. [ 13.661692] mtdblock: MTD device 'oem' is NAND, please consider using UBI block devices instead. [ 13.671524] mtdblock: MTD device 'userdata' is NAND, please consider using UBI block devices instead. [ 13.766037] udevd[374]: Error changing net interface name eth0 to eth1: File exists [ 13.782078] rk_gmac-dwmac ff4d0000.ethernet eth2: renamed from eth1 [ 13.782290] udevd[374]: could not rename interface '5' from 'eth0' to 'eth1': File exists

udev规则如下

SUBSYSTEM=="net",KERNELS=="ff4d0000.ethernet",NAME="eth2"SUBSYSTEM=="net",KERNELS=="ff4c8000.ethernet",NAME="eth1"

解决方案:

在规则中指定发生事件后,才进行重命名。

SUBSYSTEM=="net",KERNELS=="ff4d0000.ethernet",ACTION=="add",NAME="eth2"SUBSYSTEM=="net",KERNELS=="ff4c8000.ethernet",ACTION=="add",NAME="eth1"

Keil5----Debug时,watch1中全局变量数值不刷新问题解决方法!

仿真时监控的变量没有自动刷新,需要暂停程序才会刷新变量值。

解决方案:

点击View,然后勾选 Periodic Window Update具体操作如下:

常用软件链接:

文件比较器

  • Beyond Compare:是市面上常用的文件比较器,但是需要收费

  • WinMerge:这是开源软件支持文件、文件夹、文本、二进制文件比较

文本编辑器

  • Notepad++:作为编辑器还可以扩展其它插件,插件种类和基本教程可以参考CSDN博客

PDF查看器

Sumatra PDF 特点:极简设计,体积小巧,启动速度快。支持PDF、ePub、MOBI、CHM等多种格式。开源免费,无广告。

PLC平台

  • CODESYS是市面上通用PLC编程器,下载地址:https://store.codesys.cn/codesys/store/detail.html?productId=1377500968401494017
  • 可以下载运行在树莓派的Runtime

网络工具

  • Wireshark:网络抓包工具:有线、无线、虚拟网络等,UDP、TCP、HTTP、工业网络协议等
  • NetAssist网络调试助手
  • TFTPD64:支持TFTP、DNS服务、DHCP服务、SNTP等。方便做网络功能测试。
  • EtherCAT 报文;相关书籍:工业以太网现场总线EtherCAT驱动程序设计及应用

串口工具

  • NetAssist串口调试助手

  • SSCOM 串口+网络调试助手

  • vofa+:基于串口图形化显示用于PID、电流、电压、马鞍波等波形查看

USB报文捕获工具

  • BusHound https://www.usbzh.com
  • 公式示例
21223223423
E = c S 2 E=cS^2E=cS23423335345

E = W 3 公式 3 \boxed{E=W_3} 公式3E=W3公式3

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询