基于Linux的ARM与FPGA SPI驱动,中断函数调用spidev_sync_read(),出现错误

BUG: scheduling while atomic: spidev_test/1034/0x00010003

Modules linked in: spidev fpga

Pid: 1034, comm:          spidev_test

CPU: 0    Tainted: G        W    (2.6.35.3-571-gcca29a0 #131)

PC is at __setup_irq+0x258/0x378

LR is at mxs_gpio_unmask_irq+0x38/0x40

pc : []    lr : []    psr: 60000013

sp : c7efbd68  ip : c7efbd40  fp : c7efbd94

r10: c7e6b400  r9 : 00000000  r8 : c03fa89c

r7 : 60000013  r6 : 000000bb  r5 : c7e6be40  r4 : c03fa87c

r3 : 00000000  r2 : 00000000  r1 : f0018010  r0 : 00000000

Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user

Control: 0005317f  Table: 47f14000  DAC: 00000015

[] (show_regs+0x0/0x50) from [] (__schedule_bug+0x4c/0x60)

r5:c7efa000 r4:c7efbd20

[] (__schedule_bug+0x0/0x60) from [] (schedule+0x78/0x36c)

r5:c7efa000 r4:c7cc1cc0

[] (schedule+0x0/0x36c) from [] (schedule_timeout+0x20/0x1f4

)

[] (schedule_timeout+0x0/0x1f4) from [] (wait_for_common+0x1

04/0x1d4)

r6:c7efbc04 r5:7fffffff r4:c7efa000

[] (wait_for_common+0x0/0x1d4) from [] (wait_for_completion+

0x18/0x1c)

[] (wait_for_completion+0x0/0x1c) from [] (spidev_sync+0xc8/

0xe4 [spidev])

[] (spidev_sync+0x0/0xe4 [spidev]) from [] (fpga_irq+0x68/0x

8c [spidev])

r6:c7e6b400 r5:c7efbc30 r4:00000001

[] (fpga_irq+0x0/0x8c [spidev]) from [] (handle_IRQ_event+0x

2c/0xfc)

r8:00000001 r7:000000bb r6:00000000 r5:00000000 r4:c7e6be40

[] (handle_IRQ_event+0x0/0xfc) from [] (handle_level_irq+0xd

c/0x188)

r7:c03f956c r6:c7e6be40 r5:000000bb r4:c03fa87c

[] (handle_level_irq+0x0/0x188) from [] (mxs_gpio_irq_handle

r+0x6c/0xa0)

r7:c03f956c r6:0000007e r5:000000bb r4:00000001

[] (mxs_gpio_irq_handler+0x0/0xa0) from [] (asm_do_IRQ+0x74/

0x94)

r7:00000002 r6:000000bb r5:00000000 r4:0000007e

[] (asm_do_IRQ+0x0/0x94) from [] (__irq_svc+0x44/0x8c)

Exception stack(0xc7efbd20 to 0xc7efbd68)

bd20: 00000000 f0018010 00000000 00000000 c03fa87c c7e6be40 000000bb 60000013

bd40: c03fa89c 00000000 c7e6b400 c7efbd94 c7efbd40 c7efbd68 c003b944 c007c710

bd60: 60000013 ffffffff

r5:f0000000 r4:ffffffff

[] (__setup_irq+0x0/0x378) from [] (request_threaded_irq+0xb

c/0x104)

[] (request_threaded_irq+0x0/0x104) from [] (spidev_open+0x1

0c/0x150 [spidev])

[] (spidev_open+0x0/0x150 [spidev]) from [] (chrdev_open+0x1

e8/0x208)

r6:c7e6b8c0 r5:c7f2c280 r4:c7a7b128

[] (chrdev_open+0x0/0x208) from [] (__dentry_open+0x19c/0x2b

8)

r8:c00bf1b4 r7:c7a7b128 r6:c7a7ac00 r5:c7cdbb00 r4:c7f2c280

[] (__dentry_open+0x0/0x2b8) from [] (nameidata_to_filp+0x48

/0x60)

[] (nameidata_to_filp+0x0/0x60) from [] (do_last+0x4a8/0x604

)

r4:c7efbed0

[] (do_last+0x0/0x604) from [] (do_filp_open+0x188/0x4f0)

[] (do_filp_open+0x0/0x4f0) from [] (do_sys_open+0x64/0xec)

[] (do_sys_open+0x0/0xec) from [] (sys_open+0x24/0x28)

[] (sys_open+0x0/0x28) from [] (ret_fast_syscall+0x0/0x2c)

------解决思路----------------------

中断处理函数好像有问题

------解决思路----------------------

你怎么确定是spidev_sync_read()出了问题?

你的spidev_test是怎么调用驱动模块的?

------解决思路----------------------

你的中断是怎么触发的?

能介绍一下你的中断系统和spidev_test之间的关系么?

------解决思路----------------------

你这直接上这么一段崩溃信息都不知道你这代码逻辑,直接上代码请?

linux中断调用spi函数,基于Linux的ARM与FPGA SPI驱动,中断函数调用spidev_sync_read(),出现异常...相关推荐

  1. linux应用调用内核函数,Hooking linux内核函数(一):寻找完美解决方案

    前言 我们最近参与了一个Linux系统安全相关项目,需要hooking几个重要的Linux内核函数调用,例如打开文件和启动进程,并利用它来启用系统活动监控并抢先阻止可疑进程. 最后,我们发明了一种有效 ...

  2. c调用python函数_python - Linux C调用Python 函数

    1.Python脚本,名称为py_add.py def add(a=,b=): print('Function of python called!') print('a = ',a) print('b ...

  3. linux c sync函数,怎么在Linux中调用fsync函数

    Linux中如何调用fsync函数?针对这个问题,本文详细介绍了相应的分析和解决方法,希望能帮助更多想解决这个问题的伙伴找到更简单易行的方法. 功能描述: 将内存中所有已修改的文件数据同步到存储设备. ...

  4. linux多线程调用同一个函数解析

    原文地址:http://blog.csdn.net/mq_ydn3102/article/details/8546722 问题背景:在工作中遇到过一个问题,就是在两个线程同时调用同一个函数的时候,到底 ...

  5. linux命令行sip电话,基于Linux和MiniGUI的SIP电话终端设计

    0 引言 随着VoIP的迅猛发展,越来越多的个人用户正在使用软件电话.IP电话通过VoIP系统拨打国内和国际长途,IP电话的需求量越来越大,同时,人们对IP电话的要求也越来越高,例如要求IP电话体积小 ...

  6. linux中有fd set函数吗,LINUX下FD_SET介绍

    刚刚了解了linux下select系统调用,函数原型是 #include #include int select(int maxfdpl, fd_set *readset, fd_set *write ...

  7. linux tcl是什么系统,基于Linux 及Tcl / Tk 的数控系统人机界面的实现

    随着嵌入式系统的迅速发展和广泛应用,嵌入式Linux以其强大的性能和开放性,越来越被开发人员所推崇.现在,各种基于Linux的嵌入式系统已被用于各行各业中.其中,人们对基于嵌入式实时Linux平台的开 ...

  8. linux c语言内核函数手册,Linux C函数实例速查手册

    函数学习目录: 第1章 初级I/O函数 1.1 close函数:关闭已经打开的文件 1.2 creat函数:创建一个文件 1.3 dup函数:复制文件描述符 1.4 dup2函数:复制文件描述符到指定 ...

  9. linux配置usb主从_基于Linux的USB主/从设备之间的三种通信方式

    随着简单易用的USB接口日益流行,在嵌入式系统中添加对USB接口的支持已成为大势所趋.本文通过介绍Linux中支持USB的各种模块和库,分析了在Linux上利用USB实现高速串口和以太网连接等通信方式 ...

最新文章

  1. iOS -- iOS11新特性,如何适配iOS11
  2. MATLAB的size()函数的返回值是一个1*2的向量哦,即使参数是向量也是1*2的向量哦!
  3. kafka manager 2.0 工具下载 已打包完成
  4. 冲突、冲突域、广播、广播域、洪泛的基本概念
  5. 代码审查和不良编程习惯
  6. java中重试的使用工具
  7. 我们要不要上线「个人app」 ?
  8. Photoshop插件-黑白(三)-脚本开发-PS插件
  9. php网站开题报告该怎么答辩,如何应对开题报告答辩?看完你就明白了
  10. Fovea Box阅读学习笔记
  11. 西湖论剑 easyCpp writeup
  12. 安利——程序猿必备笔记软件typora+坚果云
  13. UICollectionView左对齐
  14. 一种屏蔽win10指定更新补丁的设置方法
  15. 【DevOps】总结下容器方式构建Grafana-reporter生成PDF格式报告
  16. 陕西省土地规划资质办理流程及申请条件
  17. C语言数据结构静态动态查找表实验
  18. 完整elasticsearch安装及其插件安装
  19. 支付宝生活号对接-----(一)授权
  20. eclipse 提示 An internal error occurred during

热门文章

  1. [转自360kr]如何才能进入Facebook工作?公司内部工程师告诉你
  2. 异常处理-trycatch
  3. 网站时间显示——基于Date
  4. 使用js获取IE浏览器版本
  5. MySQL(三)表记录的更新操作
  6. LOJ10155数字转换
  7. Luogu 1970 NOIP2013 花匠 (贪心)
  8. Linux 驱动面试题总结【转】
  9. HTTPS传输协议原理
  10. 实验十一 连接数据库实验(V2.0)