0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)CE應(yīng)用程序助手簡介

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-02-03 10:09 ? 次閱讀

背景

在基于英創(chuàng)工控主板的智能整機(jī)設(shè)備的開發(fā)過程中,客戶應(yīng)用程序的開發(fā)通常都是最為關(guān)鍵性的工作,其工作量往往也是最大的。一個(gè)高質(zhì)量的應(yīng)用程序,首先表現(xiàn)在較少的現(xiàn)場維護(hù),不僅大幅度降低了設(shè)備開發(fā)費(fèi)用,同時(shí)也為客戶贏得后續(xù)的市場聲譽(yù)。因此如何在設(shè)備出廠之前就能確定應(yīng)用程序的基本質(zhì)量,就變得至關(guān)重要了。

基于我們十多年長期不斷地對(duì)客戶應(yīng)用程序的技術(shù)支持的經(jīng)驗(yàn),一般來說,如果一個(gè)應(yīng)用程序在完成基本的應(yīng)用功能的基礎(chǔ)上,整個(gè)應(yīng)用進(jìn)程(包括進(jìn)程的所有活動(dòng)線程)的CPU負(fù)載率保持在一個(gè)合理的水平,比如低于70%,那么我們就可以認(rèn)為運(yùn)行于英創(chuàng)工控主板上的這個(gè)應(yīng)用程序其質(zhì)量是有基本保證的。為了方便客戶隨時(shí)了解應(yīng)用程序的運(yùn)行狀況,我們計(jì)劃在主板中嵌入一款稱為應(yīng)用程序助手(AppHelper)的監(jiān)測程序。AppHelper僅使用很少的CPU資源,就可為客戶提供系統(tǒng)各個(gè)進(jìn)程的CPU開銷情況,對(duì)客戶的應(yīng)用進(jìn)程,還將提供進(jìn)程中各個(gè)活動(dòng)線程的運(yùn)行狀況??蛻舾鶕?jù)這些信息及可方便及時(shí)的了解程序運(yùn)行的總體情況,快速確定程序代碼需要優(yōu)化的地方。

本文的后續(xù)部分主要介紹AppHelper的使用方法及信息輸出的格式。

AppHelper的輸出接口

CE應(yīng)用程序助手AppHelper的主要功能是提供系統(tǒng)運(yùn)行狀況的基本信息。這些基本信息可支持多種通訊接口輸出,這些接口包括調(diào)試串口、USB OTG接口、應(yīng)用串口COM2 – COM9、以太網(wǎng)接口。客戶可根據(jù)自身設(shè)備的特點(diǎn),方便地選擇輸出接口。調(diào)試串口是AppHelper的缺省輸出接口。

AppHelper輸出信息的基本格式都是標(biāo)準(zhǔn)的ASCII碼字符串,客戶通過PC上的一款串口終端窗口程序(推薦使用開源的Tara Term),就可看到輸出的信息。

若客戶希望使用USB或應(yīng)用串口來觀察AppHelper的輸出信息,需要通過執(zhí)行主板上的AppHelperConfig進(jìn)行端口配置:

\> AppHelperConfig p1 [p2]

上式中p1 = 1, 2, .. 9;其中 = 1表示使用COM1端口,在英創(chuàng)主板中COM1端口是基于USB OTG的虛擬串口,英創(chuàng)公司的EM335x產(chǎn)品線和EM928x產(chǎn)品線的所有產(chǎn)品均支持USB OTG虛擬串口功能,虛擬串口的使用方法與實(shí)際物理串口完全一致。參數(shù)p1 = 2 – 9分別對(duì)應(yīng)物理串口COM2 – COM9。注意在選擇物理串口時(shí),應(yīng)避免使用低速串口。參數(shù)p2為串口的波特率,缺省配置為115200bps。除非特別的需求,一般不設(shè)置該參數(shù),即推薦使用115200波特率。

用戶只需在輸出串口上輸入3個(gè)以上的字符(鍵盤連按3次以上),就會(huì)激活A(yù)ppHelper。AppHelper將按2秒間隔輸出系統(tǒng)運(yùn)行狀態(tài)信息。

若用戶希望通過以太網(wǎng)口來觀察AppHelper的輸出信息,則可通過telnet登錄系統(tǒng)后,直接運(yùn)行SysInfo.exe,就可在CMD窗口看到系統(tǒng)的運(yùn)行信息。SysInfo可帶一個(gè)輸入?yún)?shù),來確定輸出信息的時(shí)間,缺省的時(shí)間為10s。AppHelper每2秒輸出一次系統(tǒng)運(yùn)行參數(shù)。

