色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

英創(chuàng)信息技術基于WEC7的多核系統(tǒng)編程方法

英創(chuàng)信息技術 ? 來源:英創(chuàng)信息技術 ? 作者:英創(chuàng)信息技術 ? 2020-02-05 11:05 ? 次閱讀

Windows Embedded Compact 7(WEC7)一個最重要的特性就是對多核處理器的支持(Symmetric Multi-Processing(SMP)),ESM6802是英創(chuàng)公司推出的基于Freescale i.MX6DL雙核處理器的高性能工控主板,預裝正版WEC7嵌入式操作系統(tǒng),并且內(nèi)核啟用了對SMP的支持。在多個程序同時執(zhí)行的情況下,支持SMP的多核系統(tǒng)具有比單處理器更好的性能,因為不同的程序可以在不同的處理器上同時運行,支持SMP還可以實現(xiàn)在一個核心上執(zhí)行硬實時應用程序,而用戶界面(UI)或其它應用程序可在另一個核心上運行,以提高系統(tǒng)的效率。

WEC7提供了一組處理多核系統(tǒng)上線程和處理器調(diào)度的SMP API接口函數(shù):

https://msdn.microsoft.com/en-us/library/gg154433(v=winembedded.70).aspx

其中應用程序常用的SMP API如下所示:

GetCurrentProcessorNumber 獲取在調(diào)用此函數(shù)期間當前線程正在運行的處理器
CeGetIdleTimeEx 獲取指定處理器的空閑時間
CeGetProcessAffinity 獲取指定進程的進程關聯(lián)
CeGetThreadAffinity 獲取指定線程的線程關聯(lián)
CeGetTotalProcessors 獲取系統(tǒng)中的處理器核心總數(shù)
CeSetProcessAffinity 為指定的進程設置處理器關聯(lián)
CeSetThreadAffinity 為指定的線程設置處理器關聯(lián)

默認情況下,WEC7系統(tǒng)會自動的將系統(tǒng)負載分配到CPU的所有核心上運行,應用程序不需要做任何設置。但根據(jù)不同的應用場景,應用程序也可以利用SMP API手動的設置每個進程、每個線程在指定的CPU核心上運行,這里以計算ESM6802 i.MX6DL CPU每個核心的負載為例,介紹WEC7 SMP API的使用方法。

應用程序首先通過CeGetTotalProcessors函數(shù)獲取當前系統(tǒng)總的處理器(核心)個數(shù),然后根據(jù)CPU核心個數(shù)創(chuàng)建相同數(shù)量的CPUIdleMonitorThread應用線程用于計算CPU負載,在創(chuàng)建線程后通過CeSetThreadAffinity函數(shù)將所創(chuàng)建的線程固定在指定的CPU核心上運行。CPUIdleMonitorThread線程函數(shù)在執(zhí)行時先調(diào)用GetCurrentProcessorNumber函數(shù)取得執(zhí)行當前線程的CPU核,而后再利用CeGetIdleTimeEx函數(shù)最終計算出每個CPU核心的負載率。完整的例子代碼如下:

#include"stdafx.h"

// time in seconds to run the monitor thread

#defineIDLE_MONITOR_TIME 100

HANDLE g_hMonitorThreads[4];

UINT32CPUIdleMonitorThread(PVOID pContext)

{

UINT32 nCPUId = ((UINT32*)pContext)[0];

UINT32 nRunTime = ((UINT32*)pContext)[1];

UINT32 nIdleBefore, nIdleAfter, nIdleDiff, nIdlePercent;

UINT32 nReturn = ERROR_SUCCESS;

LARGE_INTEGER pcBefore = { 0, 0 };

LARGE_INTEGER pcAfter = { 0, 0 };

LARGE_INTEGER diff;

LARGE_INTEGER freq;

RETAILMSG(1, (L"[CPU%d] Run monitor thread for %d seconds\r\n", nCPUId, nRunTime));

// The processor number is a 1-based index.

QueryPerformanceFrequency(&freq);

while(nRunTime > 0)

{

nCPUId = GetCurrentProcessorNumber();

CeGetIdleTimeEx(nCPUId, (LPDWORD)&nIdleBefore);

QueryPerformanceCounter(&pcBefore);

Sleep(2000);

QueryPerformanceCounter(&pcAfter);

CeGetIdleTimeEx(nCPUId, (LPDWORD)&nIdleAfter);

diff.QuadPart = (pcAfter.QuadPart - pcBefore.QuadPart) * 1000 / freq.QuadPart;

nIdleDiff = nIdleAfter - nIdleBefore;

nIdlePercent = nIdleDiff / 20;

RETAILMSG(1, (L"[CPU%d] Sleep: 2000 ms (actual:%d ms) Idle: %03d ms (CPU%d = %d%%)\r\n",

nCPUId, diff.LowPart, nIdleDiff, nCPUId, 100 - nIdlePercent));

nRunTime--;

}

SetEvent(g_hMonitorThreads[nCPUId - 1]);

returnnReturn;

}

