chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

虹科分享|關(guān)于阻塞函數(shù)和非阻塞函數(shù)

虹科汽車電子 ? 2022-07-05 14:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

關(guān)于阻塞函數(shù)和非阻塞函數(shù)

CAN和LIN相關(guān)的開發(fā)庫里,不可避免的會出現(xiàn)“收”和“發(fā)”的函數(shù)。如何快速有效的處理數(shù)據(jù),是開發(fā)中重要的事項。但實際上單路CAN由于波特率的限制,數(shù)據(jù)量并不會很大:以常用的500k為例,如果按照總線負(fù)載率為30%左右,那么需要在1ms處理1~2次數(shù)據(jù)即可。相比之下常用的以太網(wǎng)一般都要在100M的速率以上了。


c9d32c48-f95b-11ec-a2f4-dac502259ad0.png

因為系統(tǒng)的底層,例如WINDOWS,在處理文件、串口等使用的是同樣的函數(shù),所以CAN、LIN處理起來可以運用這些相關(guān)的經(jīng)驗?;貧w到正題,讀寫函數(shù)可以分為阻塞函數(shù)和非阻塞函數(shù)兩種,它們處理起來的方式是不一樣的。

阻塞函數(shù)(blocking):在執(zhí)行時會阻塞當(dāng)前線程,通常會有一個超時時間。

非阻塞函數(shù)(non-blocking):不會阻塞當(dāng)前線程,直接返回結(jié)果,通常會有一個對應(yīng)的緩存。

讓我們舉兩個例子說明:

在UDS的API中獲取ECU返回的數(shù)據(jù)采用阻塞函數(shù)。例如,我們在用27服務(wù)獲取seed,如果我們沒有成功獲取seed,那么接下來的步驟也無法進(jìn)行下去。所以阻塞函數(shù)會迫使我們?nèi)サ却Y(jié)果;如果執(zhí)行失敗,需要做錯誤處理,例如重新嘗試進(jìn)行獲取。

如果阻塞函數(shù)的超時時間設(shè)置為0,就會和非阻塞函數(shù)類似(有些阻塞函數(shù)超時時間為0,可能意味著永遠(yuǎn)也讀不到數(shù)據(jù)了,因為它們總是想要讀取來自“未來”的內(nèi)容)。

在底層的basic API中,CAN的接收采用了非阻塞函數(shù),設(shè)備將把讀到的數(shù)據(jù)放到緩存里,而函數(shù)將從緩存里讀取數(shù)據(jù)。如果緩存里沒有數(shù)據(jù),函數(shù)會立刻返回?zé)o數(shù)據(jù),而不會等待“不確定的”下一個數(shù)據(jù)。也就是說無論何種情況,函數(shù)都會立刻返回結(jié)果。

在我們處理CAN數(shù)據(jù)時,可以周期性(例如20ms)讀取數(shù)據(jù),讀到無數(shù)據(jù)之后,做其它的事情,例如通過dbc獲取信號值并顯示。函數(shù)不會等待20ms直到新的CAN幀出現(xiàn)在總線上,也防止了丟幀的情況。因為普通的CAN通信,我們無法在程序?qū)用媾袛嗪螘r會接收到新的數(shù)據(jù)。

另外,有時我們也會想要保證數(shù)據(jù)是“新的”,而不是躺在緩存里不知道多久之前的內(nèi)容,那么在讀取數(shù)據(jù)前先清空緩存會是一個不錯的選擇。

END

虹科車輛網(wǎng)絡(luò)

