MKS51A010-503-00是一個將Linux內(nèi)核移植到各種基于ARM處理器的目標系統(tǒng)的項目。由Russell Kingrmk@arm.linux.org.uk主持。已經(jīng)為超過100多種不同的目標系統(tǒng)成功完成了移植工作。這里所移植的Linux內(nèi)核是Linux-2.4.24,ARM Linux補丁是2004年2月發(fā)布的Linux-2.4.24-vrs1。
MKS51A010-503-00在移植過程中,重點工作是啟動程序的實現(xiàn)和ARM Linux下針對具體的硬件環(huán)境楨緩沖設備驅(qū)動程序的設計。 啟動程序的主要步驟為:設置入口指針,設置中斷向量,設置和初始化RAM,初始化至少一個竄行端口,檢測CPU類型,初始化堆棧和寄存器,初始化存儲器系統(tǒng),設置內(nèi)核相關(guān)列表,呼叫內(nèi)核鏡像。需要特別注意的是在設置CPU寄存器時,r?0 為0,r2 為檢測出的CPU型號號碼,MMU關(guān)閉,指令Catch打開,數(shù)據(jù)Catch清空后關(guān)閉。
Framebuffer是一個提供顯示內(nèi)存和顯示芯片寄存器從物理內(nèi)存映射到進程地址空間中的設備,其驅(qū)動程序主要依靠三個數(shù)據(jù)結(jié)構(gòu):fb_info﹑fb_var_screeninfo﹑fb_fix_screeninfo。fb_info結(jié)構(gòu)只能在內(nèi)核空間訪問,其內(nèi)部定義了struct fb_ops,結(jié)構(gòu)fb_ops的成員即framebuffer的一系列操作函數(shù)。幀緩沖設備的驅(qū)動主要就是編寫這些接口函數(shù)。
fb_var_screeninfo和fb_fix_screeninfo定義視頻板卡的硬件特性。如顯存大小﹑每行顯示位數(shù)﹑分辨率等與特定硬件相關(guān)的特性。幀緩沖驅(qū)動程序首先調(diào)用register_framebuffer注冊一個framebuffer設備,后在Linux/drivers/video/fbmem.c中登記初始化函數(shù)。所有幀緩沖驅(qū)動程序的ioctl調(diào)用由fbmem.c統(tǒng)一實現(xiàn)。
2.3 Microwindows Microwindows 是專門設計用于在小型設備上開發(fā)具有高品質(zhì)圖形功能的開放式源碼桌面系統(tǒng),使用較少的RAM和文件存儲空間(100K-600K),在運行的過程中僅需要50~250KB的內(nèi)存空間。Microwindows不需要任何操作系統(tǒng) 和圖形系統(tǒng)的支持,可以運行32位的內(nèi)核支持Framebuffer機制的Linux系統(tǒng)上。Microwindows的主要目標之一就是把把圖形視窗環(huán)境引入到運行Linux的小型設備和平臺上,提供與X Window相似的功能。
Microwindows采用分層結(jié)構(gòu)設計方法,在底層提供對屏幕,鼠標或觸摸屏,鍵盤的驅(qū)動,MKS51A010-503-00是程序能夠訪問實際的硬件和其他用戶訂制設備;中間層實現(xiàn)了一個可以移植的圖形引擎,這個圖形引擎實現(xiàn)畫線,填充,多邊行,剪輯和多種顏色模式;zui上層實現(xiàn)了多種API以適應不同的應用環(huán)境。
MKS51A010-503-00每一層都可以根據(jù)不同的應用需求修改代碼或重新編碼。 系統(tǒng)中zui底層針對顯示屏,鼠標,觸摸屏,鍵盤等各定義了一個數(shù)據(jù)結(jié)構(gòu)供圖形引擎使用,分別為struct _mwscreendevice ﹑struct _mousedevice 和struct _kbddevice , 包含了針對設備的硬件驅(qū)動代碼接口。
MCG 2183-ME5049 BRUSHLESS SERVO MOTOR W/ ENCODER AND GEAR DIAMETER 13MM APPR.
RACAL-DANA DIGAITAL MULTIMETER 5000 WITH OPTS
DIONEX (C) 1996 FAB045447-10 AD20-P10
DIONEX (C) 1996 FAB045339-07 ASSY045340 AD20-SP1
MITSUBISHI AC SERVO MR-J2-03BH5 DISPLAY CARD BIT DAMAGED
COLE-PARMER MASTERFLEX EASY LOAD II 77200-50
HP 5180-0176 CARD
SUPER VEXTA 5-PHASE UDK5128N DRIVER
VEXTA FINE STEP 5-PHASE DFU1514 DRIVER
EH CONDUCTA 0-200mS/cm LX 2-ATC 220VAC SUPPLY
CONTREC SYSTEM 413.00A BATCH CONTROLLER COMBUSTION ENGINEERING TAYLOR 413
ASA 2000 ELECTRIC SCREWDRIVER TORQUE WITH ASA APS-35E POWER SUPPLY 35vdc
DALSA CL-C3-2048N-335P CCD IMAGE CAPTURE CAMERA MODULE
Keithley 175A AUTORANGING Digital Multimeter
MPLAB ICE MICROCHIP PCM16XQ1 PROCESSOR MODULE FOR 2000 MICROCHIP EMULATOR
?