主题 : mini2440的SPI怎么用呢 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 5706
精华: 0
发帖: 119
金钱: 780 两
威望: 406 点
综合积分: 238 分
注册时间: 2009-05-05
最后登录: 2011-05-22
楼主  发表于: 2010-01-15 23:09

 mini2440的SPI怎么用呢

我看了论坛一些资料,得知linux2.6.29有内核自带的SPI驱动。按照
http://www.aiothome.net/read.php?tid=3620&page=e&#a
写的方法操作,编译出现错误。
[root@localhost linux-2.6.29]# make zImage
  CHK     include/linux/version.h
make[1]: “include/asm-arm/mach-types.h”是最新的。
  CHK     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-arm
  CALL    scripts/checksyscalls.sh
<stdin>:1097:2: warning: #warning syscall fadvise64 not implemented
<stdin>:1265:2: warning: #warning syscall migrate_pages not implemented
<stdin>:1321:2: warning: #warning syscall pselect6 not implemented
<stdin>:1325:2: warning: #warning syscall ppoll not implemented
<stdin>:1365:2: warning: #warning syscall epoll_pwait not implemented
  CHK     include/linux/compile.h
  CC      arch/arm/mach-s3c2440/mach-mini2440.o
arch/arm/mach-s3c2440/mach-mini2440.c:216: error: array type has incomplete element type
arch/arm/mach-s3c2440/mach-mini2440.c:217: error: array index in non-array initializer
arch/arm/mach-s3c2440/mach-mini2440.c:217: error: (near initialization for 's3c2410_spi0_board')
arch/arm/mach-s3c2440/mach-mini2440.c:218: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:218: error: (near initialization for 's3c2410_spi0_board')
arch/arm/mach-s3c2440/mach-mini2440.c:219: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:219: error: (near initialization for 's3c2410_spi0_board')
arch/arm/mach-s3c2440/mach-mini2440.c:220: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:220: error: (near initialization for 's3c2410_spi0_board')
arch/arm/mach-s3c2440/mach-mini2440.c:221: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:221: error: (near initialization for 's3c2410_spi0_board')
arch/arm/mach-s3c2440/mach-mini2440.c:222: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:222: error: (near initialization for 's3c2410_spi0_board')
arch/arm/mach-s3c2440/mach-mini2440.c:226: error: variable 's3c2410_spi0_platdata' has initializer but incomplete type
arch/arm/mach-s3c2440/mach-mini2440.c:227: error: unknown field 'pin_cs' specified in initializer
arch/arm/mach-s3c2440/mach-mini2440.c:227: warning: excess elements in struct initializer
arch/arm/mach-s3c2440/mach-mini2440.c:227: warning: (near initialization for 's3c2410_spi0_platdata')
arch/arm/mach-s3c2440/mach-mini2440.c:228: error: unknown field 'num_cs' specified in initializer
arch/arm/mach-s3c2440/mach-mini2440.c:228: warning: excess elements in struct initializer
arch/arm/mach-s3c2440/mach-mini2440.c:228: warning: (near initialization for 's3c2410_spi0_platdata')
arch/arm/mach-s3c2440/mach-mini2440.c:229: error: unknown field 'bus_num' specified in initializer
arch/arm/mach-s3c2440/mach-mini2440.c:229: warning: excess elements in struct initializer
arch/arm/mach-s3c2440/mach-mini2440.c:229: warning: (near initialization for 's3c2410_spi0_platdata')
arch/arm/mach-s3c2440/mach-mini2440.c: In function 'mini2440_machine_init':
arch/arm/mach-s3c2440/mach-mini2440.c:244: error: implicit declaration of function 'spi_register_board_info'
arch/arm/mach-s3c2440/mach-mini2440.c:244: warning: type defaults to 'int' in declaration of 'type name'
arch/arm/mach-s3c2440/mach-mini2440.c:244: warning: type defaults to 'int' in declaration of 'type name'
arch/arm/mach-s3c2440/mach-mini2440.c:244: error: size of array 'type name' is negative
make[1]: *** [arch/arm/mach-s3c2440/mach-mini2440.o] 错误 1
make: *** [arch/arm/mach-s3c2440] 错误 2
[root@localhost linux-2.6.29]#

