91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

揭秘LuatOS Task:多任務(wù)管理的“智能中樞”

合宙LuatOS ? 來(lái)源:合宙LuatOS ? 作者:合宙LuatOS ? 2025-08-28 13:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Task任務(wù)作為LuatOS的核心組成部分,通過(guò)智能化的任務(wù)管理機(jī)制,實(shí)現(xiàn)任務(wù)的創(chuàng)建、調(diào)度與協(xié)同運(yùn)行,讓復(fù)雜應(yīng)用得以高效并行處理,滿足實(shí)時(shí)場(chǎng)景下的嚴(yán)苛需求。

sys核心庫(kù)是LuatOS運(yùn)行框架庫(kù),也是LuatOS應(yīng)用程序運(yùn)行的核心大腦——所有LuatOS應(yīng)用項(xiàng)目都會(huì)使用到sys核心庫(kù)。

sys核心庫(kù)提供了四大類(lèi)功能:

Task任務(wù)

Message消息

Timer定時(shí)器

Run調(diào)度器

本文將分享sys核心庫(kù)Task任務(wù)相關(guān)函數(shù)及其簡(jiǎn)要示例,幫助你更好地理解LuatOS開(kāi)發(fā)基礎(chǔ)。

一、Task:LuatOS任務(wù)功能

Task分為基礎(chǔ)task和高級(jí)task兩種,二者主要區(qū)別如下:

從設(shè)計(jì)原理的角度來(lái)看:

所有的基礎(chǔ)task共享一個(gè)全局消息隊(duì)列;

每個(gè)高級(jí)task都有自己獨(dú)立的消息隊(duì)列,同時(shí)又能使用全局消息隊(duì)列。

從用戶(hù)使用的角度來(lái)看:

基礎(chǔ)task如果阻塞功能使用不當(dāng),可能會(huì)丟失自己應(yīng)該處理的消息;

高級(jí)task如果阻塞功能使用不當(dāng),不會(huì)丟失自己應(yīng)該處理的消息。

雖然從設(shè)計(jì)原理來(lái)看,高級(jí)task比基礎(chǔ)task使用起來(lái)不容易犯錯(cuò);但由于基礎(chǔ)task使用起來(lái)簡(jiǎn)潔,基礎(chǔ)task還是需要掌握,一旦掌握之后,也不容易犯錯(cuò)。

sys核心庫(kù)提供的task管理功能有以下幾種:

基礎(chǔ)task的創(chuàng)建和啟動(dòng)運(yùn)行:sys.taskInit(task_func, ...)

高級(jí)task的創(chuàng)建和啟動(dòng)運(yùn)行:sys.taskInitEx(task_func, task_name, non_targeted_msg_cbfunc, ...)

高級(jí)task管理表資源的釋放:sys.taskDel(task_name)

二、Task函數(shù)詳解

2.1 sys.taskInit(task_func, ...)

1)函數(shù)功能:

創(chuàng)建并且啟動(dòng)運(yùn)行一個(gè)基礎(chǔ)task。

2)注意事項(xiàng):

可以在能夠執(zhí)行到的任意代碼位置使用此函數(shù);在LuatOS中,對(duì)創(chuàng)建的task數(shù)量沒(méi)有特別限制,只要ram夠用,可以一直創(chuàng)建。

3)參數(shù)說(shuō)明:

▼ task_func ▼

參數(shù)含義:task的處理函數(shù);

數(shù)據(jù)類(lèi)型:function;

取值范圍:任意有效的函數(shù)名都行;

是否必選:必須傳入此參數(shù)。

注意事項(xiàng):

特別需要注意傳入的函數(shù)名的作用域,如果使用不當(dāng),很可能會(huì)使用一個(gè)無(wú)效的函數(shù)名。

如下代碼就是一個(gè)典型的錯(cuò)誤示例:

wKgZPGiv5-iACp_RAAC84eO8O24799.png


正確參數(shù)示例:

如下所示,定義了一個(gè)函數(shù)led_task_func,led_task_func就可以做為此參數(shù)傳入。

wKgZO2iv6B2Ab6jhAABD64G4Qvw980.pngwKgZPGiv6L-AcURNAACBV_q0UV8648.png

4)返回值:

