該文主要記錄為 BL808 BSP 添加 GPIO 驅動時踩到的一些坑及解決方案。這是我第一次對接 RT-Thread BSP 的驅動,整理出本文避免之后踩到同樣的坑,也希望能幫助到和我一樣的新手。如有描述不當和不足的地方,還望大家指出和補充,一起交流學習。
構建該項目最好在 Linux 環境,能夠避免大部分奇怪的問題,這里推薦使用 WSL ,因為筆者是 Linux 菜鳥,而且 WSL 和 windows 之間文件傳輸比較方便。
工具鏈需要在 WSL 中解壓 tar -xvf ,不能在 windows 中解壓后傳入 WSL ,不同環境下解壓出來的文件會有問題
可以使用如下命令指定工具鏈并進行構建(需要提前在 Linux 環境中配置好 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 ,可以在命令行中運行code .命令,即可通過VS code進行開發,前提是windows中已經安裝了VS code
gpio的驅動我主要調用了m0librariesplatformsocbl808bl808_e907_stdbl808_bsp_driverhal_drvsrchal_gpio.c這里面的函數(后續并沒有直接使用 hal 中封裝的函數,因為太多層的封裝可能會降低效率)
需要在 board.c 文件中添加以下代碼:
/* GPIO driver initialization is open by default */
#ifdef RT_USING_PIN
rt_hw_pin_init();
#endif
//這樣才調用了drv_gpio.c中定義的rt_hw_pin_init()函數
在m0driversSConscript中添加以下代碼:
if GetDepend('RT_USING_PIN'):
src += ['drv_gpio.c']
//這樣drv_gpio.c才加入到了編譯中
在m0librariesSConscript中添加相應路徑(如果調用的頭文件,以及需要編譯的 .c 文件不包含在 SConscript 中,需要自行添加)
808能識別到兩個usb converter設備 但是識別不到串口設備,重新燒寫702的固件也沒用,最后的解決辦法是在設備管理器中右擊對應的USB設備,選擇屬性,進入高級設置,勾選vcp,刷新后出現串口。進入下載模式是先上電,然后同時按住RST和BOOT按鍵,然后先松開RST,再松開BOOT即可。
最后提交PR的時候需要注意格式問題:注釋使用/**/,最后用自動化軟件刷一下格式。
-
驅動器
+關注
關注
53文章
8271瀏覽量
147058 -
USB設備
+關注
關注
0文章
57瀏覽量
16381 -
GPIO
+關注
關注
16文章
1216瀏覽量
52377 -
RT-Thread
+關注
關注
31文章
1305瀏覽量
40386 -
HAL庫
+關注
關注
1文章
121瀏覽量
6382
發布評論請先 登錄
相關推薦
評論