作者:Chris Meng
毫米波的軟件包mmWave SDK里有很多驅動的測試代碼,包括外設驅動,mmWave link驅動等。例如\packages\ti\control\mmwavelink\test\xwr68xx目錄下的測試代碼。這些測試代碼都需要編譯生成MSS或者DSS的可以執行文件,然后通過CCS下載到板子上運行。但如果TI的毫米波評估板或者客戶的板子上沒有JTAG口/仿真器,那就不能方便的使用這些測試代碼了。本文就是基于這個問題,嘗試把MSS的測試代碼直接燒寫到QSPI flash上運行,并且通過GPIO點燈的狀態來反映測試情況,來解決沒有JTAG/仿真器情況下的測試問題。
本文運行環境,硬件:AWR6843ISK revC;軟件:mmwave_sdk_03_04_00_03。
首先需要在命令行下編譯出測試需要的mss可執行文件。
以xWR6843的Link test為例,用戶可以在測試代碼里面添加GPIO點燈的功能,來反映測試狀態。例如可以根據自己的需求在某個測試通過后點亮LED燈,從而獲知測試的結果。下面是本文嘗試修改點燈的相關代碼。實現的功能是上電后關閉LED,表示測試開始。最后mmwavelink測試全部結束后,燈會再次亮起。本文利用的是AWR6843ISK上的D7 LED,使用GPIO_2來控制燈的點亮和關閉,如圖1所示。
圖1 測試使用的AWR6843ISK revC上的LED
1. 修改測試文件
C:\ti\mmwave_sdk_03_04_00_03\packages\ti\control\mmwavelink\test\xwr68xx\ main_mss.c
a. 在文件開始的位置添加包含GPIO驅動的頭文件相關代碼:
#include
b. 在MmwaveLink_initTask()函數開始位置添加GPIO初始化和關閉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()函數結尾位置添加GPIO點亮LED燈的代碼。
GPIO_write(SOC_XWR68XX_GPIO_2, 1U);
2. 修改mssTest.mak,在編譯器連接時添加GPIO庫和include路徑(標黃相關代碼)。
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.單獨編譯測試代碼(不編譯相關庫)。
a. 首先需要設置好編譯的環境變量,方法和編譯mmw demo時候的環境變量設置方法一致。具體請參考C:\ti\mmwave_sdk_03_04_00_03\docs\ mmwave_sdk_user_guide.pdf的設置環境變量章節的內容(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所在目錄,并且運行setenv.bat。
b. 然后在同一個窗口下使用命令切換到link test目錄,例如:
cd C:\ti\mmwave_sdk_03_04_00_03\packages\ti\control\mmwavelink 并執行下面的代碼。
gmake mssTestClean
gmake mssTest
c. 編譯結束后,會在C:\ti\mmwave_sdk_03_04_00_03\packages\ti\control\mmwavelink\test\xwr68xx目錄下生成更新的可執行文件:xwr68xx_link_mss.xer4f。
接下來是生成可以燒寫到QSPI flash的bin文件。
1.首先復制MSS可執行xwr68xx_link_mss.xer4f文件到C:\ti\mmwave_sdk_03_04_00_03\packages\scripts\ImageCreator目錄。
2.然后復制BSS firmware C:\ti\mmwave_sdk_03_04_00_03\firmware\radarss\ xwr6xxx_radarss_rprc.bin到同一目錄。
3.接下來將編譯腳本image_create_mss_only.bat也復制到相同目錄。image_create_mss_only.bat編譯腳本的具體內容如下:
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.接下來在DOS命令行窗口切換到ImageCreator這個目錄
cd C:\ti\mmwave_sdk_03_04_00_03\packages\scripts\ImageCreator
然后運行下面的命令:
image_create_mss_only.bat xwr68xx_link_mss.xer4f
5.運行結束后會在同一個目錄下生成metaImage.bin,用于QSPI flash燒寫。
最后使用UniFlash將metaImage.bin燒錄到IWR6843板子上的QSPI Flash上,然后運行。
這個mmwavelink測試代碼的運行時間較長,大概在20s以內會看到LED燈點亮。
總結:
本方法也同樣適用于其他測試例程以及其他毫米波芯片。如果更換毫米波芯片,請注意復制正確的bss firmware到ImageCreator目錄,并修改image_create_mss_only.bat里面bss firmware的文件名。
審核編輯:符乾江
-
芯片
+關注
關注
456文章
50886瀏覽量
424192 -
嵌入式處理
+關注
關注
0文章
341瀏覽量
10019 -
毫米波
+關注
關注
21文章
1925瀏覽量
64842
發布評論請先 登錄
相關推薦
評論