local task_object = sys.taskInit(task_func, ...)有一個(gè)返回值task_object

wKgZO2iv6PGAcTvwAABV4LiLftc926.png

5)函數(shù)示例:

wKgZO2iv6ROAM7cCAADgdQi0ZGE233.png

2.2 sys.taskInitEx(task_func, task_name, non_targeted_msg_cbfunc, ...)

1)函數(shù)功能:

創(chuàng)建并且啟動(dòng)運(yùn)行一個(gè)高級(jí)task。

2)注意事項(xiàng):

可以在能夠執(zhí)行到的任意代碼位置使用此函數(shù);高級(jí)task的定義,參考本文第一章節(jié)的描述;在LuatOS中,對(duì)創(chuàng)建的task數(shù)量沒(méi)有特別限制,只要ram夠用,可以一直創(chuàng)建。

3)參數(shù)說(shuō)明:

▼ task_func ▼

參數(shù)含義:task的處理函數(shù);

數(shù)據(jù)類(lèi)型:function;

取值范圍:任意有效的函數(shù)名都行;

是否必選:必須傳入此參數(shù)。

注意事項(xiàng):

特別需要注意傳入的函數(shù)名的作用域,如果使用不當(dāng),很可能會(huì)使用一個(gè)無(wú)效的函數(shù)名。

如下代碼就是一個(gè)典型的錯(cuò)誤示例:

wKgZPGiv6pSAE7lCAADL6udbVBo051.png

正確參數(shù)示例:

如下所示,定義了一個(gè)函數(shù)led_task_func,led_task_func就可以做為此參數(shù)傳入。

wKgZPGiv6rqAHTykAABMRJLLHmM772.pngwKgZO2iv6tOAUT2-AABxR-AOj_M881.png

▼ non_targeted_msg_cbfunc ▼

參數(shù)含義:task的處理函數(shù)中使用:sys.waitMsg(task_name, msg, timeout)接口阻塞等待msg消息時(shí),接收到msg之外的其他消息時(shí)的回調(diào)函數(shù)。

回調(diào)函數(shù)的格式為:

wKgZPGiv6wSAO8cRAAEGh7Oysjw008.png

回調(diào)函數(shù)是在task之外的業(yè)務(wù)邏輯中被執(zhí)行的;

在回調(diào)函數(shù)內(nèi)部無(wú)法使用sys.wait(timeout)、sys.waitUntil(msg, timeout)、sys.waitMsg(task_name, msg, timeout)等必須用在task中的函數(shù)。

數(shù)據(jù)類(lèi)型:function或者nil;

取值范圍:無(wú)特別限制;

是否必選:可選傳入此參數(shù)。

注意事項(xiàng):

特別需要注意傳入的函數(shù)名的作用域,如果使用不當(dāng),很可能會(huì)使用一個(gè)無(wú)效的函數(shù)名。

如下代碼就是一個(gè)典型的錯(cuò)誤示例:

wKgZO2iv6y6AYIkVAAEMISz2SIQ525.png

正確參數(shù)示例:

如下所示,定義了一個(gè)函數(shù)led_task_cbfunc,led_task_cbfunc就可以作為此參數(shù)傳入。

wKgZO2iv61uAALTXAACCJucmYkA905.pngwKgZO2iv63OAQUzjAAB8VUr8mH0753.png

4)返回值:

local task_object = sys.taskInitEx(task_func, task_name, non_targeted_msg_cbfunc, ...)

有一個(gè)返回值task_object。

wKgZO2iv65WAU_cYAABWDYO2oIM509.png

5)函數(shù)示例:

wKgZO2iv67-AEbufAAIoptU-P4E091.png

2.3 sys.taskDel(task_name)

1)函數(shù)功能:

刪除一個(gè)高級(jí)task對(duì)應(yīng)的管理表資源。

2)注意事項(xiàng):

可以在能夠執(zhí)行到的任意代碼位置使用此函數(shù);高級(jí)task的定義,參考本文第一章節(jié)的描述。

此函數(shù)僅僅刪除一個(gè)高級(jí)task對(duì)應(yīng)的管理表資源,并不能刪除一個(gè)高級(jí)task。

