mini2440 SPI驱动移植

TouchGFX学习笔记2:SPI接口屏幕移植 打开工程目录,找到如图的文件并打开,选择一个合适的模板,这里我选择空的模板,在页面中添加一张Image,用于验证TouchGFX移植是否成功,点击F4生成代码,再打开keil工程进行编译。首先指定在rect中绘制代码,在LCD上开启一个窗口,然后将数据逐一写入即可,注意位选和数据端口使能,这里就完成了TouchGFX图像绘制的功能。然后按照下图进行配置,先开启CRC(touchgfx运行需要),再根据自己的需求进行配置,因为用的是SPI接口的屏幕,接口需要自定义,分辨率240*240,单缓冲,无操作系统。 阅读详情

最近项目需要,需要在mini2440上移植SPI驱动,板子需要驱动SPI设备,上网找了很多资源,但是很多都是有问题,最终在基本理解驱动结构的前提下,将SPI驱动顺利移植到mini2440。

,我使用的内核版本是2.6.32.2,这个版本和2.6。29不一样,网上很多版本都是关于2.6.29,如果完全按照网上步骤,编译会出现问题,我做的步骤如下:

1,在Linux Source Code中修改arch/arm/mach-s3c2440/mach-mini2440.c文件,加入头文件:

#include <linux/spi/spi.h>
#include <../mach-s3c2410/include/mach/spi.h>

然后加入如下代码:
static struct spi_board_info s3c2410_spi0_board[] =
{
        [0] = {
                .modalias = "spidev",
                .bus_num = 0,
                .chip_select = 0,
                .irq = IRQ_EINT9,
                .max_speed_hz = 500 * 1000,
                }
};

static struct s3c2410_spi_info s3c2410_spi0_platdata = {
        .pin_cs = S3C2410_GPG(2),
        .num_cs = 1,
        .bus_num = 0,
        .gpio_setup = s3c24xx_spi_gpiocfg_bus0_gpe11_12_13,
};

static struct spi_board_info s3c2410_spi1_board[] =
{
        [0] = {
                .modalias = "spidev",
                .bus_num = 1,
                .chip_select = 0,
                .irq = IRQ_EINT2,
                .max_speed_hz = 500 * 1000,
                }
};


static struct s3c2410_spi_info s3c2410_spi1_platdata = {
        .pin_cs = S3C2410_GPG(3),
        .num_cs = 1,
        .bus_num = 1,
        .gpio_setup = s3c24xx_spi_gpiocfg_bus1_gpg5_6_7,
};

这里需要了解驱动架构,其中移植过程中容易出问题的地方时S3C2410_GPG(2)和S3C2410_GPG(3)两处地方,网上一般给的源代码是S3C2410_GPG2,这在2.6.29中可行,但是在2.6.32源代码中没有定义S3C2410_GPG2宏定义,要使用S3C2410_GPG(2)宏定义。

在mini2440_devices[]平台数组中添加如下代码:

&s3c_device_spi0,
&s3c_device_spi1,

最后在mini2440_machine_init函数中加入如下代码:

s3c_device_spi0.dev.platform_data= &s3c2410_spi0_platdata;
spi_register_board_info(s3c2410_spi0_board, ARRAY_SIZE(s3c2410_spi0_board));
s3c_device_spi1.dev.platform_data= &s3c2410_spi1_platdata;
spi_register_board_info(s3c2410_spi1_board, ARRAY_SIZE(s3c2410_spi1_board));

最后需要修改arch/arm/plat-s3c24xx/KConfig文件

找到如下代码段:

config S3C24XX_SPI_BUS0_GPE11_GPE12_GPE13
        bool 
        help
          SPI GPIO configuration code for BUS0 when connected to
          GPE11, GPE12 and GPE13.

config S3C24XX_SPI_BUS1_GPG5_GPG6_GPG7
        bool 
        help
          SPI GPIO configuration code for BUS 1 when connected to
          GPG5, GPG6 and GPG7.

修改为

