国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

虹科分享|關于阻塞函數和非阻塞函數

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

掃碼添加小助手

加入工程師交流群

關于阻塞函數和非阻塞函數

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


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

因為系統的底層,例如WINDOWS,在處理文件、串口等使用的是同樣的函數,所以CAN、LIN處理起來可以運用這些相關的經驗。回歸到正題,讀寫函數可以分為阻塞函數和非阻塞函數兩種,它們處理起來的方式是不一樣的。

阻塞函數(blocking):在執行時會阻塞當前線程,通常會有一個超時時間。

非阻塞函數(non-blocking):不會阻塞當前線程,直接返回結果,通常會有一個對應的緩存。

讓我們舉兩個例子說明:

在UDS的API中獲取ECU返回的數據采用阻塞函數。例如,我們在用27服務獲取seed,如果我們沒有成功獲取seed,那么接下來的步驟也無法進行下去。所以阻塞函數會迫使我們去等待結果;如果執行失敗,需要做錯誤處理,例如重新嘗試進行獲取。

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

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

在我們處理CAN數據時,可以周期性(例如20ms)讀取數據,讀到無數據之后,做其它的事情,例如通過dbc獲取信號值并顯示。函數不會等待20ms直到新的CAN幀出現在總線上,也防止了丟幀的情況。因為普通的CAN通信,我們無法在程序層面判斷何時會接收到新的數據。

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

END

虹科車輛網絡

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

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

    關注

    3

    文章

    4417

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    動態 | 2026年1月精彩回顧

    2026年1月精彩速覽——正式成為廣州開發區企業上市和新三板發展促進會理事單位;友思特獲“國家高新技術企業”資質;宏集「雙人成行」伙伴招募計劃正式啟航...下面讓我們一起回顧1
    的頭像 發表于 02-02 11:01 ?491次閱讀
    <b class='flag-5'>虹</b><b class='flag-5'>科</b>動態 | 2026年1月精彩回顧

    電信接收機 IF/RF 前端 SAW 濾波方案:70–300MHz 選擇性提升 + 阻塞防護 + 匹配驗證全流程(FSF-5050 系列)

    電信接收機 IF/RF 前端易受強帶外干擾引發壓縮、互調與阻塞,DSP 難補救。本方案以 SAW 濾波器為“門禁”,覆蓋 70–300MHz IF 規劃,給出放置位置、IL/阻帶/群時延取舍、匹配與 PCB 要點,并提供 VNA+阻塞測試驗證流程,適配 FSF 5×5mm
    的頭像 發表于 01-29 14:00 ?1016次閱讀
    電信接收機 IF/RF 前端 SAW 濾波方案:70–300MHz 選擇性提升 + <b class='flag-5'>阻塞</b>防護 + 匹配驗證全流程(FSF-5050 系列)

    解析SN65LVDS125A和SN65LVDT125A:4x4阻塞交叉點開關的卓越性能

    解析SN65LVDS125A和SN65LVDT125A:4x4阻塞交叉點開關的卓越性能 在電子設計領域,高速信號處理和靈活的信號路由是許多應用的關鍵需求。德州儀器(TI)的SN65LVDS125A
    的頭像 發表于 12-29 17:40 ?600次閱讀

    探索SN65LVDS125A和SN65LVDT125A:4x4阻塞交叉點開關的卓越性能

    探索SN65LVDS125A和SN65LVDT125A:4x4阻塞交叉點開關的卓越性能 在當今高速發展的電子領域,數據傳輸和信號處理的速度和效率至關重要。而SN65LVDS125A
    的頭像 發表于 12-29 17:40 ?605次閱讀

    PEAK解決方案

    PEAK解決方案
    發表于 12-19 14:45 ?0次下載

    飛凌嵌入式ElfBoard-文件I/O的深入學習之阻塞I/O與阻塞I/O

    操作,這是普通文件本質上決定的。 阻塞式I/O,即使沒有數據可讀,也不會被阻塞、而是會立馬返回。 1.4.1.2 實踐 從前面介紹的open函數可以看到,打開文件時可以使用O_NON
    發表于 12-01 13:07

    動態 | ×長城汽車技術交流日圓滿落幕!

    11月25日,攜手長城汽車在保定·長城技術中心成功舉辦“X長城汽車技術交流日”系列workshop活動,與長城技術中心的各位工程師共同展望行業發展前景,為雙方未來更多的生態合作
    的頭像 發表于 11-28 17:07 ?2091次閱讀
    <b class='flag-5'>虹</b><b class='flag-5'>科</b>動態 | <b class='flag-5'>虹</b><b class='flag-5'>科</b>×長城汽車技術交流日圓滿落幕!

    CH32V307 串口發送阻塞的原因?怎么解決?

    */ modbus_set_rx_mode(master); modbus發送,不知為何阻塞在rt_device_write,初始化 find open 正常
    發表于 09-18 06:06

    【HZ-RK3568開發板免費體驗】基于 Select Poll的TCP發服務器

    資源的操作。這種模式使用中不是很普遍。 阻塞阻塞的概念相對應,指在不能立刻得到結果之前,該函數不會阻塞當前線程,而會立刻返回。 1.3
    發表于 08-19 22:01

    詳解hal_entry入口函數

    當使用RTOS時,程序從main函數開始進行線程調度;當沒有使用RTOS時,C語言程序的入口函數main函數調用了hal_entry函數。由于我們新建的工程是沒有選用RTOS的,因此,
    的頭像 發表于 07-25 15:34 ?1978次閱讀

    posix函數異常怎么解決?

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

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

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

    函數指針的六個常見應用場景

    函數指針在嵌入式開發中有著廣泛的應用,它讓代碼更加靈活,減少冗余,提高可擴展性。很多時候,我們需要根據不同的情況動態調用不同的函數,而函數指針正是實現這一需求的重要工具。本文將介紹六個常見的
    的頭像 發表于 04-07 11:58 ?1474次閱讀
    <b class='flag-5'>函數</b>指針的六個常見應用場景

    詳解RTOS中的Hook函數

    Hook函數是RTOS中的一個關鍵特性,通過該函數,用戶可以增強對任務管理的控制,定義系統行為。
    的頭像 發表于 03-24 16:14 ?1077次閱讀

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

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