RK3288平台 SPI接口调试步骤

代码路径

drivers/spi/spi.c                             spi驱动框架        
drivers/spi/spi‐rockchip.c              rk spi各接口实现
drivers/spi/spidev.c                       创建spi设备节点,用户态使用。      
drivers/spi/spi‐rockchip‐test.c       spi测试驱动,需要自己手动添加到Makefile编译
Documentation/spi/spidev_test.c  用户态spi测试工具

1、内核配置

修改默认内核配置文件:  arch/arm/rockchip_gzpeite_defconfig

在 kernel 目录下,执行  make menuconfig

进入内核配置界面:

选择SPI相关选项:

Device Drivers  ‐‐‐>
            [*] SPI support  ‐‐‐>     
                       <*>   Rockchip SPI controller driver

(本平台需要)修改相关配置并保存,同时要手动将新的配置文件复制到 config目录

 cp -rf .config arch/arm/rockchip_gzpeite_defconfig

2、DTS节点配置:

dts文件目录:源码/kernel/arch/arm/boot/dts/rk3288-gzpeite.dts

&spi2 {                                // 引用spi 控制器节点status = "okay";max-freq = <48000000>;               // spi内部工作时钟dma‐names = "tx","rx";               // 使能DMA模式,一般通讯字节少于32字节的不建议用spi_test {status = "okay";                   // 使能设备节点compatible = "rockchip,spidev";    // 与驱动对应的名字    驱动文件 spidev.creg = <0>;                         // 片选0或者1spi-max-frequency = <5000000>;     // spi clk输出的时钟频率,不超过50Mspi‐cpha;                         // 如果有配,cpha为1spi‐cpol;                         // 如果有配,cpol为1,clk脚保持高电平spi‐cs‐high;                      // 如果有配,每传完一个数据,cs都会被拉高,再拉低};
};

3、编译内核,并加载到设备端。

驱动设备加载注册成功后,通过adb查看设备列表,会出现类似这个名字的设备:/dev/spidev2.0

spidev2.0 意思为:spi2  cs0

4、SPI端口测试

利用linux自带测试文件  源码/kernel/Documentation/spi/spidev_test.c

1、在/kernel/Documentation/spi  目录下添加 Android.mk 文件 

touch Android.mk

2、编辑Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES += spidev_test.c
LOCAL_MODULE := spidev_test
include $(BUILD_EXECUTABLE)

编译选项说明:

BUILD_STATIC_LIBRARY:编译为静态库。

BUILD_SHARED_LIBRARY :编译为动态库

BUILD_EXECUTABLE:编译为Native C可执行程序

    3、修改目录下Makefile文件

# List of programs to build
hostprogs-y := spidev_test spidev_fdx# Tell kbuild to always build the programs
always := $(hostprogs-y)HOSTCFLAGS_spidev_test.o += -I$(objtree)/usr/include
HOSTCFLAGS_spidev_fdx.o += -I$(objtree)/usr/include

    4、编译spidev_test.c 为可执行文件

在本目录执行

mm -B

执行mm命令前,须在 源码/ 目录下执行 source build/envsetup.sh ,加载android编译命令:   mm help 等

source build/envsetup.sh

5、将编译生成的 spidev_test 文件通过adb发送到设备端

push D:\spidev_test /system/bin

6、短路 SPI端口 RX TX 引脚,执行下面的测试指令。详细格式见  spidev_test -h 命令

spidev_test -D /dev/spidev2.0

测试结果:

