簡(jiǎn)介:清華大學(xué)計(jì)算機(jī)系“嵌入式技術(shù)與系統(tǒng)”課程建設(shè)情況,陶品博士TAOPINTSINGHUAEDUCN2003年9月4日,課程建設(shè)基礎(chǔ),清華大學(xué)計(jì)算機(jī)系原有課程設(shè)置C語(yǔ)言、匯編語(yǔ)言程序設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)操作系統(tǒng)數(shù)字邏輯電路計(jì)算機(jī)組成原理微計(jì)算機(jī)技術(shù)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu),,計(jì)算機(jī)組成原理,操作系統(tǒng),VLSI設(shè)計(jì)導(dǎo)論,數(shù)字邏輯電路,C語(yǔ)言程序設(shè)計(jì),匯編語(yǔ)言程序設(shè)計(jì),數(shù)據(jù)結(jié)構(gòu),計(jì)算機(jī)系統(tǒng)結(jié)構(gòu),電子技術(shù)基礎(chǔ),微型計(jì)算機(jī)技術(shù),,,,,,,,,,現(xiàn)有教學(xué)方案存在的問(wèn)題,學(xué)生的硬件設(shè)計(jì)、系統(tǒng)軟件集成能力不足,因此素質(zhì)不夠全面。缺少對(duì)本科專業(yè)知識(shí)的一次集成與實(shí)際運(yùn)用。沒(méi)能及時(shí)跟蹤嵌入式技術(shù)的迅猛發(fā)展,未能適應(yīng)正在變化的人才市場(chǎng)需求。,美國(guó)知名大學(xué)課程建設(shè)情況,UNIVERSITYOFCOLORADOEMBEDDEDSYSTEMDESIGNBERKELEYEECSDEPARTMENTEMBEDDEDSYSTEMDESIGNMODELS,VALIDATION,ANDSYNTHESISCMUECEINTRODUCTIONTOEMBEDDEDSYSTEMS、REALTIMECOMPUTERCONTROLSYSTEMSDESIGN、DISTRIBUTEDEMBEDDEDSYSTEMSMITCSMICROCOMPUTERPROJECTUIUCCSEMBEDDEDSYSTEMSARCHITECTURE、REALTIMESYSTEMSWASHINGTONUNIVERSITYSOFTWAREFOREMBEDDEDSYSTEMS、EMBEDDEDSYSTEMDESIGN、SPECIALTOPICSINEMBEDDEDSYSTEMSMOREGERMANY,INDIA,AUSTRALIA,計(jì)算機(jī)組成原理,操作系統(tǒng),VLSI設(shè)計(jì)導(dǎo)論,數(shù)字邏輯電路,C語(yǔ)言程序設(shè)計(jì),匯編語(yǔ)言程序設(shè)計(jì),數(shù)據(jù)結(jié)構(gòu),計(jì)算機(jī)系統(tǒng)結(jié)構(gòu),嵌入式系統(tǒng),電子技術(shù)基礎(chǔ),微型計(jì)算機(jī)技術(shù),,,,,,,,,,,,教學(xué)基礎(chǔ)設(shè)施建設(shè),軟件技術(shù)實(shí)驗(yàn)室數(shù)字邏輯實(shí)驗(yàn)室計(jì)算機(jī)組成原理實(shí)驗(yàn)室微計(jì)算機(jī)技術(shù)實(shí)驗(yàn)室接口技術(shù)實(shí)驗(yàn)室→(嵌入式系統(tǒng)實(shí)驗(yàn)室),嵌入式系統(tǒng)課程建設(shè),系領(lǐng)導(dǎo)重視、主動(dòng)掛帥開設(shè)課程、建立實(shí)驗(yàn)室納入新修訂的培養(yǎng)計(jì)劃面向信息學(xué)院全體學(xué)生面向社會(huì)開展培訓(xùn)規(guī)模大可容納200人門類齊全EIA、ARM教學(xué)與科研相結(jié)合,課程概況,課程名稱“嵌入式技術(shù)與系統(tǒng)”計(jì)算機(jī)系本科生限選課第四學(xué)年第一學(xué)期每屆約170名學(xué)生3學(xué)分32教學(xué)學(xué)時(shí),教學(xué)目標(biāo),讓學(xué)生了解一個(gè)完整嵌入式系統(tǒng)的設(shè)計(jì)流程與工作機(jī)理通過(guò)實(shí)際動(dòng)手操作來(lái)學(xué)習(xí)硬件的體系結(jié)構(gòu)和系統(tǒng)軟件的原理可以針對(duì)系統(tǒng)的關(guān)鍵部分和同學(xué)感興趣的地方進(jìn)行深入的研發(fā)培養(yǎng)學(xué)生的綜合能力,教學(xué)大綱,嵌入式系統(tǒng)概述硬件環(huán)境微處理器、存儲(chǔ)系統(tǒng)、I/O外設(shè)、電源系統(tǒng)、無(wú)線技術(shù)軟件環(huán)境啟動(dòng)過(guò)程、嵌入式操作系統(tǒng)、匯編和C語(yǔ)言、驅(qū)動(dòng)、GUI庫(kù)開發(fā)工具與調(diào)試技術(shù)仿真器、開發(fā)工具、調(diào)試技術(shù)、系統(tǒng)優(yōu)化嵌入式應(yīng)用工業(yè)控制、路由器、PDA、機(jī)頂盒,教學(xué)大綱概述,介紹嵌入式系統(tǒng)的基本概念和框架嵌入式系統(tǒng)的定義與國(guó)內(nèi)外發(fā)展趨勢(shì)嵌入式系統(tǒng)的應(yīng)用需求與設(shè)計(jì)目標(biāo)嵌入式系統(tǒng)中的技術(shù)難點(diǎn),教學(xué)大綱硬件環(huán)境,以EIA為例給出一個(gè)典型嵌入式硬件環(huán)境討論各種流行嵌入式微處理器的體系結(jié)構(gòu)(EIA/ARM/PPC/MIPS/)嵌入式系統(tǒng)中的存儲(chǔ)技術(shù)(ROM、EEPROM、FLASH、SRAM、DRAM)典型外圍設(shè)備、總線介紹有線/無(wú)線網(wǎng)絡(luò)互聯(lián)電源系統(tǒng)與功耗管理,教學(xué)大綱軟件平臺(tái),系統(tǒng)的啟動(dòng)與初始化嵌入式操作系統(tǒng)嵌入式系統(tǒng)設(shè)計(jì)中的匯編語(yǔ)言與C語(yǔ)言驅(qū)動(dòng)程序設(shè)計(jì)方法嵌入式系統(tǒng)中的圖形庫(kù)嵌入式系統(tǒng)網(wǎng)絡(luò)互聯(lián),教學(xué)大綱開發(fā)工具,仿真器、JTAG以及模擬器開發(fā)工具介紹與示例嵌入式系統(tǒng)調(diào)試方法嵌入式系統(tǒng)中的代碼優(yōu)化,教學(xué)大綱嵌入式應(yīng)用,工業(yè)控制器路由器(網(wǎng)關(guān))無(wú)線多媒體終端機(jī)頂盒,EIA教學(xué)實(shí)驗(yàn)準(zhǔn)備了解EIA的整體框架學(xué)習(xí)EIA的硬件啟動(dòng)過(guò)程熟悉EIA開發(fā)工具的使用EIA教學(xué)實(shí)驗(yàn)基于ACSFL庫(kù)實(shí)現(xiàn)硬件自檢用EIA控制外圍器件USB基于EIA的系統(tǒng)設(shè)計(jì)WEBSERVER/VIDEO,教學(xué)實(shí)驗(yàn)設(shè)計(jì),嵌入式實(shí)驗(yàn)室,嵌入式課程建設(shè)進(jìn)展,非正式的實(shí)驗(yàn)與教學(xué)工作已有計(jì)劃的展開“嵌入式系統(tǒng)”已列入教學(xué)計(jì)劃,2004年將正式授課嵌入式系統(tǒng)原理與應(yīng)用將于年底出版嵌入式系統(tǒng)教學(xué)實(shí)驗(yàn)室已落實(shí)實(shí)驗(yàn)設(shè)備已得到INTELEIA和其他公司的大力贊助,嵌入式課程發(fā)展規(guī)劃,將嵌入式課程建設(shè)為清華大學(xué)的精品課程。增加實(shí)驗(yàn),加強(qiáng)同學(xué)的動(dòng)手能力。課內(nèi)課外相結(jié)合,開展嵌入式設(shè)計(jì)競(jìng)賽。豐富課程內(nèi)容,開設(shè)研究生討論課。開展嵌入式水平認(rèn)證,為社會(huì)輸送合格人才。,嵌入式研發(fā),家庭網(wǎng)關(guān)/多媒體處理飛行器/機(jī)器人控制高端路由器/網(wǎng)絡(luò)處理普適計(jì)算設(shè)備嵌入式軟件仿真,謝謝,
下載積分: 6 賞幣
上傳時(shí)間:2024-01-05
頁(yè)數(shù): 33
大小: 1.81(MB)
子文件數(shù):
簡(jiǎn)介:嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)基于32位微處理器與實(shí)時(shí)操作系統(tǒng)第八講基于?C/OSⅡ的軟件設(shè)計(jì),UCOSII的不足之處,只有多任務(wù)調(diào)度的簡(jiǎn)單內(nèi)核內(nèi)存管理過(guò)于簡(jiǎn)單,幾乎沒(méi)有動(dòng)態(tài)內(nèi)存管理功能文件系統(tǒng)和圖形界面需要外掛對(duì)于設(shè)備驅(qū)動(dòng)程序沒(méi)有專門統(tǒng)一的接口,對(duì)?COSII進(jìn)行必要的擴(kuò)展,要想實(shí)現(xiàn)一個(gè)相對(duì)完整、實(shí)用的嵌入式操作系統(tǒng),還需要相當(dāng)多的擴(kuò)展性的工作。通過(guò)本章的學(xué)習(xí),讀者可了解以下知識(shí)建立FAT兼容的文件系統(tǒng)的建立方法外設(shè)及驅(qū)動(dòng)程序的實(shí)現(xiàn)基于UNICODE的漢字庫(kù)建立方法基本繪圖函數(shù)的實(shí)現(xiàn)其它實(shí)用API函數(shù),基于?COSII擴(kuò)展RTOS的體系結(jié)構(gòu),1.系統(tǒng)外圍設(shè)備的硬件部分系統(tǒng)外圍設(shè)備的硬件部分包括液晶顯示屏(LCD)、USB通信模塊、鍵盤、海量FLASH存儲(chǔ)器、系統(tǒng)的時(shí)鐘和日歷。外圍設(shè)備的硬件部分是保證系統(tǒng)實(shí)現(xiàn)指定任務(wù)的最底層的部件。2、驅(qū)動(dòng)程序模塊驅(qū)動(dòng)程序是連接底層的硬件和上層的API函數(shù)的紐帶,有了驅(qū)動(dòng)程序模塊,就可以把操作系統(tǒng)的API函數(shù)和底層的硬件分離開來(lái)。硬件的改變、刪除或者添加,只需要隨之改變、刪除或者添加提供給操作系統(tǒng)的相應(yīng)的驅(qū)動(dòng)程序就可以了。而不會(huì)影響到API函數(shù)的功能,更不會(huì)影響到用戶的應(yīng)用程序。,基于?COSII擴(kuò)展RTOS的體系結(jié)構(gòu),3.操作系統(tǒng)的API函數(shù)在操作系統(tǒng)中提供標(biāo)準(zhǔn)的應(yīng)用程序接口(API)函數(shù),可以加速用戶應(yīng)用程序的開發(fā),統(tǒng)一應(yīng)用程序的標(biāo)準(zhǔn),同時(shí)也給操作系統(tǒng)版本的升級(jí)帶來(lái)了方便。在API函數(shù)中,提供了大量的常用模塊,可以大大簡(jiǎn)化用戶應(yīng)用程序的編寫。4.實(shí)時(shí)操作系統(tǒng)的多任務(wù)管理?C/OSⅡ作為操作系統(tǒng)的內(nèi)核,主要的任務(wù)就是完成多任務(wù)之間的調(diào)度和同步。5.系統(tǒng)的消息隊(duì)列這里所說(shuō)的系統(tǒng)的消息隊(duì)列是以?C/OSⅡ的消息隊(duì)列派生出來(lái)的系統(tǒng)消息傳遞機(jī)制,用來(lái)實(shí)現(xiàn)系統(tǒng)的各個(gè)任務(wù)之間、用戶應(yīng)用程序的各個(gè)任務(wù)之間以及用戶應(yīng)用程序和系統(tǒng)的各個(gè)任務(wù)之間的通信。,基于?COSII擴(kuò)展RTOS的體系結(jié)構(gòu),6.系統(tǒng)任務(wù)系統(tǒng)任務(wù)主要包括液晶顯示屏(LCD)的刷新任務(wù)、系統(tǒng)鍵盤掃描任務(wù)。這兩個(gè)任務(wù)是操作系統(tǒng)的基本任務(wù),隨著操作系統(tǒng)的啟動(dòng)而運(yùn)行。7.用戶應(yīng)用程序用戶的應(yīng)用程序建立在系統(tǒng)的主任務(wù)(MAIN_TASK)基礎(chǔ)之上。用戶應(yīng)用程序主要通過(guò)調(diào)用系統(tǒng)的API函數(shù)對(duì)系統(tǒng)進(jìn)行操作,完成用戶的要求。在用戶的應(yīng)用程序中也可以創(chuàng)建用戶自己的任務(wù)。任務(wù)之間的協(xié)調(diào)主要依賴于系統(tǒng)的消息隊(duì)列。,基于?COSII擴(kuò)展RTOS的體系結(jié)構(gòu),嵌入式文件系統(tǒng),什么是文件系統(tǒng)(FILESYSTEM,文件系統(tǒng)的定義操作系統(tǒng)中組織、存儲(chǔ)和命名文件的結(jié)構(gòu),是操作系統(tǒng)中統(tǒng)一管理信息資源的一種軟件,管理文件的存儲(chǔ)、檢索、更新,提供安全可靠的共享和保護(hù)手段,并且方便用戶使用文件系統(tǒng)的功能文件的構(gòu)造、命名、存取、保護(hù)等。文件系統(tǒng)的存儲(chǔ)媒質(zhì)磁盤(軟盤、硬盤)、光盤、FLASH(盤)、RAM、ROM、網(wǎng)絡(luò)甚至設(shè)備等,基于NANDFLASH的嵌入式文件系統(tǒng),FLASH盤的FAT結(jié)構(gòu),FLASH讀寫的特點(diǎn),(1)必須以PAGE為單位進(jìn)行讀寫;(2)寫之前必須先擦除原有內(nèi)容;(3)擦除操作必須對(duì)BLOCK進(jìn)行,即一次至少擦除一個(gè)BLOCK的內(nèi)容針對(duì)這種情況,將FLASH的一個(gè)PAGE定為1個(gè)扇區(qū),將其1個(gè)BLOCK,32個(gè)扇區(qū)定為一個(gè)簇,這樣,簇的容量剛好為512*32=16K,滿足FAT16對(duì)簇大小的要求,FLASH文件系統(tǒng)的要求,(1)掉電安全嵌入式系統(tǒng)的運(yùn)行環(huán)境一般比較惡劣,但同時(shí)又要求有較高的可靠性。這就對(duì)FLASH文件系統(tǒng)提出了較高的要求,無(wú)論程序崩潰或系統(tǒng)掉電,都不能影響文件系統(tǒng)的一致性和完整性,文件系統(tǒng)的寫入、垃圾回收等操作對(duì)系統(tǒng)異常中止都非常敏感,極易造成數(shù)據(jù)丟失和數(shù)據(jù)垃圾,在文件系統(tǒng)設(shè)計(jì)和選用時(shí)應(yīng)考慮;(2)平均使用(WEARLEVELING率由于FLASH扇區(qū)的擦除次數(shù)有限制,要求能夠均勻使用各扇區(qū),以延長(zhǎng)FLASH的使用壽命;(3)高效垃圾回收(GARBAGECOLLECTION任何存儲(chǔ)器在分配使用一段時(shí)間后,都會(huì)出現(xiàn)空區(qū)和碎片數(shù)據(jù),為保證存儲(chǔ)空間的使用率,方法是先移動(dòng)扇區(qū)數(shù)據(jù),再擦除整個(gè)扇區(qū);(4)低空間消耗(LOVOVERHEAD指文件系統(tǒng)管理機(jī)構(gòu)在FLASH存儲(chǔ)器上的空間消耗,該空間用于FS建立,而不能用于實(shí)際數(shù)據(jù)的存儲(chǔ),可以提高有用數(shù)據(jù)的存儲(chǔ)空間,FLASH文件系統(tǒng)的分類,(1)集中管理文件系統(tǒng)特點(diǎn)存儲(chǔ)器空間的使用信息集中存放在存儲(chǔ)器的某個(gè)地方,存儲(chǔ)器的其它區(qū)域用于存放數(shù)據(jù),數(shù)據(jù)必須依賴關(guān)鍵信息區(qū)才能被索引和使用缺點(diǎn)需要大量緩存空間,當(dāng)某扇區(qū)需要更新時(shí),先將扇區(qū)數(shù)據(jù)備份到RAM中,再進(jìn)行擦除操作,最后將修改后的備份寫入FLASH,難以保證掉電安全,不能均勻使用存儲(chǔ)器空間,特別是關(guān)鍵信息區(qū),對(duì)文件系統(tǒng)的使用都會(huì)改寫該區(qū),導(dǎo)致FLASH快速損壞;,FLASH文件系統(tǒng)的分類,(2)線性文件系統(tǒng)概述每個(gè)文件相關(guān)的信息都連續(xù)存放在存儲(chǔ)器中,實(shí)現(xiàn)簡(jiǎn)單,讀寫快速,文件系統(tǒng)的關(guān)鍵信息分布存放;優(yōu)點(diǎn)安全性好;能保證存儲(chǔ)器的平均使用,延長(zhǎng)了FLASH的使用壽命;缺點(diǎn)對(duì)文件操作效率低,不易實(shí)現(xiàn)添加、插入、剪切等操作;,FLASH文件系統(tǒng)的分類,(3)日志文件系統(tǒng)概述日志結(jié)構(gòu)的文件系統(tǒng)使用順序的、只增的日志作為磁盤上唯一的組織文件系統(tǒng)數(shù)據(jù)的結(jié)構(gòu),文件的描述可以仍采用傳統(tǒng)的索引組織方式。方法是在內(nèi)存中將幾次FS的修改匯集成一個(gè)大的日志條目被稱為段映像,然后動(dòng)態(tài)分配磁盤空間并通過(guò)一次寫操作寫到磁盤上的一個(gè)連續(xù)的、固定大小的日志段SEGMENT中。并定時(shí)或當(dāng)系統(tǒng)發(fā)出同步寫請(qǐng)求時(shí)保證日志同步寫到磁盤上;優(yōu)點(diǎn)恢復(fù)快速不會(huì)產(chǎn)生丟失的簇、也不會(huì)因?yàn)榈綦姸茐奈募到y(tǒng)。,JFFS/JFFS2文件系統(tǒng)的優(yōu)缺點(diǎn),JFFSJOURNALINGFLASHFILESYSTEM)概述由瑞典AXIS通信公司開發(fā)的文件系統(tǒng),主要針對(duì)NOR型FLASH存儲(chǔ)器設(shè)計(jì),提供了掉電安全,平均使用等特性,是基于LINUX,由于遵循GPL開放源代碼,易實(shí)現(xiàn)移植;日志文件系統(tǒng)提供了更好的崩潰、掉電安全保護(hù)JFFS2支持對(duì)FLASH的均勻磨損在扇區(qū)級(jí)別上執(zhí)行閃存擦除/寫/讀操作功能較好文件系統(tǒng)接近滿時(shí),JFFS2會(huì)大大放慢運(yùn)行速度垃圾收集,NAND上YAFFS文件系統(tǒng)的優(yōu)勢(shì),YAFFS專門為NANDFLASH設(shè)計(jì)的日志文件系統(tǒng),系統(tǒng)健壯,節(jié)省RAM,啟動(dòng)時(shí)間快。JFFS/JFFS2不適合大容量的NANDFLASHJFFS的日志通過(guò)JFFS_NODE建立在RAM中,占用RAM空間,對(duì)于128MB的NAND大概需要4MB的空間來(lái)維護(hù)節(jié)點(diǎn)。啟動(dòng)的時(shí)候需要掃描日志節(jié)點(diǎn),不適合大容量的NANDFLASH。FAT系統(tǒng)沒(méi)有日志。,FAT文件系統(tǒng)的發(fā)展,,DOS101981,DOS301984,WIN951995,WIN95OSR21996,WIN981998,WIN311992,,,,,FAT12,FAT16,VFAT,FAT32,FAT12/FAT16/FAT32的比較,FAT16文件系統(tǒng)基本結(jié)構(gòu),FAT文件系統(tǒng)由下面四部分組成保留區(qū)RESERVEDREGION存放引導(dǎo)記錄,BIOS信息等FAT區(qū)FAT信息列表12/16/32BITS根目錄區(qū)目錄信息列表32BYTES文件和目錄區(qū)存放簇信息,保留區(qū)RESERVEDREGION,引導(dǎo)記錄基本信息引導(dǎo)代碼BIOS參數(shù)塊BPB字節(jié)/扇區(qū)512,1024,2048,4096扇區(qū)/簇1,2,4,8,16,32,64,128根目錄數(shù)總扇區(qū)值介質(zhì)類型硬盤,軟盤,F(xiàn)LASH),,FAT區(qū),通常有FATPPRIMARY和FATBBACKUP每一個(gè)簇都有一個(gè)對(duì)應(yīng)的FAT目錄,,,,,,,,FAT,數(shù)據(jù)區(qū),,,FAT鏈表FAT16,,,目錄樹,FAT區(qū),典型FLASH文件系統(tǒng)的結(jié)構(gòu),(1)系統(tǒng)記錄(SR,SYSTEMRECORD)存放媒質(zhì)信息和最重要的文件系統(tǒng)信息。媒質(zhì)信息諸如FLASH存儲(chǔ)器的類型、容量,劃分成多少個(gè)區(qū)塊,每區(qū)塊包含多少個(gè)頁(yè)面等。文件系統(tǒng)信息包括版本信息、保留區(qū)塊的數(shù)目和位置、文件分配表和文件登記表所在的位置和大小、數(shù)據(jù)區(qū)域的位置和大小等。(2)文件分配表(FAT,F(xiàn)ILEALLOCATIONTABLE)存放著FLASH存儲(chǔ)器上所有區(qū)塊的占用與空閑情況以及每個(gè)文件的存儲(chǔ)連接結(jié)構(gòu)。采用FAT16文件格式,(3)文件登記表(FRT,F(xiàn)ILEREGISTERTABLE)存放著FLASH文件系統(tǒng)中每一個(gè)文件的文件代號(hào)、文件長(zhǎng)度、文件屬性以及該文件的存儲(chǔ)鏈在文件分配表中的入口。(4)數(shù)據(jù)區(qū)域(DATAAREA)用于存放文件的數(shù)據(jù)內(nèi)容。本FLASH文件系統(tǒng)中,數(shù)據(jù)分配的最小單位是FLASH存儲(chǔ)器的一個(gè)基本擦除單元,即一個(gè)物理區(qū)塊(BLOCK)。,FLASH文件系統(tǒng)的結(jié)構(gòu),文件系統(tǒng)的實(shí)現(xiàn)FILE結(jié)構(gòu)體,TYPEDEFSTRUCT{U8BUFFERBLOCK_SIZE//文件緩沖區(qū)U32FILEBLOCK//文件當(dāng)前的簇的位置U32FILEMODE//打開文件的模式U32FILEBUFNUM//文件緩沖區(qū)中已經(jīng)讀取/寫入的字節(jié)數(shù)U32FILECURPOS//讀寫的當(dāng)前位置U32FILESIZE//文件的大小}FILE,與FLASH存儲(chǔ)器的接口函數(shù),塊擦除UNSIGNEDCHARERASE_CLUSTERUNSIGNEDINTCLUSTER頁(yè)寫入INTWRITEPAGEUNSIGNEDINTBLOCK,UNSIGNEDINTPAGE,UNSIGNEDCHARPPAGE頁(yè)讀出VOIDREADPAGEUNSIGNEDINTBLOCK,UNSIGNEDINTPAGE,UNSIGNEDCHARPPAGE,文件系統(tǒng)的相關(guān)函數(shù),始始化文件系統(tǒng)VOIDINITOSFILECHARFILENAME,U32OPENMODE打開文件FILEOPENOSFILECHARFILENAME,U32OPENMODE讀文件到緩沖區(qū)U32READOSFILE(FILEPFILE,U8READBUFFER,U32NREADBYTE把緩沖區(qū)內(nèi)容寫入文件U32WRITEOSFILE(FILEPFILE,U8WRITEBUFFER,U32NWRITEBYTE關(guān)閉文件,釋放緩沖區(qū)VOIDCLOSEOSFILEFILEPFILE,OPENOSFILE的工作的流程圖,READOSFILE函數(shù)的程序流程圖,READOSFILE函數(shù)的程序流程圖,,WRITEOSFILE函數(shù)的程序流程圖,WRITEOSFILE函數(shù)的程序流程圖,,CLOSEOSFILE函數(shù)的程序流程圖,CLOSEOSFILE函數(shù)的程序流程圖,嵌入式GUI技術(shù),GUI的概念,GUI的定義GRAPHICSUSERINTERFACE,是指計(jì)算機(jī)與其使用者之間的圖形化對(duì)話接口。GUI的主要特征WINDOWS,采用窗口界面,每個(gè)窗口是用戶或系統(tǒng)的一個(gè)工作區(qū)域。一個(gè)屏幕上可以有多個(gè)窗口。ICONS,采用形象化的圖標(biāo)或圖符,易于操作者理解與操作。MENU,采用菜單,可供用戶選擇的功能提示POINTINGDEVICES,指鼠標(biāo)器、觸摸屏等,便于用戶直接對(duì)屏幕對(duì)象進(jìn)行操作。,嵌入式GUI的特點(diǎn),體積小功能強(qiáng);圖形算法簡(jiǎn)潔、快速,占用系統(tǒng)資源少可靠性高;模塊結(jié)構(gòu),便于移植和定制,嵌入式GUI的實(shí)現(xiàn)方法,1)按照需求開發(fā)滿足自身特定需要的GUI系統(tǒng);2)將GUI作為一個(gè)軟件層從應(yīng)用程序中剝離,GUI的支持邏輯由應(yīng)用程序自己負(fù)責(zé);3)設(shè)計(jì)一個(gè)支持大多數(shù)常見的GUI對(duì)象的應(yīng)用編程接口庫(kù),使其具有與其他通用開發(fā)工具相類似的調(diào)用方法如WIN32的GUI系統(tǒng),幾種典型的嵌入式GUI,COMPACTXWINDOWSYSTEM可擴(kuò)展性好、可移植性好,代碼尺寸大MICROWINDOWS開放源碼的嵌入式GUI軟件,可移植性好,圖形功能出色。OPENGUI自由軟件。匯編實(shí)現(xiàn)的內(nèi)核,并利用MMX指令進(jìn)行了優(yōu)化,OPENGUI運(yùn)行速度非??臁VС?2位處理器,可以在MSDOS,QNX和LINUX下運(yùn)行。主要用來(lái)在這些系統(tǒng)中開發(fā)圖形應(yīng)用程序和游戲QT/EMBEDDEDQT庫(kù)開發(fā)商TROLLTECH推出的面向嵌入式系統(tǒng)的QT版本。可移植性好,價(jià)格較貴。MINIGUI自由軟件,面向嵌入式系統(tǒng)或者實(shí)時(shí)系統(tǒng)的圖形用戶界面支持系統(tǒng)。它主要運(yùn)行于LINUX,還可以運(yùn)行在任何一種具有POSIX線程支持的POSIX兼容系統(tǒng)上,QT/EMBEDDED,可移植性好模塊化設(shè)計(jì)開放源代碼圖形界面漂亮,MICROWINDOWS,跨平臺(tái)不需XSERVER采用FLTKTOOLKITS支持TRUETYPE字型,MINIGUI,支持GB2312與BIG5字集支持多種格式字體,例如TRUETYPE、ADOBETYPE1等。GUI函數(shù)MOVETO、LINETO、FILLBOX、RECTANGLE、CIRCLE、TEXTOUT、DRAWTEXT等,MINIGUI,面向?qū)崟r(shí)嵌入式系統(tǒng)的輕量級(jí)圖形用戶界面支持系統(tǒng)1999年初以GPL條款發(fā)布了第一個(gè)版本,國(guó)際知名的自由軟件項(xiàng)目已廣泛應(yīng)用于數(shù)控系統(tǒng)、手持信息終端產(chǎn)品、彩票機(jī)、DVR系統(tǒng)、金融終端、KTV點(diǎn)播系統(tǒng)、POS機(jī)等等已成為跨操作系統(tǒng)的圖形用戶界面支持系統(tǒng)可在LINUX/UCLINUX、ECOS、UC/OSII、VXWORKS、PSOS等操作系統(tǒng)上運(yùn)行已驗(yàn)證硬件平臺(tái)INTELX86,ARMARM7/AMR9/STRONGARM/XSCALE,POWERPC,MIPS,M68K,COLDFIRE,嵌入式GUI的結(jié)構(gòu)模型,嵌入式硬件平臺(tái),嵌入式操作系統(tǒng),,窗口模型,,顯示模型,,用戶模型,顯示模型圖形在窗口上的基本顯示模式窗口模型窗口如何顯示及改變用戶模型構(gòu)造用戶界面的工具及如何在屏幕上組織各種圖形對(duì)象,以及這些對(duì)象之間如何交互的說(shuō)明。,圖形用戶系統(tǒng)是由顯示模型接口程序、窗口模型接口程序和用戶模型接口程序共同組成的。,嵌入式GUI的體系結(jié)構(gòu),(1)API提供操作各種GUI對(duì)象如窗口、菜單等的應(yīng)用編程接口函數(shù);(2)CORE提供核心的圖形操作功能,如消息機(jī)制、圖形設(shè)備接口、字體、窗口與桌面等的管理功能。(3)IAL和GAL指硬件設(shè)備輸入抽象層和圖形輸出抽象層,與底層輸入輸出設(shè)備接口,便于GUI掛接不同的輸入輸出設(shè)備,實(shí)現(xiàn)GUI系統(tǒng)良好的可移植性和通用性,核心圖形操作層的結(jié)構(gòu),核心機(jī)制模塊,核心機(jī)制模塊是嵌入式GUI中最重要的組成部分,包括消息機(jī)制和事件驅(qū)動(dòng)機(jī)制、桌面操作、初始化操作、定時(shí)器操作等幾個(gè)子模塊,下面介紹幾個(gè)主要子模塊的功能1消息機(jī)制和事件驅(qū)動(dòng)機(jī)制子模塊這個(gè)子模塊主要負(fù)責(zé)消息的接受、分發(fā)和路由等操作;2桌面子模塊桌面是GUI系統(tǒng)中非常重要的一個(gè)部分,相當(dāng)于一個(gè)最底層窗口,其他主窗口都覆蓋其上,維護(hù)了GUI中很多總體全局的操作;3初始化子模塊它是GUI系統(tǒng)中最基本的一個(gè)模塊,每次GUI運(yùn)行之初都要通過(guò)這個(gè)模塊的API函數(shù)對(duì)整個(gè)GUI環(huán)境參數(shù)進(jìn)行設(shè)定和初始化操作;4定時(shí)器子模塊定時(shí)器是GUI中非常重要的組成部分,當(dāng)用戶需要定時(shí)的處理某項(xiàng)操作將會(huì)使用該模塊,在系統(tǒng)中也有使用,如編輯框控件中光標(biāo)的閃爍,進(jìn)度條控件進(jìn)度塊的前進(jìn)等。,字符集與字體模塊,矢量字體基于矢量的的字體,稱之為可縮放的字體,輪廓字體,或矢量字體。由于這些字體在存儲(chǔ)時(shí)亦只存儲(chǔ)了其輪廓,因此,在不同的縮放大小下依然能保持美觀而不會(huì)出現(xiàn)“鋸齒”。這點(diǎn)是很適合其完整地在WEB上傳輸。一般說(shuō)來(lái),LOGO、線形藝術(shù)作品、圖表、動(dòng)畫、抽象藝術(shù)作品等凡較容易定義顏色區(qū)域的圖形,用矢量圖都能產(chǎn)生很好的效果。計(jì)算機(jī)是以處理數(shù)字為基礎(chǔ),如果要處理文字就需要規(guī)定一個(gè)編碼系統(tǒng)用不同的數(shù)字來(lái)表示相應(yīng)的字符。我們較為熟悉的有GB、GBK、BIG5、ASCII等等。由于編碼不統(tǒng)一,這些編碼系統(tǒng)之間經(jīng)常相互沖突。事實(shí)上,兩種編碼可能使用相同的數(shù)字代表兩個(gè)不同的字符;或者使用不同的數(shù)字代表相同的字符。在UNICODE的雙字節(jié)版本中(UTF16)使用的是16位編碼方式,可提供65,000多個(gè)字符代碼指針。其編碼容量可涵蓋世界上幾乎所有的語(yǔ)言,不僅包括拉丁語(yǔ),希臘語(yǔ),斯拉夫語(yǔ),希伯來(lái)語(yǔ),阿拉伯語(yǔ),亞美尼亞語(yǔ),還包括中文,日文和韓文這樣的象形文字,以及平假名,片假名,孟加拉語(yǔ),泰米爾語(yǔ),泰國(guó)語(yǔ),老撾語(yǔ)等。目前還有大約8000個(gè)代碼指針未用,可供擴(kuò)展。,圖形設(shè)備接口,圖形設(shè)備接口GRAPHICSDEVICEINTERFACE,GDI象GUI圖形操作的中間件,主要功能是支持與設(shè)備無(wú)關(guān)的圖形操作,GDI將上層應(yīng)用和不同輸出設(shè)備的特性隔離開來(lái),使編制的上層應(yīng)用能夠毫無(wú)困難地在任意一種圖形輸出設(shè)備上運(yùn)行。它向上層應(yīng)用最終用戶或者系統(tǒng)其他上層組件提供了一些基本的服務(wù)位圖BITMAP、文本TEXT、一般繪圖GENDRAWING等,控件,,一般地,GUI系統(tǒng)都會(huì)預(yù)先定義一些控件類,當(dāng)利用某個(gè)控件類創(chuàng)建控件之后,所有屬于這個(gè)控件類的控件均會(huì)具有相同的行為和顯示。利用這些技術(shù),可以確保一致的人機(jī)操作界面,而程序員可以像搭積木一樣地組建圖形用戶界面。嵌入式GUI系統(tǒng)使用了控件類和控件的概念,可以方便地對(duì)已有控件進(jìn)行重載,使其擁有一些特殊效果。如需要建立一個(gè)只允許輸入數(shù)字的編輯框時(shí),可以通過(guò)重載已有編輯框而實(shí)現(xiàn),而不需要重新編寫一個(gè)新的控件類。,常用GUI函數(shù)簡(jiǎn)介,在多任務(wù)操作系統(tǒng)中,繪圖設(shè)備上下文(DC)是繪圖的關(guān)鍵。繪圖設(shè)備上下文(DC)保存了每一個(gè)繪圖對(duì)象的相關(guān)參數(shù)(比如繪圖畫筆的寬度、繪圖的原點(diǎn)坐標(biāo)等)。在多任務(wù)操作系統(tǒng)中,通過(guò)繪圖設(shè)備上下文(DC)來(lái)繪圖,可以保證在不同的任務(wù)繪圖的參數(shù)是相互獨(dú)立的,不會(huì)互相影響。,DC的定義,TYPEDEFSTRUCT{INTDRAWPOINTXINTDRAWPOINTY//繪圖所使用的坐標(biāo)點(diǎn)INTPENWIDTH//畫筆寬度U32PENMODE//畫筆模式U32PENCOLOR//畫筆的顏色I(xiàn)NTDRAWORGX//繪圖的坐標(biāo)原點(diǎn)位置INTDRAWORGYINTDRAWRANGEX//繪圖的區(qū)域范圍INTDRAWRANGEYU8BUPDATABUFFER//是否更新后臺(tái)緩沖區(qū)U32FONTCOLOR//字符顏色}DC,PDC,DC的使用,DC創(chuàng)建,PDCPDCPDCCREATEDC,典型的繪圖函數(shù)A,VOIDINITOSDCPDCCREATEDCVOIDDESTORYDCPDCPDCVOIDMOVETOPDCPDC,INTX,INTYVOIDLINETOPDCPDC,INTX,INTYVOIDDRAWRECTFRAMEPDCPDC,INTLEFT,INTTOP,INTRIGHT,INTBOTTOMVOIDCIRCLEPDCPDC,INTX0,INTY0,INTR,典型的繪圖函數(shù)B,VOIDSETDRAWORGPDCPDC,INTX,INTY,INTOLDX,INTOLDY設(shè)置繪圖設(shè)備上下文(DC)的原點(diǎn),典型的繪圖函數(shù)C,VOIDSETDRAWRANGEPDCPDC,INTX,INTY,INTOLDX,INTOLDY設(shè)置繪圖設(shè)備上下文(DC)的繪圖范圍X,Y設(shè)定的橫向、縱向繪圖的范圍,如果X(或者Y)為1,則表示X(或者Y)方向的比例隨著Y(或者X)方向的范圍按比例縮放。如果參數(shù)為1,表示方向相反,DC設(shè)置舉例,PDCPDCPDCCREATEDCSETDRAWORGPDC,170,50,SETDRAWRANGEPDC,800,1,上面的程序代碼創(chuàng)建一個(gè)繪圖設(shè)備上下文(DC),將原點(diǎn)坐標(biāo)設(shè)定在液晶屏設(shè)備坐標(biāo)的170,50,并把繪圖的邏輯坐標(biāo)的水平值設(shè)置成800,垂直范圍按照液晶屏實(shí)際的橫縱比例縮放。,DC設(shè)置圖例,基于UNICODE的字庫(kù),什么是UNICODE使用UNICODE的優(yōu)點(diǎn)字符的存儲(chǔ)方式編寫UNICODE的程序UNICODE字模的提取UNICODE字庫(kù)的顯示及相關(guān)函數(shù),什么是UNICODE,UNICODE是統(tǒng)一編碼的緊縮寫法世界上常用的編碼系統(tǒng)有數(shù)百種之多,但所有的這些編碼系統(tǒng),沒(méi)有哪一個(gè)能有足夠的字符,可以適用于多種語(yǔ)言文本由于編碼不統(tǒng)一,這些編碼系統(tǒng)之間經(jīng)常相互沖突UNICODE出現(xiàn)改變了這一切在UNICODE的雙字節(jié)版本中(UTF16)使用的是16位編碼方式,可提供65,000多個(gè)字符代碼指針,使用UNICODE的優(yōu)點(diǎn),使用UNICODE避免了亂碼的產(chǎn)生,使得國(guó)際間文本數(shù)據(jù)交換成為可能解決了多語(yǔ)言文本同平面共存的問(wèn)題實(shí)現(xiàn)了軟件的全球化,避免了軟件產(chǎn)品在貫穿多個(gè)平臺(tái)、語(yǔ)言和國(guó)家時(shí)的重建,字符的存儲(chǔ)方式,在圖形操作系統(tǒng)中,字符(包括中文、英文)通常有2種存儲(chǔ)方式。一種方式存儲(chǔ)的是字符的圖形點(diǎn)陣另一種方式是存儲(chǔ)漢字的矢量圖形在嵌入式處理中,因?yàn)樘幚砥鞯男阅芎颓度胧较到y(tǒng)資源還不如PC機(jī),而且,嵌入式只是針對(duì)專一控制而應(yīng)用的系統(tǒng)?;旧希瑳](méi)有必要使用矢量字庫(kù)。為了進(jìn)一步加快處理速度,系統(tǒng)中保存有12X12、16X16和24X24三種分辨率的點(diǎn)陣字庫(kù)。,提取UNICODE字庫(kù),WINDOWS2000及其以后的系統(tǒng)版本,默認(rèn)的字符處理方式是UNICODEWINDOWS平臺(tái)上,有大量豐富的字符資源WINDOWS2000及其以后的系統(tǒng)版本中,提取UNICODE字符點(diǎn)陣無(wú)疑成了最好的選擇。我們的UNICODE字符的提取軟件是使用MICROSOFTVISUALC60編寫的。,UNICODE字庫(kù)分配,本系統(tǒng)中編碼采用雙字節(jié)版本的UNICODE格式收集了ASCII字符(0X00000X00FF)256個(gè)特殊圖形符號(hào)(0X26000X267F和0X27000X27BF)320個(gè)中文字符(0X4E000X9FFF)20992個(gè)。,UNICODE字庫(kù)相關(guān)函數(shù),轉(zhuǎn)換函數(shù)VOIDINT2UNICODEINTNUMBER,U16STRINTUNICODE2INTU16STRVOIDSTRCHAR2UNICODEU16CH2,CONSTCHARCH1輸出函數(shù)VOIDTEXTOUTPDCPDC,INTX,INTY,U16CH,U8BUNICODE,U8FNTVOIDTEXTOUTRECTPDCPDC,STRUCTRECTPRECT,U16CH,U8BUNICODE,U8FNT,典型的控件,控件是可視化開發(fā)的基礎(chǔ)。對(duì)于開發(fā)應(yīng)用程序的用戶來(lái)說(shuō),控件是一個(gè)獨(dú)立的組件,它有著自己的顯示方式,自己的動(dòng)態(tài)內(nèi)存管理模式,甚至有的控件還可以向系統(tǒng)發(fā)送自己的消息。用戶不需要掌握控件的內(nèi)部到底是如何工作的,用戶只需要通過(guò)控件提供的API函數(shù),改變控件相應(yīng)的屬性,從而改變控件的顯示方式??丶囊肟梢苑奖阌脩舻拈_發(fā),加速用戶應(yīng)用程序界面的編寫速度。為運(yùn)行在操作系統(tǒng)上的應(yīng)用程序的界面提供了統(tǒng)一的標(biāo)準(zhǔn),方便了使用。,系統(tǒng)中的控件,文本框控件列表框控件圖片框控件按鈕控件窗體,控件的使用流程,通用的系統(tǒng)控件,對(duì)一個(gè)通用的系統(tǒng)控件,包含了如下的數(shù)據(jù)結(jié)構(gòu)TYPEDEFSTRUCT{U32CTRLTYPE//控件的類型U32CTRLID//控件的IDSTRUCTRECTLISTCTRLRECT//控件的位置和大小U32FONTSIZE//控件的字符大小U32STYLE//控件的的邊框風(fēng)格U8BVISIBLE//是否可見}OS_CTRL,謝謝,
下載積分: 6 賞幣
上傳時(shí)間:2024-01-05
頁(yè)數(shù): 69
大?。?1.06(MB)
子文件數(shù):