衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

英創信息技術CE應用程序助手簡介

英創信息技術 ? 來源:英創信息技術 ? 作者:英創信息技術 ? 2020-02-03 10:09 ? 次閱讀

背景

在基于英創工控主板的智能整機設備的開發過程中,客戶應用程序的開發通常都是最為關鍵性的工作,其工作量往往也是最大的。一個高質量的應用程序,首先表現在較少的現場維護,不僅大幅度降低了設備開發費用,同時也為客戶贏得后續的市場聲譽。因此如何在設備出廠之前就能確定應用程序的基本質量,就變得至關重要了。

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

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

AppHelper的輸出接口

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

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

若客戶希望使用USB或應用串口來觀察AppHelper的輸出信息,需要通過執行主板上的AppHelperConfig進行端口配置:

\> AppHelperConfig p1 [p2]

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

用戶只需在輸出串口上輸入3個以上的字符(鍵盤連按3次以上),就會激活AppHelper。AppHelper將按2秒間隔輸出系統運行狀態信息。

若用戶希望通過以太網口來觀察AppHelper的輸出信息,則可通過telnet登錄系統后,直接運行SysInfo.exe,就可在CMD窗口看到系統的運行信息。SysInfo可帶一個輸入參數,來確定輸出信息的時間,缺省的時間為10s。AppHelper每2秒輸出一次系統運行參數。

AppHelper信息輸出格式

AppHelper的輸出格式如下:

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

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

….

第一行是AppHelper的版本信息,第二行是系統總的CPU負載、程序內存的剩余空間,以及NandFlash的剩余空間。之后的每一行是一個進程或線程的CPU占用率。其中每個進程的名稱就是對應的exe文件名,而對線程來說,系統只提供有線程ID。客戶一般說來很難根據線程ID來辨識具體是應用程序中哪個線程,例如串口接收線程。

應用線程命名

為了客戶更容易識別應用線程,AppHelper為應用程序提供了2個API函數。應用程序在創建線程后,通過API函數來為該線程注冊一個希望字符串名;當線程退出時,則通過API函數注銷該字符串。AppHelper提供的這兩個API函數為:

BOOL RegisterThreadName(DWORD dwThreadID, TCHAR* sThreadName);

BOOL UnRegisterThreadName(DWORD dwThreadID);

注冊操作一般直接跟在線程創建之后,其代碼如下:

DWORD dwThreadID = 0;

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

// create rx thread

m_hRxThread = CreateThread((LPSECURITY_ATTRIBUTES)NULL,

0,

(LPTHREAD_START_ROUTINE)ReceiveThread,

(LPVOID)pPara,

0,

&dwThreadID);

RegisterThreadName(dwThreadID, sThreadName);

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

以下是AppHelper提供的這兩個API函數的具體實現,該代碼應包含在應用程序之中。

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;

}

預計在2015年10月底前,AppHelper將首先安裝到EM335x產品線的所有主板,并在11月份部署到EM928x產品線。歡迎新老客戶評估測試CE應用程序助手。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6086

    瀏覽量

    35615
