在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

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

為保證系統(tǒng)穩(wěn)定運行,系統(tǒng)CPU應(yīng)避免長時間滿負荷運作,應(yīng)用程序CPU占用不宜過高??蛻粜枰谡{(diào)試階段監(jiān)測應(yīng)用程序各個進程線程占用情況,對占用過高的進程線程進行優(yōu)化。因CE自身不帶進程線程系統(tǒng)占用查看工具,我們增加了AppHelper助手工具方便客戶使用。

在之前的技術(shù)文章《CE應(yīng)用程序助手簡介》中簡單介紹過英創(chuàng)AppHelper應(yīng)用程序助手,本文將詳細介紹AppHelper的使用方法。

AppHelper查看方法

客戶在自制底板上只要引出了網(wǎng)絡(luò),USBOTG,DEBUG調(diào)試串口,或板子其它串口任意之一便可以查看AppHelper信息。

網(wǎng)絡(luò)方式

通過telnet登錄上板子,運行命令sysinfo,即可獲得AppHelper打印的進程線程信息。

telnet模式打印示例圖

USBOTG方式

使用AHC工具(使用方法見本文下一節(jié))配置AppHelper輸出為COM1。連接上板子USBOTG口,板子將以虛擬串口形式被PC識別。使用任意串口工具向該串口輸出任意三個字符(任意波特率),即可獲得AppHelper打印的進程線程信息。

USBOTG,DEBUG及其它串口打印示例圖

DEBUG調(diào)試串口方式

使用AHC工具(使用方法見本文下一節(jié))配置AppHelper輸出為DEBUG。連接板子的DEBUG串口,PC端使用任意串口工具,設(shè)置波特率115200,向DEBUG口輸出任意三個字符,即可獲得AppHelper打印的進程線程信息。

串口方式

將底板上引出,且客戶應(yīng)用程序未使用的串口連接上PC。使用AHC工具(使用方法見本文下一節(jié))配置好串口號及波特率。PC端使用任意串口工具,用設(shè)定的波特率向該串口輸出任意三個字符,即可獲得AppHelper打印的進程線程信息。

AHC工具使用介紹

AHC工具即AppHelper Config工具,用于設(shè)置AppHelper打印信息的輸出位置。有兩種辦法進行設(shè)置。

控制面板方式

在板子控制面板中運行AHC工具。

選擇好輸出信息的串口及波特率(其中COM1為USBOTG),點擊OK鍵保存配置,板子重啟后配置生效。

telnet方式

通過telnet登錄上板子,執(zhí)行命令A(yù)HC port [baud]

參數(shù)port:串口號,值為0-6,0表示DEBUG串口,1表示USBOTG轉(zhuǎn)虛擬串口,2-6分別表示板子的COM2-COM6。

參數(shù)baud:波特率,可選參數(shù),如果不填表示保持原波特率,支持1200,2400,4800,9600,19200,38400,57600,115200。當port為0時,baud固定為115200,當port為1時,baud值不生效。

命令執(zhí)行后,DEBUG口可以看到打印提示信息。

打印格式說明

打印結(jié)果為數(shù)行,其中每行的格式均為:類型 ID號 占用情況 名稱

以下圖一次打印的部分截圖為例:

類型

PID表示為process進程。TID表示為上面進程下的thread線程。

ID號

即進程ID值或線程ID值。

占用情況

顯示格式為 K n% U m% total%

n值為該進程或線程在Kernel系統(tǒng)層的占用

m值為該進程或線程在User用戶層的占用

total值為總占用,它應(yīng)當?shù)扔趎+m的和

進程下各個線程total占用和應(yīng)當?shù)扔谶M程的total占用

名稱

進程名即EXE的名稱,線程默認沒有名稱,下一節(jié)會介紹如何給線程命名,從而能在AppHelper中顯示出來。

進程及線程監(jiān)視說明

AppHelper會打印系統(tǒng)下所有的進程的CPU占用信息。

只有在\NandFlash目錄下的exe生成的進程會額外打印出它下面所有線程的CPU占用信息。

默認情況下,生成的線程只有ID號,沒有名稱,如果線程較多會不便于查看。我們可以通過簡單代碼給線程命名。

以光盤里的串口例程SPT_HEX為例:

添加一個結(jié)構(gòu)體的定義

typedef struct _THREAD_INDEX

{

DWORDdwSize;

DWORDdwThreadID;

TCHARszThreadName[32];

_THREAD_INDEX*pNext;

}THREAD_INDEX;

在創(chuàng)建線程后給線程命名

這里把串口接收線程命名為"CommRecvTread"

hRecvThread = CreateThread(0, 0, CommRecvTread, this, 0, &m_dwTID);

HANDLE hHLP;

DWORD dwLen;

hHLP = CreateFile(L"HLP1:", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);

THREAD_INDEXthreadIndex;

