Ⅰ 液晶屏lcd在linux下怎麼讓它顯示我想要顯示的內容
在確保linux lcd 顯示屏驅動無誤的情況下.有兩款比較常見的圖像開發工具可供你選擇.
Qt,GTK.
可以先移植個QtE庫.再進行linux的圖像開發.
lcd的顯示方面linux系統會幫你管理.就好像你用VC寫了個窗口一運行在桌面上就會出現個窗口那樣,在linux下用QtE開發了一個窗口一運行也會出現一個窗口.只不過在窗口下就沒有桌面而已.只要搞定了QTE顯示圖片什麼的只是小菜一碟.
不過QTE的移植可不是一件簡單的事.祝好運.
Ⅱ 怎樣在linux一個終端多個窗口
1、在遠程工具的情況下,想開幾個就開幾個
2、直連伺服器控制台的話,ctrl+alt+F1-12這個組合鍵可以切換12個終端
3、安裝一個虛擬終端工具screen,yum就可以。
Ⅲ 怎樣(編程實現)在linux環境下打開兩個終端窗口互相發送和接收消息(類似qq聊天)
在linux環境下打開兩個終端窗口互相發送和接收消息(類似qq聊天),不可能在編就是軟體了(除了軟體有能)。
Ⅳ Linux紿楀彛紼嬪簭璁捐$殑浠嬬粛
銆奓inux紿楀彛紼嬪簭璁捐°嬩竴涔︿富瑕佷互Qt緙栫▼瀹炰緥涓哄熀鐐癸紝灝嗙▼搴忚捐′腑緇忓父浣跨敤鐨勭紪紼嬫柟娉曞拰鎶宸т粙緇嶇粰璇昏咃紝閽堝規у己錛屽逛簬鍒濆﹁呮潵璇存槸涓鏈闈炲父瀹炵敤鐨勫弬鑰冧功銆備功涓鎵閫夊疄渚嬮兘鏄浣滆呭氬勾鐮斿彂緇忛獙鐨勬葷粨錛屽唴瀹逛赴瀵岋紝鍏鋒湁寰堝己鐨勯拡瀵規у拰瀹炵敤鎬с
Ⅳ Linux緋葷粺涓媀im鐨勫氱獥鍙d嬌鐢ㄦ妧宸
鍒╃敤vsp鍛戒護錛
姣斿傦細鏌愭枃浠跺す涓嬫湁鏂囦歡錛
浠g爜濡備笅:
vector.cc, substr.cc
1.浣跨敤vim鍛戒護鎵撳紑浠繪剰涓涓鏂囦歡錛歷im vector.cc鎵撳紑絎涓涓鏂囦歡銆傚備笅鍥炬墍紺猴細
銆2.鎸夛細"Esc"閿 + 鈥滐細鈥濓紝騫惰緭鍏
澶嶅埗浠g爜
浠g爜濡備笅:
:vsp substr.cc
銆(榪欓噷vsp璺焩i/vim鎿嶄綔涓鏍鳳紝璺寰勫彲浠ヨ嚜鐢卞垏鎹銆)濡備笅鍥炬墍紺猴細
銆3.鎸"Enter"閿銆傚備笅鍥炬墍紺猴細
銆4.涓轟簡璁╅紶鏍囧彲浠ュ湪鍑犱釜灞忓箷闂磋嚜鐢卞垏鎹銆
鎸夛細"Esc"閿 + 鈥滐細鈥濓紝杈撳叆錛
澶嶅埗浠g爜
浠g爜濡備笅:
set mouse=a
銆傜劧鍚庯紝鍥炶濺(Enter)錛岃繖鏍烽紶鏍囧氨鍙浠ュ湪澶氬睆騫曚箣闂磋嚜鐢辯Щ鍔ㄤ簡銆傚備笅鍥炬墍紺猴細
銆vim澶氱獥鍙g殑涓鑸鎿嶄綔錛
1銆佹墦寮澶氫釜紿楀彛
鎵撳紑澶氫釜紿楀彛鐨勫懡浠や互涓嬪嚑涓錛
妯鍚戝垏鍓茬獥鍙
:new+紿楀彛鍚(淇濆瓨鍚庡氨鏄鏂囦歡鍚)
:split+紿楀彛鍚嶏紝涔熷彲浠ョ畝鍐欎負:sp+紿楀彛鍚
綰靛悜鍒囧壊紿楀彛鍚
:vsplit+紿楀彛鍚嶏紝涔熷彲浠ョ畝鍐欎負錛歷sp+紿楀彛鍚
2銆佸叧闂澶氱獥鍙
鍙浠ョ敤錛歲!錛屼篃鍙浠ヤ嬌鐢錛歝lose錛屾渶鍚庝竴涓紿楀彛涓嶈兘浣跨敤close鍏抽棴銆備嬌鐢╟lose鍙鏄鏆傛椂鍏抽棴紿楀彛錛屽叾鍐呭硅繕鍦ㄧ紦瀛樹腑錛屽彧鏈変嬌鐢╭!銆亀!鎴杧鎵嶈兘鐪熻兘閫鍑恆
:tabc 鍏抽棴褰撳墠紿楀彛
:tabo 鍏抽棴鎵鏈夌獥鍙
3銆佺獥鍙e垏鎹
:ctrl+w+j/k錛岄氳繃j/k鍙浠ヤ笂涓嬪垏鎹錛屾垨鑰:ctrl+w鍔犱笂涓嬪乏鍙抽敭錛岃繕鍙浠ラ氳繃蹇閫熷弻鍑籧trl+w渚濇″垏鎹㈢獥鍙c
4銆佺獥鍙eぇ灝忚皟鏁
綰靛悜璋冩暣
:ctrl+w + 綰靛悜鎵╁ぇ(琛屾暟澧炲姞)
:ctrl+w - 綰靛悜緙╁皬 (琛屾暟鍑忓皯)
:res(ize) num 渚嬪傦細:res 5錛屾樉紺鴻屾暟璋冩暣涓5琛
:res(ize)+num 鎶婂綋鍓嶇獥鍙i珮搴﹀炲姞num琛
:res(ize)-num 鎶婂綋鍓嶇獥鍙i珮搴﹀噺灝憂um琛
妯鍚戣皟鏁
:vertical res(ize) num 鎸囧畾褰撳墠紿楀彛涓簄um鍒
:vertical res(ize)+num 鎶婂綋鍓嶇獥鍙e炲姞num鍒
:vertical res(ize)-num 鎶婂綋鍓嶇獥鍙e噺灝憂um鍒
5銆佺粰紿楀彛閲嶅懡鍚
:f file
6銆乿i鎵撳紑澶氭枃浠
vi a b c
:n 璺寵嚦涓嬩竴涓鏂囦歡錛屼篃鍙浠ョ洿鎺ユ寚瀹氳佽煩鐨勬枃浠訛紝濡:n c錛屽彲浠ョ洿鎺ヨ煩鍒癱鏂囦歡
:e# 鍥炲埌鍒氭墠緙栬緫鐨勬枃浠
7銆佹枃浠舵祻瑙
:Ex 寮鍚鐩褰曟祻瑙堝櫒錛屽彲浠ユ祻瑙堝綋鍓嶇洰褰曚笅鐨勬墍鏈夋枃浠訛紝騫跺彲浠ラ夋嫨
:Sex 姘村鉤鍒嗗壊褰撳墠紿楀彛錛屽苟鍦ㄤ竴涓紿楀彛涓寮鍚鐩褰曟祻瑙堝櫒
:ls 鏄劇ず褰撳墠buffer鎯呭喌
8銆乿i涓巗hell鍒囨崲
:shell 鍙浠ュ湪涓嶅叧闂璿i鐨勬儏鍐典笅鍒囨崲鍒皊hell鍛戒護琛
:exit 浠巗hell鍥炲埌vi
Ⅵ 6. Linux-LCD 驅動程序概述
入局:應用程序是如何操控LCD顯示器的?
我們知道應用程序的調用介面,無非 open/read/write ...然後通過驅動程序最終作用到硬體設備上。以字元設備為例,對於驅動的開發者,實現了應用程序調用的驅動層中與之相匹配的 drv_open/drv_read/drv_write 函數,為應用層序提供了操作實際硬體設備的通道。那麼,對於LCD驅動程序又是如何?先來了解下兩個非常重要的概念。
LCD控制器的功能是控制驅動信號,進而驅動LCD。用戶只需要通過讀寫一系列的寄存器,完成配置和顯示驅動。在驅動LCD設計的過程中首要的是配置LCD控制器,而在配置LCD控制器中最重要的一步則是幀緩沖區(Frame Buffer)的指定。用戶所要顯示的內容皆是從緩沖區中讀出,從而顯示到屏幕上的。幀緩沖區的大小由屏幕的解析度和顯示色彩數決定。驅動幀緩沖的實現是整個驅動開發過程的重點。
幀緩沖區是出現在Linux 2.2.xx及以後版本內核當中的一種驅動程序介面,這種介面將顯示設備抽象為幀緩沖區設備區。幀緩沖區為圖像硬體設備提供了一種抽象化處理,它代表了一些視頻硬體設備,允許應用軟體通過定義明確的界面來訪問圖像硬體設備。這樣軟體無須了解任何涉及硬體底層驅動的東西(如硬體寄存器)。它允許上層應用程序在圖形模式下直接對顯示緩沖區進行讀寫和I/O控制等操作。通過專門的設備節點可對該設備進行訪問,如/dev/fb*。用戶可以將它看成是顯示內存的一個映像,將其映射到進程地址空間之後,就可以進行讀寫操作,而讀寫操作可以反映到LCD。
幀緩沖(Frame Buffer)是Linux為顯示設備提供的一個介面,把顯存抽象後的一種設備,允許上層應用程序在圖形模式下直接對顯示緩沖區進行讀寫操作。用戶不必關心物理顯存的位置、換頁機制等等具體細節,這些都是由Frame Buffer設備驅動來完成的。幀緩沖設備屬於字元設備。
Linux系統Frame Buffer本質上只是提供了對圖形設備的硬體抽象,在開發者看來,Frame Buffer是一塊顯示緩存,向顯示緩存中寫入特定格式的數據就意味著向屏幕輸出內容。
由於有了frambuffer的抽象,使得應用程序通過定義好的介面就可以訪問硬體。所以應用程序不需要考慮底層的(寄存器級)的操作。應用程序對設備文件的訪問一般在/dev目錄,如 /dev/fb*。
內核中的frambuffer在: drivers/video/fbmem.c (fb: frame buffer)
(1) 創建字元設備"fb", FB_MAJOR=29,主設備號為29。
(2)創建類,但並沒有創建設備節點,因為需要注冊了LCD驅動後,才會有設備節點;
2.1 fb_open函數如下:
(1) registered_fb[fbidx] 這個數組也是fb_info結構體,其中fbidx等於次設備號id,顯然這個數組就是保存我們各個lcd驅動的信息;
2.2 fb_read函數如下:
從.open和.read函數中可以發現,都依賴於fb_info幀緩沖信息結構體,它從registered_fb[fbidx]數組中得到,這個數組保存我們各個lcd驅動的信息。由此可見,fbmem.c提供的都是些抽象出來的東西,最終都得依賴registered_fb這個數組。
這個register_framebuffer()除了注冊fb_info,還創建了設備節點。
以s3c2410fb.c為例,分析驅動的實現。
既然是匯流排設備驅動模型,那我們關心的是它的probe函數。
看到這里驅動的寫法也大致清晰:
附:
LCD的顯示過程與時序:
1.顯示從屏幕左上角第一行的第一個點開始,一個點一個點地在LCD上顯示,點與點之間的時間間隔為VCLK(像素時鍾信號);當顯示到屏幕的最右邊就結束這一行(Line),這一行的顯示對應時序圖上的HSYNC(水平同步信號)
2. 接下來顯示指針又回到屏幕的左邊從第二行開始顯示,顯示指針針在從第一行的右邊回到第二行的左邊是需要一定的時間的,我們稱之為行切換。
3. 以此類推,顯示指針就這樣一行一行的顯示至矩形的右下角才把一幅圖像(幀:frame)顯示完成,這一幀的顯示時間在時序圖上表示為VSYNC(垂直同步信號)。
參考:
https://sites.google.com/a/hongdy.org/www/linux/kernel/lcddriver