intWINAPI WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPTSTR lpCmdLine,

int nCmdShow)

{

UINT32 nCPUCount;

UINT32 nTemp = 0;

UINT32 i;

UINT32 nParam[8] = { 1, IDLE_MONITOR_TIME, 2, IDLE_MONITOR_TIME, 3, IDLE_MONITOR_TIME, 4,IDLE_MONITOR_TIME };

nCPUCount = CeGetTotalProcessors();

for(i = 0; i < nCPUCount; i++)

g_hMonitorThreads[i] = CreateEvent(NULL, TRUE, FALSE, NULL);

nTemp = 1;

CeSetThreadAffinity(GetCurrentThread(), 1);

for(i = 1; i < nCPUCount; i++)

{

HANDLE hThread = CreateThread(

NULL,

0,

(LPTHREAD_START_ROUTINE)CPUIdleMonitorThread,

&nParam[i * 2],

CREATE_SUSPENDED,

NULL);

if(NULL != hThread)

{

CeSetThreadAffinity(hThread, i + 1);

ResumeThread(hThread);

Sleep(0);

CloseHandle(hThread);

nTemp++;

}

else

{

SetEvent(g_hMonitorThreads[i]);

}

}

CPUIdleMonitorThread(&nParam[0]);

Sleep(2000);

for(i = 0; i < nCPUCount; i++)

WaitForSingleObject(g_hMonitorThreads[i], (IDLE_MONITOR_TIME + 5) * 1000);

RETAILMSG(1, (L"[CPULOAD] Number of CPUs monitored: %d\r\n", nTemp));

return0;

}

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

    關注

    4

    文章

    3551

    瀏覽量

    88913
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6085

    瀏覽量

    35440
收藏 人收藏

    評論

    相關推薦

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    GB/T 35590-2017信息技術 便攜式數(shù)字設備用移動電源推薦標準

    GB/T 35590-2017是《信息技術 便攜式數(shù)字設備用移動電源通用規(guī)范》的國家標準,這是一項由全國信息安全標準化技術委員會歸口管理,并聯(lián)合鋰離子電池業(yè)內(nèi)產(chǎn)學研用多家單位聯(lián)合制定的標準。該標準自
    的頭像 發(fā)表于 08-12 16:47 ?1258次閱讀
    GB/T 35590-2017<b class='flag-5'>信息技術</b> 便攜式數(shù)字設備用移動電源推薦標準

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

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

    芯盾時代中標西安西熱電站信息技術有限公司!

    芯盾時代中標西安西熱電站信息技術有限公司!芯盾時代基于完整的身份安全產(chǎn)品體系,增強客戶的業(yè)務系統(tǒng)、網(wǎng)絡設備和安全設備等認證安全強度
    的頭像 發(fā)表于 04-09 11:32 ?526次閱讀

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

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

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

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

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

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

    單片機通過USB升級固件的方法

    單片機升級固件的方法有很多中,比如:ISP(在系統(tǒng)編程)、ICP(在電路編程)、IAP(在應用編程)等。
    的頭像 發(fā)表于 01-11 09:37 ?2054次閱讀
    單片機通過USB升級固件的<b class='flag-5'>方法</b>
    主站蜘蛛池模板: 免费欧美大片| 好爽胸大好深好多水| 国产精品2020观看久久| 考好老师让你做一次H| 性生生活大片又黄又| 广播电台在线收听| 日本特殊精油按摩| 办公室激情在线观看| 欧美精品一区二区三区四区| 365电影成人亚洲网在线观看| 精品无码无人网站免费视频| 亚洲国产系列一区二区三区| 国产精品人成视频免费999| 少妇仑乱A毛片| 国产精品视频免费观看| 校花的奶好大好浪| 国产亚洲精品久久孕妇呦呦你懂 | 亚洲精品AV无码永久无码| 国产三级在线观看视频| 亚洲国产AV精品一区二区蜜芽| 国产综合在线视频| 一品道门免费视频韩国| 快播h网站| 99视频国产在线| 日韩hd高清xxxⅹ| 国产精品免费一区二区三区四区| 污污内射在线观看一区二区少妇 | 亚洲欧美一区二区久久| 久久re这里视频只有精品首页 | 嗯啊快停下我是你老师啊H| s8sp视频高清在线播放| 色情www日本欧美| 国内精品视频在线播放一区 | 中文在线观看永久免费| 欧美506070| 国产不卡一卡2卡三卡4卡网站| 午夜影视免费| 理论片午午伦夜理片影院| 啊灬啊灬啊灬快高潮视频| 无码毛片内射白浆视频| 久久成人国产精品一区二区|