消息定义¶
一、单task应用¶
core在启动过程中,会创建一系列的task,例如音频、协议栈、串口等
其中有一个task,用来加载Lua虚拟机,解析运行用户编写的Lua脚本,这个task,我们称之为Lua virtual task(另外在Lua脚本中,利用Lua的协程特性封装了一个sys.taskInit接口,借用了task的概念,实际上并不是真正的task)
脚本中的所有应用,都运行在Lua virtual machine task中,属于单task应用
二、真假task、内外消息队列¶
一个真task¶
core中的Lua Virtual machine
FreeRTOS中的任务调度器抢占式调度:FreeRTOS有一个定期的时钟节拍(通常是MS级),每个节拍中断释放时,抢占当前优先级低的任务的CPU,让优先级最高的就绪任务执行
“外部”消息队列:core中各task间数据通信的一种手段
一种假task(协程)¶
script中的Lua语言的协程:sys.taskInit
由Lua虚拟机非抢占式调度:当一个协程正在运行时,不能在外部终止他; 只能自己把自己挂起或者终止
“内部”消息队列:在Lua脚本中合宙自定义的一套内部消息驱动机制