在CCES环境下,ADI 自带了驱动接口函数,为驱动调试省下一大杯子事;但是这为人熟知的SPI,在调试过程中还是遇到了挫折,几度想撞墙;

最大的折磨:死机

实际的SPI驱动接口是全双工功能的,所以传输完成后,接口函数的返回值是ADI_SPI_TRANSCEIVER_PROCESSED,没有区分是发送完成还是接收完成;我的应用只需要半双工就可以了,按我的思路,是需要区分的,所以,我在驱动的StartInterruptTransceiver()函数里做了修改,判断如果提交的接收buffer是NULL时,只使能transmit;如果提交的发送buffer是NULL时,只使能resecver;这本来毫无争议,实际上这是对驱动的一种优化;但当发送21个字节时,系统崩溃了,PC指针留在出中断,返回主函数时,很像堆栈溢出,查找每个流程和函数,没有发现任何原因,人都快崩溃了;一个偶然的机会,找到了原因,跟代码毫无关系,是由于CCES没有配置使用外部128MB的RAM,导致内存不足,系统崩溃;

第二个bug:丢数据
发送8字节以上的帧,会插入0X00,经琢磨,想到是总线速度太慢的问题(之前是50MHz,SPI波特率是25MHz,slave模式),总线改为25MHz,丢的字节更多了;改为最大的200MHz,居然还是丢;最终放弃了data interrupt模式,改为DMA模式,问题得解!

BF609 CCES下的SPI驱动调试--就这样被它折磨了一周相关推荐

  1. OK6410开发板linux系统下的SPI驱动和测试

    OK6410下的SPI驱动是可以用的,但是飞凌把它作为其它用途了,我们修改一些代码才能在/dev目录下创建SPI的设备节点文件 Step1:打开arch/arm/mach_s3c64XX/mach_m ...

  2. Hyper-V下Linux鼠标驱动调试和网卡跃点数问题

    Hyper-V Linux双网卡鼠标调试心得 鼠标在hyper-v里不受支持,现在我们来安装鼠标驱动,让它受支持 一.下载驱动:linux-ic.iso inputvsc.iso两个文件 安装linu ...

  3. linux3.10系统下CH432T(SPI转串口)调试笔记

    目录 1 CH432T 芯片的 SPI 通讯协议 1.1 SPI 时钟相位模式和片选 1.2 SPI 通讯协议 2 CH432 关键寄存器表 3 通讯时发生数据丢失 3.1 ch432手册分析 3.2 ...

  4. OpenWrt 之 MT7628 移植第三方SPI驱动

    1.在OpenWrt系统上移植SPI驱动前,首先要确保SPI相关引脚未被复用为其他功能,比如GPIO:以下操作已假定该条件成立,否则请修改相关dts和c文件中复用配置: 2.打开dts配置文件进行修改 ...

  5. linux随笔记 - SPI驱动

    spi驱动总线和I2C驱动差不多.只不过对应的API不一样,使用的大致流程都是一样的. linux下的spi驱动不支持热插拔(i2c同样不支持,usb.hdmi支持热插拔) SPI总线一般四根线: S ...

  6. spi总线 上层调用_spi总线的mmc卡驱动调试总结 | 学步园

    这周调试挂载在spi总线sd卡驱动,总结一下 因为这个涉及到2个驱动,spi总线驱动和sd卡驱动,sd卡设备挂载在spi总线上并不像设备挂载在i2c总线上, i2c总线提供设备挂载需要的借口函数att ...

  7. Linux下SPI驱动详解

    更多嵌入式原创文章,请关注公众号:一口Linux 1. SPI总线 1.1. SPI总线概述 SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口. ...

  8. Linux下SPI驱动详解(干货)

    关注.星标公众号,直达精彩内容 本文由嵌入式大牛:蒙工投稿! 1. SPI总线 1.1. SPI总线概述 SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外 ...

  9. ubuntu18.04下双机驱动调试

    环境搭建: https://blog.51cto.com/haidragon/2337256 这里要先说下如果要下内核断点要先在编译前去掉写保护,但是下自己写的驱动可以不要. 第二个最好编译完后压缩v ...

最新文章

  1. 怎样才算世界一流大学
  2. 基于MSM 的tomcat session 共享
  3. 深度学习的一些经验总结和建议| To do v.s Not To Do
  4. TraceView(profile) and Systrace
  5. 关于Calendar用法的一些总结
  6. Linux常用命令——关机重启命令
  7. android 播放3gp音频,Android的Media(录音,播放音乐,播放视频等)
  8. pandas不显示index_Pandas中文官档 ~ 基础用法1
  9. 基于java SSM的房屋租赁系统设计和实现
  10. java物业收费管理系统源码_基于java+swing+mysql的物业小区收费管理系统
  11. 汉诺塔递归算法python详细解析图_python实现汉诺塔递归算法经典案例
  12. 数据库:主键外键作用
  13. 计算机主机hdmi接口是什么意思,hdmi接口有什么用,教你详细的计算机hdmi接口功能...
  14. 8.1 有监督学习算法
  15. 成为一个好的PHP工程师需要掌握什么技能
  16. 小牛电动电池黑科技曝光,够创新才能够实力
  17. 肇庆学院"菜鸟杯"程序设计竞赛2019 A.解锁专家
  18. 网络工程师就业前景、职业规划和工资待遇
  19. Alice In Wonderland notes
  20. 季节前面为什么用in_季节前面用in还是on

热门文章

  1. 【给你的臭宝推送天气的专属公众号】--理工男的浪漫
  2. 宝宝知道关注+私信脚本引流使用教程
  3. abp angular 和mvc_什么是ASP.NET Boilerplate Project(ABP)框架
  4. 在阿里云服务器windows server 2008r2上面搭建FTP服务器
  5. 数字电路实验怎么接线视频讲解_单相电机+双电容,怎么控制电机正反转,老电工老告诉你!...
  6. 泛型「generic」讲解
  7. L3-025 那就别担心了 (30分)
  8. Visual Studio 2013正式版下载(附直接链接汇总),本人亲测好使
  9. IIS添加WCF支持
  10. linux高性能服务器编程第八章(高性能服务器程序框架)