CodeViser是J&D Tech公司開發的一款JTAG仿真器,支持ARM和RISC-V等CPU 核。配套的CVD調試軟件提供高效穩定的調試環境,支持源碼級調試和強有力的腳本命令。本文討論使用CodeViser 調試瑞芯微公司RK3399 多核芯片的過程,開發板使用華清FS3399 開發板。
RK3399的CPU采用big.LITTLE大小核架構,雙Cortex-A72大核+四Cortex-A53小核結構,對整數、浮點、內存等作了大幅優化,在整體性能、功耗及核心面積三個方面都具革命性提升。
04
Liunx Kernel 調試
1、按照華清FS3399的使用手冊指導, 建立linux系統的虛擬機,按照第三章 Linux 系統編譯中的說明,獲取系統的所有源代碼,在虛擬機中編譯全系統所有代碼,或者單獨編譯linux kernel,編譯完成,將其打包拷貝到裝有CVD64軟件的機器上,并按照原始編譯路徑建立目錄(例如:作者的路徑為C:homelinux k3399_linux_sdk_v2.0),將linux kernel 源代碼解壓到所建立的目錄中備用。
2、用串口如前所述,啟動板子上的系統,按CTRL+C讓其停在uboot環境中。
3、啟動CVD64軟件,進入Config->Interface中,在System選項卡中,點按UP命令,連上板子,進入Debug模式。
4、用Program->Load命令加載C:homelinux k3399_linux_sdk_v2.0kernelvmlinux,注意:選擇 No-code。
開始加載源代碼,由于源代碼較多,加載需要一段時間。可以選擇No-code,不下載板子上的代碼。
5、點按工具條上的黃箭頭顯示源代碼,
6、從菜單Symbol -> Symbol by Name -> Symbol 或點按工具條黃箭頭右側的一個圖標,打開Symbol Browse View視圖如下圖:
7、在Symbol Browse View視圖中輸入:start_kernel, 然后,回車,就可以顯示Debug List View,我們可以看到顯示如下:我們在包含start_kernel這行設置一個斷點,
8、然后, 按當前窗口的Go命令,或按工具條上的Go 按鈕,最后我們進入串口窗口,輸入:run bootcmd 回車。
這時,我們在串口窗口中可以看到,程序停在 Starting kernel ...的地方,這時我們就可以調試linux kernel的程序了。
9、這時我們可以在start_kernel 下面的語句設置斷點,如下圖:我們按兩次本窗口上的Go命令,程序就停在了518行上了。
05
多核調試
多核調試需要在多核啟動以后才能調試,以下我們演示SMP 調試。我們就需要在多核啟動完成后的smp_cpus_done函數處設置一個斷點,選擇System Browser View 視圖,輸入smp_cpus_done, 回車,
將會在Debug List View視圖中,彈出smp_cpus_done函數,在此處設置一個斷點。
在上面調試linuxKernel時,停在start_kernel以后,再點擊圖上工具欄上的運行按鈕或或調試視圖中Go按鈕,繼續運行, 程序就會停在smp_cpus_done函數處,
這時我們看串口中斷信息;
這時我們雙擊下面工具條上的core選擇core1,這時下面工具條上已經顯示的是core1了,說明Debug List View中已經是core1的程序了。
單步調試后,就跳到下圖
這時我們返回core0,繼續調試一些步驟,我們可以自動進入core4調試程序,
到第860多行以后程序自動進入了core4,我們可以看下圖的下面的工具條上這時顯示的是core4,
以上就是對稱多處理調試,也就是SMP調試簡單的說明。CodeViser 也支持 AMP 調試,有機會在其他芯片平臺上我們再作詳細說明。
審核編輯:劉清
-
仿真器
+關注
關注
14文章
1018瀏覽量
83801 -
Linux系統
+關注
關注
4文章
594瀏覽量
27439 -
JTAG
+關注
關注
6文章
401瀏覽量
71719 -
Cortex-A53
+關注
關注
0文章
33瀏覽量
21355 -
RK3399
+關注
關注
2文章
211瀏覽量
24907
原文標題:使用CodeViser 調試RK3399 處理器和Linux kernel指導(第二部分)
文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論