config S3C24XX_SPI_BUS0_GPE11_GPE12_GPE13
        bool "S3C24XX_SPI_BUS0_GPE11_GPE12_GPE13"
        help
          SPI GPIO configuration code for BUS0 when connected to
          GPE11, GPE12 and GPE13.

config S3C24XX_SPI_BUS1_GPG5_GPG6_GPG7
        bool "S3C24XX_SPI_BUS1_GPG5_GPG6_GPG7"
        help
          SPI GPIO configuration code for BUS 1 when connected to
          GPG5, GPG6 and GPG7.

最后我们配置编译文件:

make menuconfig

图1


图2


图3


图4


图5


最后编译内核

make zImage

将编译好的内核导入开发板,并且编译Linux Source自带的测试程序,在Documentation/spi下,修改spidev_test.c文件,将device name改为/dev/spidev1.0

交叉编译:

arm-linux-gcc -I ~/linux-2.6.32.2/include/ spidev_test.c

将编译好的文件下载到开发板上,并且将开发板的SPI MOI和MIO短接,也就是让SPI自己发送自己接收,执行文件,我们看到如下结果:

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

说明驱动移植成功。
Luckfox Pico SPI驱动LCD模式下移植LVGL8.3记录 有一点要注意的是它这里LCD的CS与主机的SPI管脚的MISO冲突了,在配置SPI的时候,千万不要打开MISO了,否则驱动异常(可通过dmesg查看打印信息看到冲突)。硬件平台:Luckfox Pico不带网口的那个硬件版本,LCD采用的是2.0in SPI驱动的LCD,显示芯片为ST7789VW,显示分辨率为320*240。由于是采用SPI驱动显示的,在更新屏幕的时候,是明显的可以看到屏幕的扫描过程中,比较的慢。多余的IO口跟不需要的功能,如IIC等,能去掉的就去掉。 阅读详情

相关推荐

嵌入式Linux系统SPI驱动移植专题详解(3000+字图文实战指南)

本文详细阐述了嵌入式Linux系统下SPI驱动的移植方法与实现原理,涵盖从硬件架构到应用测试的全流程。通过3000+字的深度解析与代码实例演示,帮助开发者快速掌握SPI驱动开发的核心技术要点。建议结合具体硬件平台实践操作,以加深理解。(注:本文所有代码均已在Linux 5.4内核验证通过,硬件平台为i.MX6ULL)

SEU123WW的博客 1550

Linux下spi网卡dm9051驱动移植及(具体)驱动调试分析总结

本文重点总结spi网卡在linux下的驱动移植以及根据板子的走线如何进行debug,最后定位到具体问题后正常使用的详细过程。DM9051NP SPI接口网卡芯片是为了方便互联网行业进行以太网通信而开发出的解决方案。DM9051NP芯片是带有行业标准串列外设接口(Serial Peripheral Interface,SPI)的独立以太网控制器。DM9051NP符合IEEE 802.3 规范,它还支持以DMA 模式來传输,以实现资料传送快速。

Luckiers的博客 3438

Linux SPI子系统概述及在mini2440上的SPI驱动移植和编程

在Linux内核中,SPI子系统提供了对SPI总线的支持,使得开发者可以方便地使用SPI接口与外设进行通信。本文将介绍Linux中SPI子系统的概念和工作原理,并提供在mini2440开发板上进行SPI驱动移植和编程的示例代码。以上是关于Linux中SPI子系统图解和mini2440下的SPI驱动移植编程的详细介绍和示例代码。在进行SPI驱动移植和编程之前,需要确保Linux内核已经启用了SPI子系统的支持。在上述代码中,我们首先定义了一个名为"spidev"的SPI设备,并填充了。SPI驱动移植和编程。

DevGOOD的博客 146

AM335 —spi驱动移植(一)

