<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          記一次解決問(wèn)題的掉坑過(guò)程

          共 1160字,需瀏覽 3分鐘

           ·

          2020-12-12 05:22

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


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


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


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

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


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


          ——轉(zhuǎn)回來(lái)

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


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

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


          我們想「是不是因?yàn)樵龃罅朔直媛剩悄J(rèn)的buff 空間沒(méi)有那么大,這樣使用的虛擬內(nèi)存就越界了,然后就崩潰了?


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


          — — 然后怎么辦?

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


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


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


          推薦閱讀:
          專輯|Linux文章匯總
          專輯|程序人生
          專輯|C語(yǔ)言
          我的知識(shí)小密圈


          瀏覽 51
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  A片免费高清在线观看 | 一级片毛片 | 91亚洲精华 | 亚洲电影无码 | 91视频网站福利 |