APM32系列的RT-Thread外设驱动适配教程(二)——外设驱动使用教程
·
下面是关于APM32系列的RT-Thread外设驱动的使用介绍,这里是对RT-Thread已经适配好的外设驱动的使用,如果还没适配的话,就需要自己编写适配RT-Thread的APM32的外设驱动代码了。
1 前提要求
要知道怎么使用RT-Thread外设驱动,需要了解RTT开发的ENV环境。关于RT-Thread的ENV环境使用,这里不多介绍,大家直接去RTT的官网看使用文档即可。
-
学会如何使用 ENV 工具,参考:RT-Thread env 工具用户手册
2 如何使用更多的板载资源
开发板上一般有很多板载资源,如 Flash、SD卡、以太网等,但是 BSP 工程默认没有开启这些外设驱动。RT-Thread 提供了 ENV 工具来开启或关闭 BSP 的外设驱动。
下面以在 APM32F407-EVAL 开发板上开启 SPI Flash 驱动为例,一步步的展示如何使用 ENV 工具对 BSP 进行配置。
2.1 打开配置工具
在 APM32F407-EVAL 开发板的 BSP 目录下打开 menuconfig 配置界面。

打开的配置工具界面如下所示:

2.2 进入硬件驱动配置菜单
在硬件配置菜单里有三个选项,分别是 板载外设配置菜单、片上外设配置菜单和扩展模块配置菜单,使用下键切换到片上外设,按回车键进入配置菜单。

2.3 在板载外设配置菜单里开启 SPI Flash 选项

2.4 修改SFUD驱动框架相关参数
我们使能了 SPI Flash驱动之后,就会默认开启 SFUD 驱动框架,不过默认的频率太高了,我们需要相应改小一些,不然无法和SPI Flash芯片进行读写操作。修改如下图所示:

2.5 保存退出
然后右移光标选中 Save 按回车键保存,然后按 Esc 键退出配置工具。

2.6 更新软件包
输入命令 pkgs --update 使软件包配置生效。
本次因为没有使用到在线软件包,所以不用输入命令,可忽略该步骤,但是如果使用到了在线软件包,那么必须要输入该命令。

2.7 生成 MDK5 工程
输入命令 scons --target=mdk5 -s 重新生成 MDK5 的工程,或者不输入 -s 参数也可以。

2.8 编译下载
打开生成的 MDK5 工程文件,编译并下载。

2.9 查看运行结果

上面介绍的是开启板载的外设资源,如果我们只是想要开启片上外设驱动,那么在 on-chip Preipheral Drivers 配置菜单,开启对应的片上外设即可。
3 如何新增新的APM32外设驱动代码
要了解我们如何新增新APM32的RT-Thread外设驱动,我们需要去了解下RTT的I/O设备管理接口,它的分层框架,这样我们才能了解我们编写的驱动需要适配哪些函数。
详细的RTT设备驱动模型可以看看官方的文档介绍。
3.1 RT-Thread的I/O设备管理接口
RT-Thread提供了一套I/O设备框架,如下图所示:

RT-Thread的设备框架一共分为3层:I/O设备管理层、设备驱动框架层、设备驱动层。
-
I/O设备管理层:实现对设备驱动程序的封装,对应用程序提供标准的接口访问底层硬件。
-
设备驱动框架层:对同类设备驱动相同部分的抽象。将不同厂家的同类硬件设备驱动中相同的部分抽取出来,而不同的部分则留出接口,由设备驱动层去实现。
-
设备驱动层:真正去操作硬件的程序,这一层负责创建和注册I/O设备。MCU厂商要接入RT-Thread的设备框架,就要去实现设备驱动层的代码。
3.2 应用程序如何访问MCU硬件外设
应用程序通过 I/O 设备管理接口来访问硬件设备,当设备驱动实现后,应用程序就可以访问该硬件。I/O 设备管理接口与 I/O 设备的操作方法的映射关系下图所示:

3.3 关于RT-Thread的APM32外设驱动编写流程
驱动框架的源码在 rt-thread/components/drivers 文件夹中。在该目录下都可以找到对应设备的注册函数和 ops 结构体。而我们要编写驱动,其实就是要实现 ops 结构体的函数。

如果没有对应芯片的外设驱动才需要我们自己去写,但是官方已经帮我们适配好了大部分外设驱动,基本不需要我们自己写,我们在项目开发中直接使用现成的即可。













。
---------------------
作者:luobeihai
链接:https://bbs.21ic.com/icview-3501441-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)