CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 10885|回复: 7

【十万火急】cubieboard2如何在android系统下找到/dev/spi0.0节点

[复制链接]
发表于 2015-6-4 16:38:08 | 显示全部楼层 |阅读模式
本帖最后由 wb4916 于 2015-6-4 16:43 编辑

【十万火急】cubieboard2如何在android系统下找到/dev/spi0.0节点

使用署名为 方糖电子 的技术文档:android_SPI设备驱动开发 cubietruck.pdf

下载的android包:
http://dl.cubieboard.org/software/a20-cubieboard/android/
CubieBoard2_SDK_20140508.tar.gz

然后编译。之后找不到 /dev/spi0.0




然后换一个android系统编译:
http://forum.cubietech.com/forum.php?mod=viewthread&tid=1306
A10 和 A20 android源码已放出!!!!!


还是不行。

有没有谁用 cubieboard2板子,跑android系统,生成了 /dev/spi0.0节点的,指导一下。多谢了!
最好能够给我私发您的手机,提供电话技术支持。多谢了!


晚点测试一下这个压缩包了。
SDK 开发包 :  

1)在 github 下载  
(内核git clone下来了。)
git clone https://bitbucket.org/cubietech/a20-android4.2_lichee.git

(android弄不下来,git clone到65%左右句出错,不知道原因,貌似是网站不让下载超过2GB的东西????)
git clone https://bitbucket.org/cubietech/a20-android4.2_android.git

2)在百度云下载源码压缩包(这个可以弄下来!):  
http://pan.baidu.com/s/1kTFXnPP


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

发表于 2015-6-4 18:00:21 | 显示全部楼层

你接入的spi设备是什么?
开发环境验证过了么?
驱动编译成功并且加载成功了么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-4 23:14:33 | 显示全部楼层
aaron 发表于 2015-6-4 18:00
你接入的spi设备是什么?
开发环境验证过了么?
驱动编译成功并且加载成功了么?

你接入的spi设备是什么?
计划接入的设备,android_SPI设备驱动开发.pdf 上面接入的是 NOR SPI接口的FLASH:AT45DB161D。
今后会考虑接入:ST25P32V6G、W25Q32BV、M25P10VP。(现在正在进行方案选型。)




开发环境验证过了么?
修改源码,编译android之后可以点亮3.5寸的LCD。
(我邮件里面已经说我已经点亮了你们标配的3.5寸的LCD。背景:我以前做过全志a31s,2011年开始做android的开发。开发环境自我验证是配置得完全正确。android平台用过freescale的i.MX51,i.MX6q,Amlogic的M802,MTK的MT6582。)




驱动编译成功并且加载成功了么?
由于 sun7i 的SPI驱动不能编译成模块,M选项会出现:


  Image arch/arm/boot/uImage is ready
ERROR: "spi_register_board_info" [drivers/spi/spi-sun7i.ko] undefined!
WARNING: modpost: Found 1 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2
ERROR: build kernel Failed


直接选择 * 编译进驱动了。全志a20启动的时候有几秒钟无法打印内核信息。我不知道SPI驱动是否正常加载了呀!
不知道你们这里是否有更好的方法!


dmesg
cat /proc/kmsg
都没有找到我加入的指纹打印信息,无法诊断 SPI 驱动是否被正常加载了!





回复 支持 反对

使用道具 举报

发表于 2015-6-5 09:18:20 | 显示全部楼层
没有配置sys_config.fex  当然出不来啦


