• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 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é)研究
    国产精品不卡视频一区二区| 日韩欧美在线乱码| 如何舔出高潮| 在线国产一区二区在线| 在线观看av片永久免费下载| 国产精品一及| 国产高清有码在线观看视频| 欧美色欧美亚洲另类二区| 中文字幕久久专区| 老熟妇乱子伦视频在线观看| 少妇丰满av| 乱人视频在线观看| 99热全是精品| 又黄又爽又刺激的免费视频.| 成年版毛片免费区| 国产蜜桃级精品一区二区三区| 亚洲av熟女| 狂野欧美白嫩少妇大欣赏| 亚洲在线观看片| 亚洲av二区三区四区| 97人妻精品一区二区三区麻豆| 国产精品爽爽va在线观看网站| 成人av在线播放网站| 真实男女啪啪啪动态图| 亚洲一区二区三区色噜噜| 日日撸夜夜添| 日本一二三区视频观看| 久久久精品大字幕| 国产高潮美女av| 99热只有精品国产| 亚洲欧美日韩高清专用| 99久久精品一区二区三区| 在线天堂最新版资源| 久久精品国产清高在天天线| 插阴视频在线观看视频| 黄色欧美视频在线观看| ponron亚洲| 亚洲内射少妇av| 亚洲最大成人手机在线| 国产精品野战在线观看| av天堂在线播放| 淫秽高清视频在线观看| 女人被狂操c到高潮| 欧美高清成人免费视频www| 国产爱豆传媒在线观看| 久久久精品欧美日韩精品| 麻豆成人午夜福利视频| 久久久久久久久中文| 不卡一级毛片| 国产一区二区亚洲精品在线观看| 午夜激情福利司机影院| 国产美女午夜福利| 最近2019中文字幕mv第一页| 亚洲五月天丁香| 不卡视频在线观看欧美| 日韩欧美在线乱码| 午夜精品一区二区三区免费看| 成人综合一区亚洲| 麻豆一二三区av精品| 日韩在线高清观看一区二区三区| 亚洲性久久影院| 日本黄色视频三级网站网址| 一区二区三区高清视频在线| 国产真实伦视频高清在线观看| 国产真实伦视频高清在线观看| 婷婷六月久久综合丁香| 哪里可以看免费的av片| 美女xxoo啪啪120秒动态图| 中国美女看黄片| 麻豆国产av国片精品| 久久久国产成人精品二区| 天堂影院成人在线观看| 国产成人午夜福利电影在线观看| 国产午夜福利久久久久久| 亚洲av.av天堂| 欧美成人一区二区免费高清观看| 国产亚洲av片在线观看秒播厂 | 色吧在线观看| 午夜精品在线福利| 午夜免费男女啪啪视频观看| 亚洲精品日韩av片在线观看| 性插视频无遮挡在线免费观看| 国内久久婷婷六月综合欲色啪| 人人妻人人澡人人爽人人夜夜 | 国内精品一区二区在线观看| 婷婷色综合大香蕉| 最后的刺客免费高清国语| 级片在线观看| 91久久精品电影网| 一个人免费在线观看电影| 欧美成人免费av一区二区三区| 国产精品一区二区三区四区免费观看| 美女脱内裤让男人舔精品视频 | 人妻少妇偷人精品九色| 少妇的逼水好多| 最好的美女福利视频网| 天美传媒精品一区二区| 国产亚洲av嫩草精品影院| 亚洲aⅴ乱码一区二区在线播放| 日日摸夜夜添夜夜爱| 久久久成人免费电影| 哪个播放器可以免费观看大片| 久久国产乱子免费精品| 男女下面进入的视频免费午夜| 成人特级av手机在线观看| 日韩av在线大香蕉| 国产亚洲欧美98| 成熟少妇高潮喷水视频| 成人欧美大片| 国产黄片美女视频| 男的添女的下面高潮视频| 国产午夜精品久久久久久一区二区三区| 国产伦精品一区二区三区视频9| 亚洲精品粉嫩美女一区| 99国产精品一区二区蜜桃av| 在现免费观看毛片| 99久国产av精品| 蜜桃亚洲精品一区二区三区| 免费一级毛片在线播放高清视频| 男人舔奶头视频| 18禁在线播放成人免费| 国产精品永久免费网站| 日本黄色视频三级网站网址| 一进一出抽搐gif免费好疼| 老熟妇乱子伦视频在线观看| 特级一级黄色大片| 可以在线观看毛片的网站| 午夜精品国产一区二区电影 | 床上黄色一级片| 18禁在线播放成人免费| 国模一区二区三区四区视频| 又爽又黄无遮挡网站| 精品久久久久久久久久免费视频| 久久亚洲国产成人精品v| 一级黄色大片毛片| 免费观看a级毛片全部| 国产一区亚洲一区在线观看| 色综合站精品国产| 日韩成人av中文字幕在线观看| 欧美色视频一区免费| 成年av动漫网址| 小蜜桃在线观看免费完整版高清| ponron亚洲| 五月玫瑰六月丁香| 黑人高潮一二区| 久久精品综合一区二区三区| 亚洲高清免费不卡视频| 国产av一区在线观看免费| 国产精品久久久久久久电影| 波多野结衣高清无吗| 男女那种视频在线观看| 日本欧美国产在线视频| 亚洲av免费高清在线观看| 非洲黑人性xxxx精品又粗又长| 亚洲第一电影网av| 最近最新中文字幕大全电影3| 丝袜喷水一区| 女同久久另类99精品国产91| av天堂中文字幕网| av免费观看日本| 成年女人永久免费观看视频| 97热精品久久久久久| 成人亚洲精品av一区二区| www.av在线官网国产| 日本五十路高清| 免费不卡的大黄色大毛片视频在线观看 | 最好的美女福利视频网| 成年女人永久免费观看视频| 青春草国产在线视频 | 欧美日韩精品成人综合77777| 国产精品,欧美在线| 日韩欧美一区二区三区在线观看| 国产一区二区在线观看日韩| 免费观看人在逋| 干丝袜人妻中文字幕| 在线播放无遮挡| 一级毛片aaaaaa免费看小| 精品少妇黑人巨大在线播放 | 日本黄色视频三级网站网址| 寂寞人妻少妇视频99o| 国产私拍福利视频在线观看| 亚洲欧美日韩卡通动漫| 亚洲成人久久爱视频| 真实男女啪啪啪动态图| 婷婷精品国产亚洲av| 亚洲av.av天堂| 狠狠狠狠99中文字幕| 99国产精品一区二区蜜桃av| 国产老妇伦熟女老妇高清| 大又大粗又爽又黄少妇毛片口| 国产熟女欧美一区二区| 久久99精品国语久久久| 91久久精品国产一区二区三区| 免费人成视频x8x8入口观看| 午夜精品国产一区二区电影 | 亚洲内射少妇av| 97超视频在线观看视频| 久久久久久九九精品二区国产| 18禁黄网站禁片免费观看直播| 一级二级三级毛片免费看| 久久久久网色| 精品人妻一区二区三区麻豆| av福利片在线观看| 成人国产麻豆网| 中文字幕熟女人妻在线| 精品一区二区三区视频在线| 级片在线观看| 日韩一区二区视频免费看| 91狼人影院| 日本色播在线视频| 亚洲精品影视一区二区三区av| 久久久久久久久久久丰满| 国产精品一区二区三区四区免费观看| www日本黄色视频网| 深爱激情五月婷婷| 免费看av在线观看网站| 在线国产一区二区在线| 日日啪夜夜撸| 国产一区二区在线观看日韩| 一区二区三区四区激情视频 | 精品不卡国产一区二区三区| 边亲边吃奶的免费视频| 国产一区二区在线观看日韩| 成人午夜高清在线视频| 精品无人区乱码1区二区| 久久精品国产鲁丝片午夜精品| 国产av一区在线观看免费| a级一级毛片免费在线观看| 久久久久久久久久成人| 九九在线视频观看精品| 菩萨蛮人人尽说江南好唐韦庄 | 欧美最黄视频在线播放免费| 性欧美人与动物交配| 午夜视频国产福利| 国产精品国产高清国产av| ponron亚洲| 久久精品久久久久久噜噜老黄 | 老司机福利观看| 国产精品久久电影中文字幕| 欧美日韩国产亚洲二区| 悠悠久久av| 亚洲内射少妇av| 日日干狠狠操夜夜爽| 日韩 亚洲 欧美在线| 国产片特级美女逼逼视频| 久久精品国产99精品国产亚洲性色| 国产伦理片在线播放av一区 | 久久久久久国产a免费观看| 久久精品夜色国产| 18+在线观看网站| 91狼人影院| 小说图片视频综合网站| 久久亚洲精品不卡| 国产高清有码在线观看视频| 国产成人影院久久av| 免费人成在线观看视频色| 网址你懂的国产日韩在线| 国产乱人视频| 久久人人爽人人爽人人片va| 综合色丁香网| 国产精品美女特级片免费视频播放器| 啦啦啦观看免费观看视频高清| .国产精品久久| 日本与韩国留学比较| 欧美激情在线99| 久久精品国产亚洲av天美| 欧美不卡视频在线免费观看| 美女国产视频在线观看| 午夜免费激情av| 国产久久久一区二区三区| 在线观看免费视频日本深夜| 神马国产精品三级电影在线观看| 国产精品福利在线免费观看| 深爱激情五月婷婷| 高清在线视频一区二区三区 | 成人av在线播放网站| 99久久成人亚洲精品观看| 91久久精品电影网| 亚洲av第一区精品v没综合| 成熟少妇高潮喷水视频| 一级黄色大片毛片| 国产一区二区激情短视频| 中文字幕制服av| 校园春色视频在线观看| 不卡视频在线观看欧美| 在线观看一区二区三区| 一区二区三区四区激情视频 | 亚洲精品久久久久久婷婷小说 | 天堂av国产一区二区熟女人妻| av专区在线播放| 熟妇人妻久久中文字幕3abv| 亚洲真实伦在线观看| 亚洲熟妇中文字幕五十中出| 亚洲四区av| 欧美最黄视频在线播放免费| 成人国产麻豆网| 欧美成人一区二区免费高清观看| 91精品国产九色| 国产午夜精品一二区理论片| h日本视频在线播放| 天堂中文最新版在线下载 | 色尼玛亚洲综合影院| 三级男女做爰猛烈吃奶摸视频| 在线观看一区二区三区| 久久久久九九精品影院| 国产伦在线观看视频一区| 3wmmmm亚洲av在线观看| 国产淫片久久久久久久久| 在线国产一区二区在线| 国内揄拍国产精品人妻在线| 日本一二三区视频观看| 亚洲性久久影院| 99热只有精品国产| 99热全是精品| 人体艺术视频欧美日本| 成人漫画全彩无遮挡| 亚洲欧美精品综合久久99| 亚洲欧美日韩东京热| 村上凉子中文字幕在线| 丝袜美腿在线中文| 一级av片app| 小说图片视频综合网站| 亚洲国产欧美人成| 特大巨黑吊av在线直播| 三级男女做爰猛烈吃奶摸视频| 国产av不卡久久| 亚洲精品影视一区二区三区av| 成人美女网站在线观看视频| 五月伊人婷婷丁香| 日韩 亚洲 欧美在线| 99视频精品全部免费 在线| 丰满人妻一区二区三区视频av| 97热精品久久久久久| 成人美女网站在线观看视频| 全区人妻精品视频| 国产视频首页在线观看| 成熟少妇高潮喷水视频| 日本免费一区二区三区高清不卡| 中文字幕熟女人妻在线| 直男gayav资源| 寂寞人妻少妇视频99o| 国产黄a三级三级三级人| 亚洲国产精品成人久久小说 | 国产成人91sexporn| 午夜精品在线福利| 特级一级黄色大片| 免费电影在线观看免费观看| 最近的中文字幕免费完整| 国产毛片a区久久久久| 国产精品三级大全| 国产91av在线免费观看| 美女脱内裤让男人舔精品视频 | 欧美一区二区国产精品久久精品| 午夜福利成人在线免费观看| 1000部很黄的大片| 亚洲七黄色美女视频| 国产高清三级在线| 男的添女的下面高潮视频| 亚洲精品影视一区二区三区av| 久久久久久久久久久丰满| 我的老师免费观看完整版| 岛国在线免费视频观看| 成人一区二区视频在线观看| 看非洲黑人一级黄片| 乱系列少妇在线播放| 国产黄片美女视频| 久久久精品欧美日韩精品| 国产 一区 欧美 日韩| 国产 一区精品| 插阴视频在线观看视频| 欧美人与善性xxx| 国产成人精品婷婷| 亚洲不卡免费看| 日日啪夜夜撸| 久久久色成人| 麻豆成人av视频| АⅤ资源中文在线天堂| 小蜜桃在线观看免费完整版高清| 国产精品精品国产色婷婷| 久久久欧美国产精品| 国国产精品蜜臀av免费| 99久久精品一区二区三区| 国国产精品蜜臀av免费| 日日摸夜夜添夜夜添av毛片| 亚洲七黄色美女视频| 人妻制服诱惑在线中文字幕| 日本免费a在线| 久久久久久久久久成人| 欧美在线一区亚洲| 亚洲人成网站在线播放欧美日韩| 日韩亚洲欧美综合| 久久精品人妻少妇| 免费看av在线观看网站| 最新中文字幕久久久久| 色尼玛亚洲综合影院| 亚洲av.av天堂| 丝袜喷水一区| 色哟哟·www| 看黄色毛片网站| 亚洲无线在线观看| 久久精品国产亚洲av涩爱 | 国产高清不卡午夜福利| 一本久久中文字幕| 一区二区三区高清视频在线| 久久久久性生活片| 国产一区二区三区av在线 | 国产精品一区二区三区四区久久| 国产伦精品一区二区三区四那| 丰满乱子伦码专区| 久久精品国产亚洲av涩爱 | 麻豆久久精品国产亚洲av| 国产精品嫩草影院av在线观看| 国产极品精品免费视频能看的| 亚洲国产色片| 亚洲真实伦在线观看| 久久精品国产99精品国产亚洲性色| 五月伊人婷婷丁香| 亚洲第一电影网av| 国产av不卡久久| 波多野结衣巨乳人妻| av在线天堂中文字幕| 天天一区二区日本电影三级| 国产精品久久视频播放| 国产精品一区二区性色av| 亚洲成人久久爱视频| av天堂在线播放| 蜜桃亚洲精品一区二区三区| 丰满的人妻完整版| 精品久久久久久久久久免费视频| 精品久久国产蜜桃| 日韩成人伦理影院| 狠狠狠狠99中文字幕| 免费av不卡在线播放| 成人无遮挡网站| 成人特级黄色片久久久久久久| 亚洲国产精品成人久久小说 | 久久精品国产亚洲av天美| 国产精品国产三级国产av玫瑰| 91aial.com中文字幕在线观看| 久久午夜亚洲精品久久| 99国产极品粉嫩在线观看| 嘟嘟电影网在线观看| 国产伦精品一区二区三区视频9| 中文在线观看免费www的网站| 爱豆传媒免费全集在线观看| 免费一级毛片在线播放高清视频| 在线观看美女被高潮喷水网站| 在线国产一区二区在线| 成年女人永久免费观看视频| 国产成人午夜福利电影在线观看| 亚洲欧美日韩卡通动漫| 黄色一级大片看看| 国产高清有码在线观看视频| 99久久九九国产精品国产免费| 亚洲国产欧美在线一区| 中文字幕av在线有码专区| 国产精品精品国产色婷婷| www.av在线官网国产| 97热精品久久久久久| 国产女主播在线喷水免费视频网站 | av免费在线看不卡| 成人一区二区视频在线观看| 午夜亚洲福利在线播放| 99视频精品全部免费 在线| 春色校园在线视频观看| 神马国产精品三级电影在线观看| 午夜精品国产一区二区电影 | 中文字幕制服av| 国产私拍福利视频在线观看| 欧美变态另类bdsm刘玥| 日日摸夜夜添夜夜爱| 欧美日韩一区二区视频在线观看视频在线 | 国产色爽女视频免费观看| 成年女人永久免费观看视频| 亚洲最大成人中文| 午夜老司机福利剧场| 午夜福利高清视频| 欧美成人精品欧美一级黄| 我的女老师完整版在线观看| 久久久欧美国产精品| 99国产精品一区二区蜜桃av| 日本黄大片高清| 麻豆精品久久久久久蜜桃| 黄片wwwwww| 天堂影院成人在线观看| 国产一区二区在线av高清观看| 日韩成人伦理影院| 中国美女看黄片| 国产爱豆传媒在线观看| 人妻久久中文字幕网| 高清日韩中文字幕在线| 日韩欧美在线乱码| 欧美成人a在线观看| 99久久久亚洲精品蜜臀av| 干丝袜人妻中文字幕| 亚洲av男天堂| 18+在线观看网站| 免费搜索国产男女视频| 人妻夜夜爽99麻豆av| 美女高潮的动态| 美女国产视频在线观看| 午夜免费男女啪啪视频观看| 性插视频无遮挡在线免费观看| 亚洲成人久久性| 国产69精品久久久久777片| 国产精品久久久久久精品电影| 成人综合一区亚洲| 日本av手机在线免费观看| 看十八女毛片水多多多| 能在线免费观看的黄片| 久久精品久久久久久噜噜老黄 | 边亲边吃奶的免费视频| 极品教师在线视频| 国产男人的电影天堂91| 亚洲在久久综合| 国产亚洲精品久久久com| 2021天堂中文幕一二区在线观| 国产av一区在线观看免费| 久久久久久久午夜电影| 岛国毛片在线播放| 成人性生交大片免费视频hd| www日本黄色视频网| 欧美一级a爱片免费观看看| 综合色丁香网| 午夜福利在线观看免费完整高清在 | 国产高清不卡午夜福利| 非洲黑人性xxxx精品又粗又长| 国产高清激情床上av| a级一级毛片免费在线观看| 欧美在线一区亚洲| 久久久久久九九精品二区国产| 人妻久久中文字幕网| 国产av不卡久久| 久久久久国产网址| 亚洲va在线va天堂va国产| 小说图片视频综合网站| 亚洲av免费高清在线观看| 国内少妇人妻偷人精品xxx网站| 国产亚洲欧美98| 国产 一区 欧美 日韩| 九九久久精品国产亚洲av麻豆| 中文精品一卡2卡3卡4更新| kizo精华| 亚洲aⅴ乱码一区二区在线播放| 人体艺术视频欧美日本| 成人性生交大片免费视频hd| 久久人人精品亚洲av| 九九爱精品视频在线观看| 亚洲精品色激情综合| 午夜视频国产福利| 观看美女的网站| 变态另类成人亚洲欧美熟女| 久久午夜福利片| 亚洲成人久久性| 亚洲一区高清亚洲精品| 欧美日韩精品成人综合77777| 久久久a久久爽久久v久久| 亚洲18禁久久av| 麻豆一二三区av精品| 免费大片18禁| 变态另类成人亚洲欧美熟女| 麻豆国产av国片精品| 自拍偷自拍亚洲精品老妇| 中文字幕免费在线视频6| 最新中文字幕久久久久| 日韩中字成人| 乱系列少妇在线播放| 你懂的网址亚洲精品在线观看 | 精品久久久久久久末码| 1000部很黄的大片| 国产69精品久久久久777片| 黄片wwwwww| 乱码一卡2卡4卡精品| 国产成人精品婷婷| 国产伦精品一区二区三区四那| 青春草亚洲视频在线观看| 免费看光身美女| videossex国产| 边亲边吃奶的免费视频| 麻豆av噜噜一区二区三区| 亚洲欧洲国产日韩| 日韩欧美国产在线观看| 哪里可以看免费的av片| 亚洲欧美成人精品一区二区| av视频在线观看入口| av天堂中文字幕网| 日本欧美国产在线视频| 日韩精品青青久久久久久| 蜜桃亚洲精品一区二区三区| 99久久精品热视频| 免费观看精品视频网站| 欧美性猛交╳xxx乱大交人| 亚洲最大成人中文| 男人的好看免费观看在线视频| 三级国产精品欧美在线观看| 免费在线观看成人毛片| 热99在线观看视频| 日本在线视频免费播放| 国产蜜桃级精品一区二区三区| 大又大粗又爽又黄少妇毛片口| 亚洲av成人av| 亚洲国产日韩欧美精品在线观看| 日日摸夜夜添夜夜爱| av在线蜜桃| 久久精品国产亚洲网站| 日日啪夜夜撸| 国产大屁股一区二区在线视频| 最近中文字幕高清免费大全6| 91久久精品电影网| 一本精品99久久精品77| 青春草亚洲视频在线观看| 成人毛片60女人毛片免费| 高清在线视频一区二区三区 | 国产精华一区二区三区| 在线观看一区二区三区|