日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

记录一个海思TOE的BUG

發布時間:2024/9/5 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 记录一个海思TOE的BUG 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原始引用地址: 記錄一個海思TOE的BUG
time: 2020.5.3 17:57

發現的過程

? 最近在做onvif開發時,有x86的驗證的功能沒有問題,移動到海思Hi3536上簡單運行貌視也很正常。但是多次測試后,發現有時在接收一些onvif數據時,不能正常接收,直到超時。一些雜牌的相機頻繁出問題,??荡笕A的幾乎不出問題,很是奇怪。

分析測試

  • 同樣的程序,在x86上正常,arm版很容易復現問題
  • 通過在交換機上通過tcpdump抓包,發現攝像頭已把所有數據返回;但是調試arm程序程序發現,arm程序只能接收一個mtu長度的數據(就是第一包數據),后續數據一直是阻塞等待,直到超時也沒有接收到。
  • 測試時發現確實是海康的幾乎不復現此問題,抓包時發現??档臄祿黠@比較出問題的數據少。
  • 經過比較長時間的苦惱的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的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。