以下是示例配置
  1. ;-------------------------------------------------------------------------------  
  2. ;spi configuration  
  3. ;-------------------------------------------------------------------------------  
  4. [spi0_para]  
  5. spi_used            = 1  
  6. spi_cs_bitmap       = 1  
  7. spi_cs0             = port:PI10<2><default><default><default>  
  8. ;spi_cs1             = port:PI14<2><default><default><default>  
  9. spi_sclk            = port:PI11<2><default><default><default>  
  10. spi_mosi            = port:PI12<2><default><default><default>  
  11. spi_miso            = port:PI13<2><default><default><default>  
  12.   

  13. [spi3_para]  
  14. spi_used            = 0  
  15. spi_cs_bitmap       = 1  
  16. spi_cs0             = port:PA05<3><default><default><default>  
  17. spi_cs1             = port:PA09<3><default><default><default>  
  18. spi_sclk            = port:PA06<3><default><default><default>  
  19. spi_mosi            = port:PA07<3><default><default><default>  
  20. spi_miso            = port:PA08<3><default><default><default>  
  21.   
  22. [spi_devices]  
  23. spi_dev_num = 1  
  24. [spi_board0]  
  25. modalias = "spidev"  
  26. max_speed_hz = 12000000  
  27. bus_num = 0  
  28. chip_select = 0  
  29. mode = 3  
  30. full_duplex = 0  
  31. manual_cs = 0
复制代码

回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-5 11:16:15 | 显示全部楼层
本帖最后由 wb4916 于 2015-6-5 11:17 编辑
jiangdou 发表于 2015-6-5 09:18
没有配置sys_config.fex  当然出不来啦

这里修改了(更多可以查看附件!)!

V:\lichee\tools\pack\chips\sun7i\configs\android\sugar-cubieboard2\sys_config.fex
;-------------------------------------------------------------------------------
;spi configuration
;-------------------------------------------------------------------------------
[spi0_para]
spi_used            = 1
spi_cs_bitmap       = 1
spi_cs0             = portI10<2><default><default><default>
;spi_cs1             = portI14<2><default><default><default>
spi_sclk            = portI11<2><default><default><default>
spi_mosi            = portI12<2><default><default><default>
spi_miso            = portI13<2><default><default><default>

[spi1_para]
spi_used            = 0
spi_cs_bitmap       = 1
spi_cs0             = portA00<3><default><default><default>
spi_cs1             = portA04<3><default><default><default>
spi_sclk            = portA01<3><default><default><default>
spi_mosi            = portA02<3><default><default><default>
spi_miso            = portA03<3><default><default><default>

[spi2_para]
spi_used            = 0
spi_cs_bitmap       = 1
spi_cs0             = port:PC19<3><default><default><default>
spi_cs1             = port:PB13<2><default><default><default>
spi_sclk            = port:PC20<3><default><default><default>
spi_mosi            = port:PC21<3><default><default><default>
spi_miso            = port:PC22<3><default><default><default>

[spi3_para]
spi_used            = 0
spi_cs_bitmap       = 1
spi_cs0             = port:PA05<3><default><default><default>
spi_cs1             = port:PA09<3><default><default><default>
spi_sclk            = port:PA06<3><default><default><default>
spi_mosi            = port:PA07<3><default><default><default>
spi_miso            = port:PA08<3><default><default><default>

[spi_devices]
spi_dev_num = 1


[spi_board0]
modalias = "spidev"
max_speed_hz = 12000000
bus_num = 0
chip_select = 0
mode = 3
full_duplex = 0
manual_cs = 0



当时怀疑可能是 GPIO 设置的问题,还关闭了几个!
;-------------------------------------------------------------------------------
;ps2 configuration
;-------------------------------------------------------------------------------
[ps2_0_para]
ps2_used            = 0
ps2_scl             = port:PI20<2><1><default><default>
ps2_sda             = port:PI21<2><1><default><default>

[ps2_1_para]
ps2_used            = 0
;ps2_scl             = port:PI14<3><1><default><default>
ps2_sda             = port:PI15<3><1><default><default>





