该文主要记录为 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的时候需要注意格式问题:注释使用/**/,最后用自动化软件刷一下格式。
-
驱动器
+关注
关注
54文章
9012浏览量
153306 -
USB设备
+关注
关注
0文章
57浏览量
16967 -
GPIO
+关注
关注
16文章
1313浏览量
55708 -
RT-Thread
+关注
关注
32文章
1540浏览量
44266 -
HAL库
+关注
关注
1文章
121浏览量
7476
发布评论请先 登录
BL808 RT-Thread Wi-Fi 驱动适配
BL808 RT-Thread Wi-Fi驱动适配
嵌入式linux驱动对gpio的基本操作
以rk808驱动为例子讲解i2c regmap方式读写
NUC972如何添加LED驱动leds_gpio?
简要分析Thread的通用GPIO设备驱动
LINUX GPIO如何驱动源码移植
嵌入式Linux驱动 GPIO操作 包括驱动和应用层程序对驱动进行测试
博流BL808三核编译运行上手指南

记录为BL808添加GPIO驱动
评论