wsprintf(threadIndex.szThreadName, L"CommRecvTread");

threadIndex.dwThreadID = m_dwTID;

threadIndex.dwSize = sizeof(THREAD_INDEX);

WriteFile(hHLP, &threadIndex, sizeof(THREAD_INDEX), &dwLen, NULL);

CloseHandle(hHLP);

在結(jié)束線程后取消命名

線程結(jié)束后應(yīng)當手動將命名取消掉,避免不必要的顯示錯誤,設(shè)置線程名為空,即可取消原命名。

HANDLE hHLP;

DWORD dwLen;

hHLP = CreateFile(L"HLP1:", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);

THREAD_INDEXthreadIndex;

wsprintf(threadIndex.szThreadName, L"");

threadIndex.dwThreadID = m_dwTID;

threadIndex.dwSize = sizeof(THREAD_INDEX);

WriteFile(hHLP, &threadIndex, sizeof(THREAD_INDEX), &dwLen, NULL);

CloseHandle(hHLP);

命名線程后再使用AppHelper查看,啟動接收線程后,就可以看到CommRecvTread這個線程,另外個沒有命名的線程為SerialPort程序的主線程。

計算原理及誤差說明

CPU占用時間是通過計算一段時間內(nèi)(AppHelper設(shè)置為2000毫秒)CPU空閑tick值與這段時間里CPU運算周期tick值得出。

CPU空閑tick值 = CPU空閑tick計數(shù)t2 – CPU空閑tick計數(shù)t1

CPU總周期tick值 = CPU總周期tick計數(shù)t2 – CPU總周期tick計數(shù)t1

CPU占用 = 1 – (CPU空閑tick值/CPU總周期tick值)× 100%

進程或線程的CPU占用,是通過計算一段時間CPU運算周期tick值,和這段周期里Kernel或User運行線程或進程的tick值,通過相除得到。

進程/線程Kernel占用 = (進程/線程Kernel運行tick值/CPU總周期tick值)× 100%

進程/線程User占用 = (進程/線程User運行tick值/CPU總周期tick值)× 100%

進程/線程CPU占用 = 進程/線程Kernel占用 + 進程/線程User占用

打印結(jié)果可能會有少量誤差,可能由于以下原因:

1、實驗值計算到個位,小數(shù)部分四舍五入,所以可能產(chǎn)生細微的誤差。

2、理想中的測量情況如下圖

但是實際情況由于AppHelper本身也會產(chǎn)生系統(tǒng)消耗,所以測量情況為下圖

在Δt值不為0的情況下,如果在Δt期間各個tick值產(chǎn)生較大跳動時,測試結(jié)果可能產(chǎn)生誤差。

3、各個進程或線程的運行tick值并非完全實時變化,而是在進程或線程完成一個時間片掛起后才加上,所以查詢函數(shù)獲得值不一定非常精確。

測試程序及說明

test_prc_thd是一個簡單的程序,用來測試AppHelper的進程線程監(jiān)視功能。

“添加線程”按鈕按下會創(chuàng)建一個新的線程。參數(shù)中傳入線程編號,線程ID等信息。

void Ctest_prc_thdDlg::OnBnClickedButton1()

{

DWORD dwTID;

HANDLE hTestThread;

m_threadParam[m_dwCnt].dwCnt = m_dwCnt;

m_threadParam[m_dwCnt].dwLv = m_dwCnt;

m_threadParam[m_dwCnt].bThreadStop = FALSE;

hTestThread = CreateThread(0, 0, TestTread, &m_threadParam[m_dwCnt], CREATE_SUSPENDED, &dwTID);

m_threadParam[m_dwCnt].dwThreadID = dwTID;

ResumeThread(hTestThread);

CloseHandle(hTestThread);

}

線程主函數(shù)里根據(jù)編號給線程自身命名,并且根據(jù)各自傳入的參數(shù)執(zhí)行負載率不等的計算。這里計算采用簡單的循環(huán)計數(shù),循環(huán)計算次數(shù)越多,線程CPU占用越多。

線程結(jié)束后,取消自身的命名。

DWORD Ctest_prc_thdDlg::TestTread(LPVOID lparam)

{

THREAD_PARAM *pThreadParam = (THREAD_PARAM*)lparam;

DWORDdwLen;

THREAD_INDEXthreadIndex;

HANDLE hHLP;

volatile int n;

hHLP = CreateFile(L"HLP1:", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);

wsprintf(threadIndex.szThreadName, L"thread%d", pThreadParam->dwCnt);

threadIndex.dwThreadID = pThreadParam->dwThreadID;

threadIndex.dwSize = sizeof(THREAD_INDEX);

WriteFile(hHLP, &threadIndex, sizeof(THREAD_INDEX), &dwLen, NULL);

CloseHandle(hHLP);

HANDLEhFile;

WCHARwsFileName[64];

inti;

while(!pThreadParam->bThreadStop)

{

for (i=0; i<=pThreadParam->dwCnt; i++ )

{

intj;

for (j=0;j<0xfffff;j++)

{

n++;

}

}

Sleep(100);

}

hHLP = CreateFile(L"HLP1:", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);

sprintf(threadIndex.szThreadName, L"");

threadIndex.dwThreadID = pThreadParam->dwThreadID;

threadIndex.dwSize = sizeof(THREAD_INDEX);

WriteFile(hHLP, &threadIndex, sizeof(THREAD_INDEX), &dwLen, NULL);

CloseHandle(hHLP);

return 0;

}