;-------------------------------------------------------------------------------
; gps gpio configuration
; gps_spi_id        --- the index of SPI controller. 0: SPI0, 1: SPI1, 2: SPI2, 15: no SPI used
; gps_spi_cs_num    --- the chip select number of SPI controller. 0: SPI CS0, 1: SPI CS1
; gps_lradc         --- the lradc number for GPS used. 0 and 1 is valid, set 2 if not use lradc
;-------------------------------------------------------------------------------
[gps_para]
gps_used            = 0
gps_spi_id          = 2
gps_spi_cs_num      = 0
gps_lradc           = 1
gps_clk             = port:PI00<2><default><default><default>
gps_sign            = port:PI01<2><default><default><default>
gps_mag             = port:PI02<2><default><default><default>
gps_vcc_en          = port:PC22<1><default><default><0>
;gps_osc_en          = port:PI14<1><default><default><0>
gps_rx_en           = port:PI15<1><default><default><0>





;-------------------------------------------------------------------------------
;touch key configuration
;-------------------------------------------------------------------------------
[tkey_para]
tkey_used           = 0
tkey_twi_id         = 2
tkey_twi_addr       = 0x62
;tkey_int            = port:PI13<6><default><default><default>





;-------------------------------------------------------------------------------
;compass
;-------------------------------------------------------------------------------
[compass_para]
compass_used        = 0
compass_twi_id      = 1
compass_twi_addr    = 0x00
;compass_int         = port:PI13<6><1><default><default>





rootroot@rootroot-E400:~/wyb/baidu_cubieboard2_a20/lichee/linux-3.4$ make ARCH=arm menuconfig
Device Drivers --->
SPI support --->
                --- SPI support
           Debug support for SPI drivers
                      *** SPI Master Controller Drivers ***
                < >   Altera SPI Controller
                -*-   Utilities for Bitbanging SPI masters
                <*>   GPIO-based bitbanging SPI Master
                < >   OpenCores tiny SPI
                < >   ARM AMBA PL022 SSP controller
                <*>   SUN7I SPI Controller
             SUN7I SPI Normal DMA mode select
             SUN7I SPI Norflash
                < >   Xilinx SPI controller common module
                <*>   DesignWare SPI controller core support
                <*>     Memory-mapped io interface driver for DW SPI core
                      *** SPI Protocol Masters ***
                <*>   User mode SPI device driver support
                < >   Infineon TLE62X0 (for power switching)





-> Device Drivers
        -> Memory Technology Device (MTD) support (MTD [=n])
                -> Self-contained MTD device drivers
                        -> Support for AT45xxx DataFlash (MTD_DATAFLASH [=n])
                                <*> Support for AT45xxx DataFlash
                                   Verify DataFlash page writes (NEW)
                                   DataFlash OTP support (Security Register) (NEW)
                                <*> Support most SPI Flash chips (AT26DF, M25P, W25X, ...)
                                   Use FAST_READ OPCode allowing SPI CLK <= 50MHz (NEW)


多选不行,

按照 android_SPI设备驱动开发 cubietruck.pdf 上 少量选择也是不行:

Device Drivers --->
SPI support --->
                --- SPI support
                <*>   SUN7I SPI Controller
             SUN7I SPI Normal DMA mode select




-> Device Drivers
        -> Memory Technology Device (MTD) support (MTD [=n])
                -> Self-contained MTD device drivers
                        <*> Support for AT45xxx DataFlash



头疼呀!!!!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2015-6-5 19:41:16 | 显示全部楼层
wb4916 发表于 2015-6-5 11:16
这里修改了(更多可以查看附件!)!

V:\lichee\tools\pack\chips\sun7i\configs\android\sugar-cubieboa ...

http://blog.csdn.net/jiangdou88/article/details/21288781
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-5 23:12:28 | 显示全部楼层
jiangdou 发表于 2015-6-5 19:41
http://blog.csdn.net/jiangdou88/article/details/21288781

http://blog.csdn.net/jiangdou88/article/details/21288781
A20,SPI配置

分类: A10 2014-03-15 16:28 569人阅读 评论(0) 收藏 举报
1、
V:\lichee\tools\pack\chips\sun7i\configs\android\sugar-cubieboard2\sys_config.fex

