本文主要是介绍嵌入式应用开发之spi及linux函数累积,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
应用开发之spi
- spi基础准备
- spi的驱动框架
- 主要的传数据的接口,官方手册中指定的接口函数
- spi_message_init();//初始化一个 SPI message 结构
- spi_message_add_tail();//向 SPI message 中添加一个 transfer
- spi_sync();//启动、并等待 SPI 总线处理完指定的 SPI message
- linux官网中的接口函数
- 关于spidev_test的使用
- 使用spidev_test的步骤:1. 进入到/home/guangod/qgTina/lichee/linux-4.9/tools/spi目录下,加载交叉编译环境,执行make,得到可执行文件得到 spidev_test 和 spidev_fdx两个程序
- 2. 将得到 spidev_test 和 spidev_fdx两个程序,放到开发板linux系统下
- 3. ./spidev_test -help可以根据提供操作spi总线
- 调试步骤
- 1. make kernel_menuconfig 打开驱动模块
- 2.先看下硬件的连接,确定使用第几个spi控制器
- 3. 修改设备树
- 4. 编写App操作即可,linux函数累积文件操作函数
- open函数
- write函数
- read函数
- fcntl函数
- pollwait函数
- 关于宏MKDEV
- ht7038 spi操作基础
弄Linux也有半年多的时间了,自己选择的这条路是相对曲折的,有时真的是没有时间来搞。有时则是自己过分关注一些细节,整的自己的实际项目没有什么进展。实际上是打击了自己学习的积极性。还是要推进些自己有用的项目,而不是依学习进度。
要准确判断出自己的进度,不要低估了自己,也不要高估了自己,及时调整自己的策略。
spi基础准备
spi的驱动框架
主要分为了三个层次,用户空间,内核空间和硬件。
用户空间:spi设备的具体的功能。包括具体的协议控制和数据传输工作。
内核空间:也分为了三部分;
spi控制器驱动层:对应于内核的spidev.c的spi标准驱动;适用于特定spi总线控制器的读写方法,并注册到linux内核的spi架构。此层对应的就是内核空间的设备驱动程序。
spi通用接口封装层:提供核心的api接口。对应于驱动中的spi.c文件,是内核中的原生文件。
spi控制器驱动:对应于驱动中的spi-suxi.c文件。
主要的传数据的接口,官方手册中指定的接口函数
spi_message_init();//初始化一个 SPI message 结构
spi_message_add_tail();//向 SPI message 中添加一个 transfer
spi_sync();//启动、并等待 SPI 总线处理完指定的 SPI message
linux官网中的接口函数
-
简易函数
/*** SPI同步写* @spi: 写哪个设备* @buf: 数据buffer* @len: 长度* 这个函数可以休眠** 返回值: 0-成功, 负数-失败码*/ static inline int spi_write(struct spi_device *spi, const void *buf, size_t len);/*** SPI同步读* @spi: 读哪个设备* @buf: 数据buffer* @len: 长度* 这个函数可以休眠** 返回值: 0-成功, 负数-失败码*/ static inline int
这篇关于嵌入式应用开发之spi及linux函数累积的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!