QT报FTH:(12356)告警
程序能运行正常,但是在运行时会提示“FTH: (12356): *** Fault tolerant heap shim applied to current process.”。经过网上多番查找解决方法如下
解决方案:
- 打开CMD命令窗口
- 在命令行输入regedit(注册表)命令
- 路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers,选中Layers键值,从右侧列表中删除自己的程序路径即可。
- 删除程序的调试文件,重新构建新的调试文件
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挂起。
解决方案:
- 根据数据手册
发送查询挂起后的处理了解需要处理哪些,接收挂起也类似 - 在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 existsudev规则如下
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
- 公式示例
| 212 | 232 | 23423 |
|---|---|---|
| E = c S 2 E=cS^2E=cS2 | 3423 | 335345 |
E = W 3 公式 3 \boxed{E=W_3} 公式3E=W3公式3