[html] view plaincopy在CODE上查看代码片派生到我的代码片
;spi configuration  
;-------------------------------------------------------------------------------  
[spi0_para]  
spi_used            = 1  
spi_cs_bitmap       = 1  
spi_cs0             = portI10<2><default><default><default>  
spi_cs1             = portI14<2><default><default><default>  
spi_sclk            = portI11<2><default><default><default>  
spi_mosi            = portI12<2><default><default><default>  
spi_miso            = portI13<2><default><default><default>  

;mcp2515_int ->H19 -> = portH19<2><0><default><default>  
;MCP2515_RESET ->I9 -> = portI09<2><1><2><default>  
;MCP2515_CS ->I10  
;MCP2515_SCK ->I11  
;MCP2515_SI ->I12  
;MCP2515_SO ->I13  
[html] view plaincopy在CODE上查看代码片派生到我的代码片
[spi_devices]  
spi_dev_num = 1  
[spi_board0]  
modalias = "spidev"  
max_speed_hz = 12000000  
bus_num = 0  
chip_select = 0  
mode = 3  
full_duplex = 0  
manual_cs = 0  




2、
rootroot@rootroot-E400:~/wyb/baidu_cubieboard2_a20/android$
rootroot@rootroot-E400:~/wyb/baidu_cubieboard2_a20/android$ grep "/sys/class/gpio_sw/P" . -R
Binary file ./out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes/com/softwinner/Gpio.class matches
Binary file ./out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/noproguard.classes-with-local.dex matches
Binary file ./out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/noproguard.classes.dex matches
./frameworks/base/swextend/gpio/java/Gpio.java:        private static final String  mPathstr      = "/sys/class/gpio_sw/P";
rootroot@rootroot-E400:~/wyb/baidu_cubieboard2_a20/android$


V:\android\frameworks\base\swextend\gpio\java\Gpio.java

(grep找到这里,默认配置的!)

配置

[html] view plaincopy在CODE上查看代码片派生到我的代码片
private static final String mPathstr ="/sys/class/gpio_sw/P";  
private static final String mDataName = "/data";  
private static final String mPullName = "/pull";  
private static final String mDrvLevelName = "/drv_level";  
private static final String mMulSelName ="/mul_sel";  




3、
V:\lichee\linux-3.4\drivers\spi\Kconfig
(注意,经过比对BSP里面的代码,可以不用修改的,因为选择的时候, EXPERIMENTAL 不知道什么时候就被选中了!)
修改Kconfig


[html] view plaincopy在CODE上查看代码片派生到我的代码片
comment "SPI Protocol Masters"  

config SPI_SPIDEV  
    tristate "User mode SPI device driver support"  
    #depends on EXPERIMENTAL  
    default y  
    help  
      This supports user mode SPI protocol drivers.  

      Note that this application programming interface is EXPERIMENTAL  
      and hence SUBJECT TO CHANGE WITHOUT NOTICE while it stabilizes.  




4、
rootroot@rootroot-E400:~/wyb/baidu_cubieboard2_a20/lichee/linux-3.4$ make ARCH=arm menuconfig

配置menuconfig



adb shell

#cd dev   

# ls   ->如下:



3,编译Linux/\\192.168.94.129\jiang_dou\a20\A20-420-V12\lichee\linux-3.3\Documentation\spi/spidev-test.c


#adb push D:\spidev-test  /

#adb shell

#chmod 777 spidev-test

#  ./spidev-test -D  /dev/spidev0.0

如下图:


最后在串口里面还是找不到 /dev/spi0.0


对于 /dev/spi2.0的尝试(失败!):
http://blog.sina.com.cn/s/blog_cfeb631c0101qoqd.html
allwinner A20 增加spi驱动


http://blog.csdn.net/yao_guet/article/details/37910573
Humming Bird A20 SPI2驱动编译





回复 支持 反对

使用道具 举报

发表于 2015-6-6 00:37:30 | 显示全部楼层
wb4916 发表于 2015-6-5 23:12
http://blog.csdn.net/jiangdou88/article/details/21288781
A20,SPI配置

提示别人给的,,自己的原因还得自己找!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-5-8 08:28 , Processed in 0.032081 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部