日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> 技術中心 >> 單片機入門 >> 關于開發(fā)中如何防止死等程序導致其它任務運行不了方法

關于開發(fā)中如何防止死等程序導致其它任務運行不了方法

關鍵字:單片機 嵌入式 循環(huán)程序 作者:admin 來源:不詳 發(fā)布時間:2018-05-18  瀏覽:4

 在嵌入式軟件開發(fā)中,比如單片機的程序,我們一定會寫到一個大的死循環(huán)的程序,也就是輪詢IO口,通常用

while(1)

{

}

來實現大循環(huán),程序就會在while(1)中不斷的循環(huán)執(zhí)行一些任務,但是,任務與任務之間如果存在延時,就會大大的削弱整個架構的實時性,雖然現在的高級單片機ARM已經具有了多線程的機制,但是避免不了的依然是要寫死循環(huán),也就是說,表面上看到程序是一起在跑的,其實是把時間切成若干份,然后進行調度,在linux內核中,fork一條進程需要調度,do_thread也需要進行調度。

最近在工作上遇到一個這樣的問題,串口協(xié)議要求比如等到IO口為低電平,數據才能發(fā)送。關于這個問題,沒別的方法,按照那個架構來說只能死等while(等到IO口低電平輸出),但是這樣就會遇到一個問題,如果一直死等,萬一IO沒有低電平輸出,那么就會發(fā)生丟包的可能以及其他任務會被直接影響到運行,畢竟單片機一般采用的架構都是順序執(zhí)行的,但是看到有工程師做這樣的處理,我也就學過來了,讓while做超時處理,一旦在一定的時間內等待不到低電平輸出,那么就讓這個循環(huán)退出,這樣就不會影響到其它任務的執(zhí)行了,也降低了丟包了,但還是會有丟包,只能慢慢調試了,要是有高手看到麻煩教我一下,最近我們公司也是因為這個問題卡了很久,表示傷不起,我們來看一下是怎么實現的。

1.jpg

編輯:admin  最后修改時間:2018-05-18

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

海晏县| 韩城市| 包头市| 湘潭市| 玉树县| 庄浪县| 岗巴县| 石城县| 聊城市| 社会| 喀什市| 尖扎县| 年辖:市辖区| 遵义县| 东兰县| 迁西县| 平远县| 辽阳市| 揭西县| 家居| 安阳市| 独山县| 呼和浩特市| 灵丘县| 郯城县| 碌曲县| 西藏| 无锡市| 光山县| 宁强县| 贵定县| 苗栗市| 昌宁县| 收藏| 百色市| 鹤壁市| 山阴县| 黔东| 墨竹工卡县| 皋兰县| 文成县|