Humming Bird A20 SPI2驱动编译

Humming Bird A20 SPI2编译使用

Yao.GUET 2014-07-17,转载请注明出处:http://blog.csdn.net/Yao_GUET

A20上带有4个spi接口,由于Humming Bird A20只引出了SPI2,所以这里就以spi2为例,看一下fex文件是怎么设置的。

由于我拿到的linux内核上是已经有spi-sun7i的驱动代码文件,的民民主的所以没有代码的同鞋自己去下载patch包吧。

根据linux-sunxi中spi使用的文档,需要修改kernel的编译配置:

CONFIG_SPI_SUN4I=y

CONFIG_SPI=y

CONFIG_SPI_MASTER=y

CONFIG_EXPERIMENTAL=y

CONFIG_SPI_SPIDEV=y

做完这一步之后,还需要修改fex文件,由于我用的是android的系统,所以,配置文件位置如下:

a20_hummingbird_v3.0_v4/lichee/tools/pack/chips/sun7i/configs/android/wing-k70/sys_config.fex

"spi2_para"的配置:

[spi2_para]
spi_used            = 1
spi_cs_bitmap       = 1
spi_cs0             = port:PB14<2><default><default><default>
spi_sclk            = port:PB15<2><default><default><default>
spi_mosi            = port:PB16<2><default><default><default>
spi_miso            = port:PB17<2><default><default><default>

其中:

spi_used: =1 表示使用,=0则表示不使用;

spi_cs_bitmap:=1表示片选使用spi2_cs0,=2表示片选使用spi2_cs1,=3表示片选使用spi2_cs0和spi2_cs1;

我这里使用的是PB14-PB17这一组spi2接口,尖括号里面的2代表的是复用功能的选择(SPI)。

spi_devices设备数量设置

[spi_devices]
spi_dev_num = 1

spi_dev_num:代表使用的spi的总数量,这里我只用了一个所以写1,这个需要跟后面“spi_board”这个一起使用。例如我这里数量是1,那么我后面就要用到"spi_board0"。num=3,那么后面需要有3个spi的配置“spi_board0”,“spi_board1”,“spi_board2”,每一个对应一个spi接口。

spi_board设置

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

modalias:spi设备的名称

max_speed_hz:最大传输速度

bus_num:这个比较的重要,是这个spi_board所对应的spi的总线号,这里我使用的是spi2,所以“bus_num=2”

mode:这个主要是设置同步时间的极性与相位

SPI MODE CPOL CPHA 采样边缘
0 0 0 上升沿
1 0 1 下降沿
2 1 0 下降沿
3 1 1 上升沿

full_duplex和manual_cs这两个参数,在我手上的这一份spi-sun7i代码里面是没有读的,应该还没有支持,,,

有兴趣的同鞋也可以自己看一下spi-sun7i的代码,就在/linux/drivers/spi/spi-sun7i.c

编译好内核,再打包生成img文件,烧写启动系统,你会在/dev目录发现spidev2.0这个设备,那说明,spi2应该可以正常使用了,,,

Humming Bird A20 SPI2驱动编译,布布扣,bubuko.com

时间: 2024-10-02 10:27:46

Humming Bird A20 SPI2驱动编译的相关文章

MongoDB在MFC下使用C++驱动编译错误的解决

