c语言spi测试代码,spi_test.c的spi跟踪(spi 数据传送流程)

晚上跟踪 了下spi_test.c,数据的传送流程大概是这样的:

transfer()(spidev_test.c)-->

ioctl()(spidev_test.c)-->

spidev_ioctl()(spidev_test.c)--->

spidev_message()(spidev.c)--->

spidev_sync()(spidev.c)--->

spi_async(spi.h)--通过调用

spi->master->transfer(spi ,message)

调用--->spi_bitbang_transfer()(spi_bitbang.c)--->

bitbang_work()(spi_bitbang.c)--

通过status=bitbang->txrx_buf()

调用---->sep4020_spi_txrx()具体的传数据,其实是 sep4020_spi_txrx()(spi_sep4020.c)与sep4020_spi_txrx()(spi_sep4020.c)共同实现的,通过硬件上的中断触发,完成了数据的传送

spidev_message()函数:

1:把用户空间的数据传进buf;

2:通过spidev_sync()函数一级级调用,来传输数据

3:把buf中的数据在送到用户空间中,通过终端显示

以下是代码运行a.out跟踪代码

# mount all...........

mount: mounting none on /proc/bus/usb failed: No such file or directory

# Starting mdev.........

starting pid 358, tty '': '-/bin/sh'

hwclock: can't open '/dev/misc/rtc': No such file or directory

mkdir: cannot create directory '/var/run': File exists

/ # ./a.out

after the open-----------------------------------

we have enter the  iocontl*****************

we have enter the  iocontl*****************

<7>spidev spi0.0: before the setup---------1-------

<7>spidev spi0.0: ---********we enter the sep4020_soi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值