原始引用地址: 记录一个海思TOE的BUG
time: 2020.5.3 17:57

发现的过程

​ 最近在做onvif开发时,有x86的验证的功能没有问题,移动到海思Hi3536上简单运行貌视也很正常。但是多次测试后,发现有时在接收一些onvif数据时,不能正常接收,直到超时。一些杂牌的相机频繁出问题,海康大华的几乎不出问题,很是奇怪。

分析测试

  1. 同样的程序,在x86上正常,arm版很容易复现问题
  2. 通过在交换机上通过tcpdump抓包,发现摄像头已把所有数据返回;但是调试arm程序程序发现,arm程序只能接收一个mtu长度的数据(就是第一包数据),后续数据一直是阻塞等待,直到超时也没有接收到。
  3. 测试时发现确实是海康的几乎不复现此问题,抓包时发现海康的数据包明显比较出问题的数据少。
  4. 经过比较长时间的苦恼的debug,,,,,,没有一点头绪!数据到了网卡,但是程序中接口没有接收到tcp数据。突然想到了海思里面有个TOE的功能,如果开启与正常的编程有些区别。于是查看了手册等相关文档,好像关系不大。于是禁用TOE功能,很神奇,在海思上测试好多次,与X86相同,没有复现问题。

经过上面的分析测试,确认是TOE的问题。但是怎么解决问题?难道是gsoap的问题,因为出问题的地方是gsoap生成代码!!!试了另外的老的版本,新的版本,,问题依旧!!!!google各种错误信息,无解。

又是一个较长时间的苦恼的debug,,,,,,

分析下问题的原因好像与数据包的长度有关。短的数据不易出问题,长的数据容易出问题。再看下gsoap生成的代码,缓冲buf是64k,这个64k与TOE中默认的相同!

估计就是TOE一个攒的着数据,直到足够大才往上返回!!但是onvif的数据一个没有到足够大的条件。所以直到数据超时了,数据也没返回来。

好吧过程就不多说了,我现在也忘的差不多了。直接说结果吧

结论

如果想让ONVIF的SOAP接口在TOE状态下正常使用,应该把onvif/stdsoap2.h 中SOAP_BUFLEN(默认为65536, 也就是64k)改为一个比较小的值,我改为20*1024,多次测试后认为问题解决。

首页

记录一个海思TOE的BUG相关推荐

  1. 【海思篇】【Hi3516DV300】八、手撸一个海思SPI驱动

    目的:使用SPI接口让LCD绘制LOGO:让更多的爱好者了解海思.加入海思. 目录 1 查询SPI相关的寄存器 2 SPI的管脚复用 3 SPI的时钟开启 4 SPI1_CSN0启用和配置 5 实现读 ...

  2. 记录一个粗心所导致的bug

    前言: 前天给游戏里面增加了一个 sensor 类型的fixture, 这个 fixture 主要用来处理碰撞,说的具体一点,用来处理浮力. 不知道别人是怎么做浮力的,我之前也没什么经验,又一次在和伙 ...

  3. 海思3516对接mipi屏幕总结

    目录 一,参数确认 二,硬件确认 三,软件流程 遇到的问题: 资料:(a) 屏幕对接 使用指南.pdf(SDK中) (b) RGB_MIPI屏幕时钟时序计算器.xlsx (c) 屏幕手册(厂家提供) ...

  4. 海思3536解码G711音频

    海思3536解码G711音频 最近的一个项目,需要增加对G711的解码功能.而HI3536这款芯片是支持对G711进行CPU软件编解码的,所有的解码功能都基于独立封装的海思音频解码库,核心解码器工作在 ...

  5. 关于华为海思Hi35XX系列开发的思考与总结

    前言 自认为是搞嵌入式方向的一名小菜鸡,本科时借着竞赛学习了STM32,后续又开了51单片机的课程,也做了几个课程项目.当然啦,也画过PCB板子.不过也都是皮毛而已.所以说,在刚拿到这块Hi3516D ...

  6. 海思3559万能平台搭建:OSD的自动反色

    前言   OSD功能在之前两篇中已经满足了大部分的应用场景,为了进一步提升效率和自适应环境亮度和反色,这里介绍改进方法 效率提升   我们之前整体的流程框架是这样的:TTF初始化,打开字体,区域初始化 ...

  7. 我的内核学习笔记15:海思Hi3516平台GPIO使用记录

    本文介绍海思平台 Hi3516 的 GPIO 使用,包括手册介绍及用户空间控制. 一.GPIO概览 Hi3516 芯片支持 12 组GPIO(General Purpose Input/Output) ...

  8. 海思3516开发记录-AAC音频解码

    海思平台播放AAC文件 1.说明 2.音频解码 音频API 参考: 解码aac流程: 音频设置 音频解码相关错误码 1.说明 海思3516平台内置了aac解码库,可以直接解码aac音频文件,但要支持m ...

  9. 海思NNIE开发(一):海思Hi3559AV100/Hi3519AV100 NNIE深度学习模块开发与调试记录

    海思NNIE开发系列文章: 海思NNIE开发(一):海思Hi3559AV100/Hi3519AV100 NNIE深度学习模块开发与调试记录 海思NNIE开发(二):FasterRCNN在海思NNIE平 ...

最新文章

  1. C/C++流程图生成器 C转流程图【worldsing笔记】
  2. milp的matlab的案例代码_matlab30个案例分析案例6代码
  3. HDU-1045-fire net
  4. 【软件工程实践】结对项目-四则运算 “软件”之升级版
  5. C语言学习之打印菱形
  6. python连接池框架_python pymysql 连接池
  7. 华为服务器停止响应,windows服务器停止工作
  8. java获取返回xml节点里的值,关于用java读取xml中节点的值解决方案
  9. HDU-4631 Sad Love Story 平面最近点对
  10. Linux命令:SAMBA配置与win10共享
  11. 02: python3使用email和smtplib库发送邮件
  12. mysql 利用延迟关联优化查询(select * from your_table order by id desc limit 2000000,20)
  13. 传输层协议(3):TCP 连接(中)
  14. 线性规划问题的求解——Excel和python编程
  15. excel数据透视表之交叉表分组
  16. 用MATLAB实现对运动物体识别与跟踪
  17. 计算机在表格if用法,如何在Excel中使用sumif函数
  18. 李飞飞学生新作:利用场景图生成图像
  19. 应届生 实习生 社招最常用招聘网站
  20. 李航统计学习方法笔记——泛化误差上界

热门文章

  1. html filter 作用,css滤镜有什么作用?
  2. tcp接口测试工具_你不了解的,完整“接口测试”与服务虚拟化
  3. plsql怎么查看存储过程中long变量的值_面试官:详细说下基本数据类型与装箱拆箱的过程...
  4. WebStorm开发微信小程序:解决在wxss中格式化rpx前会多出一个空格的问题
  5. android fragment 抽屉,android – 更改Fragment中的导航抽屉项目
  6. c语言字符运算 =,C语言运算符
  7. python监控端口_python3 端口监控
  8. 钱穆的中学读书事(作者王国华)
  9. 分享3个干货满满的Python实战项目,点赞收藏
  10. Bokeh,一个超强交互式Python可视化库!