2009-12-28 61 views
4

我需要在嵌入式系統上顯示圖像。主板配置如下:在ARM 9板上顯示圖像

它是AT91sam9263-EK,運行Linux 2.6.20內核。這塊主板是否有圖像處理庫?處理器是ARM​​926EJ-S。

謝謝大家

回答

1

首先,你需要配置framebuffer(的fbdev)在您的主板上運行。它將充當您的硬件和GUI應用程序之間的一層。 Here你會發現很多關於它的信息。

完成後有一堆庫/框架。極少數最普遍的人羣是SVGAlibSDL(需要X)。

與通常使用跨平臺的源代碼一樣,您需要使用工具鏈重新編譯這些庫。

UPDATE:

很少有更適合你的鏈接從SO:here,和here

+0

嗨安德烈斯, 我想你是告訴我直接配置引腳,而不是使用板上已經存在的操作系統支持。我想使用操作系統支持。 請糾正我,如果我錯了。有任何庫,我可以使用顯示圖像在同一時間使用船上的操作系統。 謝謝 – skyrulz 2009-12-28 16:24:15

+0

Linux是操作系統。而fbdev是linux內核的一部分。你在說什麼別針?您的評論對我而言並不明確。 – 2009-12-28 16:26:10

+0

嗨andrejs, 首先,我很抱歉,我發佈該評論與出去通過你提供的鏈接。剛纔我讀了鏈接,我很清楚答案。 是的,我需要爲我的項目工作開發一個GUI應用程序。我要配置幀緩衝區。在你給出的鏈接中沒有提到。 謝謝 – skyrulz 2009-12-28 16:32:46

2

如果在Linux操作系統中沒有激活幀緩衝區,我知道它在由Linux4Sam提供的Linux操作系統中。如果通過發出命令cat /bin/sh > /dev/fb0激活,您可以隨時嘗試;屏幕上應該出現一個隨機模式(請注意,可能需要激活背光 - 如果關閉,您可能看不到任何東西)。您可能必須先殺死目標上運行的圖形環境。

如果你想要做的只是顯示一個圖像,可以通過打開framebuffer(/ dev/fb0)並寫入它(或只是貓)來實現。但您必須以正確的格式顯示圖像。如果我沒有記錯的話,評估板中的幀緩衝區是RGB555(即5位用於紅色,5位用於綠色,5位用於藍色)。

如果你想使用一個GUI庫,你必須使用一個具有framebuffer後端的GUI庫。在一個標準的Linux系統上,一個GUI庫假定你已經安裝了X,但其中一些還有幀緩衝後端。 Qt可以用這種方式進行編譯(但我認爲您必須對其進行修改以提供正確的顏色信息;它僅支持RGB565開箱即用)。 DirectFB是一個更簡單的解決方案,它提供了基本的圖形支持(但它支持FreeType爲您提供良好的字體支持)。有關其他示例,請參閱上面提供的鏈接。

+0

我相信Qt的問題是framebuffer是BGR,而Qt期望RGB(它只能看每像素的比特數)。要正確配置Qt,請在啓動Qt應用程序之前添加「-depth generic」來配置(構建Qt時),然後在目標上導出「QWS_DISPLAY = Linuxfb:genericcolors」。 – e8johan 2009-12-29 08:22:43