请问有做过的,该怎么正确配置呢?? 哪里还需要设置?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2010-01-16 10:11
要使用spi驱动的相关结构,你需要包含头文件<linux/spi/spi.h>
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 侠客
UID: 5706
精华: 0
发帖: 119
金钱: 780 两
威望: 406 点
综合积分: 238 分
注册时间: 2009-05-05
最后登录: 2011-05-22
2楼  发表于: 2010-01-16 10:48
mach-s3c2440.rar (2 K) 下载次数:58 kasim,
按照您说的,加入了之后上面的问题没有了。不过又出现了新的错误。不知道又少了什么?
[root@localhost linux-2.6.29]# make zImage
  CHK     include/linux/version.h
make[1]: “include/asm-arm/mach-types.h”是最新的。
  CHK     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-arm
  CALL    scripts/checksyscalls.sh
<stdin>:1097:2: warning: #warning syscall fadvise64 not implemented
<stdin>:1265:2: warning: #warning syscall migrate_pages not implemented
<stdin>:1321:2: warning: #warning syscall pselect6 not implemented
<stdin>:1325:2: warning: #warning syscall ppoll not implemented
<stdin>:1365:2: warning: #warning syscall epoll_pwait not implemented
  CHK     include/linux/compile.h
  CC      arch/arm/mach-s3c2440/mach-mini2440.o
arch/arm/mach-s3c2440/mach-mini2440.c:89: error: variable 's3c2410_spi0_platdata' has initializer but incomplete type
arch/arm/mach-s3c2440/mach-mini2440.c:90: error: unknown field 'pin_cs' specified in initializer
arch/arm/mach-s3c2440/mach-mini2440.c:90: warning: excess elements in struct initializer
arch/arm/mach-s3c2440/mach-mini2440.c:90: warning: (near initialization for 's3c2410_spi0_platdata')
arch/arm/mach-s3c2440/mach-mini2440.c:91: error: unknown field 'num_cs' specified in initializer
arch/arm/mach-s3c2440/mach-mini2440.c:91: warning: excess elements in struct initializer
arch/arm/mach-s3c2440/mach-mini2440.c:91: warning: (near initialization for 's3c2410_spi0_platdata')
arch/arm/mach-s3c2440/mach-mini2440.c:92: error: unknown field 'bus_num' specified in initializer
arch/arm/mach-s3c2440/mach-mini2440.c:92: warning: excess elements in struct initializer
arch/arm/mach-s3c2440/mach-mini2440.c:92: warning: (near initialization for 's3c2410_spi0_platdata')
make[1]: *** [arch/arm/mach-s3c2440/mach-mini2440.o] 错误 1
make: *** [arch/arm/mach-s3c2440] 错误 2
[root@localhost linux-2.6.29]#
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2010-01-16 11:13
arch/arm/mach-s3c2440/mach-mini2440.c:89: error: variable 's3c2410_spi0_platdata' has initializer but incomplete type

s3c2410_spi0_platdata这个结构的定义找不到,它应该在某个头文件里。
所有的编译出错编译器都已经告诉你原因了,这需要你去一个一个解决。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 侠客
UID: 5706
精华: 0
发帖: 119
金钱: 780 两
威望: 406 点
综合积分: 238 分
注册时间: 2009-05-05
最后登录: 2011-05-22
4楼  发表于: 2010-01-16 11:19
好的,我找找看。。。谢谢kasim.
级别: 侠客
UID: 5706
精华: 0
发帖: 119
金钱: 780 两
威望: 406 点
综合积分: 238 分
注册时间: 2009-05-05
最后登录: 2011-05-22
5楼  发表于: 2010-01-16 11:20
非常感谢kasim的热情帮忙。。接下来看看该怎么用spi...
[ 此帖被cyndy在2010-01-16 15:55重新编辑 ]
级别: 侠客
UID: 5706
精华: 0
发帖: 119
金钱: 780 两
威望: 406 点
综合积分: 238 分
注册时间: 2009-05-05
最后登录: 2011-05-22
6楼  发表于: 2010-01-16 15:54
找到了。我用locate spi.h找到了一个跟2440有关的。加入后编译成功。
#include <linux/spi/spi.h>
#include <mach/spi.h>