tiny6410开发板linux系统下的SPI驱动和测试
来源:互联网 发布:怎样合理网络理财 编辑:程序博客网 时间:2024/04/30 03:12
Step0:配置内核文件加入spi支持.一定要加上”User mode SPI driver support”这个支持,如图.
Step1:打开arch/arm/mach_s3c64XX/mach_mini6410.c
增加如下代码:
01
static
void
cs_set_level(unsigned line_id,
int
lvl) {
02
gpio_direction_output(line_id, lvl);
03
}
04
static
struct
s3c64xx_spi_csinfo s3c64xx_spi0_csinfo = {
05
.fb_delay=100,
06
.line=S3C64XX_GPC(3),
07
.set_level=cs_set_level,
08
};
09
static
struct
spi_board_info s3c6410_spi0_board[] = {
10
[0] = {
11
.modalias =
"spidev"
,
12
.bus_num= 0,
13
.chip_select= 0,
14
.irq =IRQ_SPI0,
15
.max_speed_hz= 500*1000,
16
.mode=SPI_MODE_0,
17
.controller_data=&s3c64xx_spi0_csinfo,
18
},
19
};
20
static
struct
s3c64xx_spi_csinfo s3c64xx_spi1_csinfo = {
21
.fb_delay=100,
22
.line=S3C64XX_GPC(7),
23
.set_level=cs_set_level,
24
};
25
static
struct
spi_board_info s3c6410_spi1_board[] = {
26
[0] = {
27
.modalias =
"spidev"
,
28
.bus_num= 1,
29
.chip_select= 0,
30
.irq = IRQ_SPI1,
31
.max_speed_hz = 500*1000,
32
.mode=SPI_MODE_0,
33
.controller_data=&s3c64xx_spi1_csinfo,
34
},
35
};
找到mini6410_devices这个结构,加下面两行,
&s3c64xx_device_spi0,
&s3c64xx_device_spi1,
加入到mini6410_devices结构中,就可以将设备s3c64xx-spi.0和s3c64xx-spi.1进行初始化,
在函数 mini6410_machine_init中添加:
1
s3c64xx_spi_set_info(0,0,2);
2
s3c64xx_spi_set_info(1,0,2);
3
spi_register_board_info(s3c6410_spi0_board, ARRAY_SIZE(s3c6410_spi0_board));
4
spi_register_board_info(s3c6410_spi1_board, ARRAY_SIZE(s3c6410_spi1_board));
mach_mini6410.c头文件里面添加头文件
#include <linux/spi/spidev.h>
#include <linux/spi/spi.h>
#include <plat/s3c64xx-spi.h>
Step2:
在此目录中找到:Makefile,打开
修改成
# device support
obj-y += dev-uart.o
obj-y += dev-audio.o
obj-y += dev-spi.o
现在成功编译make zImage
给板子重新刷上系统,就可以在dev下看到spidev0.0,spidev1.0了
Step3:测试spi口
使用Linux源码包下的linux/Documentation/spi/spidev_test.c 程序来检测
# gedit spidev_test.c 修改 spidev1.1 为 spidev1.0
# arm-linux-gcc spidev_test.c -o spi
将编译好的程序下到板子上
用一根跳线将SCON接口的13针脚和14针脚连接
01
[root@FriendlyARM spitest]# ./spi
02
spi mode: 0
03
bits per word: 8
04
max speed: 496268 Hz (496 KHz)
05
06
FF FF FF FF FF FF
07
40 00 00 00 00 95
08
FF FF FF FF FF FF
09
FF FF FF FF FF FF
10
FF FF FF FF FF FF
11
DE AD BE EF BA AD
12
F0 0D
OK.
转自:http://junzhu.info/2012/08/25/651.html
- tiny6410开发板linux系统下的SPI驱动和测试
- linux下的spi驱动及测试程序移植开发
- Linux下SPI驱动的移植和应用程序的测试
- Linux下SPI驱动的移植和应用程序的测试
- Linux下SPI驱动的移植和应用程序的测试
- Linux下spi驱动开发
- Linux下spi驱动开发
- linux下SPI驱动开发
- Linux下spi驱动开发
- Linux下spi驱动开发
- Linux下spi驱动开发
- linux下spi驱动开发
- Linux下spi驱动开发
- Linux下spi驱动开发
- Linux下spi驱动开发
- Linux下spi驱动开发
- Linux下spi驱动开发
- 基于S3C2440的SPI驱动的开发和测试
- 实用SQL语句
- 翻译电文
- 常用SQL
- Java学习笔记-迭代器(Iterator)
- 制造业ERP系统核心功能
- tiny6410开发板linux系统下的SPI驱动和测试
- LinuxC/C++编程基础(28) “心跳”信息的处理
- 单选和复选框的小例子
- 一路走来,带着微笑,带着汗水
- 嗯!如此统计文章字符类型和个数
- recommendation system overview
- 设计模式9:装饰模式【结构型】
- jsp中获取当前页的url & response.sendRedirect(url)参数过长及乱码问题
- 需要求三个长方体的体积,请编写一个基于对象的程序。