• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      嵌入式程序動(dòng)態(tài)分配內(nèi)存的調(diào)試方案設(shè)

      2015-01-13 01:32:41陳宏君馮亞?wèn)|文繼鋒周強(qiáng)
      關(guān)鍵詞:項(xiàng)目化模塊化

      陳宏君,馮亞?wèn)|,文繼鋒,周強(qiáng)

      (南京南瑞繼保電氣有限公司,南京 211102)

      陳宏君,馮亞?wèn)|,文繼鋒,周強(qiáng)

      (南京南瑞繼保電氣有限公司,南京 211102)

      提出一種嵌入式程序運(yùn)行狀態(tài)下動(dòng)態(tài)分配內(nèi)存的變量調(diào)試方案,將應(yīng)用程序按照元件劃分,元件數(shù)據(jù)通過(guò)結(jié)構(gòu)體進(jìn)行封裝,嵌入式系統(tǒng)程序庫(kù)記錄動(dòng)態(tài)分配結(jié)構(gòu)體的首地址和實(shí)例名,上位機(jī)客戶端調(diào)試軟件分析結(jié)構(gòu)體變量的相對(duì)地址,并將層次變量名和相對(duì)地址信息下發(fā)給嵌入式服務(wù)器端,服務(wù)器端由首地址、相對(duì)地址計(jì)算出變量的絕對(duì)地址,并根據(jù)變量類型信息訪問(wèn)該地址對(duì)應(yīng)的內(nèi)存數(shù)據(jù),上傳給調(diào)試工具顯示。本文提出的調(diào)試方案已經(jīng)應(yīng)用在電力系統(tǒng)保護(hù)測(cè)控裝置調(diào)試中,提高了程序診斷效率。

      嵌入式程序;動(dòng)態(tài)分配;內(nèi)存調(diào)試;結(jié)構(gòu)體分析

      引 言

      在軟件開發(fā)維護(hù)過(guò)程中,調(diào)試是很重要的一個(gè)步驟,通過(guò)調(diào)試來(lái)診斷解決程序問(wèn)題。在上位機(jī)(PC機(jī))環(huán)境運(yùn)行的程序,由于有集成開發(fā)調(diào)試的人機(jī)界面工具,可以方便地進(jìn)行單步調(diào)試或輸出中間運(yùn)行信息。嵌入式軟件獨(dú)立運(yùn)行在裝置中,一般是通過(guò)仿真器連接調(diào)試線進(jìn)行調(diào)試,這種模式需要人為預(yù)先知道變量的地址,并且系統(tǒng)通常是在STOR(停止實(shí)時(shí)運(yùn)行)的模式下才能支持仿真器調(diào)試[1]。

      調(diào)試一個(gè)變量,首先需要知道該變量的地址。編譯器在編譯程序時(shí),對(duì)于全局變量,可以預(yù)先靜態(tài)分配地址,形成全局變量的MAP文件,通過(guò)分析該文件,獲取全局變量名和地址信息,進(jìn)而調(diào)試全局變量。隨著程序規(guī)模的增加,全局?jǐn)?shù)據(jù)空間有限,無(wú)法把所有變量都放到全局區(qū),并且有些數(shù)據(jù)需要根據(jù)具體情況動(dòng)態(tài)分配。動(dòng)態(tài)分配內(nèi)存的變量是在程序構(gòu)造函數(shù)中申請(qǐng)的,這些變量在程序運(yùn)行前地址是未知的,由于CPU運(yùn)行的是二進(jìn)制指令,在運(yùn)行過(guò)程中沒有地址和變量名的對(duì)應(yīng)關(guān)系,無(wú)法用傳統(tǒng)的仿真器調(diào)試方法來(lái)調(diào)試嵌入式程序動(dòng)態(tài)分配內(nèi)存的變量在運(yùn)行模式下的實(shí)際值。

      本文設(shè)計(jì)了一種嵌入式程序運(yùn)行狀態(tài)下動(dòng)態(tài)分配內(nèi)存的變量調(diào)試方案,通過(guò)定義應(yīng)用程序結(jié)構(gòu)體編寫規(guī)范、系統(tǒng)程序提供API接口注冊(cè)結(jié)構(gòu)體、調(diào)試軟件分析頭文件計(jì)算結(jié)構(gòu)體成員變量的相對(duì)地址等方式,能得到變量的真正地址,在運(yùn)行過(guò)程中裝置上傳變量實(shí)際值。

      1 系統(tǒng)架構(gòu)設(shè)計(jì)

      嵌入式裝置調(diào)試系統(tǒng)結(jié)構(gòu)如圖1所示,將應(yīng)用程序和系統(tǒng)平臺(tái)庫(kù)編譯為HEX目標(biāo)文件,下載到裝置。調(diào)試工具分析H文件、變量類型和相對(duì)地址等信息,下發(fā)調(diào)試請(qǐng)求,裝置上傳變量值。

      圖1 調(diào)試系統(tǒng)結(jié)構(gòu)圖

      首先將應(yīng)用程序按照文件進(jìn)行封裝。文件是完成特定應(yīng)用功能的面向?qū)ο蟮囊唤M數(shù)據(jù)和對(duì)數(shù)據(jù)進(jìn)行處理的過(guò)程,處理完后輸出的數(shù)據(jù)供其他文件進(jìn)一步使用[2]。應(yīng)用程序由若干文件組成,包括H文件和C文件,在H文件中定義數(shù)據(jù)結(jié)構(gòu)體,在C文件中定義構(gòu)造函數(shù)、任務(wù)函數(shù),對(duì)結(jié)構(gòu)體數(shù)據(jù)進(jìn)行運(yùn)算等操作。

      其次對(duì)于動(dòng)態(tài)分配內(nèi)存的結(jié)構(gòu)體變量,裝置側(cè)系統(tǒng)軟件提供注冊(cè)接口,可記錄首地址,在C文件的構(gòu)造函數(shù)中調(diào)用注冊(cè)接口。

      嵌入式裝置上電后進(jìn)入運(yùn)行狀態(tài),調(diào)試軟件和裝置進(jìn)行連接,用戶可指定H文件存放路徑,結(jié)合裝置上傳的CPU字節(jié)對(duì)齊信息,對(duì)相關(guān)的H文件進(jìn)行詞法分析和語(yǔ)法分析,計(jì)算出變量在結(jié)構(gòu)體中的相對(duì)地址,并下發(fā)變量地址和類型信息。裝置側(cè)根據(jù)結(jié)構(gòu)體實(shí)例名,在注冊(cè)表中查詢結(jié)構(gòu)體首地址,加上變量相對(duì)地址,得到變量的絕對(duì)地址,并訪問(wèn)該地址對(duì)應(yīng)內(nèi)存,上傳數(shù)據(jù)。完整的調(diào)試流程如圖2所示。

      圖2 調(diào)試流程圖

      2 系統(tǒng)軟件API接口

      由于應(yīng)用領(lǐng)域需求復(fù)雜和分工細(xì)化,嵌入式系統(tǒng)逐漸開始了平臺(tái)化的開發(fā)模式[3],工程師基于通用的硬件平臺(tái)、系統(tǒng)軟件平臺(tái)、工具軟件平臺(tái)開發(fā)應(yīng)用程序。

      其中系統(tǒng)軟件屏蔽硬件差異,提供的通用接口服務(wù)(API)包括:元件注冊(cè)、變量管理、任務(wù)調(diào)度、數(shù)據(jù)交換、定值設(shè)置、調(diào)試通信等功能。定義一套面向應(yīng)用的開發(fā)規(guī)范,在嵌入式C語(yǔ)言程序中,數(shù)據(jù)通過(guò)結(jié)構(gòu)體進(jìn)行組織和重用。在結(jié)構(gòu)體動(dòng)態(tài)分配內(nèi)存的函數(shù)中,調(diào)用系統(tǒng)軟件API接口注冊(cè)結(jié)構(gòu)體信息。定義結(jié)構(gòu)體信息表數(shù)據(jù)模型如下:

      struct ComponentInfo{

      void* addr; //結(jié)構(gòu)體首地址

      char* type_name; //結(jié)構(gòu)體類型名

      char* inst_name; //結(jié)構(gòu)體實(shí)例名

      };

      將結(jié)構(gòu)體信息組成一個(gè)hash表,可用結(jié)構(gòu)體實(shí)例名為關(guān)鍵字,查找獲取結(jié)構(gòu)體的類型名、首地址信息。在文件構(gòu)造函數(shù)中,通過(guò)調(diào)用registerComponent(void* addr, char* ptype, char* pinst),把動(dòng)態(tài)分配的結(jié)構(gòu)體信息注冊(cè)到信息表中。

      3 應(yīng)用元件開發(fā)

      應(yīng)用程序基于系統(tǒng)庫(kù)開發(fā),將程序劃分為若干文件和main.c文件。文件的頭文件定義數(shù)據(jù)結(jié)構(gòu)體,包括輸入變量、輸出變量、內(nèi)部變量等。例如:

      struct AND2{

      #include"base.h"

      unsigned char* in1;

      unsigned char* in2;

      unsigned char out;

      int run_cnt;

      …… };

      在C文件中定義文件構(gòu)造函數(shù)、任務(wù)函數(shù)。在構(gòu)造函數(shù)中調(diào)用calloc函數(shù)分配數(shù)據(jù)結(jié)構(gòu)體,并調(diào)用系統(tǒng)接口注冊(cè)首地址信息:

      AND2* newAND2(char* pinst){

      AND2* dp = (AND2*)calloc(1, sizeof(AND2));

      if(!dp) return NULL;

      …… //其他變量初始化代碼

      registerComponent(dp, "AND2", pinst);

      addTask(dp,runAnd2);

      return dp;

      }

      按照上述方法開發(fā)各個(gè)應(yīng)用元件后,在主程序中調(diào)用各個(gè)元件的構(gòu)造函數(shù),設(shè)置元件實(shí)例名:

      int main(int argc, char** argv){

      AND2* pand = newAND2("And2");

      CURRENT* pcur = newCurrent("Cur3P1");

      ……//其他設(shè)置代碼

      return 1;

      }

      上述示例代碼,創(chuàng)建了類型名AND2并且實(shí)例名為And2、類型名CURRENT并且實(shí)例名為Cur3P1的文件實(shí)例,在main函數(shù)中完成動(dòng)態(tài)內(nèi)存的申請(qǐng)分配和注冊(cè)管理。

      4 層次調(diào)試名模型

      調(diào)試裝置變量時(shí),系統(tǒng)軟件支持通過(guò)層次變量名XXSlot.XXComp.XXVar(插件名.元件實(shí)例名.變量名)訪問(wèn)數(shù)據(jù)。如圖3所示,平臺(tái)化軟件結(jié)構(gòu)中,將可插拔的插件按照面向?qū)ο蟮墓?jié)點(diǎn)管理。對(duì)于帶處理器的插件,支持設(shè)置對(duì)象名,例如B01(管理插件)、B02(運(yùn)算插件)以及模擬量、開關(guān)量輸入輸出插件等,可在裝置配置文件中定義各個(gè)插件的名字、總線地址。MCPU插件具備管理功能,給其他插件分配總線地址,并作為調(diào)試服務(wù)器。當(dāng)下發(fā)B02.Cur3P1.IA的層次變量名給管理插件時(shí),會(huì)通過(guò)總線轉(zhuǎn)發(fā)給其他插件。故對(duì)動(dòng)態(tài)分配元件的數(shù)據(jù)調(diào)試,最關(guān)鍵的一步是獲取成員變量的地址。

      圖3 層次調(diào)試名示例

      5 結(jié)構(gòu)體成員相對(duì)地址計(jì)算

      結(jié)構(gòu)體實(shí)例dp的成員變量out相對(duì)地址在C語(yǔ)言中,可用類似(unsigned int)(&dp->out)-(unsigned int) dp的方式獲取,而上位機(jī)調(diào)試軟件需通過(guò)靜態(tài)分析,離線計(jì)算不同字長(zhǎng)類型的CPU所對(duì)應(yīng)程序的變量相對(duì)地址。

      分析結(jié)構(gòu)體內(nèi)變量地址分配信息前,需掌握結(jié)構(gòu)體布局原理,了解總線寬度、自然邊界的概念,編譯器在分配結(jié)構(gòu)體時(shí)根據(jù)這兩個(gè)因素來(lái)計(jì)算偏移量和空間占用[4]。

      每個(gè)C語(yǔ)言變量類型都有自然邊界,如果某種類型數(shù)據(jù)所處地址是N的整數(shù)倍時(shí),訪問(wèn)效率最高,則這種類型的自然邊界是數(shù)字N[4]。

      對(duì)于數(shù)據(jù)總線為32的處理器,short型為2字節(jié),自然邊界為2;int型為4字節(jié),自然邊界為4;double型為8字節(jié),自然邊界為8。本文所分析的處理器(包括PowerPC、SHARC、TI、Blackfin等),其編譯選項(xiàng)都設(shè)置為結(jié)構(gòu)體非壓縮模式。對(duì)于非壓縮模式結(jié)構(gòu)體,內(nèi)存布局遵循2個(gè)原則:

      ① 結(jié)構(gòu)體的自然邊界和成員變量中最大的自然邊界一致,在不同變量類型之間可能存在空洞,用于變量自然邊界對(duì)齊;

      ② 結(jié)構(gòu)體的總大小是其自然邊界的倍數(shù),在結(jié)構(gòu)體末尾可能需要填充字節(jié)。

      上述的“可能”是因?yàn)椋焊鶕?jù)前一個(gè)變量相對(duì)地址值和變量類型,遞推當(dāng)前變量相對(duì)地址值時(shí),需判斷當(dāng)前已經(jīng)占用分配的地址是否能整除該變量的自然邊界,具體情況需要具體分析,這也是結(jié)構(gòu)體變量分析的難點(diǎn)。

      結(jié)構(gòu)體中可以有子結(jié)構(gòu)體、子聯(lián)合體union,其中union大小是取其子成員中最大內(nèi)存占用,而struct大小是所有成員大小的累次疊加。一個(gè)簡(jiǎn)單的結(jié)構(gòu)體定義舉例略——編者注。

      由于應(yīng)用程序功能復(fù)雜,在元件結(jié)構(gòu)體中會(huì)使用子結(jié)構(gòu)體、子聯(lián)合體、條件預(yù)編譯、數(shù)組、表達(dá)式、位段等,故對(duì)結(jié)構(gòu)體成員變量的分析是遞歸下降的過(guò)程。其計(jì)算流程如圖4所示。

      圖4 結(jié)構(gòu)體成員變量相對(duì)地址計(jì)算流程圖

      在進(jìn)行結(jié)構(gòu)體分析時(shí),定義了如下關(guān)鍵數(shù)據(jù)結(jié)構(gòu):

      ① 記號(hào)類, CToken是進(jìn)行詞法分析的最基本單元:

      class CToken{

      public:

      CToken(QString&name): m_name(name){}

      MainTokenType m_maintp; //主類型

      SubTokenType m_subtp; //子類型

      string m_name; //名字

      };

      其中記號(hào)的主類型定義為:

      enumMainTokenType{

      ErrorType=0, //錯(cuò)誤類型

      IdType, //關(guān)鍵字、變量名、類型名、運(yùn)算符等

      IntType, //整數(shù)常量類型

      DoubleType, //浮點(diǎn)數(shù)常量類型

      StringType, //字符串常量類型

      EndLineType, //行結(jié)束符號(hào)

      EndFileType, //文件結(jié)束符號(hào)

      };

      IdType的分若干子類型:

      enum SubTokenType{

      KeyWordType, //關(guān)鍵字

      OperaterType, //運(yùn)算符號(hào)

      VariableType, //變量類型,包括數(shù)組

      StructType, //結(jié)構(gòu)體類型

      UnionType, //聯(lián)合類型

      ……

      PreProcType //預(yù)處理符號(hào) #include

      };

      詞法掃描主要過(guò)程是讀取H文件,處理注釋后,逐個(gè)讀取字符,通過(guò)表驅(qū)動(dòng)的查找方法,并進(jìn)行若干步探測(cè),進(jìn)行關(guān)鍵字、變量類型等匹配,提取出變量名、類型定義、常量等標(biāo)記。

      ② 結(jié)構(gòu)體數(shù)據(jù)建模:CStruct包括若干子結(jié)構(gòu)體、聯(lián)合體實(shí)例、定義的位置等,每分析完1個(gè)變量后,更新m_memorySize值,動(dòng)態(tài)調(diào)整自然邊界。程序語(yǔ)句略——編者注。

      ③ H文件數(shù)據(jù)管理類: CHFile通過(guò)調(diào)用parseText接口,讀取文件,進(jìn)行詞法分析后,形成CToken實(shí)例,用m_tokens管理,并根據(jù)CToken的子類型,形成結(jié)構(gòu)體、枚舉定義、宏定義等實(shí)例。程序語(yǔ)句略——編者注。

      完成上述關(guān)鍵數(shù)據(jù)結(jié)構(gòu)定義后,計(jì)算第N個(gè)變量的相對(duì)地址,等價(jià)于計(jì)算N-1個(gè)變量所占用的結(jié)構(gòu)體大小和第N個(gè)變量的自然邊界調(diào)整,通過(guò)遞歸下降循環(huán)調(diào)用,便可實(shí)現(xiàn)圖4的計(jì)算流程:

      ① 結(jié)構(gòu)體初始大小為0,計(jì)算結(jié)構(gòu)體內(nèi)第1個(gè)變量的大小,得到數(shù)字為M1;

      ② 計(jì)算第2個(gè)成員變量占用大小M2,如果第2個(gè)變量類型自然對(duì)齊邊界值為N, 定義空洞數(shù)S=(M1%N),則補(bǔ)齊S個(gè)字節(jié),第2個(gè)變量計(jì)算完后,總的大小為M1+S+M2,第2個(gè)變量的相對(duì)地址為M1+S;

      ③ 順次計(jì)算并累加各成員變量相對(duì)地址和空洞,直到計(jì)算出第N個(gè)變量的相對(duì)地址。

      6 調(diào)試界面

      工具軟件作為客戶端,向裝置管理插件的進(jìn)程發(fā)起TCP連接請(qǐng)求,連接成功后,可在調(diào)試界面輸入變量名,設(shè)置需要分析的H文件目錄,工具下發(fā)打開調(diào)試變量請(qǐng)求,裝置上傳CPU字長(zhǎng)信息、變量結(jié)構(gòu)體名字。工具調(diào)試第1個(gè)變量時(shí),打開相關(guān)文件,分析結(jié)構(gòu)體定義和變量聲明信息,計(jì)算出相對(duì)地址后,將變量類型、相對(duì)地址下發(fā)給裝置,裝置從元件注冊(cè)表中查找到該變量對(duì)應(yīng)文件的首地址,加上相對(duì)地址,如果是本插件變量,則訪問(wèn)變量的絕對(duì)地址,如果是其他插件變量,則轉(zhuǎn)發(fā)給其他插件,由變量所在插件的系統(tǒng)程序訪問(wèn)變量地址,并將信息傳輸給管理插件,由管理插件上傳變量值。支持周期上傳和關(guān)閉變量。調(diào)試界面略——編者注。

      結(jié) 語(yǔ)

      本文闡述了嵌入式系統(tǒng)動(dòng)態(tài)分配內(nèi)存的調(diào)試方案,基于結(jié)構(gòu)體首地址+變量相對(duì)地址信息,實(shí)現(xiàn)了嵌入式程序在實(shí)時(shí)運(yùn)行模式下調(diào)試動(dòng)態(tài)分配內(nèi)存。該方案可以對(duì)程序的每個(gè)變量進(jìn)行實(shí)時(shí)跟蹤,快速定位運(yùn)行工況下的程序問(wèn)題,縮短了開發(fā)周期,已經(jīng)在電力系統(tǒng)相關(guān)裝置中應(yīng)用,顯著提高了調(diào)試效率。

      編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。

      [1] 李志丹.嵌入式軟件調(diào)試方法研究[J].計(jì)算機(jī)與數(shù)字工程,2012,7(2):192-194,236.

      [2] 陳宏君,劉克金,馮亞?wèn)|,等.新一代保護(hù)測(cè)控裝置配套工具軟件設(shè)計(jì)與應(yīng)用[J].電力系統(tǒng)自動(dòng)化,2013,37(20):92-96.

      [3] 李響,劉國(guó)偉,馮亞?wèn)|,等.新一代控制保護(hù)系統(tǒng)通用硬件平臺(tái)設(shè)計(jì)與應(yīng)用[J].電力系統(tǒng)自動(dòng)化,2012,36(14):52-55.

      [4] Colin Walls.嵌入式軟件開發(fā)精解[M].何小慶,張浩中,何靈淵,譯.北京:機(jī)械工業(yè)出版社,2014.

      [5] 趙香,耿銳,黃光紅.C語(yǔ)言源碼級(jí)調(diào)試器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2011(5):157-160.

      [6] 徐超坤,朱婷,李威宣.基于模型的嵌入式C代碼的實(shí)現(xiàn)與驗(yàn)證[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2011(12):15-18.

      陳宏君(高級(jí)工程師),主要研究方向?yàn)榍度胧杰浖脚_(tái)開發(fā)。

      郭國(guó)法,宮瑤,張開生

      (陜西科技大學(xué) 電氣與信息工程學(xué)院,西安 710021)

      摘要: 針對(duì)傳統(tǒng)嵌入式課程教學(xué)平臺(tái)教學(xué)模式單一、輔助實(shí)驗(yàn)設(shè)置有局限性等問(wèn)題,采用了嵌入式課程遞階教學(xué)平臺(tái),從嵌入式課程驗(yàn)證性基礎(chǔ)實(shí)驗(yàn)出發(fā),基于CDIO工程教學(xué)模式理念實(shí)現(xiàn)理論教學(xué)與實(shí)踐應(yīng)用的一體化。硬件采用核心板和拓展底板分離插拔式設(shè)計(jì),底板功能模塊化程序可適用于多種微處理器芯片,實(shí)現(xiàn)單片機(jī)核心板與嵌入式核心板源程序代碼共享,滿足嵌入式系統(tǒng)分層次遞階教學(xué)的要求。

      關(guān)鍵詞: CDIO;嵌入式教學(xué)平臺(tái);項(xiàng)目化;模塊化

      Abstract: Aiming at the problems of the embedded teaching platform such as teaching mode single and experimental setup has limitation,an embedded teaching platform is proposed,which is based on CDIO engineering teaching mode idea and realizes the integration of theoretical teaching and practical application.The hardware uses separate and plug design of the core board and the expansion board.The expansion board function modular program is applicable to a variety of microprocessor chip,which can realize the core board source application code sharing with the embedded core board.It can meet the requirements of hierarchical teaching in the embedded system.

      Key words: CDIO;embedded teaching platform;project;modular

      引 言

      在信息技術(shù)和網(wǎng)絡(luò)技術(shù)飛速發(fā)展的電子科技時(shí)代,嵌入式系統(tǒng)已經(jīng)滲透到現(xiàn)代生活的方方面面,包括硬盤驅(qū)動(dòng)器、遙控器、汽車防鎖剎車、農(nóng)業(yè)大棚溫濕度控制、智能家居等。整個(gè)社會(huì)對(duì)掌握嵌入式技術(shù)的創(chuàng)新性人才求賢若渴,各高校對(duì)嵌入式系統(tǒng)課程教學(xué)越來(lái)越重視,因此培養(yǎng)出合格的創(chuàng)新性嵌入式技術(shù)人才迫在眉睫。但目前嵌入式課程教學(xué)實(shí)驗(yàn)平臺(tái)多采用成熟的嵌入式開發(fā)板[1],僅以驗(yàn)證性實(shí)驗(yàn)為主,并且開發(fā)板芯片與功能硬件已經(jīng)確定不容更改,學(xué)生在其實(shí)驗(yàn)平臺(tái)上只能依照廠商提供的板載程序運(yùn)行,觀察實(shí)驗(yàn)現(xiàn)象,不利于學(xué)生掌握硬件原理、程序編譯和調(diào)試的方法,不能進(jìn)行深度嵌入式系統(tǒng)的開發(fā),動(dòng)手實(shí)踐能力不足,同時(shí)傳統(tǒng)的課程教學(xué)實(shí)驗(yàn)平臺(tái)也不能較好地引導(dǎo)學(xué)生接受和掌握單片機(jī)與嵌入式系統(tǒng)相關(guān)知識(shí),尤其是從單片機(jī)學(xué)習(xí)過(guò)渡到嵌入式系統(tǒng)學(xué)習(xí)的過(guò)程顯得尤為艱辛,究其根本,原因是缺乏一種快速引導(dǎo)學(xué)生進(jìn)入嵌入式學(xué)習(xí)的實(shí)驗(yàn)平臺(tái)。

      針對(duì)這種情況,采用軟硬件資源完全開放的CDIO模式嵌入式課程遞階教學(xué)平臺(tái),CDIO代表構(gòu)思(Conceive)、設(shè)計(jì)(Design)、實(shí)現(xiàn)(Implement)和運(yùn)作(Operate)教學(xué)理念,倡導(dǎo)在工程基礎(chǔ)知識(shí)、個(gè)人能力、人際團(tuán)隊(duì)能力和系統(tǒng)工程能力4個(gè)層面上進(jìn)行綜合訓(xùn)煉[2-5]。嵌入式課程遞階教學(xué)平臺(tái)應(yīng)用CDIO工程教育理念于理論教學(xué)與實(shí)驗(yàn)教學(xué)中,從實(shí)驗(yàn)項(xiàng)目策劃設(shè)計(jì)到實(shí)驗(yàn)項(xiàng)目運(yùn)行為教學(xué)實(shí)踐全過(guò)程,采取多核硬件板與模塊化軟件設(shè)計(jì)相結(jié)合的方式,以滿足不同層次的學(xué)生對(duì)嵌入式課程學(xué)習(xí)階段的需求為目的,設(shè)置了相應(yīng)的驗(yàn)證設(shè)計(jì)、綜合設(shè)計(jì)及創(chuàng)新設(shè)計(jì)的進(jìn)階教學(xué)實(shí)驗(yàn),讓學(xué)生以主動(dòng)的、實(shí)踐的方式漸進(jìn)式學(xué)習(xí)嵌入式課程,幫助學(xué)生快速?gòu)膯纹瑱C(jī)的學(xué)習(xí)過(guò)渡到嵌入式系統(tǒng)學(xué)習(xí)當(dāng)中,逐步具有設(shè)計(jì)開發(fā)嵌入式系統(tǒng)的能力,很好地解決傳統(tǒng)嵌入式教學(xué)平臺(tái)不能分層次遞階教學(xué)和實(shí)踐的問(wèn)題。

      1 系統(tǒng)總體設(shè)計(jì)

      嵌入式課程遞階教學(xué)平臺(tái)主要由計(jì)算機(jī)和目標(biāo)實(shí)驗(yàn)板兩部分組成。目標(biāo)實(shí)驗(yàn)板硬件采用多核心板適配通用功能拓展底板的雙層結(jié)構(gòu)設(shè)計(jì)思想,上層為核心板,下層為功能模塊拓展底板,底層板與核心板的連接采用插拔的組合方式,插座的引腳與底層板的連接是固定的。底層板為通用功能模塊拓展底板,使用過(guò)程中保持底層板不變,通過(guò)更換核心板使其分別當(dāng)作嵌入式課程入門級(jí)單片機(jī)學(xué)習(xí)平臺(tái)或者高層次的嵌入式系統(tǒng)學(xué)習(xí)平臺(tái)使用,整體形成遞階式開放結(jié)構(gòu)。

      教學(xué)平臺(tái)初期用于基于51系列單片機(jī)無(wú)操作系統(tǒng)教學(xué)模塊,后期用于結(jié)合嵌入式操作系統(tǒng)的ARM7學(xué)習(xí)進(jìn)程。在軟件上,系統(tǒng)選用ARM公司推出的Keil μVision4作為開發(fā)工具,提供各個(gè)實(shí)驗(yàn)?zāi)K程序的主要框架及模塊化程序函數(shù)調(diào)用入口。嵌入式操作系統(tǒng)選擇性能穩(wěn)定、可移植性好且功能強(qiáng)大的μC/OS-II操作系統(tǒng)。遞階教學(xué)平臺(tái)模型框圖如圖1所示。

      圖1 嵌入式課程遞階教學(xué)平臺(tái)模型圖

      上位機(jī)通過(guò)USB線與目標(biāo)實(shí)驗(yàn)板串口相連,軟件采用由VB編寫的嵌入式遞階教學(xué)平臺(tái)實(shí)驗(yàn)窗口,將嵌入式

      課程教學(xué)所需的理論基礎(chǔ)資源整合在上位機(jī)實(shí)驗(yàn)窗口下,構(gòu)建一個(gè)完整的素材庫(kù),包括嵌入式課程教學(xué)PPT及實(shí)驗(yàn)演示視頻、芯片和元器件數(shù)據(jù)手冊(cè)、功能模塊源代碼庫(kù)、嵌入式系統(tǒng)開發(fā)工具軟件。軟件系統(tǒng)平臺(tái)還提供兩個(gè)接口:教師接口和學(xué)生接口。教師接口用于添加素材庫(kù)資源,學(xué)生接口便于學(xué)生進(jìn)行理論化知識(shí)的學(xué)習(xí)和圖形化編程的開發(fā)。學(xué)生根據(jù)自身掌握嵌入式知識(shí)的情況,有選擇地訪問(wèn)上位機(jī)平臺(tái)實(shí)驗(yàn)窗口中共享的素材庫(kù)資源,在線學(xué)習(xí)理論化的嵌入式系統(tǒng)基礎(chǔ)知識(shí),也可將功能模塊源代碼下載到目標(biāo)實(shí)驗(yàn)板上,完成相應(yīng)實(shí)驗(yàn)項(xiàng)目。

      1.1 核心板硬件設(shè)計(jì)

      核心板由嵌入式微處理器、芯片最小系統(tǒng)、拓展板接口3部分組成,最小系統(tǒng)包括支持微處理器工作的時(shí)鐘模塊、Flash模塊、復(fù)位模塊[6-8]。核心板由易到難主要設(shè)置3種微處理器,分別為單片機(jī)AT89C51、STM32F103C8微處理器以及32位的ARM7微處理器LPC2103,并且將芯片全部I/O引腳引出來(lái)與通用功能拓展底板上留有的引腳接口相連。表1為單片機(jī)與嵌入式芯片對(duì)比表,通過(guò)3種學(xué)習(xí)難度遞增的微處理器搭配底板形成層次教學(xué)平臺(tái)。圖2為硬件平臺(tái)原理框圖,其中虛線部分為需要安插的上層核心板位置。這3種芯片價(jià)格低廉、通用性強(qiáng)、功能完整,包括存儲(chǔ)器、定時(shí)/計(jì)數(shù)器、可編程的I/O端口、可編程全雙工串行端口、中斷源,不同的芯片內(nèi)集成了16位或32位中央處理器和ISP Flash存儲(chǔ)單元,具有在系統(tǒng)可編程(ISP)特性,易于二次開發(fā),能夠滿足教學(xué)平臺(tái)基礎(chǔ)實(shí)驗(yàn)和項(xiàng)目綜合設(shè)計(jì)性實(shí)驗(yàn)的使用需求。

      圖2 硬件平臺(tái)原理框圖

      表1 單片機(jī)與嵌入式芯片對(duì)比表

      1.2 底層板設(shè)計(jì)

      底層功能模塊拓展板的設(shè)計(jì)主要以加強(qiáng)外圍功能接口應(yīng)用的學(xué)習(xí)為目的,設(shè)計(jì)了課程教學(xué)基礎(chǔ)實(shí)驗(yàn)所需的多種不同功能模塊和定向?qū)I(yè)拓展模塊。圖2中實(shí)線部分為通用功能模塊,主要包括:電源模塊、I/O模塊、串口模塊、鍵盤模塊、A/D轉(zhuǎn)換模塊、LED模塊、LCD模塊等。同時(shí),底層板預(yù)留有可擴(kuò)展I/O接口,學(xué)生可通過(guò)將自行設(shè)計(jì)的功能模塊納入下層拓展底板,構(gòu)建個(gè)性化嵌入式系統(tǒng)。

      定向?qū)I(yè)拓展模塊底板包括:ZigBee模塊、藍(lán)牙模塊、傳感器模塊、GSM模塊。各個(gè)功能模塊為獨(dú)立單元,由微處理器直接控制,同時(shí)各模塊之間也可根據(jù)實(shí)驗(yàn)項(xiàng)目要求進(jìn)行組合與拓展,來(lái)適配電子、控制、電氣等不同專業(yè)學(xué)生的特定嵌入式系統(tǒng)綜合實(shí)驗(yàn)與開發(fā)。

      2 軟件平臺(tái)設(shè)計(jì)

      在軟件教學(xué)過(guò)程中經(jīng)常會(huì)忽略模塊化程序的深度應(yīng)用,而模塊化編程是組織良好程序結(jié)構(gòu)的有效方法之一。復(fù)雜的工程都是由若干相對(duì)獨(dú)立的功能模塊嵌套組合而成,模塊化編程設(shè)計(jì)可以化繁為簡(jiǎn),并且為程序模塊間的相互調(diào)用以及數(shù)據(jù)傳遞提供了便捷的途徑,有助于程序的調(diào)試,增強(qiáng)了程序的可讀性。

      基于CDIO模式的嵌入式遞階教學(xué)平臺(tái)采用ARM公司推出的Keil μVision4進(jìn)行程序編譯。針對(duì)底層板上不同的功能硬件,例如串口模塊、鍵盤模塊、A/D轉(zhuǎn)換模塊、LED模塊等,教學(xué)平臺(tái)將各個(gè)功能模塊源程序模塊化封裝后生成的特定功能模塊函數(shù)或文件集中存放在上位機(jī)教學(xué)平臺(tái)實(shí)驗(yàn)窗口素材庫(kù)中,便于使用者下載、編譯。

      2.1 功能程序模塊化設(shè)計(jì)

      在系統(tǒng)軟件平臺(tái)中,程序模塊化封裝過(guò)程略——編者注,由學(xué)生完成軟件環(huán)境相關(guān)設(shè)置,并對(duì)芯片的各個(gè)功能進(jìn)行配置,根據(jù)實(shí)驗(yàn)?zāi)康臉?gòu)思軟件架構(gòu),有選擇性地從模塊素材庫(kù)中下載所需的模塊源文件。源文件由教學(xué)平臺(tái)提供,根據(jù)功能的不同,編寫模塊源文件所需要的宏定義或結(jié)構(gòu)體,提供C語(yǔ)言模塊程序接口,方便學(xué)生調(diào)用。各功能模塊程序由教學(xué)平臺(tái)封裝后得到唯一的封裝函數(shù)或文件,并且僅實(shí)現(xiàn)對(duì)該功能模塊硬件的驅(qū)動(dòng)。不同的功能模塊程序可以相互嵌套、調(diào)用和編譯??紤]到預(yù)處理程序能夠提供條件編譯的功能,可以按不同的條件編譯不同的程序部分,產(chǎn)生不同的目標(biāo)代碼。基于此,在同一模塊的源文件中使用條件編譯,軟件系統(tǒng)根據(jù)宏定義及芯片配置,有選擇性地編譯單片機(jī)程序的代碼部分或者嵌入式系統(tǒng)程序的代碼部分,實(shí)現(xiàn)單片機(jī)核心板與嵌入式核心板源程序代碼共享,提高兩種代碼的對(duì)比學(xué)習(xí),有助于學(xué)生對(duì)知識(shí)的理解。

      2.2 程序模塊化編譯舉例

      以矩陣鍵盤數(shù)碼顯示實(shí)驗(yàn)為例,實(shí)驗(yàn)系統(tǒng)包括硬件模塊和軟件模塊。硬件模塊包括2×8矩陣鍵盤輸入模塊、數(shù)碼顯示模塊和74HC595級(jí)聯(lián)模塊。軟件模塊包括74HC595級(jí)聯(lián)模塊硬件驅(qū)動(dòng)程序、數(shù)碼管顯示程序、按鍵掃描程序、取鍵值程序。

      74HC595_Send Dat()為74HC595級(jí)聯(lián)模塊驅(qū)動(dòng)程序函數(shù),負(fù)責(zé)發(fā)送一個(gè)字節(jié)的數(shù)據(jù)到74HC595。Key.c文件對(duì)應(yīng)2×8矩陣鍵盤功能模塊目標(biāo)代碼,包括鍵掃描程序和取鍵值程序,此Key.c文件是教學(xué)平臺(tái)窗口下提供2×8矩陣鍵盤驅(qū)動(dòng)的預(yù)編譯程序,平臺(tái)軟件系統(tǒng)需要根據(jù)實(shí)驗(yàn)所選微處理器為單片機(jī)AT89C51芯片或嵌入式LPC2103芯片的配置,以及I/O硬件接口設(shè)置對(duì)原始Key.c文件中的預(yù)編譯目標(biāo)代碼重新宏定義,再條件編譯生成新的模塊化封裝文件Key.c。Num show.c文件實(shí)現(xiàn)數(shù)碼管顯示功能,它的軟件系統(tǒng)條件編譯過(guò)程同Key.c,這里不再贅述。

      學(xué)生實(shí)驗(yàn)時(shí),在遞階教學(xué)平臺(tái)軟件系統(tǒng)工具軟件窗口下打開Keil μVision4并新建工程,將已經(jīng)依據(jù)實(shí)驗(yàn)要求重新條件編譯生成的功能模塊Key.c和Num show.c文件添加到工程中。打開main.c文件,依照鍵盤顯示程序流程圖編寫主程序,定義頭文件Key.h與Num show.h,并將其添加到main.c中。編譯顯示函數(shù)main.c時(shí),只需根據(jù)接口的定義合理嵌套74HC595_Send Dat()、鍵掃描函數(shù)和取鍵值函數(shù),然后通過(guò)調(diào)用數(shù)碼管顯示函數(shù)Num show()對(duì)結(jié)果進(jìn)行顯示,最終準(zhǔn)確快速地完成整個(gè)程序代碼的編寫過(guò)程。

      3 教學(xué)平臺(tái)的CDIO應(yīng)用模式分析

      3.1 遞階教學(xué)平臺(tái)CDIO模式的實(shí)現(xiàn)

      嵌入式課程遞階教學(xué)實(shí)驗(yàn)平臺(tái)是基于CDIO思想,即從構(gòu)思、設(shè)計(jì)到實(shí)施、運(yùn)作這一工程教學(xué)理念來(lái)實(shí)現(xiàn)嵌入式課程教學(xué)與實(shí)踐一體化。整個(gè)教學(xué)平臺(tái)以“實(shí)驗(yàn)”為核心,旨在讓學(xué)生在學(xué)習(xí)實(shí)踐過(guò)程中,逐步地從8位51系列經(jīng)典單片機(jī)基礎(chǔ)過(guò)渡到功能齊全的綜合性單片機(jī),最后遞階到ARM7體系,學(xué)習(xí)過(guò)程從簡(jiǎn)單到復(fù)雜、逐步深入[9-10]。

      初級(jí)教學(xué)階段對(duì)應(yīng)于CDIO模式中的構(gòu)思階段,以運(yùn)行LPC2103、STM32F103C8芯片模塊程序,學(xué)生觀察實(shí)驗(yàn)結(jié)果為主。將51單片機(jī)微處理器的硬件核心板與嵌入式微處理器的硬件核心板對(duì)比使用,采用統(tǒng)一的軟件結(jié)構(gòu)搭建起嵌入式的學(xué)習(xí)平臺(tái),保證能夠快速進(jìn)入嵌入式學(xué)習(xí)中。

      第二階段為設(shè)計(jì)階段,教學(xué)平臺(tái)為學(xué)生構(gòu)思、搭建實(shí)驗(yàn)硬件電路提供完整的資料與環(huán)境支持。通過(guò)對(duì)嵌入式教學(xué)實(shí)驗(yàn)系統(tǒng)各個(gè)模塊:UART、USB、LCD、觸摸屏和矩陣鍵盤等常用接口操作實(shí)踐,模仿改編實(shí)驗(yàn)程序,熟悉ARM7的無(wú)操作系統(tǒng)基礎(chǔ)應(yīng)用,為后續(xù)應(yīng)用系統(tǒng)的開發(fā)做好鋪墊。

      在實(shí)施和運(yùn)作階段,從教學(xué)平臺(tái)實(shí)驗(yàn)素材庫(kù)提供的應(yīng)用開發(fā)實(shí)驗(yàn)(例如D/A、A/D實(shí)驗(yàn),LCD顯示實(shí)驗(yàn),觸摸屏實(shí)驗(yàn))切入,探索研究交叉編譯環(huán)境的建立、調(diào)試方法和編程技術(shù)。熟練掌握51、ARM7基本編程,同時(shí),學(xué)習(xí)編寫系統(tǒng)的Bootloader程序以及實(shí)現(xiàn)μC/OS-II操作系統(tǒng)在STM32F103C8芯片上的移植和WinCE操作系統(tǒng)的移植,實(shí)現(xiàn)了操作系統(tǒng)各接口電路驅(qū)動(dòng)程序和應(yīng)用程序的編寫也作為教學(xué)實(shí)驗(yàn)平臺(tái)的一個(gè)重要功能。

      3.2 CDIO應(yīng)用模式下遞階實(shí)驗(yàn)設(shè)置

      CDIO模式化設(shè)計(jì)的遞階實(shí)驗(yàn)系統(tǒng)有利于教師改革教學(xué)方法,從傳統(tǒng)的純理論教學(xué)改為理論與實(shí)踐并重的項(xiàng)目教學(xué),取得了較好實(shí)踐效果。

      教學(xué)平臺(tái)基于AT89S51芯片、STM32F103C8芯片和LPC2103芯片,設(shè)置了基礎(chǔ)教學(xué)實(shí)驗(yàn),適用于多核實(shí)驗(yàn)平臺(tái)和無(wú)操作系統(tǒng)實(shí)驗(yàn)平臺(tái)的基礎(chǔ)實(shí)驗(yàn),包括:LED 8流水燈實(shí)驗(yàn)、LCD顯示實(shí)驗(yàn)、2×8鍵盤顯示實(shí)驗(yàn)、液晶顯示實(shí)驗(yàn)、外部中斷實(shí)驗(yàn)、串口通信實(shí)驗(yàn)、A/D 與D/A轉(zhuǎn)換實(shí)驗(yàn)[11]?;诤?jiǎn)單操作系統(tǒng)的綜合實(shí)驗(yàn)包括:μC/OS-II操作系統(tǒng)移植;μC/OS-II操作系統(tǒng)任務(wù)的創(chuàng)建、掛起、恢復(fù)、刪除實(shí)驗(yàn);任務(wù)的中斷和時(shí)鐘實(shí)驗(yàn);任務(wù)的同步和通信實(shí)驗(yàn)等。實(shí)驗(yàn)軟件部分按照模塊化進(jìn)行設(shè)計(jì),在實(shí)驗(yàn)教學(xué)中,使用軟件模塊化讓學(xué)生可以自主選擇實(shí)驗(yàn)項(xiàng)目?jī)?nèi)容,如:輸入接口實(shí)驗(yàn),可以根據(jù)自己的能力選擇獨(dú)立按鍵和矩陣鍵盤中的一個(gè)或者多個(gè);輸出接口實(shí)驗(yàn),同樣可以選擇LED、數(shù)碼管、點(diǎn)陣和液晶中的一個(gè)或者多個(gè),這樣有利于充分發(fā)揮學(xué)生的主觀能動(dòng)性,讓學(xué)生自主設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目以完成綜合性、設(shè)計(jì)性實(shí)驗(yàn)[12]。

      基于學(xué)生不同的研究方向可以設(shè)計(jì)創(chuàng)新性實(shí)驗(yàn),有ZigBee模塊配套的島嶼安防系統(tǒng)實(shí)驗(yàn)、基于溫濕度傳感器的農(nóng)業(yè)大棚環(huán)境監(jiān)控系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)等。

      結(jié) 語(yǔ)

      嵌入式課程遞階教學(xué)平臺(tái)經(jīng)過(guò)調(diào)試和測(cè)試,實(shí)現(xiàn)了多核心板適配多功能擴(kuò)展底板的使用模式,各個(gè)實(shí)驗(yàn)?zāi)K工作均比較穩(wěn)定。實(shí)踐教學(xué)結(jié)果證明,教學(xué)平臺(tái)提供了豐富的接口資源,可進(jìn)行二次開發(fā),完全能夠滿足實(shí)驗(yàn)課程的要求,并幫助學(xué)生快速?gòu)膯纹瑱C(jī)的學(xué)習(xí)過(guò)渡到嵌入式系統(tǒng)學(xué)習(xí)當(dāng)中?;贑DIO理念設(shè)計(jì)了一系列配套的實(shí)驗(yàn),以符合大眾學(xué)生為目的,設(shè)置了普遍需要的基礎(chǔ)實(shí)驗(yàn)以及綜合實(shí)驗(yàn),針對(duì)嵌入式專業(yè)的學(xué)生設(shè)置了更為專業(yè)的基本的嵌入式操作系統(tǒng)實(shí)驗(yàn),以滿足不同層次的學(xué)生。教學(xué)平臺(tái)針對(duì)性強(qiáng),教學(xué)效果明顯,擁有廣闊的教學(xué)應(yīng)用前景,更重要的是能夠增強(qiáng)高校大學(xué)生的形象思維與創(chuàng)新能力,為學(xué)生今后進(jìn)一步深造或踏入社會(huì)進(jìn)行相關(guān)系統(tǒng)的開發(fā)奠定扎實(shí)的基礎(chǔ)。

      編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。

      參考文獻(xiàn)

      [1] 劉泉,李方敏,呂鋒,等.現(xiàn)代嵌入式實(shí)踐教學(xué)平臺(tái)在實(shí)踐教學(xué)中的應(yīng)用[J].理工高教研究,2006,25(2):96-97.

      [2] 郭明良,王朋,郭松林.基于CDIO模式的電類本科實(shí)踐教學(xué)體系構(gòu)建[J].中國(guó)電力教育,2014(2):158-159.

      [3] 劉會(huì)英,蓋玉先,徐寧.探索適合我國(guó)國(guó)情的CDIO工程教育模式[J].實(shí)驗(yàn)室研究與探索,2011,30(7):119-120.

      [4] 朱向慶,黎東濤,蘇超益,等.適合于項(xiàng)目教學(xué)法的三合一單片機(jī)實(shí)驗(yàn)箱設(shè)計(jì)[J].實(shí)驗(yàn)技術(shù)與管理,2013,80(7):55-59.

      [5] 王朋,郭明良,王越明.“單片機(jī)原理及應(yīng)用”課程的CDIO教學(xué)模式探索[J].中國(guó)電力教育,2014(14):83-84.

      [6] 王朋.“單片機(jī)原理”實(shí)驗(yàn)教學(xué)體系建設(shè)[J].電氣電子教學(xué)學(xué)報(bào),2010,32(5):107-108.

      [7] 桑靜,徐金宏,趙偉.嵌入式輔助教學(xué)平臺(tái)的構(gòu)建[J].科學(xué)技術(shù)與工程,2010,10(36):9115-9117.

      [8] 王高鵬,朱寧西.基于LPC2368嵌入式實(shí)驗(yàn)平臺(tái)的構(gòu)建[J].微計(jì)算機(jī)信息,2008,24(6-2):18-20.

      [9] 章民融,徐亞鋒.嵌入式教學(xué)關(guān)鍵點(diǎn)的研究和嵌入式實(shí)驗(yàn)教學(xué)平臺(tái)的設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(3):160-162.

      [10] 李東.提高單片機(jī)應(yīng)用系統(tǒng)可靠性的研究[J].信陽(yáng)師范學(xué)院學(xué)報(bào):自然科學(xué)版,1999,12(3):354-357.

      [11] 蔣躍文.以設(shè)計(jì)實(shí)驗(yàn)為主線的單片機(jī)實(shí)驗(yàn)平臺(tái)的開發(fā)與應(yīng)用[J].蘇州大學(xué)學(xué)報(bào):工科版,2010,30(1):28-31.

      [12] 賈萍,丁向榮,胡美蘭.“教、學(xué)、做”一體化單片機(jī)教學(xué)實(shí)驗(yàn)平臺(tái)的設(shè)計(jì)與應(yīng)用[J].實(shí)驗(yàn)技術(shù)與管理,2012,29(6):139-142.

      (責(zé)任編輯:薛士然 收稿日期:2015-04-15)

      Debugging Scheme of Dynamic Allocation Memory in Embedded Program※

      Chen Hongjun,Feng Yadong,Wen Jifeng,Zhou Qiang

      (NR Electric Co.,Ltd.,Nanjing 211102,China)

      This paper proposes a variable debugging scheme of dynamic allocation memory in the embedded program.The application program is organized by the component,and the component's data is encapsulated by structure.The embedded system program provides the interface to record the head address and instance name of the structure.The upper computer debugging software analyzes the structure variable's relative address,then sends the information of name and relative address to the embedded server.The server calculates the absolute address by adding the head address and relative address,then accesses to the address and reads the data,sends the data to the debugging tool for displaying lastly.The debugging scheme has been used in the protection and monitoring device of the power system,which improves the diagnostic efficiency of the program.

      embedded program;dynamic allocate;memory debugging;structure analysis

      Platform Teaching Mode of Embedded Project Teaching Platform※

      Guo Guofa,Gong Yao,Zhang Kaisheng

      (College of Electrical and Information Engineering,Shanxi University of Science and Technology,Xi,an 710021,China)

      TP393

      A

      士然

      2015-04-20)

      陜西省西安未央科技區(qū)項(xiàng)目“基于物聯(lián)網(wǎng)的信息監(jiān)控平臺(tái)研究”(項(xiàng)目編號(hào):2012-03);陜西校地合作項(xiàng)目-基于無(wú)線傳感器網(wǎng)絡(luò)的礦井環(huán)境及人員監(jiān)測(cè)系統(tǒng)研究(項(xiàng)目編號(hào):2011K-29)。

      文獻(xiàn)標(biāo)識(shí)碼: A

      猜你喜歡
      項(xiàng)目化模塊化
      模塊化自主水下機(jī)器人開發(fā)與應(yīng)用
      模塊化住宅
      ACP100模塊化小型堆研發(fā)進(jìn)展
      模塊化VS大型工廠
      家居空間設(shè)計(jì)項(xiàng)目化教學(xué)模式改革的國(guó)際比較研究
      淺談項(xiàng)目化教學(xué)對(duì)中職學(xué)生技能水平提升的影響
      職業(yè)(2016年11期)2016-11-23 21:36:23
      基于市場(chǎng)營(yíng)銷應(yīng)用型人才培養(yǎng)的項(xiàng)目化教學(xué)模式研究
      基于生產(chǎn)過(guò)程在電動(dòng)汽車專業(yè)的項(xiàng)目化教學(xué)研究
      顺昌县| 永和县| 固安县| 永丰县| 商丘市| 罗定市| 麟游县| 齐河县| 景德镇市| 铁岭县| 开原市| 班戈县| 比如县| 明星| 右玉县| 玉屏| 宜都市| 耒阳市| 安多县| 阿鲁科尔沁旗| 桐乡市| 阜南县| 盐池县| 和顺县| 泊头市| 兖州市| 赣榆县| 昌乐县| 栾川县| 惠水县| 禄丰县| 曲靖市| 永顺县| 衡东县| 天峻县| 永新县| 阿拉尔市| 洪雅县| 卢龙县| 洮南市| 积石山|