虹科車輛網(wǎng)絡(luò)事業(yè)部在汽車總線行業(yè)經(jīng)驗超過10年,與世界知名的CAN、LIN總線供應(yīng)商PEAK-System、Lipowsky、IHR等合作10年之久,提供領(lǐng)域內(nèi)頂尖水平的CAN/LIN分析儀和測試方案,同時也提供汽車以太網(wǎng),時間敏感網(wǎng)絡(luò)(TSN)的仿真測試工具和方案。虹科自主研發(fā)的EOL測試軟硬件系統(tǒng)已經(jīng)在業(yè)內(nèi)完成多次安裝和測試,事業(yè)部所有成員都受過國內(nèi)外專業(yè)培訓(xùn),并獲得專業(yè)資格認(rèn)證工程師平均5年+技術(shù)經(jīng)驗和水平,一致贏得客戶極好口碑。虹科車輛網(wǎng)絡(luò)事業(yè)部致力于為您提供最專業(yè)的服務(wù)。

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

    關(guān)注

    3

    文章

    4400

    瀏覽量

    66371
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    詳解hal_entry入口函數(shù)

    當(dāng)使用RTOS時,程序從main函數(shù)開始進(jìn)行線程調(diào)度;當(dāng)沒有使用RTOS時,C語言程序的入口函數(shù)main函數(shù)調(diào)用了hal_entry函數(shù)。由于我們新建的工程是沒有選用RTOS的,因此,
    的頭像 發(fā)表于 07-25 15:34 ?1464次閱讀

    posix函數(shù)異常怎么解決?

    測試發(fā)現(xiàn)所有和絕對時間相關(guān)的函數(shù)都是異常的 這該怎么解決目前測試過的有 mq_timedreceive mq_timedsend sem_timedwait pthread_cond_timedwait pselect 全都是異常的 要不然就立即返回 要不然就一直阻塞
    發(fā)表于 06-12 07:48

    在testbench中如何使用阻塞賦值和阻塞賦值

    本文詳細(xì)闡述了在一個testbench中,應(yīng)該如何使用阻塞賦值與阻塞賦值。首先說結(jié)論,建議在testbench中,對時鐘信號(包括分頻時鐘)使用阻塞賦值,對其他同步信號使用
    的頭像 發(fā)表于 04-15 09:34 ?858次閱讀
    在testbench中如何使用<b class='flag-5'>阻塞</b>賦值和<b class='flag-5'>非</b><b class='flag-5'>阻塞</b>賦值

    詳解RTOS中的Hook函數(shù)

    Hook函數(shù)是RTOS中的一個關(guān)鍵特性,通過該函數(shù),用戶可以增強對任務(wù)管理的控制,定義系統(tǒng)行為。
    的頭像 發(fā)表于 03-24 16:14 ?682次閱讀

    解鎖TSMaster fifo函數(shù):報文讀取的高效方法

    前言:TSMaster目前有兩種讀取報文的模式:回調(diào)函數(shù)模式和fifo模式。fifo函數(shù)是TSMaster近期新增的函數(shù),本文將重點介紹fifo模塊。關(guān)于回調(diào)
    的頭像 發(fā)表于 03-14 20:04 ?773次閱讀
    解鎖TSMaster fifo<b class='flag-5'>函數(shù)</b>:報文讀取的高效方法

    直播回放 | IO-Link技術(shù)概述與IO-Link OEM

    「一站式通訊解決方案」系列直播第1期圓滿落幕!本期主題為「IO-Link技術(shù)概述與IO-LinkOEM」感謝各位朋友的熱情參與!本期直播中
    的頭像 發(fā)表于 02-19 17:34 ?935次閱讀
    <b class='flag-5'>虹</b><b class='flag-5'>科</b>直播回放 | IO-Link技術(shù)概述與<b class='flag-5'>虹</b><b class='flag-5'>科</b>IO-Link OEM

    “串口阻塞”你真的會用嗎?

    很久才會發(fā)出來,一下子出來很多數(shù)據(jù)”。經(jīng)過幫客戶檢查應(yīng)用程序源碼,發(fā)現(xiàn)應(yīng)用程序在串口阻塞方面沒有做正確的處理,修改后解決。阻塞打開串口open("/dev/tty
    的頭像 發(fā)表于 02-13 11:42 ?1049次閱讀
    “串口<b class='flag-5'>阻塞</b>”你真的會用嗎?

    關(guān)于4G模組LuatOS開發(fā):通用加解密函數(shù)(crypto)|全攻略

    本次我要說的攻略是關(guān)于4G模組LuatOS開發(fā)的通用加解密函數(shù),我以我常用的Air780E模組為例子供大家參考。
    的頭像 發(fā)表于 11-30 09:52 ?1094次閱讀
    <b class='flag-5'>關(guān)于</b>4G模組LuatOS開發(fā):通用加解密<b class='flag-5'>函數(shù)</b>(crypto)|全攻略

    一文解讀Linux 5種IO模型

    Linux里有五種IO模型:阻塞IO、阻塞IO、多路復(fù)用IO、信號驅(qū)動式IO和異步IO,我發(fā)現(xiàn)這五種IO模型,其實能和吃飯這件事關(guān)聯(lián)起來。 阻塞IO(Blocking I/O)
    的頭像 發(fā)表于 11-09 11:12 ?1161次閱讀
    一文解讀Linux 5種IO模型

    TPA3004功放,開機保護(hù),聲音阻塞,為什么?

    TPA3004功放,開機保護(hù),聲音阻塞。過一段時間,芯片發(fā)熱后正常。詢求問題解決方法
    發(fā)表于 11-08 08:30

    socket編程中的阻塞阻塞

    在網(wǎng)絡(luò)編程中, socket 是一個非常重要的概念,它提供了一個抽象層,使得開發(fā)者可以不必關(guān)心底層的網(wǎng)絡(luò)通信細(xì)節(jié)。 socket 編程中的阻塞阻塞模式是兩種不同的操作方式,它們對程序的響應(yīng)性
    的頭像 發(fā)表于 11-01 16:13 ?966次閱讀

    SUMIF函數(shù)與SUMIFS函數(shù)的區(qū)別

    SUMIF函數(shù)和SUMIFS函數(shù)都是Excel中用于條件求和的函數(shù),它們可以幫助用戶根據(jù)特定的條件對數(shù)據(jù)進(jìn)行求和。盡管它們的基本功能相似,但在使用場景和功能上存在一些差異。以下是對這兩個函數(shù)
    的頭像 發(fā)表于 10-30 09:51 ?9191次閱讀

    SUMIF函數(shù)使用教程

    SUMIF函數(shù)是Excel中非常實用的函數(shù)之一,能夠根據(jù)指定條件對數(shù)據(jù)進(jìn)行篩選和求和操作。以下是對SUMIF函數(shù)使用方法的詳細(xì)教程: 一、基本語法 SUMIF函數(shù)的基本語法為: =SU
    的頭像 發(fā)表于 10-30 09:50 ?6145次閱讀

    Verilog HDL的基礎(chǔ)知識

    本文繼續(xù)介紹Verilog HDL基礎(chǔ)知識,重點介紹賦值語句、阻塞阻塞、循環(huán)語句、同步與異步、函數(shù)與任務(wù)語法知識。
    的頭像 發(fā)表于 10-24 15:00 ?1476次閱讀
    Verilog HDL的基礎(chǔ)知識

    如何由系統(tǒng)函數(shù)求頻率響應(yīng)

    頻率響應(yīng)函數(shù)表征了測試系統(tǒng)對給定頻率下的穩(wěn)態(tài)輸出與輸入的關(guān)系,可以通過系統(tǒng)函數(shù)(或稱為傳遞函數(shù))來求解。以下是由系統(tǒng)函數(shù)求頻率響應(yīng)的步驟: 一、理解系統(tǒng)
    的頭像 發(fā)表于 10-18 09:32 ?4039次閱讀