CodeViser是J&D Tech公司開發(fā)的一款JTAG仿真器,支持ARM和RISC-V等CPU 核。配套的CVD調(diào)試軟件提供高效穩(wěn)定的調(diào)試環(huán)境,支持源碼級(jí)調(diào)試和強(qiáng)有力的腳本命令。本文討論使用CodeViser 調(diào)試瑞芯微公司RK3399 多核芯片的過程,開發(fā)板使用華清FS3399 開發(fā)板。
RK3399的CPU采用big.LITTLE大小核架構(gòu),雙Cortex-A72大核+四Cortex-A53小核結(jié)構(gòu),對(duì)整數(shù)、浮點(diǎn)、內(nèi)存等作了大幅優(yōu)化,在整體性能、功耗及核心面積三個(gè)方面都具革命性提升。
04
Liunx Kernel 調(diào)試
1、按照華清FS3399的使用手冊(cè)指導(dǎo), 建立linux系統(tǒng)的虛擬機(jī),按照第三章 Linux 系統(tǒng)編譯中的說明,獲取系統(tǒng)的所有源代碼,在虛擬機(jī)中編譯全系統(tǒng)所有代碼,或者單獨(dú)編譯linux kernel,編譯完成,將其打包拷貝到裝有CVD64軟件的機(jī)器上,并按照原始編譯路徑建立目錄(例如:作者的路徑為C:homelinux k3399_linux_sdk_v2.0),將linux kernel 源代碼解壓到所建立的目錄中備用。
2、用串口如前所述,啟動(dòng)板子上的系統(tǒng),按CTRL+C讓其停在uboot環(huán)境中。
3、啟動(dòng)CVD64軟件,進(jìn)入Config->Interface中,在System選項(xiàng)卡中,點(diǎn)按UP命令,連上板子,進(jìn)入Debug模式。
4、用Program->Load命令加載C:homelinux k3399_linux_sdk_v2.0kernelvmlinux,注意:選擇 No-code。
開始加載源代碼,由于源代碼較多,加載需要一段時(shí)間??梢赃x擇No-code,不下載板子上的代碼。
5、點(diǎn)按工具條上的黃箭頭顯示源代碼,
6、從菜單Symbol -> Symbol by Name -> Symbol 或點(diǎn)按工具條黃箭頭右側(cè)的一個(gè)圖標(biāo),打開Symbol Browse View視圖如下圖:
7、在Symbol Browse View視圖中輸入:start_kernel, 然后,回車,就可以顯示Debug List View,我們可以看到顯示如下:我們?cè)诎瑂tart_kernel這行設(shè)置一個(gè)斷點(diǎn),
8、然后, 按當(dāng)前窗口的Go命令,或按工具條上的Go 按鈕,最后我們進(jìn)入串口窗口,輸入:run bootcmd 回車。
這時(shí),我們?cè)诖诖翱谥锌梢钥吹?,程序停?Starting kernel ...的地方,這時(shí)我們就可以調(diào)試linux kernel的程序了。
9、這時(shí)我們可以在start_kernel 下面的語句設(shè)置斷點(diǎn),如下圖:我們按兩次本窗口上的Go命令,程序就停在了518行上了。
05
多核調(diào)試
多核調(diào)試需要在多核啟動(dòng)以后才能調(diào)試,以下我們演示SMP 調(diào)試。我們就需要在多核啟動(dòng)完成后的smp_cpus_done函數(shù)處設(shè)置一個(gè)斷點(diǎn),選擇System Browser View 視圖,輸入smp_cpus_done, 回車,
將會(huì)在Debug List View視圖中,彈出smp_cpus_done函數(shù),在此處設(shè)置一個(gè)斷點(diǎn)。
在上面調(diào)試linuxKernel時(shí),停在start_kernel以后,再點(diǎn)擊圖上工具欄上的運(yùn)行按鈕或或調(diào)試視圖中Go按鈕,繼續(xù)運(yùn)行, 程序就會(huì)停在smp_cpus_done函數(shù)處,
這時(shí)我們看串口中斷信息;
這時(shí)我們雙擊下面工具條上的core選擇core1,這時(shí)下面工具條上已經(jīng)顯示的是core1了,說明Debug List View中已經(jīng)是core1的程序了。
單步調(diào)試后,就跳到下圖
這時(shí)我們返回core0,繼續(xù)調(diào)試一些步驟,我們可以自動(dòng)進(jìn)入core4調(diào)試程序,
到第860多行以后程序自動(dòng)進(jìn)入了core4,我們可以看下圖的下面的工具條上這時(shí)顯示的是core4,
以上就是對(duì)稱多處理調(diào)試,也就是SMP調(diào)試簡單的說明。CodeViser 也支持 AMP 調(diào)試,有機(jī)會(huì)在其他芯片平臺(tái)上我們?cè)僮髟敿?xì)說明。
審核編輯:劉清
-
仿真器
+關(guān)注
關(guān)注
14文章
1019瀏覽量
83945 -
Linux系統(tǒng)
+關(guān)注
關(guān)注
4文章
596瀏覽量
27521 -
JTAG
+關(guān)注
關(guān)注
6文章
401瀏覽量
71860 -
Cortex-A53
+關(guān)注
關(guān)注
0文章
33瀏覽量
21404 -
RK3399
+關(guān)注
關(guān)注
2文章
212瀏覽量
25042
原文標(biāo)題:使用CodeViser 調(diào)試RK3399 處理器和Linux kernel指導(dǎo)(第二部分)
文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
RK3399處理器與AR9201處理器有哪些不同之處呢
基于RK3399處理器設(shè)計(jì)的RK3399開發(fā)板有哪些配置呢
瑞芯微RK3399處理器的優(yōu)勢(shì)介紹
如何實(shí)現(xiàn)更高的系統(tǒng)效率——第二部分:高速柵極驅(qū)動(dòng)器
![如何實(shí)現(xiàn)更高的系統(tǒng)效率——<b class='flag-5'>第二部分</b>:高速柵極驅(qū)動(dòng)<b class='flag-5'>器</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
設(shè)計(jì)一臺(tái)物聯(lián)網(wǎng)模塊燈——第二部分
![設(shè)計(jì)一臺(tái)物聯(lián)網(wǎng)模塊燈——<b class='flag-5'>第二部分</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用CodeViser調(diào)試RK3399多核芯片的過程
![使用<b class='flag-5'>CodeViser</b><b class='flag-5'>調(diào)試</b><b class='flag-5'>RK3399</b>多核芯片的過程](https://file1.elecfans.com/web2/M00/8E/93/wKgZomTId9yAWyqQAAAssjg71pA425.png)
評(píng)論