RK3288平台 SPI接口调试步骤相关推荐

  1. Nvidia Xavier Nx平台SPI接口调试记录

    1. 前言 现有的硬件使用CS0和CS1在一个SPI上连接一个FRAM和一个TPM模块,在Jetson Nano上运行ok. Xavier NX模块的问题是硬件控制芯片选择信号(CS0)的不同行为. ...

  2. (30)SPI接口调试丢数据解决(FPGA不积跬步101)

    1)遇到问题 FPGA与微处理器进行数据交互用到了SPI接口总线,SPI总线已经很成熟了,网上也有好多开源代码.但是,项目开发调试中也遇到SPI通信丢帧验证问题. 2)解决方法 a.设计思路为:SPI ...

  3. rv1126平台spi屏调试

    我们使用的rv1126平台,屏ic ST7789,硬件使用6bit,由于不是8bit的,所以显示的颜色没有那么丰富 1.硬件原理图 2.dts配置 &rgb {status = "o ...

  4. 6531E平台HTTPS接口调试

    平台SSL协议 一.协议部分 SSL_AsyncRegCallback注册回调 http_SecurityRecvDataCllback加密成功回调 http_SecuritySendDataCllb ...

  5. 全志平台SPI接口LCD屏驱动(GC9300,GC9306,ST7789,HX8357C)

    1 引言 LCD分辨率240x320适合:GC9300,GC9306,ST7789 LCD分辨率480x320适合:HX8357C 2 下载地址 有需要参考的朋友可以在博主的博文链接地址中进行下载: ...

  6. RK3288平台下调屏参基本步骤

    RK3288平台下调屏参基本步骤 注:因为涉及到lvds屏,mipi屏等众多类型不一的屏参调试,所以本文只记录基本调屏的一般步骤,不拿具体型号屏作说明. 调屏时一般板子的主控芯片为RK3288. 一. ...

  7. (第三方平台)开发相关,解除80端口占用,微信公众号分享jssdk实现,微信开放平台登录接口接入,2022微信分享接入本地调试,微信分享定制

    一.开发相关 1.平台地址 微信开放平台 QQ互联平台SDK 2.文章收集 来自CSDN兄台的QQ登录使用的教程 微信网站应用开发的详细流程和引导 VueJs单页应用实现微信网页授权及微信分享功能 [ ...

  8. 基于RK3288 平台 Simple card声卡添加及调试

        基于RK3288 平台 Simple card声卡添加及调试 Simple card即简单通用的machine driver, 如果simple-card框架足够满足需求,建议优先使用simp ...

  9. 基于STM32F103ZET6主控平台实现(SPI接口)OLED液晶屏驱动

    一个热爱代码的工程师,唯有凭借双手不断敲打,才可以快速提升实力! 本文谨以记录,日后相忘时再作复习,代码没有贵贱,既来之则安之. OLED液晶屏产品图和效果图 由上图我们知道:OLED液晶屏分别有GN ...

最新文章

  1. 7-30 字符串的冒泡排序 (C语言)
  2. c#调用excel报错 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))问题的解决
  3. p,br,hn,b,i,u,s,sup,sub标签
  4. Java 常用类库 之 Arrays 数组操作类
  5. jvm的生命周期:启动、执行、退出
  6. 3D动作绑定_全息3D叶修养成记?升级打怪玩转荣耀,HE叶修体验
  7. 控件把鼠标放上去出现一个小窗口_控件跟着鼠标走,VBA让你的操作随心所欲
  8. echarts java动态数据_[ASP.net教程]ECharts Java 动态加载数据,echartsjava
  9. 获取Android Studio的Sha1
  10. python编程入门必备知识-Python快速编程入门,打牢基础必须知道的11个知识点
  11. java Swing实现考试系统
  12. 查询各科成绩前三名的记录
  13. 魔百和CM311-1a YST线刷精简固件(可救砖)
  14. DB---数据模型的三要素
  15. Nature Microbiology | 可感染阿斯加德古菌的六种深海沉积物中的病毒基因组
  16. dcos master挂掉后 slave上面的container会咋样
  17. HZNUOJ 2977 宝可梦决战 种族并查集
  18. telephony 总篇
  19. [转]详细解释数据挖掘中的 10 大算法
  20. [生命科学] 生物基础实验之三引物检测突变体

热门文章

  1. 我对前端开发的粗浅认知
  2. 学习率设置的学问(如何设置学习率)
  3. from batchgenerators.transforms import ComposeImportError: cannot import name ‘Compose‘ from ‘batch
  4. 2020杭电计算机考研复试面试
  5. 基于Matlab使用 IMU、磁力计和高度计估计方向和高度(附源码)
  6. IEEE Transactions on Image Processing文献跟踪11月
  7. c语言编程实现dsa算法,椭圆曲线加密算法的C语言实现.doc
  8. cad画不规则实体_cad画不规则曲线的方法步骤图
  9. 扫黑除恶进行中,公众号文章不知道怎样排版?看这里。
  10. 驰骋BPM工作流后台常用接口与前台常用方法