这两天在移植ADC驱动,我用的是TQ3358开发板,在 drivers/staging/iio/adc目录下添加了ti_adc.c文件(附件是.txt格式),编译之后发现
该文件好多地方报错,
rivers/staging/iio/adc/ti_adc.c: In function 'tiadc_poll_handler':
drivers/staging/iio/adc/ti_adc.c:195: error: dereferencing pointer to incomplete type
drivers/staging/iio/adc/ti_adc.c:211: error: dereferencing pointer to incomplete type
drivers/staging/iio/adc/ti_adc.c: In function 'tiadc_buffer_preenable':
drivers/staging/iio/adc/ti_adc.c:225: error: dereferencing pointer to incomplete type
drivers/staging/iio/adc/ti_adc.c: In function 'tiadc_buffer_postenable':
drivers/staging/iio/adc/ti_adc.c:258: error: dereferencing pointer to incomplete type
drivers/staging/iio/adc/ti_adc.c:258: error: dereferencing pointer to incomplete type
drivers/staging/iio/adc/ti_adc.c: At top level:
drivers/staging/iio/adc/ti_adc.c:288: error: variable 'tiadc_swring_setup_ops' has initializer but incomplete type
drivers/staging/iio/adc/ti_adc.c:289: error: unknown field 'preenable' specified in initializer
。。。。。
根据这些错误我对照了一下drivers/staging/iio/buffer_generic.h里面的结构体定义,发现这些报错的结构体在该文件中都已定义,这让我有点想不通
在ti_adc.c文件中已经有#include "../buffer_generic.h",为什么好像这些结构体没定义似的呢?
此问题我也遇到,不过已经解决,make menuconfig 检查配置项是否配置正确。我的就是因为少配置了才报以上错误Device Drivers --->
[*] Industrial I/O support --->
[*] Enable buffer support within IIO
<*> Industrial I/O lock free software ring
Analog to digital converters --->
<*> TI's AM335X ADC driver
Device Drivers --->
Multifunction device drivers --->
<M> TI ADC / Touch Screen chip support