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

下載本文檔

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

文檔簡介

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

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

溫馨提示

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

評論

0/150

提交評論