AppHelper信息輸出格式

AppHelper的輸出格式如下:

AppHelper v0.1 Oct 18 2015 17:36:33 Emtronix(c)

CPU:2% FreeMemory=148.59MiB FreeNand=123.99MiB

….

第一行是AppHelper的版本信息,第二行是系統(tǒng)總的CPU負(fù)載、程序內(nèi)存的剩余空間,以及NandFlash的剩余空間。之后的每一行是一個(gè)進(jìn)程或線程的CPU占用率。其中每個(gè)進(jìn)程的名稱就是對(duì)應(yīng)的exe文件名,而對(duì)線程來說,系統(tǒng)只提供有線程ID??蛻粢话阏f來很難根據(jù)線程ID來辨識(shí)具體是應(yīng)用程序中哪個(gè)線程,例如串口接收線程。

應(yīng)用線程命名

為了客戶更容易識(shí)別應(yīng)用線程,AppHelper為應(yīng)用程序提供了2個(gè)API函數(shù)。應(yīng)用程序在創(chuàng)建線程后,通過API函數(shù)來為該線程注冊(cè)一個(gè)希望字符串名;當(dāng)線程退出時(shí),則通過API函數(shù)注銷該字符串。AppHelper提供的這兩個(gè)API函數(shù)為:

BOOL RegisterThreadName(DWORD dwThreadID, TCHAR* sThreadName);

BOOL UnRegisterThreadName(DWORD dwThreadID);

注冊(cè)操作一般直接跟在線程創(chuàng)建之后,其代碼如下:

DWORD dwThreadID = 0;

TCHAR sThreadName[] = L” ReceiveThread”;//注意32個(gè)字符!

// create rx thread

m_hRxThread = CreateThread((LPSECURITY_ATTRIBUTES)NULL,

0,

(LPTHREAD_START_ROUTINE)ReceiveThread,

(LPVOID)pPara,

0,

&dwThreadID);

RegisterThreadName(dwThreadID, sThreadName);

線程名注銷操作則更簡單,直接放在線程退出之前即可。

以下是AppHelper提供的這兩個(gè)API函數(shù)的具體實(shí)現(xiàn),該代碼應(yīng)包含在應(yīng)用程序之中。

struct _THREAD_INDEX

{

DWORD dwSize; // struct size in byte

DWORD dwThreadID; // a thread id

TCHAR szThreadName[32]; // user-defined name associated with the

// thread id above

struct _THREAD_INDEX *pNext; // = NULL

};

typedef struct _THREAD_INDEX THREAD_INDEX, *PTHREAD_INDEX;

BOOL RegisterThreadName(DWORD dwThreadID, TCHAR* sThreadName)

{

BOOL bRet = TRUE;

THREAD_INDEX ThreadNode;

PTHREAD_INDEX pNode = &ThreadNode;

DWORD dwLen;

HANDLE hDevFile = NULL;

memset(&ThreadNode, 0, sizeof(THREAD_INDEX));

pNode->dwSize = sizeof(THREAD_INDEX);

dwLen = wcslen(sThreadName);

if(!dwThreadID || (dwLen >= 32))

{

bRet = FALSE;

goto cleanup;

}

pNode->dwThreadID = dwThreadID;

wcscpy(pNode->szThreadName, sThreadName);

hDevFile = CreateFile(L"HLP1:", // name of device

GENERIC_READ|GENERIC_WRITE, // desired access

0, // sharing mode

NULL, // security attributes

OPEN_EXISTING, // creation disposition

0, // flags/attributes

NULL); // template file

if(hDevFile == INVALID_HANDLE_VALUE)

{

hDevFile = NULL;

bRet = FALSE;

goto cleanup;

}

dwLen = 0;

if(!WriteFile(hDevFile, pNode, sizeof(THREAD_INDEX), &dwLen, NULL))

{

bRet = FALSE;

}

CloseHandle(hDevFile);

cleanup:

return bRet;

}

BOOL UnRegisterThreadName(DWORD dwThreadID)

