該文主要記錄為 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)注
54文章
8687瀏覽量
149815 -
USB設(shè)備
+關(guān)注
關(guān)注
0文章
57瀏覽量
16691 -
GPIO
+關(guān)注
關(guān)注
16文章
1280瀏覽量
54011 -
RT-Thread
+關(guān)注
關(guān)注
32文章
1402瀏覽量
41866 -
HAL庫(kù)
+關(guān)注
關(guān)注
1文章
121瀏覽量
6911
發(fā)布評(píng)論請(qǐng)先 登錄
BL808 RT-Thread Wi-Fi 驅(qū)動(dòng)適配

BL808 RT-Thread Wi-Fi驅(qū)動(dòng)適配
嵌入式linux驅(qū)動(dòng)對(duì)gpio的基本操作
以rk808驅(qū)動(dòng)為例子講解i2c regmap方式讀寫
記錄BL808 BSP添加GPIO驅(qū)動(dòng)時(shí)踩到的一些坑及解決方案
NUC972如何添加LED驅(qū)動(dòng)leds_gpio?
簡(jiǎn)要分析Thread的通用GPIO設(shè)備驅(qū)動(dòng)
LINUX GPIO如何驅(qū)動(dòng)源碼移植

808D設(shè)定值電纜信號(hào)與V60驅(qū)動(dòng)接線說明
嵌入式Linux驅(qū)動(dòng) GPIO操作 包括驅(qū)動(dòng)和應(yīng)用層程序?qū)?b class='flag-5'>驅(qū)動(dòng)進(jìn)行測(cè)試

只需5步,教你添加GPIO按鍵——飛凌教程

博流BL808三核編譯運(yùn)行上手指南

【北京迅為】iTOP-RK3568OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開發(fā)GPIO基礎(chǔ)知識(shí)

迅為RK3568驅(qū)動(dòng)指南GPIO子系統(tǒng) GPIO操作函數(shù)實(shí)驗(yàn)

迅為RK3568開發(fā)板驅(qū)動(dòng)指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入

評(píng)論