[DM8168]Linux下SPI驱动测试
1、内核自带的SPI相关的驱动文件
项目中有CPU与FPGA进行通信,用到SPI接口:
SPI头文件在:
linux-kernel/include/linux/spi.h
SPI实现在:
linux-kernel/drivers/spi/spi.c omap2_mcspi.c spidev.c
DVS8168开发板在以下文件中初始化SPI:
linux-kernel/arch/arm/mach-omap2/board-ti8168evm.c
上述文件中有:
const struct flash_platform_data ti816x_spi_flash =
{
.type = "w25x32",
.name = "spi_flash",
.parts = ti816x_spi_partitions,
.nr_parts = ARRAY_SIZE(ti816x_spi_partitions),
}; struct spi_board_info __initdata ti816x_spi_slave_info[] =
{
{
.modalias = "m25p80",
.platform_data = &ti816x_spi_flash,
.irq = -,
.max_speed_hz = ,
.bus_num = ,
.chip_select = ,
},
}; static void __init ti816x_spi_init(void)
{
spi_register_board_info(ti816x_spi_slave_info,
ARRAY_SIZE(ti816x_spi_slave_info));
}
修改board-ti8168evm.c 初始化我们自己的SPI设备,如下:
// Dragon add
struct spi_board_info __initdata fpga_spi_slave_info[] = {
{
.modalias = "spidev",
.max_speed_hz = , // 48 Mbps
.bus_num = ,
.chip_select = ,
.mode = SPI_MODE_1,
},
}; // Dragon modified
static void __init ti816x_spi_init(void)
{
spi_register_board_info(fpga_spi_slave_info,
ARRAY_SIZE(fpga_spi_slave_info));
}
2、重新编译内核,同时选择生成spi设备驱动
$ make menuconfig CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm
(1)Device drivers -> Memory tech... -> Self-contained --> 取消 support most spi Flash
影响:取消文件(/drivers/mtd/devices/mtd_m25p80.c)
(2)D-evice drivers --> SPI Support --> 勾选 Utilities & Mcspi driver & User mode SPI
影响:加入文件(/drivers/spi/spi_bitbang.c /drivers/spi/omap2_mcspi.c /drivers/spi/spidev.c)
linux-kenel/drivers/spidev.c 实现用户态spi设备驱动的功能
3、编译内核自带spi应用程序,验证SPI功能(注意MISO要与MOSI相连,以实现回环测试)如下:
linux-kenel\Documentation\spi\spidev_test.c
示波器截图,黄色为SCLK,蓝色为MOSI

发送数据与接收数据相同,则说明SPI通信成功!

[DM8168]Linux下SPI驱动测试的更多相关文章
- RedHat Linux 下安装、测试摄像头
RedHat Linux 下安装.测试摄像头(全文见附件) 随着视频电话的迅速发展我相信大家一定有过在Windows 下安装摄像头的经历,然而大多数 都不支持Linux .我现以罗技摄像头为例 ...
- Linux 下wifi 驱动开发(四)—— USB接口WiFi驱动浅析
源: Linux 下wifi 驱动开发(四)—— USB接口WiFi驱动浅析
- 【驱动】linux下I2C驱动架构全面分析
I2C 概述 I2C是philips提出的外设总线. I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL ,使用SCL,SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线. ...
- linux下I2C驱动架构全面分析【转】
本文转载自:http://blog.csdn.net/wangpengqi/article/details/17711165 I2C 概述 I2C是philips提出的外设总线. I2C只有两条线,一 ...
- linux驱动基础系列--Linux下Spi接口Wifi驱动分析
前言 本文纯粹的纸上谈兵,我并未在实际开发过程中遇到需要编写或调试这类驱动的时候,本文仅仅是根据源码分析后的记录!基于内核版本:2.6.35.6 .主要是想对spi接口的wifi驱动框架有一个整体的把 ...
- Am335x SPI 驱动测试
内核版本:3.14.65 CPU:Am335x 1.编译内核: make menuconfig Device Drivers -> <*>SPI support -> < ...
- Linux 下wifi 驱动开发(三)—— SDIO接口WiFi驱动浅析
SDIO-Wifi模块是基于SDIO接口的符合wifi无线网络标准的嵌入式模块,内置无线网络协议IEEE802.11协议栈以及TCP/IP协议栈.可以实现用户主平台数据通过SDIO口到无线网络之间的转 ...
- Linux下GPIO驱动
编写驱动程序,首先要了解是什么类型的设备.linux下的设备分为三类,分别为:字符设备,块设备和网络设备.字符设备类型是根据是否以字符流为数据的交换方式,大部分设备都是字符设备,如键盘,串口等,块设备 ...
- linux 下网站压力测试工具webbench
一直在用webbench ,这个linux下的网站压力测试工具.整理下. 笔记本装的ubuntu,其他linux系统也差不多. webbench 需要先安装 ctags,一个vim的阅读插件,可以直接 ...
随机推荐
- 在matlab中查看变量的数据类型
>> x = x = >> class(x) ans = double
- SQL随手记
数据库改名 想要达到的效果,类似于将一个文件[复制粘贴重命名]. 0.首先得断开连接,复制一份备份.然后再连接上,进行下面的操作. 1.在树形上,选中要改名的数据库,右键重命名. 2.还是它,右键,属 ...
- 配置intellij idea中的欢迎页而不使用默认的index.jsp
在web.xml中添加 <welcome-file-list> <welcome-file>abc.jsp</welcome-file> </welcome- ...
- macOs 使用Homebrew升级到MySQL 8系列之后,php无法连接解决方法
当前时间2018-9-28 在使用brew install mysql 默认安装为 MySQL 8,但是使用php连接到数据库之后,出现了这种错误 (Unexpected server respose ...
- react native "Unable to resolve module `AccessibilityInfo`
error: bundling failed: "Unable to resolve module `AccessibilityInfo` from `/Users/apple/Websto ...
- Lo、Hi、HiByte、LoWord、HiWord、MakeWord、MakeLong、Int64Rec
本话题会涉及到: Lo.Hi.HiByte.LoWord.HiWord.MakeWord.MakeLong.Int64Rec 譬如有一个 Cardinal 类型的整数: 1144201745其十六进制 ...
- rootfls(根操作系统)
rootfs根文件系统,linux下的任何目录都是rootfs的一个路径 Files 文件 Directory 目录 FHS(文件层级标准)规定了linux发行标准,也就是一些固定的文件存储 文件 ...
- uniqueidentifier数据类型转换
cast(id as varchar(36))
- 17-比赛1 F - 较小元素 Weak in the Middle (set)
Seg-El has last chance to make the final changes in order to prevent the destruction of Krypton. He ...
- IDA 对 SO 的逆向
ApkTool对apk进行解包,在解包后的lib目录中找到so文件 so文件大概有以下几种 armeabi: 第5代.第6代的ARM处理器,早期的手机用的比较多. armeabiv-v7a:第7代及以 ...