am335x通过gpmc总线与RAM连接,通信没有问题。但系统的读写函数
ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);
ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);
使用时,参数太少。比如我要写地址:0x10地址开始的1K数据,无法将地址和读写数据个数同事传到底层驱动。
有没有好的方法解决这个问题
Steven Liu1:
通过size_t这个参数应该就可以知道读写的数据有多大了
http://www.cnblogs.com/Blue-Moon/archive/2012/09/25/2702028.html
leo chen:
可以通过通信协议来保证
在协议中表示数据的个数
lifeng chen2:
你最后问题解决了吗?我现在也想解决这个问题
rabbit:
回复 lifeng chen2:
可以在传入的参数上自定义
lifeng chen2:
回复 rabbit:
能说的在详细一点或者添一下代码,谢谢
lifeng chen2:
回复 rabbit:
write和read的输入参数是固定的,需要写一个新的函数,然后新的函数包括地址这个参数,然后write和read去调用这个地址的传递参数?
rabbit:
回复 lifeng chen2:
传入的参数是固定的,但是大小是32位的,你可以将这32位分开利用,就可以传入需要的其他信息。也可以封装函数,总之方法挺多的,看自己的习惯。
TI中文支持网
