迅為2K1000開發(fā)板

Ejtag調(diào)試器

在 9.6 小節(jié)中,我們在匯編節(jié)點實現(xiàn)了 led 閃爍的功能,如果您自己寫的程序沒有成功,我們該如何調(diào) 試呢?就可以利用 Ejtag 仿真器進行單步調(diào)試。
那我們要如何進行單步調(diào)試呢?我們是不是就得先知道每一個指令對應(yīng)的地址呢?這樣我們才可以打斷點。我們先來修改一下在 9.6 小節(jié)中的代碼,我們加一個標簽。如下圖所示:

然后我們重新編譯 pmon 源碼生成 pmon 鏡像并燒寫到開發(fā)板,一定要將編譯的燒寫到開發(fā)板!!!接著在 pmon-loongson3/zloader.ls2k 使用命令/opt/gcc-4.9.3-64-gnu/bin/mips64el-linux-objdump -d start.o > 1.txt
將編譯得到的 start.o 文件進行反匯編并將結(jié)果輸出到 1.txt,添加 led3_ctrl 標簽的目的是為了反匯編以后更加容易找到 led3 控制相關(guān)的指令,如下圖所示:

使用命令 vim 1.txt 打開反匯編后的輸出文件,找到標簽 led3_ctrl 所在的位置,如下圖所示:

從上圖可以看出,控制 led3 相關(guān)的代碼是從地址 d60 開始的,而 MIPS 的入口地址是 0xbfc00000,所以我們是不是就可以把斷點打的地址為 0xbfc00d84 的地方呢,這個地方對應(yīng)的指令為點燈操作。
接著我們啟動 Ejitag 工具并配置好 Ejtag 工具,在 Ejtag 命令行下輸入命令 hb 0xffffffffbfc00d84,注意,此
時開發(fā)板并未上電!!!

接著我們給開發(fā)板上電,此時 hb 命令會執(zhí)行成,這時立刻輸入 set 命令停止 cpu,如下圖所示:

然后我們輸入命令 hbls,查看斷點是否設(shè)置成功,設(shè)置成功如下圖所示:

接著輸入命令 cont,讓 cpu 執(zhí)行到斷點出停止,如下圖所示:

然后使用命令 unhb 0xffffffffbfc00d84 刪除斷點,這里一定要刪除,不然 si 命令不能往下執(zhí)行,如下圖所示:

接著輸入命令 si 1 執(zhí)行 1 條執(zhí)行,si 1 的意思就是單步執(zhí)行 1 條指令,如下圖所示:

此時我們可以發(fā)現(xiàn) led3 已經(jīng)點亮,說明我們之前寫的匯編代碼是沒有問題的。如果大家沒有點亮,可以使用 set 命令來查看通用寄存器的值來排查錯誤。
接著我們將斷電打在關(guān)燈的指令位置,在反匯編 1.txt 文件中,我們可以發(fā)現(xiàn)關(guān)燈的指令是在 da0 位置, 如下圖所示:

所以我們輸入命令 hb 0xffffffffbfc00da0 將斷點打在這個位置下,如下圖所示:

然后執(zhí)行 cont 命令運行 cpu,cpu 會執(zhí)行到這個斷點位置,然后停止,如下圖所示:

cpu 已經(jīng)停到這個位置了,我們就可以使用命令 unhb 來刪除斷點了,這里一定要刪除,不然 si 命令不能往下執(zhí)行,如下圖所示:

接著輸入命令 si 1 條指令,如果我們寫的代碼沒有問題,可以發(fā)現(xiàn) led3 熄滅,如下圖所示:

這樣我們就在匯編階段下調(diào)試完成了 led,同理,調(diào)試其他的 GPIO 大家也可以使用這種方法,這里就 不在贅述,大家可以自行探索一下。
-
龍芯
+關(guān)注
關(guān)注
3文章
429瀏覽量
32774 -
PMON
+關(guān)注
關(guān)注
0文章
8瀏覽量
8457 -
EJTAG
+關(guān)注
關(guān)注
0文章
2瀏覽量
8303 -
2K1000
+關(guān)注
關(guān)注
0文章
21瀏覽量
852
發(fā)布評論請先 登錄
迅為iTOP-Hi3403開發(fā)板:解鎖多目拼接相機的10.4TOPS強“芯”動力,開啟4K智能視覺新紀元
迅為3568開發(fā)板從零學(xué)習(xí)Linux驅(qū)動開發(fā):迅為一站式資料包如何讓我效率翻倍
迅龍軟件受邀參加2025龍芯產(chǎn)品發(fā)布暨用戶大會,發(fā)布基于龍芯2K3000的OrangePi Nova
迅為RK3576開發(fā)板NPU環(huán)境搭建和使用rknn-toolkit2功能演示連板推理
迅為RK3576開發(fā)板NPUrknn-toolkit2環(huán)境搭建和使用docker環(huán)境安裝
迅為2K1000開發(fā)板龍芯平臺Ejtag 單步調(diào)試 PMON 的匯編階段
評論