該文主要記錄為 BL808 BSP 添加 GPIO 驅(qū)動(dòng)時(shí)踩到的一些坑及解決方案。這是我第一次對(duì)接 RT-Thread BSP 的驅(qū)動(dòng),整理出本文避免之后踩到同樣的坑,也希望能幫助到和我一樣的新手。如有描述不當(dāng)和不足的地方,還望大家指出和補(bǔ)充,一起交流學(xué)習(xí)。
構(gòu)建該項(xiàng)目最好在 Linux 環(huán)境,能夠避免大部分奇怪的問題,這里推薦使用 WSL ,因?yàn)楣P者是 Linux 菜鳥,而且 WSL 和 windows 之間文件傳輸比較方便。
工具鏈需要在 WSL 中解壓 tar -xvf ,不能在 windows 中解壓后傳入 WSL ,不同環(huán)境下解壓出來的文件會(huì)有問題
可以使用如下命令指定工具鏈并進(jìn)行構(gòu)建(需要提前在 Linux 環(huán)境中配置好 scons 等,可以參考 RT-Thread BSP BL808 中的 READme )
scons --exec-path=/opt/Xuantie-900-gcc-elf-newlib-x86_64-V2.6.1/bin
export RTT_EXEC_PATH=/opt/Xuantie-900-gcc-elf-newlib-x86_64-V2.6.1/bin
scons
如果使用的是 WSL ,可以在命令行中運(yùn)行code .命令,即可通過VS code進(jìn)行開發(fā),前提是windows中已經(jīng)安裝了VS code
gpio的驅(qū)動(dòng)我主要調(diào)用了m0librariesplatformsocbl808bl808_e907_stdbl808_bsp_driverhal_drvsrchal_gpio.c這里面的函數(shù)(后續(xù)并沒有直接使用 hal 中封裝的函數(shù),因?yàn)樘鄬拥姆庋b可能會(huì)降低效率)
需要在 board.c 文件中添加以下代碼:
/* GPIO driver initialization is open by default */
#ifdef RT_USING_PIN
rt_hw_pin_init();
#endif
//這樣才調(diào)用了drv_gpio.c中定義的rt_hw_pin_init()函數(shù)
在m0driversSConscript中添加以下代碼:
if GetDepend('RT_USING_PIN'):
src += ['drv_gpio.c']
//這樣drv_gpio.c才加入到了編譯中
在m0librariesSConscript中添加相應(yīng)路徑(如果調(diào)用的頭文件,以及需要編譯的 .c 文件不包含在 SConscript 中,需要自行添加)
808能識(shí)別到兩個(gè)usb converter設(shè)備 但是識(shí)別不到串口設(shè)備,重新燒寫702的固件也沒用,最后的解決辦法是在設(shè)備管理器中右擊對(duì)應(yīng)的USB設(shè)備,選擇屬性,進(jìn)入高級(jí)設(shè)置,勾選vcp,刷新后出現(xiàn)串口。進(jìn)入下載模式是先上電,然后同時(shí)按住RST和BOOT按鍵,然后先松開RST,再松開BOOT即可。
最后提交PR的時(shí)候需要注意格式問題:注釋使用/**/,最后用自動(dòng)化軟件刷一下格式。
-
驅(qū)動(dòng)器
+關(guān)注
關(guān)注
53文章
8272瀏覽量
147075 -
USB設(shè)備
+關(guān)注
關(guān)注
0文章
57瀏覽量
16383 -
GPIO
+關(guān)注
關(guān)注
16文章
1216瀏覽量
52391 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1305瀏覽量
40391 -
HAL庫(kù)
+關(guān)注
關(guān)注
1文章
121瀏覽量
6382
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論