一、PCB原理图分析 1、AM335主控板SPI接口分析 总共有四路spi,我使用了spi0这一组。 2、原理图分析 二、spi驱动移植 1、 spi设备驱动移植(去I2C增spi) 开发板上电以后通过查看/dev目录,底下没有生成对应的spi设备,推测spi驱动未被加载到内核中, 原因一:可能是根文件系统没有mdev或者udev服务,不会直接创建设备节点。 原因二:没有spi驱动代码,需要修改内核源码,增加spi设备驱动 排查一:通过修改查看i2c驱动,发现i2c设备驱动能够自动创建设备节点,排除

weixin_39035140的博客 2745

DSP28335学习笔记——McBSP配置为SPI

由于28335硬件外设上只有一个SPI接口,所以当SPI接口不够用时,可以将McBSP配置为SPI接口。 参考28335的数据手册,当DSP为主机时,配置McBSP为SPI所用到的接线如下图所示。 另外总结一些调试过程中的经验。 1.传输数据位数的确定 由RCR1寄存器中的RWDLEN1和XCR1寄存器中的XWDLEN1决定。分别对应着接受和发送的位数,在配置成SPI模式的时候,这

捕虫少年 1万+

用了7年的 source insight 3.5 背景色及字体配置(提升code效率)

在此记录并share用了7年的 source insight 3.5 背景色及字体配置,提升阅读代码效率

Chasing Freedom 7530

Linux中SPI子系统图解和mini2440下的SPI驱动移植

1.SPI子系统框图详解: SPI总线上有两类设备:一类是主控端,通常作为SOC系统的一个子模块出现,比如很多嵌入式MPU中都常常包含SPI模块。一类是受控端,例如一些SPI接口的Flash、传感器等等。主控端是SPI总线的控制者,通过使用SPI协议主动发起SPI总线上的会话。而受控端则被动接受SPI主控端的指令,并作出响应的响应。 如图1所示,linux下的spi子系统主

viewsky11的专栏 1512

IsaacLab 从入门到精通(一) 环境配置和依赖安装

本系列文章将针对机器人操作任务中的强化学习平台IsaacLab提供较为全面的教程

DejaWu33的博客 1万+

mini2440移植之SPI驱动

目标平台:mini2440 内核:linux2.6.32.2 1,修改arch/arm/mach-s3c2440/mach-mini2440.c文件,加入头文件: #include #include 然后加入如下代码: static struct spi_board_info s3c2410_spi0_board[] = { [0] = {

tong646591的专栏 824

家长必看!用RouterOS轻松屏蔽不良网站,保护孩子上网安全

本文为家长提供了一份详细的RouterOS路由器配置指南,旨在通过技术手段保护儿童上网安全。文章核心介绍了如何利用RouterOS的DNS静态条目功能,轻松实现禁止访问特定不良网站,并结合防火墙时间规则,为孩子构建一个纯净、可控的家庭网络环境,操作简单,无需专业背景。

weixin_28363123的博客 1268

避坑指南:SAP STO订单里‘发货存储地点’栏位不显示?检查这个关键配置

本文深入解析SAP STO订单中‘发货存储地点’栏位缺失问题的根本原因及解决方案。通过激活库存地点间转储功能、维护库存地点主数据等关键配置步骤,帮助用户快速恢复业务操作。特别适用于MM模块实施顾问和SAP系统管理员处理UB STO相关技术问题。

weixin_30632089的博客 100

【转载】mini2440 SPI驱动移植

按照下面帖子的方法,本人试验成功,只需按照下面步骤进行就行了。 原帖地址: http://blog.youkuaiyun.com/lxmky/article/details/6858322 注:原文最后短接的MISO和MOSI指的是SPI1的,区别于SPI0 mini2440中,SPI0和SPI1的四个功能引脚均接有上拉电阻10K到3.3V。 引脚 SPICL

feiniao1221的专栏 1553

B-Tree数据存储

SQLITE数据存储1. B-Tree的优势  在SQLite中数据库、表、索引都是通过B-Tree和B+Tree的形式进行存储的。如果采用传统的二叉树查找树、红黑树的查找深度一般为log2(N) \log{_2}(N)(其中N表示的是整个树的关键字的数目),在数据库中如果存储的资源过多,就会导致查找一个数据过程中出现较多的磁盘I/O操作,而过多的磁盘操作就会导致整个查找的效率较低,而基于二叉树的一

