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

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

    关注

    52

    文章

    8149

    浏览量

    145946
  • USB设备
    +关注

    关注

    0

    文章

    57

    浏览量

    16321
  • GPIO
    +关注

    关注

    16

    文章

    1196

    浏览量

    51897
  • RT-Thread
    +关注

    关注

    31

    文章

    1271

    浏览量

    39905
  • HAL库
    +关注

    关注

    1

    文章

    114

    浏览量

    6168
收藏 人收藏

    评论

    相关推荐

    BL808 RT-Thread Wi-Fi 驱动适配

    BL808 WiFi 属于 SOC 单芯片型无线 MCU,片上集成 WiFi 功能,移植 RT-Thread 过程中,需要使用 RT-Thread wlan 框架。 RT-Thread wlan
    的头像 发表于 12-02 11:06 1385次阅读
    <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 820次阅读

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

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

    ZKBU808的相关资料推荐

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

    以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

    简要分析Thread的通用GPIO设备驱动

    为了给用户提供操作GPIO的通用API,方便应用程序开发,RT-Thread中引入了通用GPIO设备驱动。并提供类似Arduino风格的API用于操作GPIO,如设置
    发表于 11-13 14:57 1468次阅读

    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>源码移植

    808D设定值电缆信号与V60驱动接线说明

    808D设定值电缆信号与V60驱动接线说明。
    发表于 05-09 11:20 11次下载

    嵌入式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>进行测试

    Peripheral Drivers of DA1458x Software Platform----GPIO

    GPIO_reservations():要使用的每个GPIO引脚添加带有适当参数的RESERVE_GPIO()宏指令。●在periph_s
    发表于 11-26 19:51 18次下载
    Peripheral Drivers of DA1458x Software Platform----<b class='flag-5'>GPIO</b>

    AMetal开发:通用外设GPIO驱动的开发

    : 了解通用外设标准接口层、外设硬件层开发、外设驱动层开发、外设用户配置文件开发。           图1 通用外设文件结构 标准层了解 1、标准接口相关类型定义 如下所示GPIO的标准接口文件中对
    的头像 发表于 05-31 17:28 2082次阅读

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

    本文将为大家介绍如何在飞凌OKT507-C开发板上添加两个GPIO按键,希望能够对各位工程师有所帮助,本文章以PE5、PE6两个引脚例。
    的头像 发表于 10-17 14:43 870次阅读
    只需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 3129次阅读
    博流<b class='flag-5'>BL808</b>三核编译运行上手指南