一般來(lái)說(shuō),只有如下一個(gè)場(chǎng)景需要用到這個(gè)函數(shù):

在高級(jí)task的任務(wù)處理函數(shù)中,如果函數(shù)執(zhí)行結(jié)束,需要退出,在退出前執(zhí)行sys.taskDel(task_name);

高級(jí)task的任務(wù)處理函數(shù)執(zhí)行結(jié)束退出后,這個(gè)task就消亡了,消亡后這個(gè)task_name綁定的資源也沒(méi)用處了。

所以在退出之前執(zhí)行sys.taskDel(task_name),釋放資源,防止出現(xiàn)內(nèi)存泄漏。

3)參數(shù)說(shuō)明:

wKgZPGiv6-qADf8_AABv_0xP-BY051.png

4)返回值:nil

5)函數(shù)示例:

以下代碼片段演示一個(gè)task的處理函數(shù)在函數(shù)末尾退出前,執(zhí)行sys.taskDel函數(shù)的場(chǎng)景:

wKgZO2iv7A2AApTgAAEf6p3_3V0298.png


以下代碼片段演示一個(gè)task的處理函數(shù)在兩種場(chǎng)景下,執(zhí)行sys.taskDel函數(shù):

在中途的一個(gè)分支執(zhí)行return語(yǔ)句,退出處理函數(shù)前,執(zhí)行sys.taskDel函數(shù);

處理函數(shù)末尾退出前,執(zhí)行sys.taskDel函數(shù)。

wKgZO2iv7EaAO3MsAAGK-19hiis591.png


今天的內(nèi)容就分享到這里了!

更多開(kāi)發(fā)資料,詳見(jiàn)資料中心

—— docs.openluat.com


