开发者分享 |《RT-Thread设备驱动开发指南》基础篇--以先楫bsp的hwtimer设备为例

2024-05-14 先楫半导体HPMicro公众号
单片机,MCU,先楫半导体 单片机,MCU,先楫半导体 单片机,MCU,先楫半导体 单片机,MCU,先楫半导体

一、概述

(一)RT-Thread设备驱动

《RT-Thread设备驱动开发指南》书籍是RT-thread官方出品撰写,系统讲解RT-thread IO设备驱动开发方法,从三方面进行讲解。

基础篇:对RT-thread以及设备框架进行介绍,再分别介绍基于IO框架中常用的外设设备,分别是UART、PIN、SPI/QSPI、HWTIMER、PWM、RTC、ADC、DAC、WDT。

进阶篇:介绍基于IO框架中稍比基础篇复杂的外设设备,分别是SDIO、Touch、LCD、sensor、MTD nor、MTD nand、脉冲编码器、加解密设备、PM设备。

高级篇:介绍更为复杂的外设设备,分别是WLAN、ETH、audio mic、audio sound、USB、CAN。


(二)先楫hpmicro bsp

为了深入了解本书的内容,得有一个单片机平台进行案例剖析,除了本书籍以STM32的arm平台进行介绍,还可以以先楫hpmicro单片机系列的riscv平台进行讲解。

刚好先楫在rtthread的bsp贡献上,也是十分丰富。无论是在rtthread studio的bsp包上,还是rtthread仓库的bsp支持上,都有提供了对应的支持。

rtthread studio的SDK支持,包括了先楫目前所有的MCU系列。

而在RT-thread上,bsp包的驱动支持上,也包括了rtthread大部分设备驱动。

二、开发方法

(一)层级结构

RT-Thread 提供了一套简单的 I/O 设备模型框架,如下图所示,它位于硬件和应用程序之间,共分成三层,从上到下分别是 I/O 设备管理层、设备驱动框架层、设备驱动层。

而作为单片机的定时器外设hwtimer功能,要对接到该IO设备框架,需要实现hwtimer设备的操作方法、设备的注册、以及驱动的配置和驱动验证。本文也是基于该开发方法进行阐述。

上述对应的三层驱动层,在源码上,可以device->hwtimer->drv_hwtimer,其中drv_hwtimer是先楫官方实现的对接框架的驱动层。

而设备驱动框架层,提供了ops操作接口,分别以下的接口需要驱动开发者实现注册。

(二)创建hwtimer设备


对hwtimer设备来说,在驱动开发时,需要先从rt_hwtimer_t结构中派生出新的hwtimer设备模型,然后根据自己的设备类型定义私有数据域。

同样先楫的hwtimer drivers也定义了自己的由rt_hwtimer_t派生出来的hwtimer设备。

当然一个MCU也支持多个hwtimer,一个hwtimer驱动可以支持多个hwtimer设备,可以通过使能BSP_USING_GPTMRx进行开启

(三)实现hwtimer设备的操作方法

该操作方法就是上述所说的ops操作结构,属于驱动共用部分,也就是多个hwtimer设备可以共用一个ops操作。同样先楫也实现了该操作方法,并且注册到自身的hwtimer的父类hwtimer的ops中。

简单举例个操作方法的实现,比如获取设备当前值count_get,原型如下:

rt_uint32_t (*count_get)(struct rt_hwtimer_device *timer);

而先楫实现的count_get是以上的hpm_hwtimer_count_get,可以看到,内部是先从timer获取厂家自身定义的hwtimer设备,再从里面获取硬件定时器的基地址控制句柄,然后使用先楫自身的驱动API获取定时器的计数值进行返回。

(四)注册hwtimer设备


注册hwtimer设备,rtthread的IO设备框架提供了一个API:rt_device_hwtimer_register

从传参句柄可知道,注册时需要提供设备句柄timer,设备名称name,用户自定义data作为传参。

