全志R16平台SPI0接口的验证(分色排版)
来源:互联网 发布:淘宝卖五金没销量 编辑:程序博客网 时间:2024/05/16 02:31
全志R16平台SPI0接口的验证
2017/10/20 14:20
版本:V1.0
1、确定driver的name为spidev:
Q:\r16_tinav2.1\spi_csdn_tinav2.1\lichee\linux-3.4\drivers\spi\spidev.c
static struct spi_driver spidev_spi_driver = {
.driver = {
.name ="spidev",
.owner = THIS_MODULE,
},
.probe = spidev_probe,
.remove = __devexit_p(spidev_remove),
/* NOTE: suspend/resume methods are not necessary here.
* We don't do anything except pass the requests to/from
* the underlying controller. The refrigerator handles
* most issues; the controller driver handles the rest.
*/
};
2、打开spi0,定义spi_dev_num的数量大于1,定义spi_board0的modalias为spidev(必须和驱动保持一致):
Q:\r16_tinav2.1\spi_csdn_tinav2.1\target\allwinner\astar-parrot\configs\sys_config.fex
;----------------------------------------------------------------------------------
;SPI controller configuration
;spi_used = SPIx enable
;spi_cs_bitmap = SPI bit mapping
;----------------------------------------------------------------------------------
[spi0]
spi_used = 1
spi_cs_bitmap = 1
spi_mosi = port:PC00<3><default><default><default>
spi_miso = port:PC01<3><default><default><default>
spi_sclk = port:PC02<3><default><default><default>
spi_cs0 = port:PC03<3><1><default><default>
[spi1]
spi_used = 0
spi_cs_bitmap = 1
spi_cs0 = port:PA00<2><1><default><default>
spi_sclk = port:PA01<2><default><default><default>
spi_mosi = port:PA02<2><default><default><default>
spi_miso = port:PA03<2><default><default><default>
;----------------------------------------------------------------------------------
;SPI device configuration
;spi_dev_num: number of spi devices
;----------------------------------------------------------------------------------
[spi_devices]
spi_dev_num = 1
;----------------------------------------------------------------------------------
;[spi_board0] spi device configuration
;modalias = spi device name
;sflash_size = spi flash size, optional, if spi_board0 is nor flash , carefully
;max_speed_hz = max transfer speed
;bus_num = bus ID
;chip_select = chip select, 0,1
;mode = SPI transfer mode
;----------------------------------------------------------------------------------
[spi_board0]
;modalias = "at25df641"
modalias = "spidev"
sflash_size = 32
max_speed_hz = 50000000
bus_num = 0
chip_select = 0
mode = 0
3、原始编译:
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1$ tar zxvf r16_tinav2.1_csdn_20170901_1040.tar.gz
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1$
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1$ mv tina spi_csdn_tinav2.1
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1$
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1$ cd spi_csdn_tinav2.1/
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/spi_csdn_tinav2.1$
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/spi_csdn_tinav2.1$ source build/envsetup.sh
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/spi_csdn_tinav2.1$ lunch
30. astar_parrot-tina
Which would you like?30
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/spi_csdn_tinav2.1$ make -j12
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/spi_csdn_tinav2.1$ pack -d
刷机之后:
root@TinaLinux:/#
root@TinaLinux:/# find . -name spi*
./proc/irq/97/spi0
./sys/bus/spi
./sys/bus/spi/devices/spi0.0
./sys/bus/platform/devices/spi.0
./sys/bus/platform/drivers/spi
./sys/bus/platform/drivers/spi/spi.0
./sys/devices/platform/spi.0
./sys/devices/platform/spi.0/spi_master
./sys/devices/platform/spi.0/spi_master/spi0
./sys/devices/platform/spi.0/spi_master/spi0/spi0.0
./sys/class/spi_master
./sys/class/spi_master/spi0
./sys/kernel/debug/clk/hosc/pll_periph/pll_periphahb1/ahb1/spinlock
./sys/kernel/debug/clk/hosc/pll_periph/spi0
./sys/kernel/debug/clk/hosc/spi1
root@TinaLinux:/#
4、在内核中打开SPI(生成设备节点/dev/spidev0.0):
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/spi_csdn_tinav2.1$ make kernel_menuconfig
Device Drivers --->
[*] SPI support --->
< > User mode SPI device driver support
修改为:
<*> User mode SPI device driver support
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/spi_csdn_tinav2.1$ make -j12
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/spi_csdn_tinav2.1$ pack -d
root@TinaLinux:/# find . -name spi*
./dev/spidev0.0
./proc/irq/97/spi0
./sys/bus/spi
./sys/bus/spi/devices/spi0.0
./sys/bus/spi/drivers/spidev
./sys/bus/spi/drivers/spidev/spi0.0
./sys/bus/platform/devices/spi.0
./sys/bus/platform/drivers/spi
./sys/bus/platform/drivers/spi/spi.0
./sys/devices/platform/spi.0
./sys/devices/platform/spi.0/spi_master
./sys/devices/platform/spi.0/spi_master/spi0
./sys/devices/platform/spi.0/spi_master/spi0/spi0.0
./sys/devices/platform/spi.0/spi_master/spi0/spi0.0/spidev
./sys/devices/platform/spi.0/spi_master/spi0/spi0.0/spidev/spidev0.0
./sys/class/spi_master
./sys/class/spi_master/spi0
./sys/class/spidev
./sys/class/spidev/spidev0.0
./sys/kernel/debug/clk/hosc/pll_periph/pll_periphahb1/ahb1/spinlock
./sys/kernel/debug/clk/hosc/pll_periph/spi0
./sys/kernel/debug/clk/hosc/spi1
./sys/module/spidev
root@TinaLinux:/#
root@TinaLinux:/#
5、增加SPI的测试验证程序(spidev_test.c):
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/spi_csdn_tinav2.1$
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/spi_csdn_tinav2.1$ find . -name spidev_test.c
./lichee/linux-3.4/Documentation/spi/spidev_test.c
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/spi_csdn_tinav2.1$
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/spi_csdn_tinav2.1$ find . -name spi*.c
./out/astar-parrot/compile_dir/host/u-boot-2014.10/drivers/mtd/spi/spi_spl_load.c
./out/astar-parrot/compile_dir/host/u-boot-2014.10/drivers/spi/spi.c
./out/astar-parrot/compile_dir/host/u-boot-2014.10/arch/powerpc/cpu/mpc8260/spi.c
./out/astar-parrot/compile_dir/host/u-boot-2014.10/arch/powerpc/cpu/mpc5xx/spi.c
./out/astar-parrot/compile_dir/host/u-boot-2014.10/arch/powerpc/cpu/mpc8xx/spi.c
./out/astar-parrot/compile_dir/host/u-boot-2014.10/board/calao/sbc35_a9g20/spi.c
./out/astar-parrot/compile_dir/host/u-boot-2014.10/board/calao/tny_a9260/spi.c
./out/astar-parrot/compile_dir/host/u-boot-2014.10/board/renesas/sh7752evb/spi-boot.c
./out/astar-parrot/compile_dir/host/u-boot-2014.10/board/renesas/sh7757lcr/spi-boot.c
./out/astar-parrot/compile_dir/host/u-boot-2014.10/board/renesas/sh7753evb/spi-boot.c
./out/astar-parrot/compile_dir/host/u-boot-2014.10/board/emk/top9000/spi.c
./package/kernel/spi-gpio-custom/src/spi-gpio-custom.c
./lichee/linux-3.4/sound/soc/pxa/spitz.c
./lichee/linux-3.4/kernel/spinlock.c
./lichee/linux-3.4/lib/spinlock_debug.c
./lichee/linux-3.4/drivers/mtd/nand/spia.c
./lichee/linux-3.4/drivers/staging/rts_pstor/spi.c
./lichee/linux-3.4/drivers/spi/spi-pl022.c
./lichee/linux-3.4/drivers/spi/spi-sh-sci.c
./lichee/linux-3.4/drivers/spi/spi-sunxi.c
./lichee/linux-3.4/drivers/spi/spi-dw-pci.c
./lichee/linux-3.4/drivers/spi/spi-pxa2xx-pci.c
./lichee/linux-3.4/drivers/spi/spi-atmel.c
./lichee/linux-3.4/drivers/spi/spi-bfin5xx.c
./lichee/linux-3.4/drivers/spi/spi-xilinx.c
./lichee/linux-3.4/drivers/spi/spi-dw-mmio.c
./lichee/linux-3.4/drivers/spi/spi-au1550.c
./lichee/linux-3.4/drivers/spi/spi-ep93xx.c
./lichee/linux-3.4/drivers/spi/spi-mpc52xx-psc.c
./lichee/linux-3.4/drivers/spi/spi-topcliff-pch.c
./lichee/linux-3.4/drivers/spi/spidev.c
./lichee/linux-3.4/drivers/spi/spidev - ??.c
./lichee/linux-3.4/drivers/spi/spi-omap-uwire.c
./lichee/linux-3.4/drivers/spi/spi-mpc52xx.c
./lichee/linux-3.4/drivers/spi/spi-imx.c
./lichee/linux-3.4/drivers/spi/spi-fsl-lib.c
./lichee/linux-3.4/drivers/spi/spi-omap-100k.c
./lichee/linux-3.4/drivers/spi/spi-tegra.c
./lichee/linux-3.4/drivers/spi/spi-nuc900.c
./lichee/linux-3.4/drivers/spi/spi-sh.c
./lichee/linux-3.4/drivers/spi/spi-omap2-mcspi.c
./lichee/linux-3.4/drivers/spi/spi-pxa2xx.c
./lichee/linux-3.4/drivers/spi/spi-gpio.c
./lichee/linux-3.4/drivers/spi/spi-txx9.c
./lichee/linux-3.4/drivers/spi/spi-ath79.c
./lichee/linux-3.4/drivers/spi/spi-sh-hspi.c
./lichee/linux-3.4/drivers/spi/spi-dw.c
./lichee/linux-3.4/drivers/spi/spi-oc-tiny.c
./lichee/linux-3.4/drivers/spi/spi-butterfly.c
./lichee/linux-3.4/drivers/spi/spi-orion.c
./lichee/linux-3.4/drivers/spi/spi-sh-msiof.c
./lichee/linux-3.4/drivers/spi/spi-s3c64xx.c
./lichee/linux-3.4/drivers/spi/spi-bfin-sport.c
./lichee/linux-3.4/drivers/spi/spi-fsl-spi.c
./lichee/linux-3.4/drivers/spi/spi-tle62x0.c
./lichee/linux-3.4/drivers/spi/spi-bcm63xx.c
./lichee/linux-3.4/drivers/spi/spi-coldfire-qspi.c
./lichee/linux-3.4/drivers/spi/spi-dw-mid.c
./lichee/linux-3.4/drivers/spi/spi-stmp.c
./lichee/linux-3.4/drivers/spi/spi-ppc4xx.c
./lichee/linux-3.4/drivers/spi/spi-lm70llp.c
./lichee/linux-3.4/drivers/spi/spi-ti-ssp.c
./lichee/linux-3.4/drivers/spi/spi-altera.c
./lichee/linux-3.4/drivers/spi/spi-rspi.c
./lichee/linux-3.4/drivers/spi/spi.c
./lichee/linux-3.4/drivers/spi/spi-bitbang.c
./lichee/linux-3.4/drivers/spi/spi-mpc512x-psc.c
./lichee/linux-3.4/drivers/spi/spi-s3c24xx.c
./lichee/linux-3.4/drivers/spi/spi-sirf.c
./lichee/linux-3.4/drivers/spi/spi-fsl-espi.c
./lichee/linux-3.4/drivers/spi/spi-davinci.c
./lichee/linux-3.4/drivers/net/phy/spi_ks8995.c
./lichee/linux-3.4/drivers/net/ethernet/toshiba/spider_net.c
./lichee/linux-3.4/drivers/net/ethernet/toshiba/spider_net_ethtool.c
./lichee/linux-3.4/drivers/net/wireless/wl1251/spi.c
./lichee/linux-3.4/drivers/net/wireless/wl12xx/spi.c
./lichee/linux-3.4/drivers/net/wireless/esp8089/spi_sif_esp.c
./lichee/linux-3.4/Documentation/spi/spidev_test.c
./lichee/linux-3.4/Documentation/spi/spidev_fdx.c
./lichee/linux-3.4/arch/s390/lib/spinlock.c
./lichee/linux-3.4/arch/x86/xen/spinlock.c
./lichee/linux-3.4/arch/powerpc/platforms/cell/spider-pic.c
./lichee/linux-3.4/arch/powerpc/platforms/cell/spider-pci.c
./lichee/linux-3.4/arch/arm/mach-pxa/spitz.c
./lichee/linux-3.4/arch/arm/mach-pxa/spitz_pm.c
./lichee/linux-3.4/arch/arm/mach-u300/spi.c
./lichee/linux-3.4/arch/mips/kernel/spinlock_test.c
./lichee/linux-3.4/arch/mips/txx9/generic/spi_eeprom.c
./lichee/linux-3.4/arch/tile/lib/spinlock_32.c
./lichee/linux-3.4/arch/tile/lib/spinlock_64.c
./lichee/brandy/u-boot-2011.09/drivers/mtd/spi/spi_flash.c
./lichee/brandy/u-boot-2011.09/arch/powerpc/cpu/mpc8260/spi.c
./lichee/brandy/u-boot-2011.09/arch/powerpc/cpu/mpc5xx/spi.c
./lichee/brandy/u-boot-2011.09/arch/powerpc/cpu/mpc8xx/spi.c
./lichee/brandy/u-boot-2011.09/arch/arm/cpu/armv7/sun8iw5/spinor/spi_hal.c
./lichee/brandy/u-boot-2011.09/arch/arm/cpu/armv7/sun8iw8/spinor/spi_hal.c
./lichee/brandy/u-boot-2011.09/arch/arm/cpu/arm720t/lpc2292/spi.c
./lichee/brandy/u-boot-2011.09/board/calao/sbc35_a9g20/spi.c
./lichee/brandy/u-boot-2011.09/board/calao/tny_a9260/spi.c
./lichee/brandy/u-boot-2011.09/board/renesas/sh7757lcr/spi-boot.c
./lichee/brandy/u-boot-2011.09/board/emk/top9000/spi.c
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/spi_csdn_tinav2.1$
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/spi_csdn_tinav2.1$
请严重注意:测试应用程序的名字不能叫:spidev_test。感觉是tinav2.1的SDK自动过滤掉了spidev_test这个应用程序名!
不过叫spidev_test0还是可以的!^_
(应用程序的写法请参考:W:\spi_csdn_tinav2.1\package\allwinner\cameratest。并做响应的修改!)
W:\spi_csdn_tinav2.1\package\allwinner\spidev_test0\Makefile
W:\spi_csdn_tinav2.1\package\allwinner\spidev_test0\src\Makefile
(spidev_test0.c这个就是lichee/linux-3.4/Documentation/spi/spidev_test.c,不过需要根据实际修改设备节点!)
默认为:static const char *device = "/dev/spidev1.1";
请改为:static const char *device = "/dev/spidev0.0";
W:\spi_csdn_tinav2.1\package\allwinner\spidev_test0\src\spidev_test0.c
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/spi_csdn_tinav2.1$ make menuconfig
Allwinner --->
< > spidev_test0.................... spidev_test0 just test the SPI interface (NEW)
修改为:
<*> spidev_test0.................... spidev_test0 just test the SPI interface
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/spi_csdn_tinav2.1$ make -j12
rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/spi_csdn_tinav2.1$ pack -d
开发板:SC3817R。
请将开发板上的U8引脚上的第2脚(SPI0-MISO)和第5脚(SPI0-MOSI)通过1k欧姆的电阻连接在一起!(不建议直连,阻值可以根据实际情况灵活决定!)
[ 15.644254] sunxi_i2c_do_xfer()985 - [i2c0] incomplete xfer (status: 0x20, dev addr: 0x5d)
[ 15.656389] xt_time: kernel timezone is -0000
[ 16.569503] android_usb gadget: high-speed config #1: android
BusyBox v1.24.1 () built-in shell (ash)
_____ _ __ _
|_ _||_| ___ _ _ | | |_| ___ _ _ _ _
| | _ | || | | |__ | || || | ||_'_|
| | | || | || _ | |_____||_||_|_||___||_,_|
|_| |_||_|_||_|_| Tina is Based on OpenWrt!
----------------------------------------------
Tina Linux (Neptune, 593A1793)
----------------------------------------------
root@TinaLinux:/#
root@TinaLinux:/#
root@TinaLinux:/#
root@TinaLinux:/#
root@TinaLinux:/#
root@TinaLinux:/# spidev_test0
spi mode: 0
bits per word: 8
max speed: 500000 Hz (500 KHz)
FF FF FF FF FF FF
40 00 00 00 00 95
FF FF FF FF FF FF
FF FF FF FF FF FF
FF FF FF FF FF FF
DE AD BE EF BA AD
F0 0D
root@TinaLinux:/#
(验证通过!)
- 全志R16平台SPI0接口的验证(分色排版)
- 全志R16平台SPI0接口的验证V1.1(分色排版)
- 新版本的全志R16平台的tinav2.1的系统打开softAP(分色排版)
- 全志R16平台的parrotv1.1系统的编译手册(分色排版)V1.0
- 全志R16平台的parrotv1.1的系统点亮OV5640(分色排版)EVB30
- 全志R16平台的tinav2.1系统关闭adb_shell的步骤(分色排版)
- 全志R16平台的androidM下调通AP6330(V2.1系统)(分色排版)
- 全志R16平台调通RTL8189ES的步骤v1.1(分色排版)android4.4.2
- 在全志R16平台的androidM系统下调通OV5640(分色排版)
- 全志R16平台的androidM系统下调通GC0308(分色排版)
- 全志R16平台的tinav2.0系统下调通HM1375(分色排版)
- 全志R16平台的Android6系统下调通rtl8189es(分色排版)V1.0
- 全志R16平台的Android6系统下调通rtl8189es(分色排版)V1.1
- 20171128客户在全志R16平台的问题合集(分色排版)
- 全志R16调通USB接口的WIFI:RTL8188CU(分色排版)V1.0版本
- 全志R16平台的android6.0.1系统下的RTL8188EU的配置V1.0(分色排版)
- 全志R16平台的android6.0.1系统下的RTL8188EU的配置(分色排版)V1.0
- 全志R16平台配SPI的NOR FLASH的刷tinav2.1系统的解决过程(分色排版)
- Java泛型详解
- 如何将数据可视化技术应用于广告投放?
- JavaScript字符串操作
- IDEA快捷键Mac版本
- 0.从零开始学JAVA
- 全志R16平台SPI0接口的验证(分色排版)
- 第11章 三维内功心法——Direct3D编程基础
- 数据小白浅谈用户运营重要指标:用户活跃率
- 数据库表操作补遗
- WebUSB:一个网页是如何从你的手机中盗窃数据的
- [Mysql必知必会系列]正则表达·搜索
- ionic各种模板
- C的作业
- 数据收集工具的设计与最佳实践