HELLO 目前遇到一些狀況 想請問老師們
目前使用embedded linux 3.10.14
在MT7621上有雙CPU CPU0 CPU1
USB 的interrupt 在CPU0
使用lirc gpio來傳送ir 訊號 控制 CAM MENU
使用uvc + mjstreamer 來live view
發現有個狀況
如果 lirc 運行在 CPU0
當發送irsend 指令,會造成 uvc 掉frame0問題
因為 lirc 的 driver 有 spin_lock_irqsave 造成的
所以用taskset 跟nice 把lirc 設定在cpu1 執行
但發現irsend的時候會不靈敏,雖然不會掉frame了
irsend 的時候 led 有亮,但有時候就沒反應
在lirc設定在cpu1的情況下
如果把mjstreamer 的resolution減少 或是 照素面的地方
irsend就正常了
感覺是USB的流量 跟GPIO會打架
目前正在嘗試
1.想辦法把UVC的流量減少
2.是否在linux有可以調整USB與GPIO priority 的地方
3.programing guide 有 RBUS Matrix and QoS Arbiter register 似乎可以設DMA priority
請問有比較可行的解決方法嗎?