RK3568開發筆記(十):開發板buildroot固件移植開發的應用Demo,啓動全屏顯示

前言

  上一篇,移植應用前的通訊接口工作和全屏工作都已經完成了。本篇移植開發的商業應用。

 

交叉編譯好應用

  (略),參照《RK3568開發筆記(八):開發板燒寫buildroot固件(支持hdmi屏),搭建Qt交叉編譯開發環境,編譯一個Demo,目標板運行Demo測試》

 

解決全屏標題欄佔用問題

  交叉編譯好了應用,放過去,跑起來沒問題,也可以正常顯示,但是一旦操作就出現被默認的qt程序佔用。
  這是默認的應用:
  在這裏插入圖片描述
  這是正常全屏應用:
  在這裏插入圖片描述

  這是被佔用之後的(點擊任何地方,讓應用獲取焦點就這樣了):
  在這裏插入圖片描述

  所以,這裏理論上將原來的qt應用停掉,用我們的應用作爲啓動應用就可以了。

 

Buildroot固件系統將設置啓動Qt應用

步驟一:定位到Qt啓動的地方,驗證標題欄

  一般linux系統大家會默認都在rcS裏面加入一個界面啓動腳本,界面啓動腳本也在/etc/inid.d的S???裏面。
  在這裏插入圖片描述

  首先我們先看下這個桌面進程是哪一個,先top,看到與i個QLauncher,殺掉他試試:
  在這裏插入圖片描述

Kill -9 685

  變灰了,看起來標題欄還是在:
  在這裏插入圖片描述

  於是我們,跑一下自己的應用測試驗證一下,確實點擊之後,標題欄還是被佔用了,所以不是QLauncher的問題,是有一個灰色底色+任務欄,稱之爲控制檯吧。

步驟二:定位到控制檯,驗證啓動應用

  這個控制檯可能是weton或者哪裏的,不太清楚,諮詢了官方查看了文檔,好像是weston的:
  在這裏插入圖片描述

  所以直接幹掉看效果:
  在這裏插入圖片描述

  幹587

kill -9 587

  結果如下圖:
  在這裏插入圖片描述

  確實是黑了,但是因此,我們使用界面的應用也啓動不了:
  在這裏插入圖片描述

  這裏陷入兩難了,尋求官方支持。

步驟三:尋求官方支持求改weston的配置

  修改/etc/xdg/weston/weston.ini
  在這裏插入圖片描述

  在這裏插入圖片描述

  然後,再重啓開發板測試:
  在這裏插入圖片描述

  再啓動自己的應用:
  在這裏插入圖片描述

  可以啓動了

步驟四:修改爲自己的程序爲開機啓動

  前面已經定位了QLauncher,那麼替換一下全路徑就可以了。
  注意:這裏要注意若是應用中使用了相對路徑會直接換成調用腳本的路徑爲起始路徑,這事經常容易犯的錯誤,且一時半夥定位不到,所以建議開發程序的時候,使用到路徑一定要使用QApplication::applicationDir去獲取可執行文件的類路徑作爲起始路徑)
  在這裏插入圖片描述

  修改後爲:
  在這裏插入圖片描述

  然後重啓:

rboot

  重啓就是我們的應用了,已經實測驗證完了。

 

應用卡頓

  不用想就是RS485的上下拉過程了,因爲應用的界面都做了二級緩存,所有的界面操作除開時鐘之外,目前只有探測到變化纔會修改一次界面值,而多次發送同樣的數據,理論上不存在,以這個目標去論證。
  官方的usleep,睡眠是100字節才睡眠0.17ms左右,10016(107+2)約等於0.17ms,這樣檢測是不夠的,直接使用QThread::msleep睡眠,之前做的海思的也是這個問題,具體值要根據測試來,這邊測試最終是2ms的時候,不卡頓,當然,可以嘗試1ms。
  在這裏插入圖片描述

  收發即使,收-即使處理了,發-PC即使收到了。
  手癢,測試一下1ms試試,發現1ms更順利,所以改爲1ms了。
  (這裏不是105,回發的只有7字節,等於直接就是1ms之後就拉低了)

 

小結

  嵌入式linux系統開發就是軟硬系統結合,問題出現確實比較多,而且涉獵的知識面比較廣,對於基礎也有一定要求的入門門檻。
33021990)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章