C語(yǔ)言嵌入式系統(tǒng)編程_第1頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、c語(yǔ)言嵌入式系統(tǒng)編程模塊劃分的"劃"是規(guī)劃的意思,意指怎樣合理的將一個(gè)很大的軟件劃分為一系列功能自立的部分合作完成系統(tǒng)的需求。作為一種結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言,在模塊的劃分上主要依據(jù)功能(依功能舉行劃分在面對(duì)對(duì)象設(shè)計(jì)中成為一個(gè)錯(cuò)誤,牛頓定律碰到了>相對(duì)論), c語(yǔ)言模塊化程序設(shè)計(jì)需理解如下概念:(1) 模塊即是一個(gè).c文件和一個(gè).h文件的結(jié)合,頭文件(.h)中是對(duì)于該模塊接口的聲明;(2) 某模塊提供應(yīng)其它模塊調(diào)用的外部函數(shù)及數(shù)據(jù)需在.h中文件中冠以extern關(guān)鍵字聲明;(3) 模塊內(nèi)的函數(shù)和全局變量需在.c文件開(kāi)始冠以static關(guān)鍵字聲明;(4) 永久不要在.h文件

2、中定義變量!定義變量和聲明變量的區(qū)分在于定義會(huì)產(chǎn)生內(nèi)存分配的操作,是匯編階段的概念;而聲明則只是告知包含該聲明的模塊在銜接階段從其它模塊尋覓外部函數(shù)和變量。如:/*module1.h*/int a = 5; /* 在模塊1的.h文件中定義int a */*module1 .c*/include "module1.h" /* 在模塊1中包含模塊1的.h文件 */*module2 .c*/include "module1.h" /* 在模塊2中包含模塊1的.h文件 */*module3 .c*/include "module1.h" /*

3、 在模塊3中包含模塊1的.h文件 */以上程序的結(jié)果是在模塊1、2、3中都定義了整型變量a,a在不同的模塊中對(duì)應(yīng)不同的地址單元,這個(gè)世界上從來(lái)不需要這樣的程序。正確的做法是:/*module1.h*/extern int a; /* 在模塊1的.h文件中聲明int a */*module1 .c*/include "module1.h" /* 在模塊1中包含模塊1的.h文件 */int a = 5; /* 在模塊1的.c文件中定義int a */*module2 .c*/include "module1.h" /* 在模塊2中包含模塊1的.h文件 */*

4、module3 .c*/include "module1.h" /* 在模塊3中包含模塊1的.h文件 */這樣假如模塊1、2、3操作a的話,對(duì)應(yīng)的是同一片內(nèi)存單元。一個(gè)系統(tǒng)通常包括兩類模塊:(1)硬件驅(qū)動(dòng)模塊,一種特定硬件對(duì)應(yīng)一個(gè)模塊;(2)軟件功能模塊,其模塊的劃分應(yīng)滿足低偶合、高內(nèi)聚的要求。多任務(wù)還是單任務(wù)所謂"單任務(wù)系統(tǒng)"是指該系統(tǒng)不能支持多任務(wù)并發(fā)操作,宏觀串行地執(zhí)行一個(gè)任務(wù)。而多任務(wù)系統(tǒng)則可以宏觀并行(微觀上可能串行)地"同時(shí)"執(zhí)行多個(gè)任務(wù)。多任務(wù)的并發(fā)執(zhí)行通常依靠于一個(gè)多任務(wù)操作系統(tǒng)(os),多任務(wù)os的核心是系統(tǒng)調(diào)度器,它用法任務(wù)控制塊(tcb)來(lái)管理任務(wù)調(diào)度功能。tcb包括任務(wù)的當(dāng)前狀態(tài)、優(yōu)先級(jí)、要等待的大事或資源、任務(wù)程序碼的起始地址、初始堆棧指針等信息。調(diào)度器在任務(wù)被激活時(shí),要用到這些信息。此外,tcb還被用來(lái)存放任務(wù)的"上下文"(context)。任務(wù)的上下文就是當(dāng)一個(gè)執(zhí)行中的任務(wù)被停止時(shí),所要保存的全部信息。通常,上下文就是計(jì)算機(jī)當(dāng)前的狀態(tài),也即各個(gè)寄存器的內(nèi)容。當(dāng)發(fā)生任務(wù)切換時(shí),當(dāng)前運(yùn)行的任務(wù)的上下文被存入tcb,并將要被執(zhí)行的任務(wù)的上下文從它的tcb中取出,放入各個(gè)寄存器中。嵌入式多任務(wù)os的典型例子有vxw

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論