- 论坛徽章:
- 0
|
各位大侠,小弟初学spi驱动,刚开始就遇到了问题,请各位大侠指教:
内核版本 2.6.30
1).在linux-2.6.30.4/arch/arm/plat-s3c/include/plat/devs.h下声明数组
extern struct spi_board_info s3c2410_spi_board_0[];
2)在linux-2.6.30.4/arch/arm/plat-s3c24xx/devs.c定义数组:
static struct spi_board_info s3c2410_spi_board_0[] = {
430 [0]={
431 .modalias="avr",
432 .platform_data=NULL,
433 .mode=SPI_MODE_0,
434 .chip_select=0,
435 .bus_num=0,
436 .max_speed_hz=100000,
437 },
438 };
3)然后在linux-2.6.30.4/arch/arm/mach-s3c2440/ mach-tq2440.c用到上数组,已经包含了头文件
#include <plat/devs.h>
然后在本文件下面函数里用到此数组:
spi_register_board_info(s3c2410_spi_board_0, ARRAY_SIZE(s3c2410_spi_board_0));
编译报错:
arch/arm/mach-s3c2440/mach-tq2440.c:367: error: invalid application of 'sizeof' to incomplete type 'struct spi_board_info[]'
如果直接在linux-2.6.30.4/arch/arm/mach-s3c2440/ mach-tq2440.c里定义数组,编译就不会报错,并且以上哥文件均包含了spi_board_info结构体的定义头文件。
小弟猜测应该是语法错误,请各位指教,谢谢! |
|