home:http://www.ucgui.com
經過幾天連夜的開發, 終於推出UCGUI-VIEW的還原版模擬器---emWin 1.0.0.0
經過連續幾天的開發, 白天工作, 晚上少睡覺, 搞到二點鐘, 終於推出了可以查看UCGUI模擬器的編譯後的程式運行效果查看器, 關於GUISime.Lib模擬庫的推出, 將在以後一兩個星期之內....
只要是研究UCGUI的朋友, 肯定會知道它是提供了以下兩個東東的...
1. TOOLS目錄下的uC-GUI-View.exe-------查看UCGUI程式運行結果.
2. Simulation下麵的GUISim.lib---------------將ucgui的程式編譯WINDOWS下的PE檔,向作者顯示UCGUI下的圖形功能.
對於這兩個東西, 感興趣的朋友, 一定會產生UCGUI程式是如何在windows環境下運行並顯示出其GUI函數的效果的, 我們其實可以稱UCGUI中提供的是一個模擬器, WINDOWS下的模擬器, 它可以讓我們看到它的圖形效果. 進行UCGUI的圖形程式編程. 這對於我們學習UCGUI下的圖形開發非常的方便.
但是我們不應該只知其然, 不知其所以然.
其實實現的原理還是比較簡單, 首先它是通過點陣圖來實現的, 通過在記憶體中開一塊記憶體, 當作顯示器的一個平面, 與顯示器上的每個點相對應, 將顯示器上的每個象素按行一行一行的保存在這個記憶體區域當中, 然後再將些區域中的資料以顯示點陣圖的方式畫到視窗上, 用的是SetDIBitsToDevice(同等大小),StretchDIBits(比例顯示)這兩個函數來實現的.
這樣, 其實GUI中每個函數所操作的象素其實就是在這片記憶體區域中進行的, 對於8位及8位以下的, 由於顯示點陣圖時還要調色板, 所以還有一個區域專門來存放調色板資訊的, 這一資訊也是由模擬器來初始化的.
其實這是大致的原理, 出是了核心的一步, 具體的細節, 我將推出一系統的文章, 希望大家可以關注, 並從中與我交流...
ucgui-view模擬器v1.0.0版下載, 在今後的一段時間, 我們還將繼續加強功能...
如下圖所示1-1所示:
[ucgui原創] 嵌入式的一些資料的下載(ucgui/ucos等)
嵌入式的一些資料的下載(ucgui/ucos等)
1. 嵌入式圖形系統uc/GUI 3.24版源碼下載(包含vc下的示例程式):
http://www.macro-tax.com/home/ucgui/ucgui324.rar
2. 嵌入式圖形系統MiniGUI 1.3.0版源碼下載:
http://www.macro-tax.com/home/ucgui/Minigui130.rar
3. MiniGUI下Windows環境的模擬器及五子棋程式下載:
http://www.macro-tax.com/home/ucgui/Minigui-fivechess.rar
4. 嵌入式圖形系統 LGUI源碼下載
http://www.macro-tax.com/home/ucgui/lgui_0.3.0.tgz
5. 嵌入式作業系統 uc/OS 2.52 版源碼下載:
http://www.macro-tax.com/home/ucgui/ucos252.rar
6. Uc/os在80x86上的移值版本, 編譯成DOS下的EXE檔.
http://www.macro-tax.com/home/ucgui/ucos252-x86.rar
7. Uc/os在arm7~9 上的移值版本, 編譯成linux下的ELF檔, 通過自由開放源碼軟體----skyeye虛擬仿真機運行, 在LINUX下環境下運行.
http://www.macro-tax.com/home/ucgui/ucos252-arm7.rar
8. Skyeye 0.9源碼下載:
http://www.macro-tax.com/home/ucgui/skyeye090.rar
9. 嵌入式的uc/fs檔系統下載:
http://www.macro-tax.com/home/ucgui/ucfs20.rar
10. 嵌入式的網路協定實現 uc/tcpip 下載:
http://www.macro-tax.com/home/ucgui/uctcpip20.rar
11. 另外一嵌入式網路協定實現Lwip 0.6 下載:
http://www.macro-tax.com/home/ucgui/lwip060.rar
還有一個中文的作業系統PYOS的早期版的...
12. PYOS----國內人牛人推出的中文圖形化操作,雖然現在的版本還是比較簡單,我所選擇的版本比現在的還要早,因為我覺得這樣的話,更用利於學習的人瞭解一個作業系統到底是如何寫成的,其實這個版本的PYOS只能算是一個開機便能自己運行的系統程式而已.是針對80X86保護模式體系下的,有自己的引導,載入部分,它一開機便能自己運行,瞭解這個,你可以大大的瞭解為什麼PE檔是多麼的方便與複雜,一點擊就由系統來運行了, 但是要做一個自己引導自己運行的系統程式,就不那麼容易,PYOS正好滿足你這方面的興趣與問題,我對此源碼有一定學習,有什麼問題可能交流...
以下是PYOS的一截圖...
http://www.macro-tax.com/home/ucgui/pyos1216.rar
還有一個LINUX早期版本的作業系統, linux0.11版本...
13. linux0.11版本----關於這個版本的學習, 在網上比較流行, 而且有一個論壇專門學習討論這個版本的LINUX, www.oldlinux.org, 學習這個版本的原因是, 它本身是一個比較完備然而又非常簡單的早期LINUX系統, 總代碼量為14000行.對於學習來說, 是比較適合的.
linux0.11中文注解源碼下載...
http://www.macro-tax.com/home/ucgui/Linux011_ch.rar
linux0.11原文注解源碼下載...
http://www.macro-tax.com/home/ucgui/Linux011_en.rar
還有, 對於這個版本的學習, 最好去www.oldlinux.org. 再就是下載一個Bochs-2.1.1版的虛擬機來....
另外還提供了閱讀這些源碼非常方便的一個工具InSight3.0...
14.InSight3.0----非常方便的源碼閱讀工具,利用它你可以很方便的找到你要找的函數及變數,結構體等等的聲明之處/定義之處,而不須要先編譯根源程式...
http://www.macro-tax.com/home/ucgui/insight30.exe
15.還有UCOS的模擬器下載, 可以讓使用者很方便的進行UCOS的開發,瞭解UCOS的多任度調原理, 在VC環境下, 對於WINDOWS的用戶非常的方便...
http://www.macro-tax.com/home/ucgui/simuos_ucos110.rar
可惜這個模擬器沒有公開源碼, 我將在未來二周內,開發完UCGUI的模擬器源碼後, 再開發UCOS的模擬器..並將公開源碼...希望與大家交流...
emWin-----UCGUI的WINDOWS下模擬器的實現原理分析之一(還原emWin為C源碼)
[以下分析全部通過IDA反彙編.用的是4.5版.]
[以下分析全部通過IDA反彙編.用的是4.5版.]
使用過UCGUI的朋友..應該都知道, 我們寫的GUI程式, 在VC的那個示例當中, 都是與提供GUI服務的代碼是編譯在一起的, 這部分代碼即放在兩LIB檔當中:
GUISim.lib-----提供WINDOWS程式的介面, 負責類比一個虛擬的顯示器. 來顯示出UCGUI中的圖形.
GUI.lib----------提供GUI中各中畫圖的函數, 是供應用程式調用的GUI API函數.
現在我重點討論GUISim.lib.
GUISim.lib-----提供WINDOWS程式的介面, 負責類比一個虛擬的顯示器. 來顯示出UCGUI中的圖形.
GUI.lib----------提供GUI中各中畫圖的函數, 是供應用程式調用的GUI API函數.
現在我重點討論GUISim.lib.
一. emWin-----UCGUI的WINDOWS下模擬器的實現原理分析之一(還原emWin為C源碼)
1.1模擬器的構成模組分析.
1.1模擬器的構成模組分析.
//emWin模擬器的幾個模組簡介...
main.obj---------------------調用用戶程式的MainTask().
WinMain.obj------------------創建模擬器視窗,mouse/keyboard處理.
SIM_X.obj--------------------初始化並檢測LCD寬高及透明色(FF0000),並設置"顯示器"在裝備點陣圖中的位置.
LCD_X_SIM.obj----------------LCD_X_Init與硬體相關的初始化.
LCDSIM_1.obj-----------------功能與LCDSIM.OBJ類似,但是另外一種顯示器輸出功能.
LCDSIM.obj-------------------模擬器顯示視窗LCD的顯示,相當於作顯示器輸出.
GUI_X_SIM.obj----------------實現系統的一些互斥等.
Branding.obj-----------------emWin版權資訊.
[更新提示: UCGUI論壇又提供了CSWORD朋友的UCGUI在DOS的移值版本,以及GUISIM源碼下載,以及完整的工程檔及BORLAND3.0環境!!]
ucgui的模擬器UCGUISim 1.0.0.3源碼下, 完全提供源碼, 不須要GUSim.lib庫文件...
***********************************************************************
REVISION LOG ENTRY
Revision By: ucgui
Revised on 2005-6-13 0:59:52
Comments: GUISim 1.0.0.3
***********************************************************************/
//工程結構說明
project----------------------存放工程.
doc--------------------------存放文檔.
Simulation-------------------模擬器源碼文件.
resource---------------------資源.
gui/include------------------ucgui的各中頭文件.
gui/Library------------------包含GUI.LIB庫,供調用ucGUI函數
gui/GUISource----------------UCGUI源碼文件.
gui/Config-------------------UCGUI配製文件.
gui/Application--------------UCGUI應用程式檔.
1. 提供基本的漢字支援,從csword網友的ucgui在dos下的移值版中改良而來, 直接利用其HZ.C檔,但修改了他的程式中顯示漢字的一個問題, 詳見說明文檔.
[說明:csword網友的UCGUI在DOS下的移植版本有一定的學習意義, 因為它同時也整合了UCOS, 可以進行UCGUI+UCOS的聯合編程, 編譯器用的是BORLAND3.0版,csword的這個東東在本站有下站.csword用的是BORLAND提供的BGI標準VGA驅動, 所以對於圖形處理, 不是直接寫, 而是調用BGI中的函數來寫象素點]
main.obj---------------------調用用戶程式的MainTask().
WinMain.obj------------------創建模擬器視窗,mouse/keyboard處理.
SIM_X.obj--------------------初始化並檢測LCD寬高及透明色(FF0000),並設置"顯示器"在裝備點陣圖中的位置.
LCD_X_SIM.obj----------------LCD_X_Init與硬體相關的初始化.
LCDSIM_1.obj-----------------功能與LCDSIM.OBJ類似,但是另外一種顯示器輸出功能.
LCDSIM.obj-------------------模擬器顯示視窗LCD的顯示,相當於作顯示器輸出.
GUI_X_SIM.obj----------------實現系統的一些互斥等.
Branding.obj-----------------emWin版權資訊.
[更新提示: UCGUI論壇又提供了CSWORD朋友的UCGUI在DOS的移值版本,以及GUISIM源碼下載,以及完整的工程檔及BORLAND3.0環境!!]
ucgui的模擬器UCGUISim 1.0.0.3源碼下, 完全提供源碼, 不須要GUSim.lib庫文件...
***********************************************************************
REVISION LOG ENTRY
Revision By: ucgui
Revised on 2005-6-13 0:59:52
Comments: GUISim 1.0.0.3
***********************************************************************/
//工程結構說明
project----------------------存放工程.
doc--------------------------存放文檔.
Simulation-------------------模擬器源碼文件.
resource---------------------資源.
gui/include------------------ucgui的各中頭文件.
gui/Library------------------包含GUI.LIB庫,供調用ucGUI函數
gui/GUISource----------------UCGUI源碼文件.
gui/Config-------------------UCGUI配製文件.
gui/Application--------------UCGUI應用程式檔.
1. 提供基本的漢字支援,從csword網友的ucgui在dos下的移值版中改良而來, 直接利用其HZ.C檔,但修改了他的程式中顯示漢字的一個問題, 詳見說明文檔.
[說明:csword網友的UCGUI在DOS下的移植版本有一定的學習意義, 因為它同時也整合了UCOS, 可以進行UCGUI+UCOS的聯合編程, 編譯器用的是BORLAND3.0版,csword的這個東東在本站有下站.csword用的是BORLAND提供的BGI標準VGA驅動, 所以對於圖形處理, 不是直接寫, 而是調用BGI中的函數來寫象素點]
2. 修改了創建UCGUI執行主線程的一個BUG...
3. 修改了在支持MT_MultiTasking.c示例時顯示出來的一個BUG, 是關於多工模擬的問題主要是在SIM_Start函數所線上程,即MainTask所線上程在創建完GUI應用線程後就退出,
導致在暫停及重新開啟功能時出錯.因為它們操作的物件即是GUI應用主線程...
有待下一版本增加功能:
1.增加鍵盤支援.
2.增強LOG支援, 使不僅可以用Dbgview.exe來捕捉LOG. 還可以查看LOG檔..
3.增加原示例包中有一個圖形視窗的支援[指用一張類比硬體電圖中來顯示LCD顯示幕]
下載連接: UCGUISim 1.0.0.3 版本下載.....
http://www.macro-tax.com/home/ucgui/GUISim1003.rar
GUISimLIB庫下載,
http://www.macro-tax.com/home/ucgui/GUISimLIB1003.rar
[與上面的區別是寫UCGUI應用程式時,可以直接包含這個LIB庫,而不須要模擬器源碼]
導致在暫停及重新開啟功能時出錯.因為它們操作的物件即是GUI應用主線程...
有待下一版本增加功能:
1.增加鍵盤支援.
2.增強LOG支援, 使不僅可以用Dbgview.exe來捕捉LOG. 還可以查看LOG檔..
3.增加原示例包中有一個圖形視窗的支援[指用一張類比硬體電圖中來顯示LCD顯示幕]
下載連接: UCGUISim 1.0.0.3 版本下載.....
http://www.macro-tax.com/home/ucgui/GUISim1003.rar
GUISimLIB庫下載,
http://www.macro-tax.com/home/ucgui/GUISimLIB1003.rar
[與上面的區別是寫UCGUI應用程式時,可以直接包含這個LIB庫,而不須要模擬器源碼]
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。