Promiscuous_youth的博客 1141

mini2440 SPI驱动移植 既自己总结的应用层的操作

mini2440 SPI驱动移植 分类: Linux 嵌入式 SPI2011-10-10 11:24 674人阅读 评论(6) 收藏 举报 最近项目需要,需要在mini2440上移植SPI驱动,板子需要驱动SPI设备,上网找了很多资源,但是很多都是有问题,最终在基本理解驱动结构的前提下,将SPI驱动顺利移植到mini2440。 ,我使用的内核版本是2.6.32.2,这个版

蓝松SDK 1640

告别龟速!实测Copernicus Dataspace下载Sentinel-2数据的3个提速技巧(附Workspace批量操作)

本文分享了在Copernicus Dataspace平台高效下载Sentinel-2遥感数据的3个实用技巧,包括网络传输层优化、浏览器与API调优以及Workspace批量操作。通过这些方法,用户可将下载速度提升300%以上,特别适合科研人员和团队处理大规模数据需求。

weixin_30706691的博客 178

PINNACLE:PINN自适应配点与实验点选择算法

PINNACLE算法通过引入动态权重机制,实现了PINN训练点选择的自适应优化。该算法基于对训练过程中不同区域学习需求变化的深入理解,设计了平滑过渡的权重函数,确保了模型在不同训练阶段能够优先学习最需要的区域。理论分析和实验结果均表明,PINNACLE不仅能够保证收敛性,而且能够显著提高PINN的性能。这一算法为物理信息神经网络的应用提供了重要支持,尤其适用于复杂PDE问题的求解。

VectorShift的博客 1137

mini2440 SPI驱动移植(转)

按照下面帖子的方法,本人试验成功,只需按照下面步骤进行就行了。 原帖地址: http://blog.youkuaiyun.com/lxmky/article/details/6858322 注:原文最后短接的MISO和MOSI指的是SPI1的,区别于SPI0 mini2440中,SPI0和SPI1的四个功能引脚均接有上拉电阻10K到3.3V。 引脚

zhjixi495的专栏 780

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

关于mini-2440 的spi驱动移植及分析

Linux2.6.32下SPI驱动的移植(mini2440) . 下面需要修改部分内核代码,具体操作如下: 1.  修改arch/arm/mach-s3c2440/mach-mini2440.c文件 在include头文件代码行之后增加如下代码 //spi  add by shiguang #include #include   static struct spi_boa

qzs_13933908434的专栏 831

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

mini2440 SPI驱动移植 (基于SPI子系统) (转的记录)

原文地址:mini2440 SPI驱动移植 (基于SPI子系统)作者:三点水兽 参考一: 按照下面帖子的方法,本人试验成功,只需按照下面步骤进行就行了。 原帖地址:http://blog.youkuaiyun.com/lxmky/article/details/6858322 注:原文最后短接的MISO和MOSI指的是SPI1的,区别于SPI0 min...

weixin_30693183的博客 112

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

linux-2.6.26下SPI1(0) Linux2.6.32下SPI驱动的移植(mini2440)

Linux2.6.32下SPI驱动的移植如下图所示: 下面需要修改部分内核代码,具体操作如下: 1.  修改arch/arm/mach-s3c2440/mach-mini2440.c文件 在include头文件代码行之后增加如下代码 //s

forch的专栏 3142

Linux2.6.32下SPI驱动的移植(mini2440)

目录(?)[-] Linux2.6.32下SPI驱动的移植如下图所示:下面需要修改部分内核代码,具体操作如下: 修改arch/arm/mach-s3c2440/mach-mini2440.c文件修改drivers/spi/spi_s3c24xx.c文件最后重新编译内核应用程序测试 Linux2.6.32下SPI驱动的移植如下图所示:

huquan0610的专栏 762
上一篇: linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解
下一篇: 吐血简述在arm-linux上编译helloworld时候的抓狂经历
hackaday
博客等级 码龄15年 5粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值