審核編輯 黃宇

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

    關(guān)注

    0

    文章

    156

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    LuatOS 框架的嵌入式系統(tǒng)架構(gòu)設(shè)計(jì)原理

    API 接口,使開(kāi)發(fā)者能用高級(jí)語(yǔ)言快速實(shí)現(xiàn)底層控制。這一設(shè)計(jì)顯著提升了開(kāi)發(fā)效率,同時(shí)保持了良好的運(yùn)行性能。 一、LuatOS框架中的概念 ? 在LuatOS中,有三個(gè)核心概念和一個(gè)調(diào)度器: 1、三個(gè)核心概念:任務(wù)
    的頭像 發(fā)表于 02-03 15:57 ?105次閱讀
    <b class='flag-5'>LuatOS</b> 框架的嵌入式系統(tǒng)架構(gòu)設(shè)計(jì)原理

    LuatOS 系統(tǒng)框架的模塊化設(shè)計(jì)原理

    裁剪功能,適應(yīng)不同規(guī)模的嵌入式項(xiàng)目需求。 一、LuatOS框架中的概念 ? 在LuatOS中,有三個(gè)核心概念和一個(gè)調(diào)度器: 1、三個(gè)核心概念:任務(wù)task),消息(message),
    的頭像 發(fā)表于 02-03 15:56 ?119次閱讀
    <b class='flag-5'>LuatOS</b> 系統(tǒng)框架的模塊化設(shè)計(jì)原理

    LuatOS框架的使用(上)

    環(huán)境搭建、模塊調(diào)用到任務(wù)調(diào)度,全面解析其開(kāi)發(fā)流程與最佳實(shí)踐。 本篇文章主要講LuatOS 框架;LuatOS 框架是整個(gè) LuatOS 開(kāi)發(fā)中最基礎(chǔ)也是最核心的內(nèi)容,無(wú)論使用
    的頭像 發(fā)表于 01-27 19:38 ?156次閱讀
    <b class='flag-5'>LuatOS</b>框架的使用(上)

    LuatOS-Air轉(zhuǎn)LuatOS常見(jiàn)故障排查手冊(cè)

    當(dāng)LuatOS-Air腳本在LuatOS環(huán)境中運(yùn)行失敗,問(wèn)題往往集中在幾個(gè)關(guān)鍵模塊:任務(wù)調(diào)度、外設(shè)驅(qū)動(dòng)、網(wǎng)絡(luò)配置和固件版本匹配。本文以故障排查的邏輯為主線,列出常見(jiàn)報(bào)錯(cuò)現(xiàn)象、可能原因及快速修復(fù)
    的頭像 發(fā)表于 01-13 19:20 ?134次閱讀
    <b class='flag-5'>LuatOS</b>-Air轉(zhuǎn)<b class='flag-5'>LuatOS</b>常見(jiàn)故障排查手冊(cè)

    一文說(shuō)透了如何實(shí)現(xiàn)單片機(jī)的多任務(wù)并發(fā)!

    在嵌入式系統(tǒng)開(kāi)發(fā)中,多任務(wù)并發(fā)是非常常見(jiàn)的,對(duì)于處理復(fù)雜的應(yīng)用場(chǎng)景、提升系統(tǒng)的并發(fā)能力、提高系統(tǒng)的實(shí)時(shí)性等方面都有很大好處。在單片機(jī)中實(shí)現(xiàn)多任務(wù)并發(fā)是非常重要的,本文將為大家介紹如何在單片機(jī)中實(shí)現(xiàn)
    發(fā)表于 01-06 06:46

    什么是嵌入式操作系統(tǒng)?

    、嵌入式 OS 的核心作用(嵌入式開(kāi)發(fā)中最實(shí)用的 3 個(gè)功能) 1. 多任務(wù)管理: 裸機(jī)開(kāi)發(fā)的痛點(diǎn):所有功能寫(xiě)在一個(gè)main函數(shù)的循環(huán)里,代碼臃腫、邏輯混亂,一個(gè)功能出問(wèn)題會(huì)影響整個(gè)系統(tǒng); RTOS
    發(fā)表于 12-09 10:33

    多任務(wù)系統(tǒng)中,如何平衡任務(wù)調(diào)度以防止因高負(fù)載導(dǎo)致的再次進(jìn)入低功耗模式的延遲?

    多任務(wù)系統(tǒng)中,如何平衡任務(wù)調(diào)度以防止因高負(fù)載導(dǎo)致的再次進(jìn)入低功耗模式的延遲?
    發(fā)表于 12-04 06:37

    嵌入式系統(tǒng)軟件架構(gòu)通常劃分

    嵌入式系統(tǒng)的軟件架構(gòu)通常劃分如下分層設(shè)計(jì): 應(yīng)用層:環(huán)境溫度監(jiān)測(cè)、報(bào)警觸發(fā)邏輯。 中間件層:支持MQTT協(xié)議的網(wǎng)絡(luò)通信模塊,用于將溫度數(shù)據(jù)上傳至云端。 操作系統(tǒng)層:基于FreeRTOS進(jìn)行多任務(wù)管理
    發(fā)表于 12-01 07:20

    愛(ài)普科技PSRAM加速wisun無(wú)線模塊多任務(wù)處理

    愛(ài)普科技256Mb PSRAM(如APS256XXN-OBR-BG)為WiSUN無(wú)線模塊提供高速數(shù)據(jù)緩存與臨時(shí)存儲(chǔ)解決方案,其166MHz速率、1.8V低功耗及小尺寸封裝顯著提升模塊在智能電網(wǎng)、工業(yè)自動(dòng)化中的多任務(wù)處理能力和穩(wěn)定性。
    的頭像 發(fā)表于 10-14 09:25 ?382次閱讀
    愛(ài)普科技PSRAM加速wisun無(wú)線模塊<b class='flag-5'>多任務(wù)</b>處理

    教程來(lái)啦!LuatOS中的消息通信機(jī)制詳解及其應(yīng)用場(chǎng)景

    。 LuatOS 的消息機(jī)制是其多任務(wù)協(xié)作和事件驅(qū)動(dòng)編程的核心部分,主要通過(guò)?sys?核心庫(kù)實(shí)現(xiàn)。 消息機(jī)制包括消息的發(fā)送、接收、訂閱,以及系統(tǒng)消息的定義和使用,下面分別詳細(xì)描述其原理和使用方法。 一、LuatOS 消息機(jī)制的原
    的頭像 發(fā)表于 09-26 18:59 ?425次閱讀
    教程來(lái)啦!<b class='flag-5'>LuatOS</b>中的消息通信機(jī)制詳解及其應(yīng)用場(chǎng)景

    中樞-外周-中樞閉環(huán)康復(fù)是正解嗎

    HUIYINGCPC閉環(huán)康復(fù)概述CPC(中樞-外周-中樞)閉環(huán)康復(fù)(圖1)是一種整合中樞干預(yù)(如tDCS、TMS、BCI)與外周干預(yù)(如任務(wù)導(dǎo)向訓(xùn)練、功能性電刺激)的康復(fù)模型,旨在通過(guò)
    的頭像 發(fā)表于 09-13 16:04 ?1133次閱讀
    <b class='flag-5'>中樞</b>-外周-<b class='flag-5'>中樞</b>閉環(huán)康復(fù)是正解嗎

    Task任務(wù)LuatOS實(shí)現(xiàn)“任務(wù)級(jí)并發(fā)”的核心引擎

    Task任務(wù)通過(guò)其強(qiáng)大的并發(fā)處理能力,使LuatOS能夠在單線程環(huán)境中模擬多線程執(zhí)行,通過(guò)協(xié)程的掛起與恢復(fù)機(jī)制,實(shí)現(xiàn)任務(wù)級(jí)的并行操作,顯著提升系統(tǒng)效能。 sys核心庫(kù)是
    的頭像 發(fā)表于 08-28 13:49 ?509次閱讀
    <b class='flag-5'>Task</b><b class='flag-5'>任務(wù)</b>:<b class='flag-5'>LuatOS</b>實(shí)現(xiàn)“<b class='flag-5'>任務(wù)</b>級(jí)并發(fā)”的核心引擎

    快速入門(mén)——LuatOS:sys庫(kù)多任務(wù)管理實(shí)戰(zhàn)攻略!

    在嵌入式開(kāi)發(fā)中,多任務(wù)管理是提升系統(tǒng)效率的關(guān)鍵。本教程專(zhuān)為快速入門(mén)設(shè)計(jì),聚焦LuatOS的sys庫(kù),通過(guò)實(shí)戰(zhàn)案例帶你快速掌握多任務(wù)創(chuàng)建、調(diào)度與同步技巧。無(wú)論你是零基礎(chǔ)新手還是希望快速提升開(kāi)發(fā)效率
    的頭像 發(fā)表于 05-29 14:36 ?821次閱讀
    快速入門(mén)——<b class='flag-5'>LuatOS</b>:sys庫(kù)<b class='flag-5'>多任務(wù)管理</b>實(shí)戰(zhàn)攻略!

    揭秘LuatOS:實(shí)時(shí)操作系統(tǒng)RTOS核心庫(kù)的關(guān)鍵技術(shù)剖析!

    為滿足實(shí)時(shí)控制場(chǎng)景的嚴(yán)苛需求,LuatOS核心庫(kù)采用搶占式調(diào)度策略,確保高優(yōu)先級(jí)任務(wù)即時(shí)響應(yīng)。通過(guò)靜態(tài)內(nèi)存分配和零拷貝通信機(jī)制,系統(tǒng)不僅避免了動(dòng)態(tài)內(nèi)存碎片問(wèn)題,還大幅提升了任務(wù)間數(shù)據(jù)交換效率,適用于
    的頭像 發(fā)表于 05-21 16:02 ?663次閱讀
    <b class='flag-5'>揭秘</b><b class='flag-5'>LuatOS</b>:實(shí)時(shí)操作系統(tǒng)RTOS核心庫(kù)的關(guān)鍵技術(shù)剖析!

    LuatOS協(xié)程深度解析:小白也能10分鐘學(xué)會(huì),代碼效率直接起飛!

    嵌入式開(kāi)發(fā)如何兼顧效率與簡(jiǎn)潔?LuatOS協(xié)程給出完美答案!它用類(lèi)線程的語(yǔ)法封裝異步邏輯,讓多任務(wù)開(kāi)發(fā)像單線程一樣簡(jiǎn)單。本文用圖文并茂的方式拆解協(xié)程原理,10分鐘帶你輕松入門(mén)! ? LuatOS協(xié)程
    的頭像 發(fā)表于 04-10 15:23 ?621次閱讀
    <b class='flag-5'>LuatOS</b>協(xié)程深度解析:小白也能10分鐘學(xué)會(huì),代碼效率直接起飛!