timer中斷代碼不對導致的錯誤

無意中在timer中斷處理函數中直接返回0


然後導致在start_kernel函數中的kmem_cache_init_late函數卡住。



另外,還遇到一個情況,也是單步到kmem_cache_init_late函數卡住,但是原因完全不一樣。

那是硬件中斷線沒有接好,在kmem_cache_init_late函數之前有個local_irq_enable(),這是使能中斷函數,當內核運行到這裏的時候,timer中斷已經初始化完畢,當中斷一使能,就應該會響應中斷,但是這個時候硬件有問題,出了一個8號異常,epc=0x0。

所以,單步到kmem_cache_init_late函數卡住,只是一個假象(調試信息和代碼對應不上),其實在之前已經掛掉了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章