AnsweredAssumed Answered

读写SD卡出错

Question asked by chenza on Mar 15, 2012
Latest reply on Jul 8, 2012 by chenza

大家好!

我通过MMC_SPI读取SD卡中的文件,使用多线程读取多个文件时,时不时会停止,并且网卡看门狗(NETDEV WATCHDOG)会溢出,读操作停止,过3~5秒后,启动读操作又正常。情况如下:

------------[ cut here ]------------

WARNING: at net/sched/sch_generic.c:256 _dev_watchdog+0x206/0x20c()

NETDEV WATCHDOG: eth0 (dm9000): transmit queue 0 timed out

Modules linked in:

Hardware Trace:

   0 Target : <0x0034cac8> { _dump_stack + 0x0 }

     Source : <0x002107f8> { _warn_slowpath_common + 0x40 } CALL pcrel

   1 Target : <0x002107f8> { _warn_slowpath_common + 0x40 }

     Source : <0x0022d038> { _print_modules + 0x4c } RTS

   2 Target : <0x0022d032> { _print_modules + 0x46 }

     Source : <0x0034cbd0> { _printk + 0x14 } RTS

   3 Target : <0x0034cbcc> { _printk + 0x10 }

     Source : <0x00211466> { _vprintk + 0x16a } RTS

   4 Target : <0x00211444> { _vprintk + 0x148 }

     Source : <0x0021152e> { _vprintk + 0x232 } JUMP.S

   5 Target : <0x0021152e> { _vprintk + 0x232 }

     Source : <0x00211082> { _release_console_sem + 0x1be } RTS

   6 Target : <0x0021107a> { _release_console_sem + 0x1b6 }

     Source : <0x0021106c> { _release_console_sem + 0x1a8 } IF CC JUMP pcrel

   7 Target : <0x0021105c> { _release_console_sem + 0x198 }

     Source : <0x0021104e> { _release_console_sem + 0x18a } IF CC JUMP pcrel (BP)

   8 Target : <0x00211046> { _release_console_sem + 0x182 }

     Source : <0x002242e2> { _up + 0x3e } RTS

   9 Target : <0x002242dc> { _up + 0x38 }

     Source : <0x002242ce> { _up + 0x2a } IF CC JUMP pcrel (BP)

  10 Target : <0x002242a4> { _up + 0x0 }

     Source : <0x00211042> { _release_console_sem + 0x17e } CALL pcrel

  11 Target : <0x0021102e> { _release_console_sem + 0x16a }

     Source : <0x00210f26> { _release_console_sem + 0x62 } IF CC JUMP pcrel

  12 Target : <0x00210f06> { _release_console_sem + 0x42 }

     Source : <0x00210f58> { _release_console_sem + 0x94 } IF CC JUMP pcrel (BP)

  13 Target : <0x00210f4e> { _release_console_sem + 0x8a }

     Source : <0x00210ace> { __call_console_drivers + 0x62 } RTS

  14 Target : <0x00210ac8> { __call_console_drivers + 0x5c }

     Source : <0x00210aa2> { __call_console_drivers + 0x36 } IF CC JUMP pcrel

  15 Target : <0x00210a92> { __call_console_drivers + 0x26 }

     Source : <0x00210a82> { __call_console_drivers + 0x16 } IF !CC JUMP pcrel (BP)

Stack info:

SP: [0x003ddd68] <0x003ddd68> /* kernel dynamic memory */

Memory from 0x003ddd60 to 003de000

003ddd60: 003ddd68  003ca1d0 [002107f8] 002107fc  003dddac  003a1024  0000000d  003a1024

003ddd80: 00000100  0031336a  0021084e  003ceaf4  00000000  000004e2  0000003f  00000000

003ddda0: 000004e2  003cc590  003dddac <003a103c> 003dddc4  0031336a  003cd794  0023f150

003dddc0: 00000001  01563c00  003dddd0  00000000  30396d64  00003030  00000000  00000000

003ddde0: 003dde00  0020eb24  003dde00 <0020eaf6> 0000002f  003cf23c  003ccd04  0000ffff

003dde00: 003ceaf4  0023f162  003c4d88  003c4d88 <002186ca> 003c4d88  003dde48  00313164

003dde20: 00000100  003c5594  0000003f  00000000  30a33b1e  0000002f  003bb258  003c5b94

003dde40: 003c5994  003c5794  003d1e0c  003d1e0c  003c4c60 <002150aa> 00000001  003c4c6c

003dde60: 003dc000  00000101  00000004  00000100  0000000a <00209a96> 00232044  003cfa74

003dde80: 003dc008  003dc008  00000006  003bb258  0020368c  003d3324  003dc008  003dc008

003ddea0: 00000006  00000000  00000000  00000000  0000000d  00000000  00000361  002091e6

003ddec0: ffc00014  002005d4  00000000  7ffff000  000000c0  00000137  002005fc  00008050

003ddee0: 00000000  00000000  019b0000  0094d40c  002005fc <00200c58> 00000006  02002060

003ddf00: 008b5589  002b00a8  008b5582  002b00a6  00000000  00000000  0000071a  00000000

003ddf20: 0000348c  00000000  00000000  7ffff000  000000c0  00000137  00000000  00000000

003ddf40: 00000000  00000000  0000005b  00001802  00000001  fffffffc  00000006  00000003

003ddf60: 00000001  0192feb0  003de000  003bb258  002005d4  003dc008  003dc008  003ccd04

003ddf80: 00000000  00208f60  002005d4  00000000  00000000  00000000  00000065  00000008

003ddfa0: 019accc0  0000ffff  0000ffff  00208f60  00000006  00000000  003f44fc  00000000

003ddfc0: 003de000  003de648  003c6408  003bb004  00000000  003f44fc  0038042c  003f1b34

003ddfe0: 003ba3e0  00000035  003de218  003f44fc  003e5472  00000000  00000000  ffb00000

Return addresses in stack:

    address : <0x002107f8> { _warn_slowpath_common + 0x40 }

    address : <0x003a103c> /* kernel dynamic memory */

    address : <0x0020eaf6> { _try_to_wake_up + 0x5e }

    address : <0x002186ca> { _run_timer_softirq + 0xea }

    address : <0x002150aa> { ___do_softirq + 0x76 }

    address : <0x00209a96> { _bfin_demux_gpio_irq + 0x4e }

    address : <0x00200c58> { _cpu_idle + 0x30 }

---[ end trace 8544a311ca8a6058 ]---

好象是从SD卡读数据时卡在那里,连内核都得不到运行,那位大家遇过这种现象,如何解决? 我使用2010R1-RC4版本

     期望着!

---陈忠安

Outcomes