欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: RISC-V MCU開(kāi)發(fā)(十二):命令行操作 [打印本頁(yè)]

作者: BlackFilve    時(shí)間: 2021-10-19 09:57
標(biāo)題: RISC-V MCU開(kāi)發(fā)(十二):命令行操作
    考慮到習(xí)慣命令行操作的用戶群體,MounRiver® Studio(MRS)除了使用圖形化UI進(jìn)行用戶交互外,也提供了脫離界面的命令行操作說(shuō)明,用于對(duì)編譯后的工程進(jìn)行燒錄和調(diào)試。如果是Linux平臺(tái)用戶,您也可以在MRS官網(wǎng)的下載頁(yè)面下載工具鏈和OpenOCD壓縮包,根據(jù)說(shuō)明引導(dǎo)進(jìn)行實(shí)踐。本文以Windows平臺(tái)軟件環(huán)境MRS1.51進(jìn)行介紹。

【命令行入口】MRS提供了已包含工具路徑的命令行。點(diǎn)擊工具欄圖標(biāo) ,或者在Project Explorer右鍵彈出菜單中選擇Open MRS Console,即可打開(kāi)命令行,并自動(dòng)指定將當(dāng)前路徑為對(duì)應(yīng)的目錄路徑(如果選擇的是文件,則當(dāng)前路徑為文件所在的目錄)。若當(dāng)前未選擇資源,命令行的當(dāng)前路徑即為工作空間目錄。


【編譯】
由于脫離了界面的UI配置,對(duì)于未知的工程結(jié)構(gòu)。用戶需要:
1.        手動(dòng)為每個(gè)源文件目錄編寫(xiě)Makefile規(guī)則,指定源文件集合、依賴、匯編/編譯工具exe、編譯參數(shù)(例如編譯頭索引目錄)。
2.        切換到一個(gè)新目錄,作為輸出目錄,用戶手動(dòng)為編寫(xiě)Makefile規(guī)則,指定鏈接各個(gè)源的中間文件、鏈接工具exe、鏈接參數(shù)(例如ld文件)。以上步驟了解Makefile的語(yǔ)法。
3.        命令行路徑切換到步驟2的輸出目錄下,執(zhí)行make進(jìn)行編譯,如果編譯工程成功將會(huì)最終輸出elf文件。執(zhí)行make clean可進(jìn)行輸出文件的清理。
【燒寫(xiě),以wch的risc-v內(nèi)核工程為例】
擦除 OPENOCD_PATH –f CFG_PATH –c init –c halt -c "flash erase_sector wch-riscv 0 last" –c exit
編程 OPENOCD_PATH –f CFG_PATH –c init –c halt -c "program TARGET_PATH ADDRESS" –c exit
校驗(yàn) OPENOCD_PATH –f CFG_PATH –c init –c halt –c "verify_image TARGET_PATH " -c exit
復(fù)位 OPENOCD_PATH –f CFG_PATH –c init -c reset -c exit

【調(diào)試】
1.創(chuàng)建openocd進(jìn)程
格式:OPENOCD_PATH  -f  CFG_PATH
提倡使用拖拽的方式,提升效率,也可避免輸入路徑出錯(cuò)。
執(zhí)行命令,openocd會(huì)獲取開(kāi)發(fā)板狀態(tài),并啟動(dòng)協(xié)議server端。隨后openocd進(jìn)程掛起,等待連接。命令行中顯示等待連接的端口號(hào),此處gdb通信的端口默認(rèn)為3333。


2. 開(kāi)啟第二個(gè)MRS Console,啟動(dòng)gdb client
格式:  GDB_PATH  [FILE_PATH]  [–ARGS]
無(wú)參數(shù)形式riscv-none-embed-gdb為默認(rèn)的gdb cli命令。
參數(shù)形式riscv-none-embed-gdb xxxx.elf -interpreter mi  在支持cli基礎(chǔ)上,同時(shí)支持gdb mi命令。MRS調(diào)試打開(kāi)gdb trace之后,Console輸出的命令就是gdb mi命令。可以復(fù)制到此模式下逐個(gè)運(yùn)行。

若指定了FILE_PATH,如命令riscv-none-embed-gdb xxxx.elf ,則后續(xù)不需要調(diào)用file命令指定調(diào)試文件;若未指定FILE_PATH,則后續(xù)需要file命令指定調(diào)試文件。

3. gdb連接設(shè)置
設(shè)置連接配置:
set mem inaccessible-by-default off
set remotetimeout unlimited
(rv內(nèi)核) set architecture riscv:rv32

4.連接server端口
target remote ip:port:連接端口


5. 調(diào)試的其他命令
load :燒寫(xiě), 執(zhí)行后將pc置為程序第一條指令處;
info register + 寄存器名: 查看寄存器;
info breakpoint:查看所有斷點(diǎn);
break +行號(hào)/方法名/符號(hào)名:設(shè)置斷點(diǎn) ;
continue:繼續(xù)跑到下一個(gè)斷點(diǎn),如果沒(méi)有斷點(diǎn)則一直運(yùn)行;
next:調(diào)試執(zhí)行下一步;
step:?jiǎn)尾竭M(jìn)入;
print:打印變量值;
list:(需要工程目錄包含源碼, 編譯時(shí)調(diào)試等級(jí)-g以上)查看當(dāng)前代碼 ;

暫停狀態(tài)時(shí),可執(zhí)行查看寄存器、查看當(dāng)前代碼,查看反匯編等操作;
gdb模式下,可輸入help all列出所有命令,如搜索、變量打印、查看堆棧等。






歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1