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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

记一次解决问题的掉坑过程

發(fā)布時(shí)間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 记一次解决问题的掉坑过程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這兩天在調(diào)試一個音頻ADC 芯片,也是之前的項(xiàng)目,但是一直調(diào)不出來,我發(fā)現(xiàn)我總是在這樣的問題上糾結(jié)很久,以前踩過的坑后面照樣會踩,只不過踩完會迅速把腳拉出來繼續(xù)前進(jìn),我經(jīng)常聽到有人說「做嵌入式真的太容易了,來來去去就那點(diǎn)東西」。

不是小瞧,做嵌入式真的就來來去去那點(diǎn)東西,我們前幾天調(diào)試一個屏幕,剛開始也是怎么點(diǎn)也點(diǎn)不亮,屏幕的分辨率是1920*1200,但是我們把這個分辨率軟件設(shè)置好燒錄開機(jī)后,內(nèi)核崩潰了。

調(diào)試驅(qū)動不像寫應(yīng)用程序,如果應(yīng)用程序崩潰了,系統(tǒng)還是活的,系統(tǒng)活著,就可以繼續(xù)搞事情,繼續(xù)看系統(tǒng)拋出來的信息調(diào)試。驅(qū)動不一樣,驅(qū)動是內(nèi)核的一部分,而且是內(nèi)核的很大一部分,如果驅(qū)動異常了,很大可能性會影響到內(nèi)核。

提個題外話「為什么內(nèi)核下面那么多用不著的驅(qū)動代碼不直接刪除掉?」

再提個問題「為什么明明可以在內(nèi)核里面找到答案,大家還是習(xí)慣百度?google?」

應(yīng)用是人身體上的衣服,是帽子,是鞋子,但是驅(qū)動不一樣,它是人身上的手,是腳,是鼻子,是耳朵。

——轉(zhuǎn)回來

針對上面的問題,我們就查呀查,最后發(fā)現(xiàn)MTK 的代碼里面有問題。

—— 這個問題出現(xiàn)的情況是

如果我們軟件設(shè)置1920*1080的分辨率的話,內(nèi)核是不會崩潰的,但是我們寫入1920*1200的分辨率的話,內(nèi)核就崩潰了。

我們想「是不是因?yàn)樵龃罅朔直媛?#xff0c;但是默認(rèn)的buff 空間沒有那么大,這樣使用的虛擬內(nèi)存就越界了,然后就崩潰了?

然后我們就找這部分的信息,你們知道,內(nèi)核代碼是一些非常困難的代碼,閱讀代碼的時(shí)候,有時(shí)候要猜測它的行為,閱讀一份完全陌生的代碼,而且你還不知道它的行為意圖,這是很困難的。

— — 然后怎么辦?

然后我們就正向分析了,找到崩潰的位置,然后注釋它,對,你看的沒有錯,我們注釋了看不懂的那段代碼,就是這個操作讓我們的系統(tǒng)正常開機(jī),而且能夠正常顯示畫面。

然后復(fù)盤的時(shí)候,我們咨詢了MTK 的技術(shù)開發(fā),他們給出的解釋是「出問題的這段代碼只是為了在eng 版本調(diào)試」,這還沒有完,我們雖然知道這樣修改可以,但是還是看不懂它的這個函數(shù)有什么調(diào)試的意義所在。

韋老師好像有一個名言,說20%的時(shí)候在寫代碼,80%的時(shí)間在調(diào)試代碼。調(diào)試要花費(fèi)的功夫確實(shí)比寫代碼多,搞嵌入式,因?yàn)樯婕坝布?#xff0c;如果有一個東西被卡住了,那時(shí)候的感覺,那個焦急的心都快孳出來了,所以搞技術(shù),沒有一個好的心態(tài)是不行的,畢竟它不是砍樹,也不是真的搬水泥或者搬磚。

推薦閱讀:

專輯|Linux文章匯總

專輯|程序人生

專輯|C語言

我的知識小密圈

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的记一次解决问题的掉坑过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。