当前位置: 首页 > news >正文

手机网站分页设计广州网站推广排名

手机网站分页设计,广州网站推广排名,零基础短视频制作培训,类似1688的采购平台有哪些问题现象 Linux上开发LVGL程序时出现一个问题,ui界面在运行了数十分钟到一小时后UI界面卡死,无任何响应。 根因 custom_tick_get()函数实现有问题: uint32_t custom_tick_get(void) {static uint64_t start_ms 0;if(start_ms 0) {struct ti…

问题现象

Linux上开发LVGL程序时出现一个问题,ui界面在运行了数十分钟到一小时后UI界面卡死,无任何响应。

根因

custom_tick_get()函数实现有问题:

uint32_t custom_tick_get(void)
{static uint64_t start_ms = 0;if(start_ms == 0) {struct timeval tv_start;gettimeofday(&tv_start, NULL);start_ms = (tv_start.tv_sec * 1000000 + tv_start.tv_usec) / 1000;}struct timeval tv_now;gettimeofday(&tv_now, NULL);uint64_t now_ms;now_ms = (tv_now.tv_sec * 1000000 + tv_now.tv_usec) / 1000;uint32_t time_ms = now_ms - start_ms;return time_ms;
}

32位系统中,sizeof(tv_now.tv_sec)结果是4,tv_now.tv_sec * 1000000的运算结果会返回int,这个tv_now.tv_sec代表时间戳,即自1970.1.1起的秒数,已经达到十位数,这个计算必然会发生溢出。修改为:

now_ms = (tv_now.tv_sec * 1000000ULL + tv_now.tv_usec) / 1000;

或者

now_ms = ((uint64_t)tv_now.tv_sec * 1000000 + tv_now.tv_usec) / 1000;

都可以避免计算溢出,这样会使结果返回uint64_t从而避免计算溢出。

分析

为什么故障会在数十分钟内固定复现,当使用修改前的代码时,计算得到的start_msnow_ms实际都是模2^32的结果。当start_ms实际结果的高32位和now_ms的高32位相同时,用模2^32的值计算出来的差值与正确的值相同,随着秒数增加,now_ms的高32位发生进位时,计算结果会出错。所以该问题复现的时间与start_ms有关,start_ms低32位值越大复现时间越短,最长2^32 / 1000000 = 4295秒会复现一次问题(71分钟)

http://www.dtcms.com/a/470283.html

相关文章:

  • 基于 EtherCAT 转 MODBUS RS485 的轧辊轴承智能温控系统应用
  • oa报表网站开发工作室设计
  • vue3中图片裁切组件封装
  • 从 0 到 1 搭建 Python 语言 Web UI自动化测试学习系列 15--二次开发--封装公共方法 3
  • 做新媒体文的网站网站开发 ppt
  • 东莞市建设局网站电子商务网站建设教程 pdf
  • numpy第三方库学习(更新中)
  • 【开题答辩全过程】以 报考意向分析系统为例,包含答辩的问题和答案
  • Spring AI
  • ssm速通1(2/2)
  • Android GPS定位与行车轨迹追踪完整实战
  • [持续更新] HPC高性能计算CUDA/C++面试知识点
  • 【有源码】基于Hadoop生态的大数据共享单车数据分析与可视化平台-基于Python与大数据的共享单车多维度数据分析可视化系统
  • 上海做网站推荐做景观要用的植物网站
  • 珠海 网站建设和推广万网网站空间
  • Jasperreport 导出word 多个element重叠部分导致不显示(不支持)
  • GRU(门控循环单元) 笔记
  • 莱州网站建设哪家好做网站要会哪些知识
  • ubuntu离线安装 xl2tpd
  • 如何在百度上做网站最好用的免费建站
  • 关联网站有那些wordpress超级排版器插件
  • 熊猫比分 APP:开启体育赛事观赛新“姿势”
  • 第二章:模块的编译与运行-9 Platform Dependency
  • java多模块概念
  • 小企业网站维护什么东西互联网培训
  • 找人做网站做的很烂网站自助建设推广
  • uhttpd HTTPS 在嵌入式与 OpenWrt 上的实战部署与排查
  • 合肥网站建设正规公司抖音如何推广引流
  • [cpprestsdk] 构建HTTP消息 | http_headers.h
  • SCI论文写作:从实验设计到发表(选题、文献调研、实验设计、数据分析、论文结构及语言规范)