在先楫的drv_hwtimer的驱动中,创建了个全局的hwtimer设备数组,里面包含了hwtimer的所有信息,包括设备名称。然后在注册初始化当中,轮询该数组使能的定时器设备依次注册到rtthread的hwtimer设备当中。

在开发指南当中,特别提到了一个注意点,hwtimer设备句柄需要实现rt_hwtimer_info,定义硬件定时器的特征信息,如计数的最大最小频率,最大计数值以及计数方向,而先楫也同样进行了实现。

(五)hwtimer设备中断处理

在开发指南中,该部分也需要实现,目的是将定时时间导致的中断事件通知到hwtimer设备驱动框架,让驱动框架完成后续的处理并通知应用层。而该通知事件API则是rt_device_hwtimer_isr,该函数由rtthread的hwtimer设备驱动框架提供。

MCU下的hwtimer驱动,需要在中断处理函数调用rt_device_hwtimer_isr函数,以便通知hwtimer设备驱动框架对应中断的发生。

在先楫的hwtimer驱动中也是基于这个实现通知事件。

从以上代码可知,hpmicro实现的hwtimer设备驱动接管了定时器的通用中断服务函数hpm_hwtmr_isr,然后内部调用了rtthread的hwtimer设备驱动框架提供的rt_device_hwtimer_isr中断处理函数,通

知设备框架对应的定时器定时时间到达。


(六)驱动配置

1、Kconfig配置

驱动配置主要通过Kconfig实现,这里使用hpm6750evk2的bsp V1.4.1作为说明。

在board文件夹中,有个Kconfig配置了hpm6750evk2的板载驱动信息。对于定时器驱动的相关选项如下:

RT_USING_HWTIMER:RT-thread的hwtimer设备驱动框架下的代码对应的宏定义,控制hwtimer的驱动框架的相关代码是否会添加到工程中

BSP_USING_GPTMR:先楫的hwtimer驱动下的代码对应的宏定义,控制先楫的hwtimer驱动是否会添加到工程中

BSP_USING_GPTMR1: 使用先楫的定时器1


2、SConscript配置

libraries/drivers/SConscript文件为hwtimer驱动添加判断选项,如果定义了BSP_USING_GPTMR,则对应的驱动文件drv_hwtimer就会被添加到工程的源文件中。

三、驱动验证

使用hpm6750evk2的bsp V1.4.1作为说明,新建timer_demo的示例工程。

编译烧录代码,使用list_device查看设备,可以看到注册的设备已经包含了hwtimer这个设备。

运行自带的shell命令hwtimer_sample,该命令会运行5s的定时,查看readme文档

四、总结

1、基础篇包含UART、PIN、SPI/QSPI、HWTIMER、PWM、RTC、ADC、DAC、WDT这些外设,本文以先楫适配的HWTIMER驱动进行说明,能感受到先楫对于rtthread驱动适配的完整性。

2、除了本文阐述的外设,其他基础外设同样适配完整。


授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由JWM转载自先楫半导体HPMicro公众号,原文标题为:开发者分享 |《RT-Thread设备驱动开发指南》基础篇--以先楫bsp的hwtimer设备为例,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关研发服务和供应服务

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【经验】先楫半导体MCU HPM6750使用JLINK调试下如何进行串口打印配置

在使用JLINK调试先楫半导体HPM6750EVK2开发板调试时遇到不知如何使用SEGGER Embedded Studio (以下简称SES)内置的虚拟串口打印工具,本文介绍正确配置串口打印工具的步骤。

2023-06-30 -  设计经验 代理服务 技术支持 批量订货

先楫HPM5361EVK开发板测评

上海先楫半导体举办的HPM5361EVK开发板试用活动圆满结束,广大工程师和爱好者们踊跃参与此次试用并提交报告。HPM5361EVK是基于先楫HPM5300系列高性能RISC-V内核MCU的一款开发板。本文介绍先楫HPM5361EVK开发板测评。

