作者:Chris Meng
毫米波的軟件包mmWave SDK里有很多驅(qū)動(dòng)的測(cè)試代碼,包括外設(shè)驅(qū)動(dòng),mmWave link驅(qū)動(dòng)等。例如\packages\ti\control\mmwavelink\test\xwr68xx目錄下的測(cè)試代碼。這些測(cè)試代碼都需要編譯生成MSS或者DSS的可以執(zhí)行文件,然后通過(guò)CCS下載到板子上運(yùn)行。但如果TI的毫米波評(píng)估板或者客戶的板子上沒(méi)有JTAG口/仿真器,那就不能方便的使用這些測(cè)試代碼了。本文就是基于這個(gè)問(wèn)題,嘗試把MSS的測(cè)試代碼直接燒寫(xiě)到QSPI flash上運(yùn)行,并且通過(guò)GPIO點(diǎn)燈的狀態(tài)來(lái)反映測(cè)試情況,來(lái)解決沒(méi)有JTAG/仿真器情況下的測(cè)試問(wèn)題。
本文運(yùn)行環(huán)境,硬件:AWR6843ISK revC;軟件:mmwave_sdk_03_04_00_03。
首先需要在命令行下編譯出測(cè)試需要的mss可執(zhí)行文件。
以xWR6843的Link test為例,用戶可以在測(cè)試代碼里面添加GPIO點(diǎn)燈的功能,來(lái)反映測(cè)試狀態(tài)。例如可以根據(jù)自己的需求在某個(gè)測(cè)試通過(guò)后點(diǎn)亮LED燈,從而獲知測(cè)試的結(jié)果。下面是本文嘗試修改點(diǎn)燈的相關(guān)代碼。實(shí)現(xiàn)的功能是上電后關(guān)閉LED,表示測(cè)試開(kāi)始。最后mmwavelink測(cè)試全部結(jié)束后,燈會(huì)再次亮起。本文利用的是AWR6843ISK上的D7 LED,使用GPIO_2來(lái)控制燈的點(diǎn)亮和關(guān)閉,如圖1所示。
圖1 測(cè)試使用的AWR6843ISK revC上的LED
1. 修改測(cè)試文件
C:\ti\mmwave_sdk_03_04_00_03\packages\ti\control\mmwavelink\test\xwr68xx\ main_mss.c
a. 在文件開(kāi)始的位置添加包含GPIO驅(qū)動(dòng)的頭文件相關(guān)代碼:
#include
b. 在MmwaveLink_initTask()函數(shù)開(kāi)始位置添加GPIO初始化和關(guān)閉LED的代碼。
GPIO_init();
Pinmux_Set_OverrideCtrl(SOC_XWR68XX_PINK13_PADAZ, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL);
Pinmux_Set_FuncSel(SOC_XWR68XX_PINK13_PADAZ, SOC_XWR68XX_PINK13_PADAZ_GPIO_2);
GPIO_setConfig(SOC_XWR68XX_GPIO_2, GPIO_CFG_OUTPUT);
GPIO_write(SOC_XWR68XX_GPIO_2, 0U);
c. 在MmwaveLink_initTask()函數(shù)結(jié)尾位置添加GPIO點(diǎn)亮LED燈的代碼。
GPIO_write(SOC_XWR68XX_GPIO_2, 1U);
2. 修改mssTest.mak,在編譯器連接時(shí)添加GPIO庫(kù)和include路徑(標(biāo)黃相關(guān)代碼)。
MMWAVE_MSS_UNIT_TEST_STD_LIBS = $(R4F_COMMON_STD_LIB) \
-llibpinmux_$(MMWAVE_SDK_DEVICE_TYPE).$(R4F_LIB_EXT) \
-llibcrc_$(MMWAVE_SDK_DEVICE_TYPE).$(R4F_LIB_EXT) \
-llibmailbox_$(MMWAVE_SDK_DEVICE_TYPE).$(R4F_LIB_EXT) \
-llibtestlogger_$(MMWAVE_SDK_DEVICE_TYPE).$(R4F_LIB_EXT) \
-llibadcbuf_$(MMWAVE_SDK_DEVICE_TYPE).$(R4F_LIB_EXT) \
-llibedma_$(MMWAVE_SDK_DEVICE_TYPE).$(R4F_LIB_EXT) \
-llibmmwavelink_$(MMWAVE_SDK_DEVICE_TYPE).$(R4F_LIB_EXT) \
-llibgpio_$(MMWAVE_SDK_DEVICE_TYPE).$(R4F_LIB_EXT)
MMWAVE_MSS_UNIT_TEST_LOC_LIBS = $(R4F_COMMON_LOC_LIB) \
-i$(MMWAVE_SDK_INSTALL_PATH)/ti/drivers/pinmux/lib \
-i$(MMWAVE_SDK_INSTALL_PATH)/ti/drivers/adcbuf/lib \
-i$(MMWAVE_SDK_INSTALL_PATH)/ti/drivers/crc/lib \
-i$(MMWAVE_SDK_INSTALL_PATH)/ti/drivers/mailbox/lib \
-i$(MMWAVE_SDK_INSTALL_PATH)/ti/utils/testlogger/lib \
-i$(MMWAVE_SDK_INSTALL_PATH)/ti/drivers/edma/lib \
-i$(MMWAVE_SDK_INSTALL_PATH)/ti/control/mmwavelink/lib \
-i$(MMWAVE_SDK_INSTALL_PATH)/ti/drivers/gpio/lib
3.單獨(dú)編譯測(cè)試代碼(不編譯相關(guān)庫(kù))。
a. 首先需要設(shè)置好編譯的環(huán)境變量,方法和編譯mmw demo時(shí)候的環(huán)境變量設(shè)置方法一致。具體請(qǐng)參考C:\ti\mmwave_sdk_03_04_00_03\docs\ mmwave_sdk_user_guide.pdf的設(shè)置環(huán)境變量章節(jié)的內(nèi)容(4. 5. 2. Setting up build environment)。基本流程如下:
- 修改C:\ti\mmwave_sdk_03_04_00_03\packages\scripts\windows\setenv.bat,例如:set MMWAVE_SDK_DEVICE=awr68xx。
- 在DOS命令行窗口切換到setenv.bat所在目錄,并且運(yùn)行setenv.bat。
b. 然后在同一個(gè)窗口下使用命令切換到link test目錄,例如:
cd C:\ti\mmwave_sdk_03_04_00_03\packages\ti\control\mmwavelink 并執(zhí)行下面的代碼。
gmake mssTestClean
gmake mssTest
c. 編譯結(jié)束后,會(huì)在C:\ti\mmwave_sdk_03_04_00_03\packages\ti\control\mmwavelink\test\xwr68xx目錄下生成更新的可執(zhí)行文件:xwr68xx_link_mss.xer4f。
接下來(lái)是生成可以燒寫(xiě)到QSPI flash的bin文件。
1.首先復(fù)制MSS可執(zhí)行xwr68xx_link_mss.xer4f文件到C:\ti\mmwave_sdk_03_04_00_03\packages\scripts\ImageCreator目錄。
2.然后復(fù)制BSS firmware C:\ti\mmwave_sdk_03_04_00_03\firmware\radarss\ xwr6xxx_radarss_rprc.bin到同一目錄。
3.接下來(lái)將編譯腳本image_create_mss_only.bat也復(fù)制到相同目錄。image_create_mss_only.bat編譯腳本的具體內(nèi)容如下:
cd out2rprc
out2rprc.exe ..\%1 ..\mss_rprc.bin
cd ..\
cd multicore_image_generator
MulticoreImageGen.exe LE 37 0x02000006 ..\metaImage.bin 0x35510000 ..\mss_rprc.bin 0xB5510000 ..\xwr6xxx_radarss_rprc.bin
cd ..\
cd crc_multicore_image
crc_multicore_image.exe ..\metaImage.bin 0
cd ..\
cd append_bin_crc
gen_bincrc32.exe ..\metaImage.bin
cd ..\
4.接下來(lái)在DOS命令行窗口切換到ImageCreator這個(gè)目錄
cd C:\ti\mmwave_sdk_03_04_00_03\packages\scripts\ImageCreator
然后運(yùn)行下面的命令:
image_create_mss_only.bat xwr68xx_link_mss.xer4f
5.運(yùn)行結(jié)束后會(huì)在同一個(gè)目錄下生成metaImage.bin,用于QSPI flash燒寫(xiě)。
最后使用UniFlash將metaImage.bin燒錄到IWR6843板子上的QSPI Flash上,然后運(yùn)行。
這個(gè)mmwavelink測(cè)試代碼的運(yùn)行時(shí)間較長(zhǎng),大概在20s以內(nèi)會(huì)看到LED燈點(diǎn)亮。
總結(jié):
本方法也同樣適用于其他測(cè)試?yán)桃约捌渌撩撞?a target="_blank">芯片。如果更換毫米波芯片,請(qǐng)注意復(fù)制正確的bss firmware到ImageCreator目錄,并修改image_create_mss_only.bat里面bss firmware的文件名。
審核編輯:符乾江
-
芯片
+關(guān)注
關(guān)注
452文章
50224瀏覽量
420980 -
嵌入式處理
+關(guān)注
關(guān)注
0文章
341瀏覽量
9990 -
毫米波
+關(guān)注
關(guān)注
21文章
1904瀏覽量
64631
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論