2014-11-21 65 views
7

我們目前正在開發BeagleBone Black的應用程序(使用標準的Angstrom發行版)。它在GDB(由Netbeans遠程控制)下運行了一段時間(5-10分鐘),但在一些相對隨機的時間點會凍結 - 心跳指示燈停止閃爍並需要完全重新啓動。BeagleBone黑色凍結

其中一種可能性是它僅僅是造成這種情況的(USB)設備的數量。我們通過FTDI串行鏈接連接到我的開發PC(有一個客戶端應用程序與我的BBB服務器通信)。有一個帶有多個設備(當前有3個)的4路FTDI集線器,還有一個FTDI連接與另一個硬件連接。另外還有兩個I2C器件。加上鼠標和鍵盤。

當然,除了傳言外,我沒有證據表明它是USB引起的問題。我的軟件沒有引起任何信號,日誌文件告訴我更多。我已經運行了系統監視器應用程序,看看我是否在泄漏內存,但它看起來表現良好且穩定(儘管CPU確實蠕變)。我想找到一種方法來找到失敗的底部,並希望得到一些幫助。

+0

沒有反饋?哦,這是扔手榴彈。我在我的筆記本電腦上安裝了ubuntu(+ Netbeans + svn + ...),獲得了代碼構建和運行,並且它堅如磐石,整天都在運行(不包括I2C)。我們強烈懷疑BBB/Angstrom上的USB堆棧。 – 2014-11-26 15:45:47

回答

7

最後,兔孔的底部:

http://e2e.ti.com/support/arm/sitara_arm/f/791/t/308549

這樣看來,有在TI硅的問題,特別是中斷控制器,其使得「咿」中斷火當USB過於繁忙時。這導致嘗試重置主機並且應用程序相應地死亡。這解釋了爲什麼這個問題在Angrstrom和Debian中都存在 - 它根本不是堆棧/驅動程序問題,而是TI芯片的問題。哎喲!因此,我們可能不得不放棄BBB作爲我們的選擇平臺。

從調試串行控制檯輸出證實這是我們的應用程序的情況下:

_handle_irq+0x39/0x58) 
[ 466.343796] [<c0008551>] (omap3_intc_handle_irq+0x39/0x58) from [<c045b95b>] 
(__irq_svc+0x3b/0x5c) 
[ 466.359334] Exception stack(0xd2759cf8 to 0xd2759d40) 
[ 466.368332] 9ce0:              00000000 c0849ac0 
[ 466.382735] 9d00: 00000000 00000000 c07a2080 00000000 d2758000 00000002 d2759db0 00000003 
[ 466.397178] 9d20: c0812610 d2758000 b405025a d2759d40 c0031241 c0030f4e 40000133 ffffffff 
[ 466.411686] [<c045b95b>] (__irq_svc+0x3b/0x5c) from [<c0030f4e>] (__do_softirq+0x46/0x174) 
[ 466.426346] [<c0030f4e>] (__do_softirq+0x46/0x174) from [<c0031241>] (irq_exit+0x29/0x50) 
[ 466.440833] [<c0031241>] (irq_exit+0x29/0x50) from [<c000c8cf>] (handle_IRQ+0x3f/0x5c) 
[ 466.454864] [<c000c8cf>] (handle_IRQ+0x3f/0x5c) from [<c0008551>]  (omap3_intc_handle_irq+0x39/0x58) 
[ 466.470777] [<c0008551>] (omap3_intc_handle_irq+0x39/0x58) from [<c045b95b>](__irq_svc+0x3b/0x5c) 
[ 466.486319] Exception stack(0xd2759db0 to 0xd2759df8) 
[ 466.495351] 9da0:          00000002 00000000 00007d00 00000000 
[ 466.509782] 9dc0: c07c81d0 c07c81d0 c07c75dc 00007d02 0000007d 00000003 c0812610 de5f4b40 
[ 466.524147] 9de0: 00000100 d2759df8 c0025b2d c0025bea 00000133 ffffffff 
[ 466.536019] [<c045b95b>] (__irq_svc+0x3b/0x5c) from [<c0025bea>] (omap3_noncore_dpll_set_rate+0x1f2/0x330) 
[ 466.553005] [<c0025bea>] (omap3_noncore_dpll_set_rate+0x1f2/0x330) from [<c0383273>] (clk_change_rate+0x1b/0x52) 
[ 466.570813] [<c0383273>] (clk_change_rate+0x1b/0x52) from [<c03832fb>] (clk_set_rate+0x51/0x72) 
[ 466.586199] [<c03832fb>] (clk_set_rate+0x51/0x72) from [<c034ba29>] (cpu0_set_target+0xf9/0x198) 
[ 466.601754] [<c034ba29>] (cpu0_set_target+0xf9/0x198) from [<c0348c5d>] (__cpufreq_driver_target+0x4d/0x70) 
[ 466.618890] [<c0348c5d>] (__cpufreq_driver_target+0x4d/0x70) from [<c034b33b>] (dbs_check_cpu+0x123/0x134) 
[ 466.635897] [<c034b33b>] (dbs_check_cpu+0x123/0x134) from [<c034ad31>] (od_dbs_timer+0x4d/0xb0) 
[ 466.651283] [<c034ad31>] (od_dbs_timer+0x4d/0xb0) from [<c003c8c5>] (process_one_work+0x1b5/0x2c0) 
[ 466.667088] [<c003c8c5>] (process_one_work+0x1b5/0x2c0) from [<c003cca3>] (worker_thread+0x19b/0x258) 
[ 466.683355] [<c003cca3>] (worker_thread+0x19b/0x258) from [<c003fb8f>] (kthread+0x67/0x74) 
[ 466.698026] [<c003fb8f>] (kthread+0x67/0x74) from [<c000c0dd>] (ret_from_fork+0x11/0x34) 
[ 466.712148] drm_kms_helper: panic occurred, switching back to text console 
[ 407.924892] CAUTION: musb: Babble Interrupt Occurred 
[ 407.965570] CAUTION: musb: Babble Interrupt Occurred 
[ 408.026994] gadget: high-speed config #1: Multifunction with RNDIS 
[ 413.918684] musb_g_ep0_irq 710: SetupEnd came in a wrong ep0stage wait 
+0

這裏的外賣是BBB不是黃金時間準備就緒。任何情況下都不要在工業設計中使用它。 Element14必須知道他的問題,並且正在坐着。 – RobC 2015-10-15 18:44:17

0

因此,它看起來像將鼠標插入USB集線器,並且如果集線器上有其他設備正在執行IO,則將其固定在BBB上會導致此問題。一位同事告訴我,Raspberry Pi也存在這樣的問題。拔掉鼠標後,軟件運行了一個多小時,沒有凍結。重新插入,約10分鐘後凍結。刪除鼠標,再次運行,並且已經進行了半小時,沒有問題。

+0

太好了,是真的。仍然凍結,平均需要更長時間。嘆。 – 2014-11-28 11:39:03