收藏 人收藏

    評論

    相關推薦

    龍芯中科榮獲2024年度信息技術應用創新工作委員會卓越貢獻成員單位

    近日,中國電子工業標準化技術協會信息技術應用創新工作委員會(以下簡稱“信工委會”)在北京召開2024年度工作總結座談會暨信“大比武”總結大會。中國工程院院士、信
    的頭像 發表于 01-23 10:50 ?166次閱讀

    芯盛智能榮獲2024年信息技術應用創新工作委員會卓越貢獻成員單位

    日前,中國電子工業標準化技術協會信息技術應用創新工作委員會(以下簡稱 “信工委會”)2024 年度總結座談會于北京隆重舉行。此次會議對在信工作中作出突出貢獻的成員單位予以表彰。江蘇
    的頭像 發表于 01-20 09:56 ?159次閱讀

    飛騰助力首屆教育信息技術應用創新大賽圓滿落幕

    近日,由中國教育技術協會主辦,教育部教育管理信息中心教育信實驗室、公安部第三研究所、中國電子工業標準化技術協會信工委會支持,北京航空航天
    的頭像 發表于 12-24 09:57 ?205次閱讀

    有方科技參編的信息技術團體標準發布

    近日,有方科技參編的《信息技術產品供應鏈成熟度 共性指標 第1部分:企業背景評價》《信息技術產品供應鏈成熟度 共性指標 第2部分:技術掌控評價》《信息技術產品供應鏈成熟度 共性指標 第
    的頭像 發表于 12-23 10:44 ?225次閱讀

    龍芯中科助力2024首屆教育信息技術應用創新大賽成功舉辦

    近日,2024首屆教育信息技術應用創新大賽在北京航空航天大學成功舉辦。本次大賽由中國教育技術協會主辦,教育信實驗室、公安部第三研究所、中國電子工業標準化技術協會信
    的頭像 發表于 12-19 17:02 ?282次閱讀

    拓維信息參與牽頭組建!長沙新一代信息技術產教聯合體正式獲批

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

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

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

    中科達榮獲2024年軟件和信息技術服務優秀企業

    及前百家企業”名單。中科達憑借非凡的技術實力與持續的創新能力,成功入選“2024年度軟件和信息技術服務競爭力百強企業”以及“2024年軟件和信息技術服務優秀企業”。
    的頭像 發表于 10-30 11:44 ?557次閱讀

    國產化背景下的工控主板發展現狀

    ,是信息技術應用創新產業的簡稱,于2016年“信工委會”(信息技術應用創新工作委員會)提出,目的就是要推動我們國內軟硬件關鍵技術的研發
    的頭像 發表于 09-21 16:15 ?511次閱讀

    加速鯤鵬落地!拓維信息遷移工具榮獲鯤鵬原生開發技術認證

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

    梯度科技入選2023年信息技術應用創新解決方案名單

    日前,工業和信息化部網絡安全產業發展中心(工業和信息化部信息中心)在天津舉辦2024信息技術應用創新發展大會暨解決方案應用推廣大會。會上正式公布了2023年
    的頭像 發表于 09-09 16:29 ?493次閱讀

    中軟國際信服務助力大連信產業發展

    為進一步激發大連本地信產業生態的活力與潛力,搭建一個高效、開放的交流平臺。由大連軟件行業協會攜手大連市信息技術應用創新綜合服務中心主辦,中軟國際協辦的,2024年大連市信息技術應用創新產業發展大會
    的頭像 發表于 08-27 16:49 ?954次閱讀

    龍芯中科三項信方案入圍工信部2023年信息技術應用創新應用示范案例名單

    近日,工業和信息化部通報了2023年信息技術應用創新解決方案征集遴選結果,本次共評選出典型解決方案173個、應用示范案例83個、單項創新案例64個。
    的頭像 發表于 03-07 16:45 ?1016次閱讀
    龍芯中科三項信<b class='flag-5'>創</b>方案入圍工信部2023年<b class='flag-5'>信息技術</b>應用創新應用示范案例名單

    扁平線共模電感對CE噪聲的高效抑制?|深圳比達電子EMC(中)

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

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

    電子發燒友網站提供《RX78M組 EtherCAT ETG.5003示例程序固件信息技術.pdf》資料免費下載
    發表于 02-21 14:22 ?1次下載
    RX78M組  EtherCAT ETG.5003示例<b class='flag-5'>程序</b>固件<b class='flag-5'>信息技術</b>
    哪个百家乐官网投注好| 大发888总结经验| 南宁百家乐赌机| 太阳城百家乐作弊| 24山辰山戍向| 百家乐比赛技巧| 属马的和属猴的在一起做生意好吗| 万达百家乐官网娱乐城| 2024九运旺那边水| 百家乐娱乐城新澳博| 百家乐韩泰阁| 百家乐资深| 大发888游戏注册送98| 大发888登录下载| 波克棋牌官网| 吉祥娱乐城| 顶尖百家乐官网开户| 真人百家乐官网免费开户送钱| 缅甸百家乐官网赌博现场下载| 南宁百家乐官网的玩法技巧和规则 | 菲律宾百家乐娱乐平台| 星期八百家乐的玩法技巧和规则 | 玉田县| 噢门百家乐官网注码技巧| 百家乐官网破解方法技巧| 金钱豹百家乐官网的玩法技巧和规则 | 百家乐开发公司| 百家乐最新破| 网上棋牌室| 百家乐官网21点| 百家乐官网科学打| 百家乐推广| 大发888 真钱娱乐平台| 廉江市| 马德里百家乐官网的玩法技巧和规则| 百家乐投注技巧建议| 威尼斯人娱乐城 老品牌值得信赖| 天下足球网| 百家乐官网赌场赌场平台| 鲨鱼百家乐游戏平台| 大发888截图|