2024-05-15 -  设计经验 代理服务 技术支持 批量订货

【经验】MCU HPM6750使用ISP烧录程序步骤及注意事项

先楫半导体推出的HPM6750是一款高性能MCU,采用双RISC-V内核,主频可达816MHz,使用自主的创新总线架构、高效的L1缓存和本地存储器,高达9220CoreMark和高达4651 DMIPS的MCU性能纪录;同时整个MCU还整合了一系列高性能外设。

2023-05-23 -  设计经验 代理服务 技术支持 批量订货

国产高性能MCU又一力作,集成授权EtherCAT,助力工业伺服走向海内外

最近,先楫半导体发布中国首款拥有德国倍福公司正式授权EterhCAT从站控制器的高性能MCU产品HPM6E00系列,将国产高性能MCU在工业领域的应用推向新高度。

2024-07-02 -  原厂动态 代理服务 技术支持 批量订货

先楫半导体hpm_sdk v1.6.0全新上线!新增HPM6E80产品支持

先楫半导体hpm_sdk v1.6.0上线!新增HPM6E80产品支持。HPM6E00系列MCU是一款高性能、高实时以太互联,RISC-V双核微控制器。HPM6E00系列提供多达4端口千兆以太交换模块,支持TSN,并且支持3端口EtherCAT从站控制器,以及32路高分辨率PWM输出,高精度运动控制系统,可以在工业自动化领域实现基于高实时性,低延时以太网的高性能伺服电机控制,机器人运动控制等应用。

2024-07-03 -  原厂动态 代理服务 技术支持 批量订货

HPMicro HPM 6700/6400系列开创了高性能MCU的新纪元

型号- HPM6450,HPM6750EVK,HPM6750EVKMINI,HPM 6400,HPM 6700,HPM 6700 SERIES,HPM 6400 SERIES,HPM6454,HPM6730,HPM6430,HPM6750,HPM6750EVK2,HPM6754

2024/8/30  - 先楫半导体  - 数据手册  - v1.1 代理服务 技术支持 批量订货

HPM6300系列高性能通用MCU

型号- HPM6300 SERIES,HPM6340,HPM6360,HPM6350,HPM6300,HPM6364,HPM6320,HPM6300EVK

2023/11/10  - 先楫半导体  - 数据手册 代理服务 技术支持 批量订货

【IC】先楫半导体最新款高性能MCU HPM5301,搭载单核32位RISC-V处理器,主频高达360MHz

先楫半导体于2023年11月24日宣布推出高性能HPM5300系列MCU最新款——HPM5301芯片。这款MCU搭载单核32位RISC-V处理器,采用QFN48封装,是迄今为止先楫推出的最简单易用的产品。该芯片的开发板HPM5301EVKLite也同步上市。

2023-11-25 -  产品 代理服务 技术支持 批量订货

媒体视角 | 先楫半导体HPM6E00系列MCU填补国内空白,EtherCAT中国首授权

2023年12月先楫半导体正式推出中国首款拥有德国倍福公司正式授权EtherCAT从站控制器的高性能MCU产品HPM6E00系列。先楫半导体HPM6E00系列产品采用国际流行的RISC-V架构,主频高达600MHz,有单双核选项,集成了德国倍福公司授权的EtherCAT从站控制器,具备高性能运动控制、高实时工业以太网互联的特性。

2024-07-17 -  原厂动态 代理服务 技术支持 批量订货

HPM6200系列MCU双核高性能,专为精确控制而打造

型号- HPM6260,HPM6280,HPM6200 SERIES,HPM6264,HPM6220,HPM6240,HPM6284,HPM6200EVK,HPM6200

2023/11/10  - 先楫半导体  - 数据手册 代理服务 技术支持 批量订货

【应用】基于RISC-V的高主频MCU HPM6750用于LED大屏,双千兆以太网透传实现实时控制

