MTK 10A socket程式設計相關經驗分享

2021-05-25 12:58:44 字數 998 閱讀 4932

0

其中135,就是十六進製制數,即309個位元組數,135後有個回車,其次才是真正的內容,最後結束時,會有個0作為結束符,是0之前有回車還是之後我給忘記了。。。;上面的這個例子是傳過來內容比較少的,還有的情況就是內容比較多的,(相關的例子手邊正好沒有,就不放上來了)chunked會分成幾個包,但小包最大不會大於2000,就是十進位制8192個位元組數,乙個小包結束後,不是以0為結尾,而是已下個包的十六進製制數為開始,開始傳第二個小包,依次下去,到最後了才會以乙個0為結束符(當然chunked傳輸時,無論是上面資料量多與少,這個結束符0沒有都是很正常的)。

這裡我說下我用的chunked解析方法,展訊上的版本,我領導以前寫的,很穩定的解析,我就直接撿了個現成的,移到了mtk上,大致方法就是我收下資料報,然後放到一塊快取buffer中,看看這個chunked包有沒有收完整,沒完整就繼續收,知道發現乙個chunked包收完整了,就放到相應的檔案中去,然後接受下個chunked包,這裡說的chunked包都是小包(最大8192那種),不是整個請求需要的整個大資料報。可能還有別的更好的解析方法,有知道的朋友可以找我**下,(其實我用過網上介紹的主流方法,大概可能是我方法不對,導致效率不高,會出現收到資料,解析時出現定屏情況)

5.我這個socket模組,以前在展訊上是通過task,來進行相關的函式驅動呼叫的,剛移到mtk時,也是通過task,實現我的函式呼叫的,但是出現了很多意想不到的問題,什麼棧溢位,task亂跑,直接開機就死,都出現了;現在的話直接就採取了傳送event的方式,來觸發我的函式,task雖然很好很強大,但在mtk上,我勸朋友們少用,就連mtk**上也不太支援我們客戶自己定個task出來。如有可能還是盡量通過利用mmi_task,就是通過event註冊、執行的方式,來間接呼叫mmi_task,會減少很多自建task而引發的莫名其妙的宕機,當然這也是mtk官方推薦的方案,更符合它平台的特性。

一口氣寫了這篇自己認為有必要寫出來,與大家分享的東西。大家有興趣的,就看看吧,有寫得不好的地方,請見諒。

希望對有需要的人,能有所幫助吧。 我很明白網上找不到相關資料,自己在那乙個人摸索的痛苦。

MTK平台如何快速的單編模組

android有快速編譯某個模組的命令,使用如下 包要先new過以後 執行如下兩條命令 source build envsetup.sh target product prj 後就可以快速編譯某個模組,比如 mk mm mediatek platform mt6577 hardware audio ...

MTK 10A版本的功能列表 1

首先編譯器變了。compiler rvct rvct or ads ads ads v1.2 standard release rvct rvct v3.1 mediatek internal use rvct version v31 none,v22,v31 modis on vc9 true t...

評 成功編SaaS的 10 大技巧

1.讓 uxd 成為最有價值的資產 評 uxd指使用者體驗設計,如果想做saas的話,忽視使用者體驗將是不可原諒的錯誤 2.適應更改要求 如果說軟體開發中有什麼必然性,那就是客戶端 顧客或產品所有者在完成所有設計 規劃 圖表和原型製作後,他們將更改專案的要求。大部分專案經理都經過傳統的培訓,限制更改...