技术特征:
1.一种基于linux的spi传输方法,其特征在于,包括:
调用spi_async函数,发起spi异步传输;
获取待传输的数据,并创建spi_transfer结构体;
内核直接执行所述spi异步传输;
若所述数据大于预定字节,通过发起dma中断请求,通过dma传输方式将所述待传输的数据从内存传输到外设。
2.根据权利要求1所述的基于linux的spi传输方法,其特征在于,该方法还包括:
若所述数据不大于预定字节,通过cpu控制spi传输。
3.根据权利要求1所述的基于linux的spi传输方法,其特征在于,该方法还包括:
传输完成,在中断上半部唤醒spi。
4.根据权利要求1所述的基于linux的spi传输方法,其特征在于,所述获取待传输的数据,并创建spi_transfer结构体的方法中还包括:
将从设备的modalias字段设置为spidev,匹配spidev驱动。
5.根据权利要求1所述的基于linux的spi传输方法,其特征在于,所述获取待传输的数据,并创建spi_transfer结构体的方法中还包括:
将多个所述spi_transfer添加到message中,作为一个消息包进行传输。
6.根据权利要求5所述的基于linux的spi传输方法,其特征在于,所述内核直接执行所述spi异步传输包括:
遍历取出所述message中的所述spi_transfer结构体,根据所述spi_transfer结构体进行传输。
7.根据权利要求1所述的基于linux的spi传输方法,其特征在于,所述spi_transfer结构体包括:发送缓冲区地址、接收缓冲区地址以及传输数据的长度。
8.根据权利要求1所述的基于linux的spi传输方法,其特征在于,所述预定字节为64字节。