【Linux/安卓+SPI以太网项目】
来源:互联网 发布:centos 打不了中文 编辑:程序博客网 时间:2024/04/28 04:04
各位新年好!
2017第一天开工上班,没啥新项目安排;借此空挡整理一份去年安卓设备增加SPI以太网的应用案例,互相探讨;继上次的USB网卡项目之后,公司又接到了不少添加以太网的客户需求;
这批客户网速需求一般较为简单,无需很大的带宽传输视频文件,一般用来上传下载一些采集数据,控制命令,语音信息等;而此时硬件平台又很尴尬,只有一个USB接口,如果用USB网卡将增加调试难度。
这时候想到了之前供应商推荐的一款SPI接口以太网芯片,DM9051NP,应该能胜任此些客户项目需求;
于是找供应商拿到了开发资料,以及开发demo板,开干!!
demo板照片如下:
【DM9051芯片驱动+硬件资料】
网盘资料
...
1.做成 .KO 或 .o (整合在 zImage里面) 都可~
完成以上即成~
最后测试底层ping路由,ping外网均ok;
再把上层以太网设置栏选项调出来即可。
1,添加驱动后,无法查询到以太网设备;
》》检测SPI接线有无问题,关于宏定义也检查下。
2,网卡无法自动UP,每次重启都需要手动UP一次;
》》vim /etc/sysconfig/network-script/ifeth0 中的ONBOOT=NO修改为ONBOOT=YES
》》不然就写个sh脚本->/data/,ifconfigeth0up,dhcp up等。
》》修改init.mt6735.rc让插入网卡就自动获取ip:
3,底层能ping通,浏览器却无法访问;
》》检查dns获取情况,一般能ping IP dns是没问题的;
》》对比安卓版本之间的区别,web相关调用底层的地方是否有改动;
》》修改以太网权限文件:
PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.ethernet.xml:system/etc/permissions/android.hardware.ethernet.xml
然后,配置config.xml
<string-array translatable="false" name="networkAttributes">
<item>"ethernet,9,9,1,-1,true"</item>
<item>"wifi,1,1,2,-1,true"</item>
4,SPI休眠、速率等问题;
》》有些平台SPI会休眠导致以太网挂掉,建议休眠功能关闭;
5, Android4.4 以太网和DHCP启动过程介绍(转)
2017第一天开工上班,没啥新项目安排;借此空挡整理一份去年安卓设备增加SPI以太网的应用案例,互相探讨;继上次的USB网卡项目之后,公司又接到了不少添加以太网的客户需求;
这批客户网速需求一般较为简单,无需很大的带宽传输视频文件,一般用来上传下载一些采集数据,控制命令,语音信息等;而此时硬件平台又很尴尬,只有一个USB接口,如果用USB网卡将增加调试难度。
这时候想到了之前供应商推荐的一款SPI接口以太网芯片,DM9051NP,应该能胜任此些客户项目需求;
于是找供应商拿到了开发资料,以及开发demo板,开干!!
demo板照片如下:
【DM9051芯片驱动+硬件资料】
网盘资料
【驱动】
/* drivers/net/dm9051.c (dm9r.c ) * * Copyright 2014 Davicom Semiconductor,Inc. * http://www.davicom.com.tw * 2014/03/11 Joseph CHANG v1.0 Create * 2014/05/05 Joseph CHANG v1.01 Start from Basic functions * 2015/06/08 Joseph CHANG v1.02 Formal naming (Poll version) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * Ver: Step1.2p1: Use "db->ret95" to trace bug track.. (20151127) * Ver: Step1.3 dma: mt_ DMA.. (20151203) * Ver: Step1.3p1 DMA3_PNs design for platforms' config (20151223) * Ver: 3p6s * Ver: 3p6ss * Ver: 3p11sss (kmalloc re-placement) * Remove: drwbuff_u8() * Ver: V1.1 * Ver: V1.2 Default as static 'dm9051.o' */
...
1.做成 .KO 或 .o (整合在 zImage里面) 都可~
2. SPI master: 到 arch/arm/ 找到你的 board device directory ( 例如: 我用 s5pv210 , 为 mach-s5pv210 ) 在 此目录裡找到board source file (例如: 我用 s5pv210 , 为 mach-mini210.c ) 在此档案裡, 改 (此例为SPI0, 若为SPI1 则保留SPI0 這组, 改用下一组 .bus_num = 1 者, ) ( 註:依此方式, 如各個平台会略有差异!)static struct spi_board_info s3c_spi_devs[] __initdata = { { .modalias = "dm9051", // .modalias= "spidev", /* MMC SPI */ .mode = SPI_MODE_0, .max_speed_hz = 33000000, //[SPEC. MAX] /* Connected to SPI-0 as 1st Slave */ .bus_num = 0, .chip_select = 0, .controller_data = &smdk_spi0_csi[SMDK_MMCSPI_CS], }, ..}
3. 增添 DM9051 Linux driver 到drivers/net/ ,
3.1 Add source to the kernel
$ cp dm9051.h drivers/net/ethernet/davicom/$ cp dm9051.c drivers/net/ethernet/davicom/3.2 Modify source in the kernel$ vi drivers/net/ethernet/Makefile+obj-$(CONFIG_DM9051) += davicom/$ vi drivers/net/ethernet/davicom/Makefile+obj-$(CONFIG_DM9051) += dm9051.o$ vi drivers/net/ethernet/davicom/Kconfig+config DM9051+ tristate ”DM9051 support”+ depends on ARM || BLACKFIN || MIPS+ selectCRC32+ selectMII+ ---help---+ Support for DM9051 chipset.$ vi arch/arm/mach-bcm2709/bcm2709.c- .modalias = “spidev”,- .max_speed_hz =500000,+ .modalias = “dm9051”,+ .max_speed_hz = 20000000,
做成 .KO 或 .o (整合在 zImage里面)
( 註:比较新的Linux核心, 路径变更为 drivers/net/ethernet/davicom/ !)完成以上即成~
最后测试底层ping路由,ping外网均ok;
再把上层以太网设置栏选项调出来即可。
1,添加驱动后,无法查询到以太网设备;
》》检测SPI接线有无问题,关于宏定义也检查下。
2,网卡无法自动UP,每次重启都需要手动UP一次;
》》vim /etc/sysconfig/network-script/ifeth0 中的ONBOOT=NO修改为ONBOOT=YES
》》不然就写个sh脚本->/data/,ifconfigeth0up,dhcp up等。
》》修改init.mt6735.rc让插入网卡就自动获取ip:
device/mediatek/mt6735/init.mt6735.rc#DHCPCD # eth0 by eric.wangservice dhcpcd_eth0 /system/bin/dhcpcd -ABKL class main disabled oneshot # IP Renew # # eth0 by eric.wangservice iprenew_eth0 /system/bin/dhcpcd -n class main disabled oneshot
3,底层能ping通,浏览器却无法访问;
》》检查dns获取情况,一般能ping IP dns是没问题的;
》》对比安卓版本之间的区别,web相关调用底层的地方是否有改动;
》》修改以太网权限文件:
PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.ethernet.xml:system/etc/permissions/android.hardware.ethernet.xml
然后,配置config.xml
<string-array translatable="false" name="networkAttributes">
<item>"ethernet,9,9,1,-1,true"</item>
<item>"wifi,1,1,2,-1,true"</item>
4,SPI休眠、速率等问题;
》》有些平台SPI会休眠导致以太网挂掉,建议休眠功能关闭;
》》速率来说,一般SPI可以设置0-80Mhz的时钟速率,以太网速率也会随之提升;
》》註:DM9051SPI時鐘速率可達 50MHz.
》》网口速率一般能到5-10Mbps。
5, Android4.4 以太网和DHCP启动过程介绍(转)
6, 安卓4.4增加以太网上层服务(转)
如还有发现更多问题,后面我会再更新上来,谢谢。
DM9051供应商信息如下:
深圳市嘉鸿时代科技 0755-26727968
*DM9051NP芯片介紹,來自台灣聯傑國際/Davicom官网:
主芯片開發板: Raspberry Pi2 / BCM2836
SPI clock is 20 MHz, The TX/RX performance:
The receive performance test by: # iperf –s
We get the result RX 8.52 mbps
The send performance test by: # iperf –c $IP (Note: $IP is the test opposite partner’s IP address)
We get the result TX 8.65 mbps
1 0
- 【Linux/安卓+SPI以太网项目】
- 安卓获取以太网IP地址
- STM32F103ZET+DM9051--SPI+以太网+web
- 高速SPI以太网控制芯片-W5200
- 串口转以太网W5500 SPI驱动
- STM32F103ZE uIP DM9051 SPI以太网移植指南
- 安霸SPI 剖析
- linux spi
- Linux SPI
- 新建安卓项目
- 安卓--即时通讯项目
- 安卓github项目
- 安卓项目依赖
- 安卓项目复制
- 安卓项目混淆
- 一个安卓项目
- Gentoo Linux以太网Bonding
- linux以太网驱动总结
- [poj3691] DNA repair
- android如何实现特效
- Android MVP 实例
- 晃晃悠悠的2016,我不愿提、不愿想;简单思维的我,心将该去何方
- 项目版本号
- 【Linux/安卓+SPI以太网项目】
- 【IO】程序访问文件的几种方式
- Linux下安装jdk1.8
- 无法在只读列“id”中插入数据
- OpenCV3+VS2015 配置问题(x64)
- (转)嘉信理财推出全新智能投顾平台
- CABasicAnimation-旋转
- 导出大量数据到Excel的一种方式
- jQuery提示插件 qTip简单使用