基于RISC-V的高主频MCU能让LED大屏显示系统实现更高的驱动频率及更高的实时性。HPM6750是先楫半导体开发的采用RISC-V 内核、具有高主频及创新总线架构的双核高性能MCU,能通过双千兆以太网透传的方案加双核加持完美解决高速的链路设计。

2022-12-22 -  应用方案 代理服务 技术支持 批量订货

HPM5300系列高性能通用RISC-V MCU

型号- HPM5300 SERIES,HPM5361,HPM5321,HPM5300,HPM5331,HPM5301

2024/8/30  - 先楫半导体  - 数据手册 代理服务 技术支持 批量订货

先楫半导体(HPMicro)HPM6000家族MCU选型指南

目录- HPM6000家族MCU   

型号- HPM6320IEP,HPM6454IAN,HPM6754IAN,HPM6450,HPM6750IAN,HPM6350,HPM6754IVM,HPM6300系列,HPM6450IAN,HPM6454IVM,HPM6320IPA,HPM6750IVM,HPM6000家族,HPM6360IPA,HPM6360IEP,HPM6364IPA,HPM6430IVM,HPM6300,HPM6400,HPM6320,HPM6364,HPM6364IEP,HPM6700,HPM6430IAN,HPM6350IPA,HPM6340,HPM6000,HPM6340IEP,HPM6360,HPM6730IAN,HPM6730IVM,HPM6350IEP,HPM6340IPA,HPM6700系列,HPM6450IVM,HPM6454,HPM6730,HPM6400系列,HPM6430,HPM6750,HPM6754

2022/9/16  - 先楫半导体  - 选型指南 代理服务 技术支持 批量订货

【IC】有动静!先楫出了颗适用机器人的国内首款内嵌ESC高性能MCU——HPM6E00

先楫半导体(HPMicro)推出的新款MCU——HPM6E00,引发了外界的广泛关注。这家成立仅四年的公司,凭借“国内首款内嵌ESC的高性能MCU”,再次证明了其在MCU领域的创新实力。

2024-07-03 -  产品 代理服务 技术支持 批量订货
展开更多

电子商城

查看更多

品牌:先楫半导体

品类:MCU

价格:

现货: 0

品牌:瑞纳捷

品类:高性能防复制加密芯片

价格:¥0.7000

现货: 1,234,500

品牌:瑞纳捷

品类:MCU

价格:¥0.5500

现货: 740,897

品牌:武汉芯源

品类:通用MCU

价格:¥8.4750

现货: 300,010

品牌:武汉芯源

品类:通用MCU

价格:¥7.0625

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥7.6275

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥4.8025

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥4.8025

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥7.6275

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥7.0625

现货: 300,000

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:RENESAS

品类:16-BIT MCU

价格:¥5.5190

现货:910,635

品牌:RENESAS

品类:MCU

价格:¥5.1500

现货:200,000

品牌:RENESAS

品类:microcontroller

价格:¥2.8532

现货:188,410

品牌:恒烁

品类:MCU

价格:¥1.0800

现货:154,600

品牌:Advanced Digital Chips

品类:MCU

价格:¥6.6000

现货:100,000

品牌:RENESAS

品类:MCU

价格:¥5.8041

现货:86,925

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥7.3800

现货:76,715

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥15.3000

现货:75,000

品牌:Advanced Digital Chips

品类:MCU

价格:¥9.0000

现货:64,841

品牌:ST

品类:MCU

价格:¥15.5600

现货:58,800

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

TFT LCD液晶显示屏/模组定制

可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。

最小起订量: 1000 提交需求>

MCU烧录/Flash烧录/CPLD烧录

可烧录IC封装SOP/MSOP/SSOP/TSOP/TSSOP/PLCC/QFP/QFN/MLP/MLF/BGA/CSP/SOT/DFN;IC包装Tray/Tube/Tape;IC厂商不限,交期1-3天。支持IC测试(FT/SLT),管装、托盘装、卷带装包装转换,IC打印标记加工。

最小起订量: 1pcs 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面