1 數碼相框 相框框架分析 1

2022-03-10 17:43:40 字數 1499 閱讀 5056

專案流程

弄清需求

(1)上電,lcd顯示一副

(2)根據配置檔案,決定停留當前介面還是自動顯示下一張

(3)點選一下,出現乙個對話方塊(手動顯示,自動顯示)

(4)上放大,下縮小,左右滑動切換

(5)左右滑動很快時,切換上上/下下一張

設計框架

通過兩部分來完成:

1)輸入程序(如下圖所示)

建立3個執行緒:觸控執行緒、按鍵執行緒、主控執行緒

-觸控執行緒:不停呼叫tslib,當有資料後,封裝成事件,上報給主控執行緒

-按鍵執行緒:沒按下時休眠,按下時便產生中斷,封裝好上報給主控執行緒

-主控執行緒:收到資料後,用socket傳送給顯示程序

2)顯示程序(如下圖所示)

建立7個執行緒

-socket接收執行緒:

用來接收socket,比如收到左劃的資料,便通知事件到主控執行緒

-主控執行緒:

根據得到的事件,然後呼叫驅動通過dma將準備好的資料(位於某個記憶體上)放到視訊記憶體位址framebuffer上.

-其它5個程序(當前,左,右,上,下):

比如當主控顯示完乙個後,則開始準備好(解壓上幅/下幅,放大,縮小等資料),方便主控執行緒直接呼叫,從而提高速度.

資料是通過應用程式用庫libjpeg解壓(將jpeg格式轉換為lcd顯示格式),使用mmap()函式傳到某個記憶體上.

當前執行緒的意義:

之前我們說過,當點選一下,會出現乙個對話方塊,若退出對話方塊後, 便會通知當前執行緒,從而顯示當前。

對話方塊:

按鈕以及邊框直接做成乙個個,呼叫對話方塊時,直接覆蓋lcd視訊記憶體上即可

總結:

使用多執行緒好處在於:每個模組獨立起來,方便以後修改,而且全域性變數在多執行緒裡可以共用.

下章學習:

2.數碼相框-編碼(ascii/gb2312/unicode)介紹,並使lcd顯示漢字字元(2)

專案1 電子書 第1課 數碼相框之系統框架

主 機 vmware ubuntu 16.04.2 x64 100ask 開發板 jz2440 256m nandflash,2m norflash,64m sdram,lcd 4.3寸 bootlorder u boot 2012.04.01,kernel linux3.4.2 編譯器 arm l...

數碼相框 電子書 之 完全分析

模組化思想 編碼格式模組,庫模組,顯示模組,描畫,輸入模組。根據傳入引數 物件導向思想 每個模組建立乙個結構機構體鍊錶,如編碼模組,有乙個編碼鏈表,各編碼格式設定為乙個結構體,註冊入鍊錶 以後我們操作,只需要操作到鍊錶,而不需要到操作到底層各編碼格式的具體函式。操作過程 根據傳入引數,找到支援該編碼...

框架學習1 常見框架的結構和分析1

我們所學習的技術框架有很多,例如struts1 struts2 jsf spring springmvc hibernate ibatis 在上篇部落格我說了我們可能在開發的路途上會要學習這些框架,我也給出了我對框架學習的幾點 我們首先要看一下這個框架屬於開發結構中的那一層。因為我們的開發都是要用分...