ProtoThread程式設計技術簡介

2021-10-03 13:37:47 字數 840 閱讀 8396

在介紹protothread前,我們先了解下他的作者,瑞典計算機科學院(sics)大名鼎鼎的:adam dunkels,他是uip,lwip,contiki的作者,他還成立了公司,專門做物聯網相關的產品。lwip就不介紹了,開源的輕量級tcp/ip協議棧,使用的非常廣泛;但是它比uip網路協議棧要複雜的多,uip屬於精簡版的乙太網網路協議棧,作者在寫這個uip時,為了解析各種網路棧協議,就發明了protothread,這個翻譯過來就是:原始執行緒等意思;後來uip被合併到contiki維護了,自然地protothread也就代入到了contiki中,contiki是乙個開源的,占用資源極小的rtos,一般用在資源緊缺的8位或16位mcu中,contiki中的執行緒模型就是protothread實現的。

簡單來說,它就是一種程式設計技術,具體來說就是採用下面的**來實現switch case語句的控制跳轉。有人認為它是狀態機,也有人認為它是協程,我理解它就是一種程式設計技術,具體起什麼名字,我就不糾結啦。

typedef unsigned short lc_t;

#define lc_init(s) s = 0;

#define lc_resume(s) switch(s)

1、原始碼首先可以在uip的原始碼中找到,是比較老了,最新的**可以在contiki或contiki-ng中找到,這2份**中的protothread**是一樣的,用哪個都行

2、美國康納爾大學的ece4760課程對protothread原始碼進行了公升級、改造,也可以學習

1、adam dunkels的個人主頁:

5、ece4760課程對protothread的改進:

2020-03-05@北京

Nios Flash程式設計技術

1.1 altera支援cfi flash程式設計 1.3 非支援cfi程式設計 由於我所用的nor flash晶元是am29lv320db,不再nios支援的列表,自己編輯了override檔案,但還是無法正確program進去,決定用列表支援的sst39vf800試一試,引腳相容,容量為1 4,...

DLL程式設計技術

一 dll原理 dll dynamic link library 也就是 動態鏈結庫 是乙個可以被其它應用程式共享的程式模組,其中封裝了一些可以被共享的程式或資源。它雖然包含了可執行 卻不能單獨執行,而應由相應的應用程式直接或間接呼叫。在 windows 32 中,可以將 dll 標記為共享以導致相...

多道程式設計技術

讓多個計算機問題同時裝入乙個計算機系統的主儲存器的併發執行,這種設計技術稱為 多道程式設計 這種計算機系統稱為 多道程式設計系統 或簡稱 多道系統 多道程式設計概念 所謂多道程式設計是指允許乙個計算機系統的主儲存器同時容納多個使用者程式,這些程式在計算機系統中可以併發執行。設有兩道程式a與b要在同乙...