“結(jié)束所有線程”按鈕按下,通知所有線程結(jié)束運行。

void Ctest_prc_thdDlg::OnBnClickedButton2()

{

inti;

for (i=0; i

{

m_threadParam[i].bThreadStop = TRUE;

Sleep(100);

}

m_dwCnt = 0;

}

測試例程,下圖為該程序創(chuàng)建多個線程后的打印情況

該程序源碼可以聯(lián)系英創(chuàng)工程師獲得,客戶有疑問也可以向英創(chuàng)工程師咨詢。

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

    關(guān)注

    7

    文章

    6094

    瀏覽量

    36056
收藏 人收藏

    評論

    相關(guān)推薦

    龍芯中科榮獲2024年度信息技術(shù)應(yīng)用創(chuàng)新工作委員會卓越貢獻成員單位

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

    芯盛智能榮獲2024年信息技術(shù)應(yīng)用創(chuàng)新工作委員會卓越貢獻成員單位

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

    中科曙光南京研究院方案入選江蘇省信息技術(shù)創(chuàng)新優(yōu)秀解決方案

    近日,中科曙光南京研究院傳來喜訊,其精心申報的《高端計算與分布式存儲一體化解決方案》(以下簡稱“方案”)成功脫穎而出,榮耀入選“2024年江蘇省信息技術(shù)應(yīng)用創(chuàng)新優(yōu)秀解決方案”名單。 這一殊榮不僅是
    的頭像 發(fā)表于 01-08 15:41 ?463次閱讀

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

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

    有方科技參編的信息技術(shù)團體標準發(fā)布

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

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

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

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

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

    AWTK-WEB 快速入門(2) - JS 應(yīng)用程序

    導(dǎo)讀AWTK可以使用相同的技術(shù)棧開發(fā)各種平臺的應(yīng)用程序。有時我們需要使用Web界面與設(shè)備進行交互,本文介紹一下如何使用JS語言開發(fā)AWTK-WEB應(yīng)用程序。用AWTKDesigner新
    的頭像 發(fā)表于 12-05 01:04 ?340次閱讀
    AWTK-WEB 快速入門(2) - JS <b class='flag-5'>應(yīng)用程序</b>

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

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

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

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

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

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

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

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

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

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

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

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

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

    近日,2023 年(第五屆)信息技術(shù)應(yīng)用創(chuàng)新解決方案公布遴選名單,歷經(jīng)資格初審、技術(shù)中評、區(qū)域評議、終評預(yù)審,翼輝以“面向工業(yè)領(lǐng)域嵌入式操作系統(tǒng) SylixOS 解決方案”,成功在全國優(yōu)秀方案中脫穎而出,入選典型解決方案名單。
    的頭像 發(fā)表于 04-28 11:37 ?779次閱讀
    翼輝<b class='flag-5'>信息</b>入選2023年<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新解決方案名單
    主站蜘蛛池模板: 九九热精品国产 | 国外免费精品视频在线观看 | 色婷婷亚洲精品综合影院 | 未满十八18周岁禁止免费国产 | 香蕉免费在线视频 | 精品国产自在在线在线观看 | 日本特黄特色视频 | 欧美性极品hd高清视频 | 中国胖女人一级毛片aaaaa | 四虎综合九九色九九综合色 | 夜夜操狠狠操 | 天天操 夜夜操 | 男人的天堂免费视频 | 久久精品人人爽人人爽 | 国产午夜精品福利久久 | 成年色黄大色黄大片 视频 成年视频xxxxx免费播放软件 | 男人的午夜 | sese久久 | 亚洲你懂的 | 亚洲a视频| 色色色爱 | 嫩草影院永久入口在线观看 | 在线视频一本 | 国内黄色录像 | 六月综合激情 | 一级看片免费视频囗交 | 正在播放淫亚洲 | 天天拍天天干 | 看真人一一级毛片 | 日韩一级片免费在线观看 | 午夜毛片视频高清不卡免费 | 亚洲邪恶天堂影院在线观看 | 天天激情站| 男人不识本网站上遍色站也枉然 | 特黄特色三级在线播放 | 午夜影院毛片 | 免费看成年视频网页 | 精品一精品国产一级毛片 | 免费在线观看黄 | 狠狠色丁香九九婷婷综合五月 | 级毛片 |