各位好
我再除錯P2020cpu,在開啟SMP時候,啟動會掛死在Starting at 0x100000了,不開SMP能正常啟動,請問有沒有哪位遇到過這個問題,有沒有一些除錯方法呢?
uj5u.com熱心網友回復:
可以自己寫一個直接操作串口列印函式,在啟動程序中(printf可以呼叫之前)呼叫這個函式添加列印資訊,看死的位置uj5u.com熱心網友回復:
1、vxWorks image的啟動從sysAlib.s里面的 sysInit 開始2、接下來會呼叫 usrInit ,該函式位于 prjConfig.c 里面 ,該檔案自動生成的,在編譯的時候該檔案并不是每次都自動生成,只有在rebuild和改了內核配置的情況下才自動生成,因此可以在usrInit里面添加自己寫的串口初始化,呼叫位元組寫串口列印函式添加列印資訊
3、在usrInit里面會呼叫 sysHwInit ,該函式位于sysLib.c里面,完成部分硬體的初始化
4、在sysHwInit的最后會呼叫 hardWareInterFaceInit (); ,該函式位于prjConfig.c里面,可以在該函式中添加列印觀察啟動到何處
5、在 hardWareInterFaceInit 里面會呼叫 hardWareInterFaceBusInit();函式,在hardWareInterFaceBusInit 函式中會呼叫很多硬體的register函式,比如:plbRegister()、miiBusRegister()等
6、hardWareInterFaceInit函式在呼叫 hardWareInterFaceBusInit后就會呼叫 vxbInit()函式,在vxbInit()函式中會逐個呼叫各個register組件的init1、init2和connect函式
如果出現起不來,很可能是出現在某個硬體register對應的init1、init2和connect函式當中的一個,可以把這些register組件的代碼從workbench中抽出來(也可以洗掉一些組件,減少定位的c檔案),逐個在init1、init2和connect函式中添加列印,觀察是掛在哪個c檔案組件的哪個函式中
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/12343.html
標籤:VxWorks開發
上一篇:PPC7448反編譯
