CINXE.COM
eLua - Overview
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>eLua - Overview</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="subject" content="eLua - Lua for the embedded world" /> <meta name="Description" content="eLua stands for Embedded Lua and the project aims to offer the full set of features of the Lua Programming Language to the embedded world." /> <meta name="Keywords" content="eLua, lua, embedded, ARM, Cortex-M3, AVR32, ARM7TDMI, microcontroller, mcu, programming, electronics, tools, development" /> <link href="menu.css" rel="stylesheet" type="text/css" /> <link href="style1.css" rel="stylesheet" type="text/css" /> <link REL="SHORTCUT ICON" HREF="images/eLua_16x16.ico"> <script type="text/javascript"><!--//--><![CDATA[//><!-- sfHover = function() { var sfEls = document.getElementById("nav").getElementsByTagName("LI"); for (var i=0; i<sfEls.length; i++) { sfEls[i].onmouseover=function() { this.className+=" sfhover"; } sfEls[i].onmouseout=function() { this.className=this.className.replace(new RegExp(" sfhover\\b"), ""); } } } if (window.attachEvent) window.attachEvent("onload", sfHover); //--><!]]></script> </head> <body> <form method="get" action="http://www.google.com/search"> <div id="logo"> <table border="0" style="width: 100%;" cellspacing="0" cellpadding="0"> <tr> <td valign="middle" style="width: 90px;"><img src="images/eLuaLogo.png" alt="eLua logo" class="logo_elua" /></td> <td class="header_title" valign="middle">eLua - Embedded Lua</td> <td style="width: 280px;" align="center" valign="middle"> <table border="0" cellspacing="0" cellpadding="0"> <tr style="height: 40px;"> <td colspan="2"> <input type="hidden" name="ie" value="utf-8" /> <input type="hidden" name="oe" value="utf-8" /> <input type="text" name="q" size="21" maxlength="255" value="" /> </td> <td style="padding-left: 5px;"> <input type="submit" name="btnG" value="Search" style="height: 21px; font-size: x-small;" /> <input type="hidden" name="domains" value="http://www.eluaproject.net" /> <input type="hidden" name="sitesearch" value="http://www.eluaproject.net" /> </td> </tr> <tr> <td align="center"><h6>Language:</h6></td> <td align="center"><h6 class="selected"><img src="images/En.jpg" alt="en" style="border: 0;" /></h6></td> <td align="center"> </td> </tr> </table> </td> </tr> </table> </div> </form> <div id="nav"> <ul id="menu"> <li class="sep">eLua project</li> <li><a class="current" href="en_overview.html" rel="s_2_overview"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Overview</a> <ul id="s_2_overview"> <li><a href="en_overview.html#whatis">What is eLua?</a></li> <li><a href="en_overview.html#features">Features</a></li> <li><a href="en_overview.html#audience">Audience</a></li> <li><a href="en_overview.html#authors">Authors</a></li> <li><a href="en_overview.html#contacts">Contacts</a></li> <li><a href="en_overview.html#license">License</a></li> </ul> </li> <li><a href="en_comunity.html" rel="s_3_comunity"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Community</a> <ul id="s_3_comunity"> <li><a href="en_comunity.html#lists">Discussion Lists</a></li> <li><a href="en_comunity.html#forums">Forums</a></li> <li><a href="en_comunity.html#irc">IRC</a></li> <li><a href="en_comunity.html#twitter">Twitter</a></li> <li><a href="en_comunity.html#userswiki">Wiki</a></li> <li><a href="en_comunity.html#credits">Credits</a></li> <li><a href="en_comunity.html#donations">Donations</a></li> </ul> </li> <li><a href="en_news.html">News</a> </li> <li><a href="en_media.html">Media</a> </li> <li><a href="http://wiki.eluaproject.net">eLua Wiki</a> </li> <li><a href="http://builder.eluaproject.net">eLua Web builder</a> </li> <li><a href="http://tracker.eluaproject.net">eLua bug tracker</a> </li> <li><a href="en_status.html" rel="s_9_status"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Status</a> <ul id="s_9_status"> <li><a href="en_status.html">Supported platforms</a></li> <li><a href="en_status.html#plat_modules">Modules per platform table</a></li> <li><a href="en_status.html#gen_modules">Modules overview status</a></li> <li><a href="en_status.html#roadmap">Roadmap</a></li> </ul> </li> <li class="sep">Using eLua</li> <li><a href="en_downloads.html" rel="s_11_downloads"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Downloads</a> <ul id="s_11_downloads"> <li><a href="en_downloads.html#binaries">Binaries</a></li> <li><a href="en_downloads.html#source"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Source code</a> <ul> <li><a href="en_downloads.html#official">Official releases</a></li> <li><a href="en_downloads.html#gitpublic">Bleeding edge (Git)</a></li> <li><a href="en_downloads.html#gitdev">Developers</a></li> </ul></li> <li><a href="en_dl_old.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Old versions</a> <ul> <li><a href="en_dl_old.html#v070">0.7</a></li> <li><a href="en_dl_old.html#v060">0.6</a></li> <li><a href="en_dl_old.html#v050">0.5</a></li> <li><a href="en_dl_old.html#v041">0.4.1</a></li> <li><a href="en_dl_old.html#v04">0.4</a></li> <li><a href="en_dl_old.html#v03">0.3</a></li> <li><a href="en_dl_old.html#v02">0.2</a></li> <li><a href="en_dl_old.html#v01">0.1</a></li> <li><a href="en_versionhistory.html">Version history</a></li> </ul></li> </ul> </li> <li><a href="en_using.html" rel="s_12_using"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Generic info</a> <ul id="s_12_using"> <li><a href="en_using.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Using eLua</a> <ul> <li><a href="en_using.html#uart">Over UART</a></li> <li><a href="en_using.html#tcpip">Over TCP/IP</a></li> <li><a href="en_using.html#pc">On PC</a></li> <li><a href="en_using.html#shell">The shell</a></li> <li><a href="en_linenoise.html">Linenoise</a></li> <li><a href="en_using.html#cross">Cross-compiling</a></li> <li><a href="en_using.html#rpc">LuaRPC</a></li> <li><a href="en_sermux.html">The serial multiplexer</a></li> </ul></li> <li><a href="en_examples.html">Code examples</a></li> <li><a href="en_faq.html">FAQ</a></li> <li><a href="en_filesystems.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />eLua file systems</a> <ul> <li><a href="en_arch_romfs.html">Read-Only FS in MCU Flash</a></li> <li><a href="en_fatfs.html">R/W FAT FS in SD/MMC Cards</a></li> <li><a href="en_arch_rfs.html">Remote file system (RFS)</a></li> </ul></li> <li><a href="en_inthandlers.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />eLua interrupt handlers</a> <ul> <li><a href="en_inthandlers.html">In Lua</a></li> <li><a href="en_inthandlers.html#cints">In C</a></li> </ul></li> <li><a href="en_building.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Building eLua</a> <ul> <li><a href="en_building_unix.html">Building eLua in Linux</a></li> <li><a href="en_building_win.html">Building eLua in Windows</a></li> </ul></li> </ul> </li> <li><a href="en_installing.html" rel="s_13_installing"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Platform info</a> <ul id="s_13_installing"> <li><a href="en_installing_at91sam7x.html">AT91SAM7x</a></li> <li><a href="en_installing_avr32.html">AVR32</a></li> <li><a href="en_installing_i386.html">i386</a></li> <li><a href="en_installing_lm3s.html">LM3S</a></li> <li><a href="en_installing_lpc2888.html">LPC2888</a></li> <li><a href="en_installing_str7.html">STR7</a></li> <li><a href="en_installing_str9.html">STR9</a></li> <li><a href="en_installing_stm32.html">STM32</a></li> <li><a href="en_installing_lpc2468.html">LPC2468</a></li> </ul> </li> <li class="sep">eLua internals</li> <li><a href="en_arch_overview.html" rel="s_15_arch_overview"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Overview</a> <ul id="s_15_arch_overview"> <li><a href="en_arch_overview.html#structure">eLua's Architecture</a></li> <li><a href="en_arch_overview.html#common">Common code</a></li> <li><a href="en_arch_overview.html#platform">Interface architecture</a></li> <li><a href="en_arch_overview.html#boot">Booting eLua</a></li> <li><a href="en_arch_overview.html#platforms">Platforms and ports</a></li> <li><a href="en_arch_newport.html">Adding a new port</a></li> <li><a href="en_arch_ints.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Implementing interrupts</a> <ul> <li><a href="en_arch_ints.html#intlist">Interrupt list</a></li> </ul></li> </ul> </li> <li><a href="en_arch_platform.html" rel="s_16_arch_platform"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Platform interface</a> <ul id="s_16_arch_platform"> <li><a href="en_arch_platform_adc.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />ADC</a> <ul> <li><a href="en_arch_platform_adc.html#overview">Overview</a></li> <li><a href="en_arch_platform_adc.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_arch_platform_adc.html#platform_adc_exists">platform_adc_exists</a></li> <li><a href="en_arch_platform_adc.html#platform_adc_op">platform_adc_op</a></li> <li><a href="en_arch_platform_adc.html#platform_adc_check_timer_id">platform_adc_check_timer_id</a></li> </ul></li> </ul></li> <li><a href="en_arch_platform_can.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />CAN</a> <ul> <li><a href="en_arch_platform_can.html#overview">Overview</a></li> <li><a href="en_arch_platform_can.html#structures"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Data structures</a> <ul> <li><a href="en_arch_platform_can.html#can_id_types">CAN ID types</a></li> </ul></li> <li><a href="en_arch_platform_can.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_arch_platform_can.html#platform_can_exists">platform_can_exists</a></li> <li><a href="en_arch_platform_can.html#platform_can_setup">platform_can_setup</a></li> <li><a href="en_arch_platform_can.html#platform_can_send">platform_can_send</a></li> <li><a href="en_arch_platform_can.html#platform_can_recv">platform_can_recv</a></li> </ul></li> </ul></li> <li><a href="en_arch_platform_cpu.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />CPU</a> <ul> <li><a href="en_arch_platform_cpu.html#overview">Overview</a></li> <li><a href="en_arch_platform_cpu.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_arch_platform_cpu.html#platform_cpu_set_global_interrupts">platform_cpu_set_global_interrupts</a></li> <li><a href="en_arch_platform_cpu.html#platform_cpu_get_global_interrupts">platform_cpu_get_global_interrupts</a></li> <li><a href="en_arch_platform_cpu.html#platform_cpu_set_interrupt">platform_cpu_set_interrupt</a></li> <li><a href="en_arch_platform_cpu.html#platform_cpu_get_interrupt">platform_cpu_get_interrupt</a></li> <li><a href="en_arch_platform_cpu.html#platform_cpu_get_interrupt_flag">platform_cpu_get_interrupt_flag</a></li> <li><a href="en_arch_platform_cpu.html#platform_cpu_get_frequency">platform_cpu_get_frequency</a></li> </ul></li> </ul></li> <li><a href="en_arch_platform_eth.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Ethernet</a> <ul> <li><a href="en_arch_platform_eth.html#overview">Overview</a></li> <li><a href="en_arch_platform_eth.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_arch_platform_eth.html#platform_eth_send_packet">platform_eth_send_packet</a></li> <li><a href="en_arch_platform_eth.html#platform_eth_get_packet_nb">platform_eth_get_packet_nb</a></li> <li><a href="en_arch_platform_eth.html#platform_eth_force_interrupt">platform_eth_force_interrupt</a></li> <li><a href="en_arch_platform_eth.html#platform_eth_get_elapsed_time">platform_eth_get_elapsed_time</a></li> </ul></li> </ul></li> <li><a href="en_arch_platform_i2c.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />I2C</a> <ul> <li><a href="en_arch_platform_i2c.html#overview">Overview</a></li> <li><a href="en_arch_platform_i2c.html#structures"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Data structures</a> <ul> <li><a href="en_arch_platform_i2c.html#i2c_speed">I2C speed</a></li> <li><a href="en_arch_platform_i2c.html#i2c_transfer_direction">I2C transfer direction</a></li> </ul></li> <li><a href="en_arch_platform_i2c.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_arch_platform_i2c.html#platform_i2c_exists">platform_i2c_exists</a></li> <li><a href="en_arch_platform_i2c.html#platform_i2c_setup">platform_i2c_setup</a></li> <li><a href="en_arch_platform_i2c.html#platform_i2c_send_start">platform_i2c_send_start</a></li> <li><a href="en_arch_platform_i2c.html#platform_i2c_send_stop">platform_i2c_send_stop</a></li> <li><a href="en_arch_platform_i2c.html#platform_i2c_send_address">platform_i2c_send_address</a></li> <li><a href="en_arch_platform_i2c.html#platform_i2c_send_byte">platform_i2c_send_byte</a></li> <li><a href="en_arch_platform_i2c.html#platform_i2c_recv_byte">platform_i2c_recv_byte</a></li> </ul></li> </ul></li> <li><a href="en_arch_platform_ll.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Low-level</a> <ul> <li><a href="en_arch_platform_ll.html#overview">Overview</a></li> <li><a href="en_arch_platform_ll.html#structures"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Data structures</a> <ul> <li><a href="en_arch_platform_ll.html#status_codes">Status codes</a></li> </ul></li> <li><a href="en_arch_platform_ll.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_arch_platform_ll.html#platform_init">platform_init</a></li> <li><a href="en_arch_platform_ll.html#platform_get_last_free_ram">platform_get_last_free_ram</a></li> <li><a href="en_arch_platform_ll.html#platform_get_last_free_ram">platform_get_last_free_ram</a></li> </ul></li> </ul></li> <li><a href="en_arch_platform_pio.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />PIO</a> <ul> <li><a href="en_arch_platform_pio.html#overview">Overview</a></li> <li><a href="en_arch_platform_pio.html#structures"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Data structures</a> <ul> <li><a href="en_arch_platform_pio.html#pio_operations">PIO operations</a></li> <li><a href="en_arch_platform_pio.html#pio_data_type">PIO data type</a></li> </ul></li> <li><a href="en_arch_platform_pio.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_arch_platform_pio.html#platform_pio_has_port">platform_pio_has_port</a></li> <li><a href="en_arch_platform_pio.html#platform_pio_has_pin">platform_pio_has_pin</a></li> <li><a href="en_arch_platform_pio.html#platform_pio_get_prefix">platform_pio_get_prefix</a></li> <li><a href="en_arch_platform_pio.html#platform_pio_op">platform_pio_op</a></li> </ul></li> </ul></li> <li><a href="en_arch_platform_pwm.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />PWM</a> <ul> <li><a href="en_arch_platform_pwm.html#overview">Overview</a></li> <li><a href="en_arch_platform_pwm.html#structures"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Data structures</a> <ul> <li><a href="en_arch_platform_pwm.html#pwm_operations">PWM operations</a></li> </ul></li> <li><a href="en_arch_platform_pwm.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_arch_platform_pwm.html#platform_pwm_exists">platform_pwm_exists</a></li> <li><a href="en_arch_platform_pwm.html#platform_pwm_setup">platform_pwm_setup</a></li> <li><a href="en_arch_platform_pwm.html#platform_pwm_op">platform_pwm_op</a></li> </ul></li> </ul></li> <li><a href="en_arch_platform_spi.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />SPI</a> <ul> <li><a href="en_arch_platform_spi.html#overview">Overview</a></li> <li><a href="en_arch_platform_spi.html#structures"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Data structures</a> <ul> <li><a href="en_arch_platform_spi.html#chip_select">Chip select</a></li> <li><a href="en_arch_platform_spi.html#spi_mode">SPI mode</a></li> <li><a href="en_arch_platform_spi.html#spi_data_type">SPI data type</a></li> </ul></li> <li><a href="en_arch_platform_spi.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_arch_platform_spi.html#platform_spi_exists">platform_spi_exists</a></li> <li><a href="en_arch_platform_spi.html#platform_spi_setup">platform_spi_setup</a></li> <li><a href="en_arch_platform_spi.html#platform_spi_send_recv">platform_spi_send_recv</a></li> <li><a href="en_arch_platform_spi.html#platform_spi_select">platform_spi_select</a></li> </ul></li> </ul></li> <li><a href="en_arch_platform_timers.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Timers</a> <ul> <li><a href="en_arch_platform_timers.html#overview">Overview</a></li> <li><a href="en_arch_platform_timers.html#structures"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Data structures</a> <ul> <li><a href="en_arch_platform_timers.html#timer_data_type">Timer data type</a></li> <li><a href="en_arch_platform_timers.html#timer_operations">Timer operations</a></li> </ul></li> <li><a href="en_arch_platform_timers.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_arch_platform_timers.html#platform_timer_exists">platform_timer_exists</a></li> <li><a href="en_arch_platform_timers.html#platform_timer_delay">platform_timer_delay</a></li> <li><a href="en_arch_platform_timers.html#platform_s_timer_delay">platform_s_timer_delay</a></li> <li><a href="en_arch_platform_timers.html#platform_timer_op">platform_timer_op</a></li> <li><a href="en_arch_platform_timers.html#platform_s_timer_op">platform_s_timer_op</a></li> <li><a href="en_arch_platform_timers.html#platform_timer_get_diff_us">platform_timer_get_diff_us</a></li> <li><a href="en_arch_platform_timers.html#platform_timer_set_match_int">platform_timer_set_match_int</a></li> </ul></li> <li><a href="en_arch_platform_timers.html#virtual_timers">Virtual timers</a></li> </ul></li> <li><a href="en_arch_platform_uart.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />UART</a> <ul> <li><a href="en_arch_platform_uart.html#overview">Overview</a></li> <li><a href="en_arch_platform_uart.html#structures"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Data structures</a> <ul> <li><a href="en_arch_platform_uart.html#uart_parity">UART parity</a></li> <li><a href="en_arch_platform_uart.html#uart_stop_bits">UART stop bits</a></li> <li><a href="en_arch_platform_uart.html#uart_timeout">UART timeout</a></li> <li><a href="en_arch_platform_uart.html#virtual_uart_ids">Virtual UART IDs</a></li> <li><a href="en_arch_platform_uart.html#flow_control_type">Flow control type</a></li> </ul></li> <li><a href="en_arch_platform_uart.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_arch_platform_uart.html#platform_uart_exists">platform_uart_exists</a></li> <li><a href="en_arch_platform_uart.html#platform_uart_setup">platform_uart_setup</a></li> <li><a href="en_arch_platform_uart.html#platform_uart_send">platform_uart_send</a></li> <li><a href="en_arch_platform_uart.html#platform_s_uart_send">platform_s_uart_send</a></li> <li><a href="en_arch_platform_uart.html#platform_uart_recv">platform_uart_recv</a></li> <li><a href="en_arch_platform_uart.html#platform_s_uart_recv">platform_s_uart_recv</a></li> <li><a href="en_arch_platform_uart.html#platform_uart_set_buffer">platform_uart_set_buffer</a></li> <li><a href="en_arch_platform_uart.html#platform_uart_set_flow_control">platform_uart_set_flow_control</a></li> <li><a href="en_arch_platform_uart.html#platform_s_uart_set_flow_control">platform_s_uart_set_flow_control</a></li> </ul></li> </ul></li> </ul> </li> <li><a href="#" rel="s_17_"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />More information</a> <ul id="s_17_"> <li><a href="en_arch_con_term.html">Consoles and terminals</a></li> <li><a href="en_arch_tcpip.html">TCP/IP in eLua</a></li> <li><a href="en_arch_ltr.html">LTR (Lua Tiny RAM) in eLua</a></li> <li><a href="en_elua_egc.html">EGC (Emergency GC) in eLua</a></li> <li><a href="en_tut_bootpc.html">Booting on a PC</a></li> <li><a href="en_tut_bootstick.html">Booting from a PenDrive</a></li> <li><a href="en_tut_openocd.html">Using OpenOCD</a></li> <li><a href="en_toolchains.html">eLua toolchains</a></li> <li><a href="en_tchainbuild.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Building toolchains</a> <ul> <li><a href="en_tc_arm.html">ARM7 and ARM9</a></li> <li><a href="en_tc_cortex.html">ARM Cortex-M3</a></li> <li><a href="en_tc_386.html">i386</a></li> </ul></li> <li><a href="en_arch_coding.html">eLua coding style</a></li> </ul> </li> <li class="sep">Reference Manual</li> <li><a href="en_refman_gen.html" rel="s_19_refman_gen"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Generic modules</a> <ul id="s_19_refman_gen"> <li><a href="en_refman_gen_adc.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />adc</a> <ul> <li><a href="en_refman_gen_adc.html#overview">Overview</a></li> <li><a href="en_refman_gen_adc.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_gen_adc.html#adc.sample">adc.sample</a></li> <li><a href="en_refman_gen_adc.html#adc.getsample">adc.getsample</a></li> <li><a href="en_refman_gen_adc.html#adc.getsamples">adc.getsamples</a></li> <li><a href="en_refman_gen_adc.html#adc.insertsamples">adc.insertsamples</a></li> <li><a href="en_refman_gen_adc.html#adc.maxval">adc.maxval</a></li> <li><a href="en_refman_gen_adc.html#adc.setclock">adc.setclock</a></li> <li><a href="en_refman_gen_adc.html#adc.isdone">adc.isdone</a></li> <li><a href="en_refman_gen_adc.html#adc.setblocking">adc.setblocking</a></li> <li><a href="en_refman_gen_adc.html#adc.setsmoothing">adc.setsmoothing</a></li> </ul></li> </ul></li> <li><a href="en_refman_gen_bit.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />bit</a> <ul> <li><a href="en_refman_gen_bit.html#overview">Overview</a></li> <li><a href="en_refman_gen_bit.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_gen_bit.html#bit.bit">bit.bit</a></li> <li><a href="en_refman_gen_bit.html#bit.isset">bit.isset</a></li> <li><a href="en_refman_gen_bit.html#bit.isclear">bit.isclear</a></li> <li><a href="en_refman_gen_bit.html#bit.set">bit.set</a></li> <li><a href="en_refman_gen_bit.html#bit.clear">bit.clear</a></li> <li><a href="en_refman_gen_bit.html#bit.bnot">bit.bnot</a></li> <li><a href="en_refman_gen_bit.html#bit.band">bit.band</a></li> <li><a href="en_refman_gen_bit.html#bit.bor">bit.bor</a></li> <li><a href="en_refman_gen_bit.html#bit.bxor">bit.bxor</a></li> <li><a href="en_refman_gen_bit.html#bit.lshift">bit.lshift</a></li> <li><a href="en_refman_gen_bit.html#bit.rshift">bit.rshift</a></li> <li><a href="en_refman_gen_bit.html#bit.arshift">bit.arshift</a></li> </ul></li> </ul></li> <li><a href="en_refman_gen_can.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />can</a> <ul> <li><a href="en_refman_gen_can.html#overview">Overview</a></li> <li><a href="en_refman_gen_can.html#structures"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Data structures</a> <ul> <li><a href="en_refman_gen_can.html#can_id_types">CAN ID types</a></li> </ul></li> <li><a href="en_refman_gen_can.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_gen_can.html#can.setup">can.setup</a></li> <li><a href="en_refman_gen_can.html#can.send">can.send</a></li> <li><a href="en_refman_gen_can.html#can.recv">can.recv</a></li> </ul></li> </ul></li> <li><a href="en_refman_gen_cpu.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />cpu</a> <ul> <li><a href="en_refman_gen_cpu.html#overview">Overview</a></li> <li><a href="en_refman_gen_cpu.html#structures"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Data structures</a> <ul> <li><a href="en_refman_gen_cpu.html#cpu_constants">CPU constants</a></li> </ul></li> <li><a href="en_refman_gen_cpu.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_gen_cpu.html#cpu.w32">cpu.w32</a></li> <li><a href="en_refman_gen_cpu.html#cpu.r32">cpu.r32</a></li> <li><a href="en_refman_gen_cpu.html#cpu.w16">cpu.w16</a></li> <li><a href="en_refman_gen_cpu.html#cpu.r16">cpu.r16</a></li> <li><a href="en_refman_gen_cpu.html#cpu.w8">cpu.w8</a></li> <li><a href="en_refman_gen_cpu.html#cpu.r8">cpu.r8</a></li> <li><a href="en_refman_gen_cpu.html#cpu.cli">cpu.cli</a></li> <li><a href="en_refman_gen_cpu.html#cpu.sei">cpu.sei</a></li> <li><a href="en_refman_gen_cpu.html#cpu.clock">cpu.clock</a></li> <li><a href="en_refman_gen_cpu.html#cpu.set_int_handler">cpu.set_int_handler</a></li> <li><a href="en_refman_gen_cpu.html#cpu.get_int_handler">cpu.get_int_handler</a></li> <li><a href="en_refman_gen_cpu.html#cpu.get_int_flag">cpu.get_int_flag</a></li> </ul></li> </ul></li> <li><a href="en_refman_gen_elua.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />elua</a> <ul> <li><a href="en_refman_gen_elua.html#overview">Overview</a></li> <li><a href="en_refman_gen_elua.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_gen_elua.html#elua.egc_setup">elua.egc_setup</a></li> <li><a href="en_refman_gen_elua.html#elua.save_history">elua.save_history</a></li> <li><a href="en_refman_gen_elua.html#elua.version">elua.version</a></li> </ul></li> </ul></li> <li><a href="en_refman_gen_i2c.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />i2c</a> <ul> <li><a href="en_refman_gen_i2c.html#overview">Overview</a></li> <li><a href="en_refman_gen_i2c.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_gen_i2c.html#i2c.setup">i2c.setup</a></li> <li><a href="en_refman_gen_i2c.html#i2c.start">i2c.start</a></li> <li><a href="en_refman_gen_i2c.html#i2c.stop">i2c.stop</a></li> <li><a href="en_refman_gen_i2c.html#i2c.address">i2c.address</a></li> <li><a href="en_refman_gen_i2c.html#i2c.write">i2c.write</a></li> <li><a href="en_refman_gen_i2c.html#i2c.read">i2c.read</a></li> </ul></li> </ul></li> <li><a href="en_refman_gen_net.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />net</a> <ul> <li><a href="en_refman_gen_net.html#overview">Overview</a></li> <li><a href="en_refman_gen_net.html#structures"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Data structures</a> <ul> <li><a href="en_refman_gen_net.html#error_codes">Error codes</a></li> </ul></li> <li><a href="en_refman_gen_net.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_gen_net.html#net.packip">net.packip</a></li> <li><a href="en_refman_gen_net.html#net.packip">net.packip</a></li> <li><a href="en_refman_gen_net.html#net.unpackip">net.unpackip</a></li> <li><a href="en_refman_gen_net.html#net.unpackip">net.unpackip</a></li> <li><a href="en_refman_gen_net.html#net.lookup">net.lookup</a></li> <li><a href="en_refman_gen_net.html#net.socket">net.socket</a></li> <li><a href="en_refman_gen_net.html#net.close">net.close</a></li> <li><a href="en_refman_gen_net.html#net.connect">net.connect</a></li> <li><a href="en_refman_gen_net.html#net.accept">net.accept</a></li> <li><a href="en_refman_gen_net.html#net.send">net.send</a></li> <li><a href="en_refman_gen_net.html#net.recv">net.recv</a></li> </ul></li> </ul></li> <li><a href="en_refman_gen_pack.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />pack</a> <ul> <li><a href="en_refman_gen_pack.html#overview">Overview</a></li> <li><a href="en_refman_gen_pack.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_gen_pack.html#pack.pack">pack.pack</a></li> <li><a href="en_refman_gen_pack.html#pack.unpack">pack.unpack</a></li> </ul></li> </ul></li> <li><a href="en_refman_gen_pd.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />pd</a> <ul> <li><a href="en_refman_gen_pd.html#overview">Overview</a></li> <li><a href="en_refman_gen_pd.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_gen_pd.html#pd.platform">pd.platform</a></li> <li><a href="en_refman_gen_pd.html#pd.cpu">pd.cpu</a></li> <li><a href="en_refman_gen_pd.html#pd.board">pd.board</a></li> </ul></li> </ul></li> <li><a href="en_refman_gen_pio.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />pio</a> <ul> <li><a href="en_refman_gen_pio.html#overview">Overview</a></li> <li><a href="en_refman_gen_pio.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_gen_pio.html#pio.pin.setdir">pio.pin.setdir</a></li> <li><a href="en_refman_gen_pio.html#pio.pin.setpull">pio.pin.setpull</a></li> <li><a href="en_refman_gen_pio.html#pio.pin.setval">pio.pin.setval</a></li> <li><a href="en_refman_gen_pio.html#pio.pin.getval">pio.pin.getval</a></li> <li><a href="en_refman_gen_pio.html#pio.pin.sethigh">pio.pin.sethigh</a></li> <li><a href="en_refman_gen_pio.html#pio.pin.setlow">pio.pin.setlow</a></li> <li><a href="en_refman_gen_pio.html#pio.port.setdir">pio.port.setdir</a></li> <li><a href="en_refman_gen_pio.html#pio.port.setpull">pio.port.setpull</a></li> <li><a href="en_refman_gen_pio.html#pio.port.setval">pio.port.setval</a></li> <li><a href="en_refman_gen_pio.html#pio.port.getval">pio.port.getval</a></li> <li><a href="en_refman_gen_pio.html#pio.port.sethigh">pio.port.sethigh</a></li> <li><a href="en_refman_gen_pio.html#pio.port.setlow">pio.port.setlow</a></li> </ul></li> </ul></li> <li><a href="en_refman_gen_pwm.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />pwm</a> <ul> <li><a href="en_refman_gen_pwm.html#overview">Overview</a></li> <li><a href="en_refman_gen_pwm.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_gen_pwm.html#pwm.setup">pwm.setup</a></li> <li><a href="en_refman_gen_pwm.html#pwm.start">pwm.start</a></li> <li><a href="en_refman_gen_pwm.html#pwm.stop">pwm.stop</a></li> <li><a href="en_refman_gen_pwm.html#pwm.setclock">pwm.setclock</a></li> <li><a href="en_refman_gen_pwm.html#pwm.getclock">pwm.getclock</a></li> </ul></li> </ul></li> <li><a href="en_refman_gen_rpc.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />rpc</a> <ul> <li><a href="en_refman_gen_rpc.html#overview">Overview</a></li> <li><a href="en_refman_gen_rpc.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_gen_rpc.html#rpc.connect">rpc.connect</a></li> <li><a href="en_refman_gen_rpc.html#rpc.close">rpc.close</a></li> <li><a href="en_refman_gen_rpc.html#rpc.server">rpc.server</a></li> <li><a href="en_refman_gen_rpc.html#rpc.on_error">rpc.on_error</a></li> <li><a href="en_refman_gen_rpc.html#rpc.listen">rpc.listen</a></li> <li><a href="en_refman_gen_rpc.html#rpc.peek">rpc.peek</a></li> <li><a href="en_refman_gen_rpc.html#rpc.dispatch">rpc.dispatch</a></li> </ul></li> </ul></li> <li><a href="en_refman_gen_spi.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />spi</a> <ul> <li><a href="en_refman_gen_spi.html#overview">Overview</a></li> <li><a href="en_refman_gen_spi.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_gen_spi.html#spi.setup">spi.setup</a></li> <li><a href="en_refman_gen_spi.html#spi.sson">spi.sson</a></li> <li><a href="en_refman_gen_spi.html#spi.ssoff">spi.ssoff</a></li> <li><a href="en_refman_gen_spi.html#spi.write">spi.write</a></li> <li><a href="en_refman_gen_spi.html#spi.readwrite">spi.readwrite</a></li> </ul></li> </ul></li> <li><a href="en_refman_gen_term.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />term</a> <ul> <li><a href="en_refman_gen_term.html#overview">Overview</a></li> <li><a href="en_refman_gen_term.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_gen_term.html#term.clrscr">term.clrscr</a></li> <li><a href="en_refman_gen_term.html#term.clreol">term.clreol</a></li> <li><a href="en_refman_gen_term.html#term.moveto">term.moveto</a></li> <li><a href="en_refman_gen_term.html#term.moveup">term.moveup</a></li> <li><a href="en_refman_gen_term.html#term.movedown">term.movedown</a></li> <li><a href="en_refman_gen_term.html#term.moveleft">term.moveleft</a></li> <li><a href="en_refman_gen_term.html#term.moveright">term.moveright</a></li> <li><a href="en_refman_gen_term.html#term.getlines">term.getlines</a></li> <li><a href="en_refman_gen_term.html#term.getcols">term.getcols</a></li> <li><a href="en_refman_gen_term.html#term.print">term.print</a></li> <li><a href="en_refman_gen_term.html#term.getcx">term.getcx</a></li> <li><a href="en_refman_gen_term.html#term.getcy">term.getcy</a></li> <li><a href="en_refman_gen_term.html#term.getchar">term.getchar</a></li> </ul></li> </ul></li> <li><a href="en_refman_gen_tmr.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />tmr</a> <ul> <li><a href="en_refman_gen_tmr.html#overview">Overview</a></li> <li><a href="en_refman_gen_tmr.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_gen_tmr.html#tmr.delay">tmr.delay</a></li> <li><a href="en_refman_gen_tmr.html#tmr.read">tmr.read</a></li> <li><a href="en_refman_gen_tmr.html#tmr.start">tmr.start</a></li> <li><a href="en_refman_gen_tmr.html#tmr.gettimediff">tmr.gettimediff</a></li> <li><a href="en_refman_gen_tmr.html#tmr.getmindelay">tmr.getmindelay</a></li> <li><a href="en_refman_gen_tmr.html#tmr.getmaxdelay">tmr.getmaxdelay</a></li> <li><a href="en_refman_gen_tmr.html#tmr.setclock">tmr.setclock</a></li> <li><a href="en_refman_gen_tmr.html#tmr.getclock">tmr.getclock</a></li> <li><a href="en_refman_gen_tmr.html#tmr.set_match_int">tmr.set_match_int</a></li> </ul></li> </ul></li> <li><a href="en_refman_gen_uart.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />uart</a> <ul> <li><a href="en_refman_gen_uart.html#overview">Overview</a></li> <li><a href="en_refman_gen_uart.html#structures"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Data structures</a> <ul> <li><a href="en_refman_gen_uart.html#uart_constants">UART constants</a></li> </ul></li> <li><a href="en_refman_gen_uart.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_gen_uart.html#uart.setup">uart.setup</a></li> <li><a href="en_refman_gen_uart.html#uart.write">uart.write</a></li> <li><a href="en_refman_gen_uart.html#uart.getchar">uart.getchar</a></li> <li><a href="en_refman_gen_uart.html#uart.read">uart.read</a></li> <li><a href="en_refman_gen_uart.html#uart.set_buffer">uart.set_buffer</a></li> <li><a href="en_refman_gen_uart.html#uart.set_flow_control">uart.set_flow_control</a></li> </ul></li> </ul></li> </ul> </li> <li><a href="en_refman_dep.html" rel="s_20_refman_dep" style="border-bottom-width: 0"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Platform modules</a> <ul id="s_20_refman_dep"> <li><a href="en_modules_lm3s.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />lm3s</a> <ul> <li><a href="en_refman_ps_lm3s_disp.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />disp</a> <ul> <li><a href="en_refman_ps_lm3s_disp.html#overview">Overview</a></li> <li><a href="en_refman_ps_lm3s_disp.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_ps_lm3s_disp.html#lm3s.disp.init">lm3s.disp.init</a></li> <li><a href="en_refman_ps_lm3s_disp.html#lm3s.disp.enable">lm3s.disp.enable</a></li> <li><a href="en_refman_ps_lm3s_disp.html#lm3s.disp.disable">lm3s.disp.disable</a></li> <li><a href="en_refman_ps_lm3s_disp.html#lm3s.disp.on">lm3s.disp.on</a></li> <li><a href="en_refman_ps_lm3s_disp.html#lm3s.disp.off">lm3s.disp.off</a></li> <li><a href="en_refman_ps_lm3s_disp.html#lm3s.disp.clear">lm3s.disp.clear</a></li> <li><a href="en_refman_ps_lm3s_disp.html#lm3s.disp.print">lm3s.disp.print</a></li> <li><a href="en_refman_ps_lm3s_disp.html#lm3s.disp.draw">lm3s.disp.draw</a></li> </ul></li> </ul></li> </ul></li> <li><a href="en_modules_str9.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />str9</a> <ul> <li><a href="en_refman_ps_str9_pio.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />pio</a> <ul> <li><a href="en_refman_ps_str9_pio.html#overview">Overview</a></li> <li><a href="en_refman_ps_str9_pio.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_ps_str9_pio.html#str9.pio.setpin">str9.pio.setpin</a></li> </ul></li> </ul></li> <li><a href="en_refman_ps_str9_rtc.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />rtc</a> <ul> <li><a href="en_refman_ps_str9_rtc.html#overview">Overview</a></li> <li><a href="en_refman_ps_str9_rtc.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_ps_str9_rtc.html#str9.rtc.settime">str9.rtc.settime</a></li> <li><a href="en_refman_ps_str9_rtc.html#str9.rtc.gettime">str9.rtc.gettime</a></li> <li><a href="en_refman_ps_str9_rtc.html#str9.rtc.setdate">str9.rtc.setdate</a></li> <li><a href="en_refman_ps_str9_rtc.html#str9.rtc.getdate">str9.rtc.getdate</a></li> </ul></li> </ul></li> </ul></li> <li><a href="en_modules_mbed.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />mbed</a> <ul> <li><a href="en_refman_ps_mbed_pio.html"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />pio</a> <ul> <li><a href="en_refman_ps_mbed_pio.html#overview">Overview</a></li> <li><a href="en_refman_ps_mbed_pio.html#funcs"><img class="rightarrowpointer" src="ddlevelsfiles/arrow-right.gif" alt="right arrow" />Functions</a> <ul> <li><a href="en_refman_ps_mbed_pio.html#mbed.pio.configpin">mbed.pio.configpin</a></li> </ul></li> </ul></li> </ul></li> </ul> </li> </ul> <p style="margin-left: 35px;"><a href="http://www.pax.com/free-counters.html"><img src="http://counter.pax.com/counter/image?counter=ctr-zsg80nnmqt" alt="Free Hit Counter" style="border: 0;" /></a></p> <p style="margin-left: 18px;"><a href="http://developer.berlios.de" title="BerliOS Developer"> <img src="http://developer.berlios.de/bslogo.php?group_id=9919" width="124px" height="32px" style="border: 0;" alt="BerliOS Developer Logo" /></a></p> </div> <div id="content"> <h3 id="overview">What is eLua?</h3> <div class="sectionbody"> <div class="paragraph"><p><strong>eLua</strong> stands for <strong>Embedded Lua</strong> and the project aims to offer the full implementation of the <a href="http://www.lua.org">Lua Programming Language</a> to the embedded world, extending it with specific features for efficient and portable software embedded development.</p></div> </div> <h3 id="features">General Features</h3> <div class="sectionbody"> <div class="paragraph"><p><strong><strong>eLua</strong></strong> allows you to develop and run Lua programs on a wide variety of microcontrollers.</p></div> <div class="paragraph"><p>Some aspects of <strong>eLua</strong> are:</p></div> <div class="ulist"><ul> <li> <p> <strong>Transforms hardware in commodity:</strong> Design and code your products for <strong>eLua</strong> and make them as hardware-independent as possible. Upgrade or completely change your hardware in the future and save time and money, using the approved source code with little or no modifications. </p> </li> <li> <p> <strong>Source code portability:</strong> Like in Lua, you program in C, Lua or a mixture of both and your program runs in a wide varied of (sometimes radically different) platforms and architectures supported. Full control of the platform.: <strong>eLua</strong> runs on the "bare-metal". There is no Operating System between your programs and the microcontroller. Develop on targets: fully functional Lua and a dedicated shell on the microcontroller itself. No need to install a specific development environment on the PC side, other than a serial or ehternet console/terminal emulator. You can also use any text editor, save your programs in sd/mmc and other media and use them directly in your platforms. </p> </li> <li> <p> <strong>Flexible products:</strong> Add modern high level script-language capabilities to your projects, resulting in highly adaptable, field-programable and reconfigurable designs. Efficient (and cheap!) future evolution to your systems. </p> </li> <li> <p> <strong>Learn embedded:</strong> Simple interactive and interpreted experimenting cycle. Use your desktop programming skills to become an embedded systems developer in no time and with a lot of fun. </p> </li> <li> <p> <strong>Embedded RAD:</strong> Prototype and experiment on a Rapid Aplication Develop model. Test your ideas directly on the target platforms and cheap development kits. No need for simulators or future code adaptations. </p> </li> <li> <p> <strong>Ready to use kits:</strong> A big (and growing!) number of Open Source hardware and commercially available platforms supported. Prototype cheap and fast and design your final hardware later using the produced code. </p> </li> <li> <p> <strong>Longevity:</strong> Add user configuration and scripting capabilities to your projects, making them adaptable to the always changing contexts of industrial processes, evolving engineering, automation standards, field optimizations etc… </p> </li> <li> <p> <strong>Worry-free Licence:</strong> <strong>eLua</strong> is free and open-source software and we promote it as much as we can. But our MIT licence (the same as Lua’s) allows you to use <strong>eLua</strong> in your commercial and private-code products as well. Nothing to ask, no royalties to pay, just tell the world you’re using <strong>eLua</strong>. </p> </li> </ul></div> <div class="paragraph"><p>For more information about the functionality (implemented and planned) in <strong>eLua</strong> check <a href="en_status.html">our status page</a>.</p></div> </div> <h3 id="audience">Audience</h3> <div class="sectionbody"> <div class="paragraph"><p><strong><strong>eLua</strong></strong> has a wide and varied audience, starting from newcomers to the embedded world who want an easy and powerful environment for prototyping, rapid application development and quick production, and ranging towards highly skilled developers that want to extend their programs with the high-level Lua libraries and portable features.</p></div> <div class="paragraph"><p><strong><strong>eLua</strong></strong> allows embedded-oriented programmers to use the simplicity and power of the Lua programming language and to hide the low-level complexities and platform/architecture-dependent features. With <strong>eLua</strong>, the programmer can focus on the actual implementation of his program, without having to worry about accessing the low-level peripheral configuration and data registers, as the platform libraries already take care of this. This increases productivity and eliminates the often frustrating task of dealing with platform-specific drivers.</p></div> <div class="paragraph"><p>The list below summarizes <strong>eLua</strong>'s target audience:</p></div> <div class="ulist"><ul> <li> <p> Embedded developers that are looking for a fast, easy to use and powerful way of coding. </p> </li> <li> <p> First-time embedded programmers (or simply first time programmers) who are looking for an easy way to "dive" into the embedded programming world. <strong>eLua</strong> is a great learning tool. </p> </li> <li> <p> People that aren’t really developers, but still want to be able to prototype an embedded system fast and painless, without having to learn C for that. Embedded developers who need powerful meta-language mechanisms for complex code algorithms and data description. </p> </li> <li> <p> Field engineers that can go to their customer site and debug an <strong>eLua</strong> module on site, without any preparation at all, since the whole development environment resides on chip already. </p> </li> <li> <p> Final clients and decision makers, who benefits from the fact that <strong>eLua</strong> portability transforms hardware into comodities. In systems using <strong>eLua</strong>, replacing field sensor and actuator controllers by diferent models, brands and architectures have no impact on the main application software. </p> </li> </ul></div> </div> <h3 id="_current_status">Current Status</h3> <div class="sectionbody"> <div class="paragraph"><p>The project is very active and the worldwide distributed collaboration has been growing steadly. Manufacturers, user’s companies and other organizations are also starting to collaborate and support the project.</p></div> <div class="paragraph"><p>The current official version is <strong><strong>eLua</strong> v0.8</strong> and we have released 9 versions since the project was published.</p></div> <div class="paragraph"><p>Supported platforms and features include a wide range of microcontroller families and architectures. A list of currently supported platforms, peripherals and features can be seen in our <a href="en_status.html">Status page</a></p></div> </div> <h3 id="authors">Authors</h3> <div class="sectionbody"> <div class="paragraph"><p><strong>eLua</strong> is a joint project of <a href="en_overview.html#contacts">Bogdan Marinescu</a>, a software developer from Bucharest, Romania and <a href="en_overview.html#contacts">Dado Sutter</a>, head of the Led Lab at PUC-Rio University, in Rio de Janeiro, Brazil.</p></div> <div class="paragraph"><p>Its origins come from the <a href="http://www.circuitcellar.com/renesas2005m16c/winners/1685.htm">ReVaLuaTe</a> project, also developed by Bogdan Marinescu (as a contest entry for the 2005 Renesas M16C Design Contest), and the Volta Project, managed by Dado Sutter at PUC-Rio from 2005 to 2007.</p></div> <div class="paragraph"><p><strong>eLua</strong> is developed in an fully open, distributed and colaborative model. An always growing list of collaborators from all over the planet can be found in our <a href="en_comunity.html#credits">Credits Page</a>.</p></div> <div class="tableblock"> <table rules="all" style="margin-left:auto; margin-right:auto;" width="70%" frame="border" cellspacing="0" cellpadding="4"> <col width="50%" /> <col width="50%" /> <thead> <tr> <th align="center" valign="top"> <strong>ReVaLuaTe Project</strong> </th> <th align="center" valign="top"> <strong>Volta Project</strong></th> </tr> </thead> <tbody> <tr> <td align="center" valign="top"><p class="table"><span class="image"> <img src="images/terminalreneseas.jpg" alt="ReVaLuaTe project picture" /> </span></p></td> <td align="center" valign="top"><p class="table"><span class="image"> <img src="images/volta-small.jpg" alt="Volta project picture" /> </span></p></td> </tr> </tbody> </table> </div> </div> <h3 id="contacts">Contacts</h3> <div class="sectionbody"> <div class="paragraph"><p><strong>eLua</strong> authors and main developers can be contacted at:</p></div> <div class="paragraph"><p>Bogdan Marinescu: bogdan.marinescu -at- gmail -dot- com</p></div> <div class="paragraph"><p>Dado Sutter: dadosutter -at- gmail -dot- com</p></div> <div class="paragraph"><p>James Snyder: jbsnyder -at- gmail -dot- com</p></div> <div class="paragraph"><p>You are also welcomed to share your questions and suggestions on our <a href="en_comunity.html#lists">Mail Discussion List</a></p></div> </div> <h3 id="license">License</h3> <div class="sectionbody"> <div class="paragraph"><p><strong>eLua</strong> is Open Source and is freely distributed under the MIT license.</p></div> <div class="paragraph"><p>The Lua code (with all the <strong>eLua</strong> specific changes) is included in the source tree and is, of course, licensed under the same <a href="http://en.wikipedia.org/wiki/MIT_License">MIT license that Lua uses</a>.</p></div> <div class="paragraph"><p>Other (few) components have different licenses. Please see the file LICENSE in the source distribution for details.</p></div> <div class="paragraph"><p>The Lua part of <strong>eLua</strong> is licensed under the Lua licensing terms, which you can find at <a href="http://www.lua.org/license.html">http://www.lua.org/license.html</a>.</p></div> <div class="paragraph"><p>The XMODEM code is adapted from the FreeBSD at91 library, which was written by M. Warner Losh and is released under the BSD license.</p></div> <div class="paragraph"><p>The "pack" module is adapted from the "lpack" module by Luiz Henrique de Figueiredo and it’s placed in the public domain.</p></div> <div class="paragraph"><p>The "bit" module is adapted from the "bitlib" library by Reuben Thomas, distributed under a MIT license.</p></div> <div class="paragraph"><p>The "integer only lua" is based on the "Go Long Lua!" patch by John D. Ramsdell (from the Lua Power Patches page) and is placed in the public domain.</p></div> <div class="paragraph"><p>The multiple memory allocator (dlmalloc) is written by Doug Lea and is placed on the public domain.</p></div> <div class="paragraph"><p>The TCP/IP stack is adapted from uIP, written by Adam Dunkels and released under a BSD license.</p></div> <div class="paragraph"><p>The FAT file sistem is based on FatFs, written by <a href="http://elm-chan.org/">Elm Chan</a>. A copy of the FatFs license can be found in the LICENSE.fatfs file.</p></div> <div class="paragraph"><p>The RPC implementation is based on Russell Smith’s <a href="http://q12.org/lua/index.html">Lua-RPC</a> A copy of the Lua-RPC license can be found in the LICENSE.luarpc file.</p></div> <div class="paragraph"><p>Manufacturer provided CPU support libraries are licensed under their own terms. Check src/platform/<strong>platform-name</strong> for details of each license.</p></div> <div class="paragraph"><p><a href="https://github.com/antirez/linenoise">linenoise</a> (<strong>eLua</strong>'s readline replacement) is released under a BSD license.</p></div> <div class="paragraph"><p>The rest of the <strong>eLua</strong> code is licensed under <a href="http://en.wikipedia.org/wiki/MIT_License">MIT</a>.</p></div> </div> </div> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> try { var pageTracker = _gat._getTracker("UA-11834941-1"); pageTracker._trackPageview(); } catch(err) {}</script> </body> </html>