.post p{text-indent: 2em;} 今天使用MongoDB的C++驱动,在编译连接的时候一直出现错误,显示的string_data.h下93行max宏的问题,可视其本身并不是调用max宏,而是调用 std::numeric_limits<size_t>::max 这样就是产生错误,通过搜索发现解决方法(参考网址:http://blog.chinaunix.net/uid-17102734-id-2830143.html),将该函数用括号括起来,避免windows定义的混淆,具

如何基于android4.4.2的源码和android-4.3.1_r1的驱动编译I9250的ROM

如何基于android4.4.2的源码和android-4.3.1_r1的驱动编译I9250的ROM 作者:雨水  2014-05-04 联系方式:dennis.hu.cd at gmail.com 说明:经过多番折腾,终于把自己编译的Android4.4.2的源代码成功地跑在我的三星Galaxy Nexus I9250手机上了.期间离不开一位外国朋友的帮助,也就是参考资料[1]的作者Sato Kensuke. 这里将过程记录下来,希望对大家有所帮助! 第一步:下载android-4.4.2_r

【转】6.4.6 将驱动编译进Linux内核进行测试

原文网址:http://www.apkbus.com/android-98520-1-1.html 前面几节都是将Linux驱动编译成模块,然后动态装载进行测试.动态装载驱动模块不会随着Android系统的启动而自动装载,因此Android系统每次启动都必须使用insmod或modprobe命令装载Linux驱动模块. 对于嵌入式系统(包括嵌入式Android.嵌入式Linux等)一般都采用将Linux驱动编译进内核的方式.这样做虽然没有动态装载灵活,但Linux驱动会随着Android的启动而

将安卓驱动编译成moudle开机后自动启动

假设我们写好了驱动程序:xxx.c,并且可以正常运行(驱动的init match probe等等都OK) 先看一下将驱动编译进内核的情况,主要关注以下几个文件: 驱动文件夹下的Makefile里有一句: obj-$(CONFIG_XXX) += xxx.o 驱动文件夹下的Kconfig(如我的是Kconfig.x86)有: config XXX bool "ABCD" depens on YYYY help ... arch/x86/configs/kkkk_defconfig里有一句

xmake新增对WDK驱动编译环境支持

xmake v2.2.1新版本现已支持WDK驱动编译环境,我们可以直接在系统原生cmd终端下,执行xmake进行驱动编译,甚至配合vscode, sublime text, IDEA等编辑器+xmake插件去开发WDK驱动. 下面是xmake支持的一些编辑器插件,用户可以挑选自己喜欢的编辑器配合xmake来使用: xmake-idea xmake-vscode xmake-sublime WDK环境介绍 首先,我们先简单介绍下WDK10的编译环境的安装方式,我们可以看下微软的官方文档:Downl

NodeJS-004-Oracle驱动编译

一.参考文章 https://community.oracle.com/docs/DOC-931127 http://www.cnblogs.com/stone_w/p/4794747.html http://giscafer.com/2016/04/13/node-oracledb-demo/#more http://www.tuicool.com/articles/jEfuqmA https://www.npmjs.com/package/node-gyp http://www.cnblog

Linux内核模块(驱动)编译详解

本文主要说说如何编译自己开发的内核模块.由于驱动通常也被编译成内核模块,因此文章的内容也适用于驱动的编译. 由于在下能力相当有限,有不当之处,还望大家批评指正^_^ 一.准备工作 准备工作如何做,这里就不详说了. a) 首先,你要有一台PC(这不废话么^_^),装好了Linux. b) 安装好GCC(这个指的是host gcc,用于编译生成运行于pc机程序的).make.ncurses等工具. c) 如果你是为当前PC机开发内核模块,那么准备工作就结束了. 如果你是为嵌入式系统Linux系统开发

qt mysql 驱动编译的完整过程(使用qt creator)

一.安装前的准备 1.下载安装程序包,可到MySQL官方网站www.mysql.com下载,如图1-1: 图1-1 下载后的安装文件如图1-2所示: 图1-2 二.安装 1.双击下载的安装文件,本篇博文安装的MySQL版本为5.6.10.1,出现如图1-3所示页面: 图1-3 2.点击“Install MySQL Products”,进入如图1-4页面: 图1-4 3.勾选“I accept the license terms”后,点击“Next”,出现如图1-5所示查找最新产品的更新页面,不喜

Raspberry PI 2上的802.11ac网卡驱动编译

最近在树莓派2上折腾视频,用来做FPV,但是发现2.4G的控会严重干扰2.4G WIFI,在开控的时候我的台式机+外置USB网卡都频频掉线.考虑了一下,5.8G的频段虽然相对2.4G穿透能力更低,但是现阶段5.8G更干净,并且5.8G与2.4G没有倍频关系,不容易互相干扰(1.2G的图传就会干扰2.4G的控). 于是去买了个支持双频11AC的网卡,拿到之后直接插上Pi2,果然——不认,lsusb查了下这个网卡还比较新,用的是RTL8811芯片,官网上提供了Linux下的驱动,和GitHub上的比