全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 接口/总线/驱动 >

记录为BL808添加GPIO驱动

时间:2023-10-13 11:18

人气:

作者:admin

标签: 添加  GPIO  记录  驱动  BL808   

导读:该文主要记录为 BL808 BSP 添加 GPIO 驱动时踩到的一些坑及解决方案。这是我第一次对接 RT-Thread BSP 的驱动,整理出本文避免之后踩到同样的坑,也希望能帮助到和我一样的新手。...

该文主要记录为 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的时候需要注意格式问题:注释使用/**/,最后用自动化软件刷一下格式。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信