您的位置 首页 ADAS

根据S3C2440处理器SPI移植全过程

环境硬件:S3C2440(ARM920T)嵌入式操作系统:Linux2.6.24内核文件系统:Yaffs2文件系统服务器:SuSe10.0Linux服务器第一步:内核配置需要…

环境

硬件:S3C2440(ARM920T)

嵌入式操作体系:Linux2.6.24内核

文件体系:Yaffs2文件体系

服务器:SuSe10.0 Linux服务器

第一步:内核装备

需求在内核中挑选以上几个选项:

许多网友发邮件说Linux2.6.24内核在SPI选项上未发现有Samsung S3C2440 series SPI 或 Samsung S3C24XX series SPI 和User mode SPI device driver support这两个选项。

其实在Linux2.6.24内核里现已兼容了对SPI的操作。只是在Linux2.6.24/drivers/spi/Kconfig中未能选中此选项。至于什么原因看下面的阐明:翻开Linux2.6.24/drivers/spi/Kconfig

找到以下几个选项:

config SPI_BITBANG
tristate “Bitbanging SPI master”
depends on SPI_MASTER#&& EXPERIMENTAL
help
With a few GPIO pins, your system can bitbang the SPI protocol.
Select this to get SPI support through I/O pins (GPIO, parallel
port, etc). Or, some systems SPI master controller drivers use
this code to manage the per-word or per-transfer accesses to the
hardware shift registers.

This is library code, and is automatically selected by drivers that
need it. You only need to select this explicitly to support driver
modules that arent part of this kernel tree.

运用SPI的时分需求把Bitbanging SPI master翻开,可是依靠的条件EXPERIMENTAL,这儿咱们把这个条件去掉,然后再找到:

config SPI_S3C24XX
tristate “Samsung S3C24XX series SPI”
depends on SPI_MASTER && ARCH_S3C2410 && EXPERIMENTAL
select SPI_BITBANG
help
SPI driver for Samsung S3C24XX series ARM SoCs

config SPI_S3C2440
tristate “Samsung S3C2440 series SPI”
depends on SPI_MASTER && ARCH_S3C2410
select SPI_BITBANG
help
Add by SmallBox at 2011.02.18 SPI driver for Samsung S3C24XX series ARM SoCs
以上蓝色的字是我增加的。为了差异Linux内核默许的装备!修正到这儿保存,退出。然后翻开该目录下面的Makefile文件,需求做以下修正:

增加:

obj-$(CONFIG_SPI_S3C2440) += spi_s3c24xx.o

这儿阐明一下:假如不想在Kconfig中增加我增加的选项,这儿就不需求修正Makefile文件了。由于自身现已有对S3C24XX的支撑!

修正后保存退出!

下面需求修正的是Linux2.6.24里面的文件:

1)翻开smallbox@linux-server:/home/Linux2.6.24/arch/arm/plat-s3c24xx/devs.c增加一下句子

这儿还需求阐明一下,增加后编译会呈现过错。还需求增加相应的头文件:

#include #include #include

假如还有过错,或许便是你的头文件增加的不行。持续查找增加,知道Make成功;

2)翻开smallbox@linux-server:/home/Linux2.6.24/arch/arm/mach-s3c2440/mach-hyh2440.c 文件增加

static struct platform_device *utu2440_devices[] __initdata = {
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_i2c,
&s3c_device_iis,
&s3c_device_usbgadget,
&s3c_device_ts,
&s3c_device_dm9000,
&s3c_device_nand,
&s3c_device_sound,
&s3c_device_buttons,
&s3c_device_rtc,
&s3c_device_sdi,
&s3c_device_spi0,

};
保存退出!

最终就可以Make了。下载你的内核,发动你的硬件,你会在dev下发现spidev0.1这个设备了!

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/275562.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部