{

BOOL bRet = TRUE;

THREAD_INDEX ThreadNode;

PTHREAD_INDEX pNode = &ThreadNode;

DWORD dwLen;

HANDLE hDevFile = NULL;

memset(&ThreadNode, 0, sizeof(THREAD_INDEX));

pNode->dwSize = sizeof(THREAD_INDEX);

if(!dwThreadID)

{

bRet = FALSE;

goto cleanup;

}

pNode->dwThreadID = dwThreadID;

hDevFile = CreateFile(L"HLP1:", // name of device

GENERIC_READ|GENERIC_WRITE, // desired access

0, // sharing mode

NULL, // security attributes

OPEN_EXISTING, // creation disposition

0, // flags/attributes

NULL); // template file

if(hDevFile == INVALID_HANDLE_VALUE)

{

hDevFile = NULL;

bRet = FALSE;

goto cleanup;

}

dwLen = 0;

if(!WriteFile(hDevFile, pNode, sizeof(THREAD_INDEX), &dwLen, NULL))

{

bRet = FALSE;

}

CloseHandle(hDevFile);

cleanup:

return bRet;

}

預(yù)計(jì)在2015年10月底前,AppHelper將首先安裝到EM335x產(chǎn)品線的所有主板,并在11月份部署到EM928x產(chǎn)品線。歡迎新老客戶評(píng)估測試CE應(yīng)用程序助手。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6085

    瀏覽量

    35345
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    飛騰助力首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿落幕

    近日,由中國教育技術(shù)協(xié)會(huì)主辦,教育部教育管理信息中心教育信創(chuàng)實(shí)驗(yàn)室、公安部第三研究所、中國電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信創(chuàng)工委會(huì)支持,北京航空航天
    的頭像 發(fā)表于 12-24 09:57 ?109次閱讀

    有方科技參編的信息技術(shù)團(tuán)體標(biāo)準(zhǔn)發(fā)布

    近日,有方科技參編的《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第1部分:企業(yè)背景評(píng)價(jià)》《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第2部分:技術(shù)掌控評(píng)價(jià)》《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第
    的頭像 發(fā)表于 12-23 10:44 ?125次閱讀

    龍芯中科助力2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽成功舉辦

    近日,2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽在北京航空航天大學(xué)成功舉辦。本次大賽由中國教育技術(shù)協(xié)會(huì)主辦,教育信創(chuàng)實(shí)驗(yàn)室、公安部第三研究所、中國電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信
    的頭像 發(fā)表于 12-19 17:02 ?222次閱讀

    拓維信息參與牽頭組建!長沙新一代信息技術(shù)產(chǎn)教聯(lián)合體正式獲批

    的長沙新一代信息技術(shù)產(chǎn)教聯(lián)合體成功獲批,為長沙市信息技術(shù)產(chǎn)業(yè)發(fā)展注入了新的活力。圖/《2024年長沙市市級(jí)市域產(chǎn)教聯(lián)合體名單》長沙新一代信息技術(shù)產(chǎn)教聯(lián)合體將依托龍頭企
    的頭像 發(fā)表于 12-07 01:06 ?369次閱讀
    拓維<b class='flag-5'>信息</b>參與牽頭組建!長沙新一代<b class='flag-5'>信息技術(shù)</b>產(chǎn)教聯(lián)合體正式獲批

    AWTK-WEB 快速入門(1) - C 語言應(yīng)用程序

    導(dǎo)讀AWTK可以使用相同的技術(shù)棧開發(fā)各種平臺(tái)的應(yīng)用程序。有時(shí)我們需要使用Web界面與設(shè)備進(jìn)行交互,本文介紹一下如何使用C語言開發(fā)AWTK-WEB應(yīng)用程序。用AWTKDesigner新建一個(gè)應(yīng)用
    的頭像 發(fā)表于 11-27 11:46 ?211次閱讀
    AWTK-WEB 快速入門(1) - C 語言<b class='flag-5'>應(yīng)用程序</b>

    中科創(chuàng)達(dá)榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)

    及前百家企業(yè)”名單。中科創(chuàng)達(dá)憑借非凡的技術(shù)實(shí)力與持續(xù)的創(chuàng)新能力,成功入選“2024年度軟件和信息技術(shù)服務(wù)競爭力百強(qiáng)企業(yè)”以及“2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)”。
    的頭像 發(fā)表于 10-30 11:44 ?486次閱讀

    創(chuàng)國產(chǎn)化背景下的工控主板發(fā)展現(xiàn)狀

    創(chuàng),是信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)業(yè)的簡稱,于2016年“信創(chuàng)工委會(huì)”(信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì))提出,目的就是要推動(dòng)我們國內(nèi)軟硬件關(guān)鍵技術(shù)的研發(fā)
    的頭像 發(fā)表于 09-21 16:15 ?405次閱讀

    加速鯤鵬落地!拓維信息創(chuàng)遷移工具榮獲鯤鵬原生開發(fā)技術(shù)認(rèn)證

    認(rèn)證。圖/拓維·數(shù)據(jù)庫適配中間件取得鯤鵬原生開發(fā)N認(rèn)證在數(shù)字化時(shí)代的大潮中,信創(chuàng)戰(zhàn)略作為國家推動(dòng)信息技術(shù)應(yīng)用創(chuàng)新、保障信息安全與自主可控的關(guān)鍵舉措,其重要性日益凸顯
    的頭像 發(fā)表于 09-10 08:03 ?447次閱讀
    加速鯤鵬落地!拓維<b class='flag-5'>信息</b>信<b class='flag-5'>創(chuàng)</b>遷移工具榮獲鯤鵬原生開發(fā)<b class='flag-5'>技術(shù)</b>認(rèn)證

    梯度科技入選2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案名單

    日前,工業(yè)和信息化部網(wǎng)絡(luò)安全產(chǎn)業(yè)發(fā)展中心(工業(yè)和信息化部信息中心)在天津舉辦2024信息技術(shù)應(yīng)用創(chuàng)新發(fā)展大會(huì)暨解決方案應(yīng)用推廣大會(huì)。會(huì)上正式公布了2023年
    的頭像 發(fā)表于 09-09 16:29 ?433次閱讀

    中軟國際信創(chuàng)服務(wù)助力大連信創(chuàng)產(chǎn)業(yè)發(fā)展

    為進(jìn)一步激發(fā)大連本地信創(chuàng)產(chǎn)業(yè)生態(tài)的活力與潛力,搭建一個(gè)高效、開放的交流平臺(tái)。由大連軟件行業(yè)協(xié)會(huì)攜手大連市信息技術(shù)應(yīng)用創(chuàng)新綜合服務(wù)中心主辦,中軟國際協(xié)辦的,2024年大連市信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)業(yè)發(fā)展大會(huì)
    的頭像 發(fā)表于 08-27 16:49 ?884次閱讀

    翼輝信息入選2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案名單

    近日,2023 年(第五屆)信息技術(shù)應(yīng)用創(chuàng)新解決方案公布遴選名單,歷經(jīng)資格初審、技術(shù)中評(píng)、區(qū)域評(píng)議、終評(píng)預(yù)審,翼輝以“面向工業(yè)領(lǐng)域嵌入式操作系統(tǒng) SylixOS 解決方案”,成功在全國優(yōu)秀方案中脫穎而出,入選典型解決方案名單。
    的頭像 發(fā)表于 04-28 11:37 ?561次閱讀
    翼輝<b class='flag-5'>信息</b>入選2023年<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新解決方案名單

    龍芯中科三項(xiàng)信創(chuàng)方案入圍工信部2023年信息技術(shù)應(yīng)用創(chuàng)新應(yīng)用示范案例名單

    近日,工業(yè)和信息化部通報(bào)了2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案征集遴選結(jié)果,本次共評(píng)選出典型解決方案173個(gè)、應(yīng)用示范案例83個(gè)、單項(xiàng)創(chuàng)新案例64個(gè)。
    的頭像 發(fā)表于 03-07 16:45 ?937次閱讀
    龍芯中科三項(xiàng)信<b class='flag-5'>創(chuàng)</b>方案入圍工信部2023年<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新應(yīng)用示范案例名單

    扁平線共模電感對(duì)CE噪聲的高效抑制?|深圳比創(chuàng)達(dá)電子EMC(中)

    扁平線共模電感對(duì)CE噪聲的高效抑制?|深圳比創(chuàng)達(dá)電子EMC(中)扁平線共模電感對(duì)CE噪聲的高效抑制(中)?相信不少人是有疑問的,今天深圳市比創(chuàng)達(dá)電子科技有限公司就跟大家解答一下! 比
    發(fā)表于 02-28 10:26

    RX78M組 EtherCAT ETG.5003示例程序固件信息技術(shù)

    電子發(fā)燒友網(wǎng)站提供《RX78M組 EtherCAT ETG.5003示例程序固件信息技術(shù).pdf》資料免費(fèi)下載
    發(fā)表于 02-21 14:22 ?1次下載
    RX78M組  EtherCAT ETG.5003示例<b class='flag-5'>程序</b>固件<b class='flag-5'>信息技術(shù)</b>

    軟通動(dòng)力與捷創(chuàng)技術(shù)簽訂戰(zhàn)略合作協(xié)議

    近日,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱“軟通動(dòng)力”)與寧波捷創(chuàng)技術(shù)股份有限公司(以下簡稱“捷創(chuàng)技術(shù)”)正式簽訂戰(zhàn)略合作協(xié)議,并
    的頭像 發(fā)表于 02-03 16:35 ?1120次閱讀