0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

记录为BL808添加GPIO驱动

冬至子 来源:螺丝松掉的人 作者:螺丝松掉的人 2023-10-13 11:18 次阅读

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动器
    +关注

    关注

    51

    文章

    7319

    浏览量

    143000
  • USB设备
    +关注

    关注

    0

    文章

    53

    浏览量

    16255
  • GPIO
    +关注

    关注

    16

    文章

    1137

    浏览量

    50601
  • RT-Thread
    +关注

    关注

    31

    文章

    1150

    浏览量

    38911
  • HAL库
    +关注

    关注

    1

    文章

    112

    浏览量

    5894
收藏 人收藏

    评论

    相关推荐

    BL808 RT-Thread Wi-Fi 驱动适配

    BL808 WiFi 属于 SOC 单芯片型无线 MCU,片上集成 WiFi 功能,移植 RT-Thread 过程中,需要使用 RT-Thread wlan 框架。 RT-Thread wlan
    的头像 发表于 12-02 11:06 877次阅读
    <b class='flag-5'>BL808</b> RT-Thread Wi-Fi <b class='flag-5'>驱动</b>适配

    BL808 RT-Thread Wi-Fi驱动适配

    BL808 WiFi 属于 SOC 单芯片型无线 MCU,片上集成 WiFi 功能,移植 RT-Thread 过程中,需要使用 RT-Thread wlan 框架。
    的头像 发表于 12-04 11:38 413次阅读

    嵌入式linux驱动gpio的基本操作

    文章目录代码驱动层代码应用层代码 测试驱动Makefile这里记录的是嵌入式linux驱动gpio的基本操作。实现的内容是:
    发表于 11-05 07:59

    【博流 BL-HWC-G1 开发板试用】使用GPIO点灯(官方SDK)

    ,存放着各类demo程序,我们需要的gpio控制程序sdk_app_gpiocd bl_iot_sdk/customer_app/sdk_app_gpio./genromap编译成功
    发表于 11-22 19:06

    ZKBU808的相关资料推荐

    编辑-ZKBU808在KBU-4/DIP-4封装里采用的4个芯片,其尺寸都是95MIL,是一款整流扁桥。KBU808的浪涌电流Ifsm300A,漏电流(Ir)10uA,其工作时耐温
    发表于 12-30 08:21

    GPIO口如何加入驱动

    你们自带的按键驱动只有三个按键。只支持三个GPIO口。我现在需要添加新的GPIO口加入驱动应该怎么实现。
    发表于 12-31 06:15

    BL55077驱动程序相关资料下载

    //C文件#include “BL55077.h”#include “GPIO
    发表于 01-10 07:38

    以rk808驱动例子讲解i2c regmap方式读写

    和硬件IC之间做一层缓存,从而能减少底层I/O的操作次数Regmap拓扑结构应用实例以rk808驱动例子讲解i2c regmap方式读写使用配置文件初始化i2c
    发表于 08-11 16:43

    记录BL808 BSP添加GPIO驱动时踩到的一些坑及解决方案

    该文主要记录 BL808 BSP 添加 GPIO 驱动时踩到的一些坑及解决方案。这是我第一次对
    发表于 02-03 14:36

    NUC972如何添加LED驱动leds_gpio

    。内核还提供了一个非常方便的方法,就是用过leds_gpio驱动来控制LED. 我们只需要配置相关引脚就新了。 步骤如下: 1.添加配置引脚 修改 dev.c 文件在内核目录/arch/arm
    发表于 06-28 06:09

    LINUX GPIO如何驱动源码移植

    的寄存器驱动,是在linux-2.6.18_pro500\arch\arm\mach-davinci 目录下的gpio.c,这个是寄存器级的驱动,搞过单片机MCU的朋友应该比较熟悉寄存器级的
    发表于 06-26 17:43 4次下载
    LINUX <b class='flag-5'>GPIO</b>如何<b class='flag-5'>驱动</b>源码移植

    嵌入式Linux驱动 GPIO操作 包括驱动和应用层程序对驱动进行测试

    文章目录代码驱动层代码应用层代码 测试驱动Makefile这里记录的是嵌入式linux驱动gpio的基本操作。实现的内容是:
    发表于 11-02 14:36 10次下载
    嵌入式Linux<b class='flag-5'>驱动</b> <b class='flag-5'>GPIO</b>操作 包括<b class='flag-5'>驱动</b>和应用层程序对<b class='flag-5'>驱动</b>进行测试

    NuttX:给新板件添加GPIO实例

    NuttX版本:V10.1.0MCU:STM32F411CEU6GPIO:PB8 --- LED前提知识: NuttX V10.1.0 : gpio示例调用流程__Herc的博客-CSDN博客
    发表于 12-22 18:45 6次下载
    NuttX:给新板件<b class='flag-5'>添加</b><b class='flag-5'>GPIO</b>实例

    只需5步,教你添加GPIO按键——飞凌教程

    本文将为大家介绍如何在飞凌OKT507-C开发板上添加两个GPIO按键,希望能够对各位工程师有所帮助,本文章以PE5、PE6两个引脚为例。
    的头像 发表于 10-17 14:43 498次阅读
    只需5步,教你<b class='flag-5'>添加</b><b class='flag-5'>GPIO</b>按键——飞凌教程

    博流BL808三核编译运行上手指南

    bl808是三核异构架构,分为m0、lp、d0,使用的都是平台哥的RISC-V核,分别为E907/E902/C906,每个核需要单独编译并烧录到对应的位置,通过本文可以了解三核编译、烧录、运行。
    的头像 发表于 08-07 17:14 2339次阅读
    博流<b class='flag-5'>BL808</b>三核编译运行上手指南