迅為2K1000開(kāi)發(fā)板
Ejtag調(diào)試器
在 9.6 小節(jié)中,我們?cè)?a target="_blank">匯編節(jié)點(diǎn)實(shí)現(xiàn)了 led 閃爍的功能,如果您自己寫(xiě)的程序沒(méi)有成功,我們?cè)撊绾握{(diào) 試呢?就可以利用 Ejtag 仿真器進(jìn)行單步調(diào)試。
那我們要如何進(jìn)行單步調(diào)試呢?我們是不是就得先知道每一個(gè)指令對(duì)應(yīng)的地址呢?這樣我們才可以打斷點(diǎn)。我們先來(lái)修改一下在 9.6 小節(jié)中的代碼,我們加一個(gè)標(biāo)簽。如下圖所示:
然后我們重新編譯 pmon 源碼生成 pmon 鏡像并燒寫(xiě)到開(kāi)發(fā)板,一定要將編譯的燒寫(xiě)到開(kāi)發(fā)板?。?!接著在 pmon-loongson3/zloader.ls2k 使用命令/opt/gcc-4.9.3-64-gnu/bin/mips64el-linux-objdump -d start.o > 1.txt
將編譯得到的 start.o 文件進(jìn)行反匯編并將結(jié)果輸出到 1.txt,添加 led3_ctrl 標(biāo)簽的目的是為了反匯編以后更加容易找到 led3 控制相關(guān)的指令,如下圖所示:
使用命令 vim 1.txt 打開(kāi)反匯編后的輸出文件,找到標(biāo)簽 led3_ctrl 所在的位置,如下圖所示:
從上圖可以看出,控制 led3 相關(guān)的代碼是從地址 d60 開(kāi)始的,而 MIPS 的入口地址是 0xbfc00000,所以我們是不是就可以把斷點(diǎn)打的地址為 0xbfc00d84 的地方呢,這個(gè)地方對(duì)應(yīng)的指令為點(diǎn)燈操作。
接著我們啟動(dòng) Ejitag 工具并配置好 Ejtag 工具,在 Ejtag 命令行下輸入命令 hb 0xffffffffbfc00d84,注意,此
時(shí)開(kāi)發(fā)板并未上電?。?!
接著我們給開(kāi)發(fā)板上電,此時(shí) hb 命令會(huì)執(zhí)行成,這時(shí)立刻輸入 set 命令停止 cpu,如下圖所示:
然后我們輸入命令 hbls,查看斷點(diǎn)是否設(shè)置成功,設(shè)置成功如下圖所示:
接著輸入命令 cont,讓 cpu 執(zhí)行到斷點(diǎn)出停止,如下圖所示:
然后使用命令 unhb 0xffffffffbfc00d84 刪除斷點(diǎn),這里一定要?jiǎng)h除,不然 si 命令不能往下執(zhí)行,如下圖所示:
接著輸入命令 si 1 執(zhí)行 1 條執(zhí)行,si 1 的意思就是單步執(zhí)行 1 條指令,如下圖所示:
此時(shí)我們可以發(fā)現(xiàn) led3 已經(jīng)點(diǎn)亮,說(shuō)明我們之前寫(xiě)的匯編代碼是沒(méi)有問(wèn)題的。如果大家沒(méi)有點(diǎn)亮,可以使用 set 命令來(lái)查看通用寄存器的值來(lái)排查錯(cuò)誤。
接著我們將斷電打在關(guān)燈的指令位置,在反匯編 1.txt 文件中,我們可以發(fā)現(xiàn)關(guān)燈的指令是在 da0 位置, 如下圖所示:
所以我們輸入命令 hb 0xffffffffbfc00da0 將斷點(diǎn)打在這個(gè)位置下,如下圖所示:
然后執(zhí)行 cont 命令運(yùn)行 cpu,cpu 會(huì)執(zhí)行到這個(gè)斷點(diǎn)位置,然后停止,如下圖所示:
cpu 已經(jīng)停到這個(gè)位置了,我們就可以使用命令 unhb 來(lái)刪除斷點(diǎn)了,這里一定要?jiǎng)h除,不然 si 命令不能往下執(zhí)行,如下圖所示:
接著輸入命令 si 1 條指令,如果我們寫(xiě)的代碼沒(méi)有問(wèn)題,可以發(fā)現(xiàn) led3 熄滅,如下圖所示:
這樣我們就在匯編階段下調(diào)試完成了 led,同理,調(diào)試其他的 GPIO 大家也可以使用這種方法,這里就 不在贅述,大家可以自行探索一下。
-
龍芯
+關(guān)注
關(guān)注
3文章
332瀏覽量
31181 -
PMON
+關(guān)注
關(guān)注
0文章
7瀏覽量
8221 -
EJTAG
+關(guān)注
關(guān)注
0文章
2瀏覽量
8115 -
2K1000
+關(guān)注
關(guān)注
0文章
21瀏覽量
555
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論