APP下载

基于嵌入式LUA协同程序分析与设计

2010-05-11段鑫陈宇孙伟力

自动化与信息工程 2010年4期
关键词:嵌入式程序语言

段鑫 陈宇 孙伟力

1 引言

Lua是一种简洁、轻量、可扩展的脚本语言。该语言的设计目的是为了嵌入宿主程序中,从而为应用程序提供灵活的扩展和定制功能。语言采用 clean C编写(所谓 Clean C ,指 ANSI C 和 C++ 共通的一个子集),可移植性强,几乎在所有操作系统和平台上都可以编译和运行,因此也可以运行在目前常见的嵌入式处理器上。通过Lua语言对应用软件的扩展,实现了设备的现场可定制和可扩展能力,为嵌入式产品的应用提供了广阔空间。Lua有内建与操作系统无关的协同模式,在Lua语言中称之为coroutine。对于嵌入式产品的最终用户,其关心的重点在具体应用功能的设计与实现上,采用协同的嵌入式功能扩展程序可以简化开发过程。同时为避免过多的涉及程序设计语言细节,本文在实现协同功能的基础上设计了适合嵌入式产品功能扩展的协同程序实现方法,简化协同编程的实现。

2 协同机制

Coroutine是Lua提供的一种“非对称的协同程序”,即coroutine采用两个函数来控制协同程序的执行,一个用于挂起执行,另一个用于恢复执行。一个非对称协同程序可以看作是从属于它的调用者,二者之间关系非常类似于例程与其调用者之间的关系。只是协同程序不是必须在执行逻辑结束时才返回到调用者,而可以在执行的任何阶段主动挂起并返回调用者,当再次恢复执行时可以从挂起处继续执行。

对于每个协同程序,在创建时都对应一个状态(lua_State)或者称之为线程(thread),状态中保存了协同程序运行的上下文和数据。……

登录APP查看全文

猜你喜欢

嵌入式程序语言
语言是刀
试论我国未决羁押程序的立法完善
搭建基于Qt的嵌入式开发平台
让语言描写摇曳多姿
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
嵌入式软PLC在电镀生产流程控制系统中的应用
创卫暗访程序有待改进
我有我语言
Altera加入嵌入式视觉联盟