├── .gitignore ├── CHANGELOG ├── LICENSE ├── LICENSE.fatfs ├── LICENSE.luarpc ├── README.asciidoc ├── SConstruct ├── build_elua.lua ├── cross-lua.lua ├── cross-lua.py ├── doc ├── README.TXT ├── buildall.lua ├── ddlevelsfiles │ └── arrow-right.gif ├── docdata.lua ├── eluadoc.lua ├── eluadoc │ ├── arch_platform_adc.lua │ ├── arch_platform_can.lua │ ├── arch_platform_cpu.lua │ ├── arch_platform_eth.lua │ ├── arch_platform_i2c.lua │ ├── arch_platform_ll.lua │ ├── arch_platform_pio.lua │ ├── arch_platform_pwm.lua │ ├── arch_platform_spi.lua │ ├── arch_platform_timers.lua │ ├── arch_platform_uart.lua │ ├── refman_gen_adc.lua │ ├── refman_gen_bit.lua │ ├── refman_gen_can.lua │ ├── refman_gen_cpu.lua │ ├── refman_gen_elua.lua │ ├── refman_gen_i2c.lua │ ├── refman_gen_net.lua │ ├── refman_gen_nrf.lua │ ├── refman_gen_pack.lua │ ├── refman_gen_pd.lua │ ├── refman_gen_pio.lua │ ├── refman_gen_pwm.lua │ ├── refman_gen_rpc.lua │ ├── refman_gen_spi.lua │ ├── refman_gen_term.lua │ ├── refman_gen_tmr.lua │ ├── refman_gen_uart.lua │ ├── refman_ps_lm3s_disp.lua │ ├── refman_ps_mbed_pio.lua │ ├── refman_ps_mizar32_lcd.lua │ ├── refman_ps_stm32_snd.lua │ ├── refman_ps_str9_pio.lua │ ├── refman_ps_str9_rtc.lua │ └── template.lua ├── en │ ├── arch.html │ ├── arch_coding.txt │ ├── arch_con_term.html │ ├── arch_ints.txt │ ├── arch_ltr.html │ ├── arch_newport.html │ ├── arch_overview.html │ ├── arch_rfs.txt │ ├── arch_romfs.html │ ├── arch_tcpip.html │ ├── asciidoc.conf │ ├── building.txt │ ├── building_unix.html │ ├── building_win.html │ ├── comunity.txt │ ├── dl_old.html │ ├── doc.html │ ├── downloads.txt │ ├── elua_egc.html │ ├── examples.html │ ├── faq.html │ ├── fatfs.html │ ├── filesystems.html │ ├── forum.html │ ├── genericmodules.html │ ├── installing.html │ ├── installing_at91sam7x.html │ ├── installing_avr32.txt │ ├── installing_i386.html │ ├── installing_lm3s.html │ ├── installing_lpc2468.html │ ├── installing_lpc2888.html │ ├── installing_stm32.html │ ├── installing_str7.html │ ├── installing_str9.html │ ├── inthandlers.txt │ ├── linenoise.txt │ ├── media.txt │ ├── modules_lm3s.html │ ├── modules_mbed.txt │ ├── modules_mizar32.txt │ ├── modules_str9.html │ ├── news.txt │ ├── overview.txt │ ├── refman.html │ ├── refman_dep.html │ ├── refman_gen.html │ ├── sermux.txt │ ├── status.txt │ ├── tc_386.html │ ├── tc_arm.html │ ├── tc_cortex.html │ ├── tchainbuild.html │ ├── tmr_ref.html │ ├── toolchains.html │ ├── tut_bootpc.html │ ├── tut_bootstick.html │ ├── tut_openocd.html │ ├── tutorials.html │ ├── using.html │ ├── versionhistory.html │ └── xhtml11.conf ├── images │ ├── En.jpg │ ├── Pt.jpg │ ├── barlineleft.png │ ├── barlineright.png │ ├── blank.png │ ├── eLuaLogo.png │ ├── eLuaLogo.svg │ ├── eLua_16x16.ico │ ├── elua_arch.png │ ├── flashmagic.png │ ├── ft_prog_power.png │ ├── ft_prog_strings.png │ ├── google.gif │ ├── hideall.png │ ├── hideall_over.png │ ├── icons │ │ ├── caution.png │ │ ├── example.png │ │ ├── home.png │ │ ├── important.png │ │ ├── next.png │ │ ├── note.png │ │ ├── prev.png │ │ ├── tip.png │ │ ├── up.png │ │ └── warning.png │ ├── lng_en.png │ ├── lng_en_over.png │ ├── lng_es.png │ ├── lng_es_over.png │ ├── lng_pt.png │ ├── lng_pt_over.png │ ├── minusnode.png │ ├── minusnodelast.png │ ├── next.png │ ├── next_over.png │ ├── node.png │ ├── nodelast.png │ ├── plusnode.png │ ├── plusnodelast.png │ ├── previous.png │ ├── previous_over.png │ ├── sepblank.png │ ├── sepnode.png │ ├── sepvertline.png │ ├── showall.png │ ├── showall_over.png │ ├── stat_not_applicable.png │ ├── stat_not_implemented.png │ ├── stat_not_tested.png │ ├── stat_ok.png │ ├── sync.png │ ├── sync_over.png │ ├── terminalreneseas.jpg │ ├── title_background.png │ ├── vertline.png │ ├── volta-small.jpg │ ├── webbook.png │ └── webbook_over.png ├── menu.css ├── pt │ ├── arch.html │ ├── arch_coding.html │ ├── arch_con_term.html │ ├── arch_ltr.html │ ├── arch_newport.html │ ├── arch_overview.html │ ├── arch_platform.html │ ├── arch_romfs.html │ ├── arch_tcpip.html │ ├── bit_ref.html │ ├── building.html │ ├── building_unix.html │ ├── building_win.html │ ├── comunity.html │ ├── cpu_ref.html │ ├── disp_ref.html │ ├── dl_old.html │ ├── doc.html │ ├── downloads.html │ ├── elua_egc.html │ ├── eluaapi.html │ ├── examples.html │ ├── faq.html │ ├── fatfs.html │ ├── filesystems.html │ ├── forum.html │ ├── genericmodules.html │ ├── gpio_ref.html │ ├── installing.html │ ├── installing_at91sam7x.html │ ├── installing_avr32.html │ ├── installing_i386.html │ ├── installing_lm3s.html │ ├── installing_lpc2468.html │ ├── installing_lpc2888.html │ ├── installing_stm32.html │ ├── installing_str7.html │ ├── installing_str9.html │ ├── modules_lm3s.html │ ├── modules_str9.html │ ├── net_ref.html │ ├── news.html │ ├── overview.html │ ├── platdependentmodules.html │ ├── platdepmodules.html │ ├── pwm_ref.html │ ├── refman.html │ ├── refman_dep.html │ ├── refman_gen.html │ ├── spi_ref.html │ ├── status.html │ ├── sys_ref.html │ ├── tc_386.html │ ├── tc_arm.html │ ├── tc_cortex.html │ ├── tchainbuild.html │ ├── term_ref.html │ ├── tmr_ref.html │ ├── toolchains.html │ ├── tut_bootpc.html │ ├── tut_bootstick.html │ ├── tut_openocd.html │ ├── tutorials.html │ ├── uart_ref.html │ ├── using.html │ └── versionhistory.html └── style1.css ├── entry00138 ├── abstract.doc ├── enc28j60_module_schematic.jpg ├── lights.jpg ├── lights.sch ├── network_ps2_audio_extension.jpg ├── network_ps2_audio_extension.sch ├── radio_module_schematic.jpg ├── stmbrain_diagram.jpg ├── stmbrain_diagram.vsd ├── video_radio.jpg └── video_radio.sch ├── inc ├── buf.h ├── cexcept.h ├── common.h ├── desktop │ ├── platform_conf.h │ └── type.h ├── dlmalloc.h ├── editor │ ├── edalloc.h │ ├── ededit.h │ ├── edhw.h │ ├── editor.h │ ├── edmove.h │ ├── edutils.h │ └── edvars.h ├── elua_adc.h ├── elua_int.h ├── elua_net.h ├── elua_rfs.h ├── elua_uip.h ├── eluarpc.h ├── enc28j60.h ├── help.h ├── linenoise.h ├── linenoise_posix.h ├── luarpc_rpc.h ├── mmcfs.h ├── newlib │ ├── devman.h │ ├── genstd.h │ └── ioctl.h ├── nrf │ ├── nrf.h │ └── nrf_ll.h ├── platform.h ├── ps2.h ├── remotefs │ ├── client.h │ ├── os_io.h │ └── remotefs.h ├── romfs.h ├── rtype.h ├── salloc.h ├── semifs.h ├── serial.h ├── sermux.h ├── shell.h ├── swi.h ├── term.h ├── utils.h ├── validate.h ├── version.h ├── vram.h └── xmodem.h ├── luasrcdiet.lua ├── mkfs.py ├── mux.lua ├── mux.py ├── mux_src ├── config.h ├── main.c ├── mux.vcxproj └── mux.vcxproj.filters ├── others ├── bdf2img │ ├── bdf2img.py │ ├── bdflib.py │ ├── cp437-8x12.bdf │ └── font.py ├── connections.txt ├── getfntdata │ ├── font.py │ └── fontdata.png ├── interrupts.txt ├── lights │ ├── SConstruct │ ├── avr_nrf.c │ ├── i2cee.c │ ├── inc │ │ ├── i2cee.h │ │ ├── ledvm.h │ │ ├── machine.h │ │ ├── nrf_conf.h │ │ ├── pwm.h │ │ ├── type.h │ │ └── uart.h │ ├── ledvm.c │ ├── main.c │ ├── pwm.c │ └── uart.c ├── vgademo-0.0.3 │ ├── connections.txt │ ├── vgacolour.spin │ ├── vgademo.spin │ └── vram.spin └── videov2 │ ├── serial.spin │ ├── spi_asmfast.spin │ ├── vgacolour.spin │ ├── vgademo.spin │ └── vram.spin ├── rfs_server.lua ├── rfs_server.py ├── rfs_server_src ├── deskutils.c ├── deskutils.h ├── log.c ├── log.h ├── main.c ├── main_sim.c ├── net.h ├── net_posix.c ├── net_win32.c ├── os_io_posix.c ├── os_io_win32.c ├── rfs.h ├── rfs_server.vcxproj ├── rfs_server.vcxproj.filters ├── rfs_transports.c ├── rfs_transports.h ├── serial.h ├── serial_posix.c ├── serial_win32.c ├── server.c ├── server.h └── type.h ├── romfs └── .gitignore ├── rpc-lua.py ├── run_elua_sim.sh ├── src ├── buf.c ├── common.c ├── common_tmr.c ├── common_uart.c ├── dlmalloc.c ├── editor │ ├── edalloc.c │ ├── edalloc_zones.c │ ├── ededit.c │ ├── edhw.c │ ├── editor.c │ ├── edmove.c │ └── edutils.c ├── elua_adc.c ├── elua_int.c ├── elua_mmc.c ├── elua_nrf.c ├── elua_uip.c ├── eluarpc.c ├── enc28j60.c ├── fatfs │ ├── ccsbcs.c │ ├── diskio.h │ ├── ff.c │ ├── ff.h │ ├── ffconf.h │ └── integer.h ├── help.c ├── linenoise.c ├── linenoise_posix.c ├── lua │ ├── Makefile │ ├── lapi.c │ ├── lapi.h │ ├── lauxlib.c │ ├── lauxlib.h │ ├── lbaselib.c │ ├── lcode.c │ ├── lcode.h │ ├── ldblib.c │ ├── ldebug.c │ ├── ldebug.h │ ├── ldo.c │ ├── ldo.h │ ├── ldump.c │ ├── legc.c │ ├── legc.h │ ├── lfunc.c │ ├── lfunc.h │ ├── lgc.c │ ├── lgc.h │ ├── linit.c │ ├── liolib.c │ ├── llex.c │ ├── llex.h │ ├── llimits.h │ ├── lmathlib.c │ ├── lmem.c │ ├── lmem.h │ ├── loadlib.c │ ├── lobject.c │ ├── lobject.h │ ├── lopcodes.c │ ├── lopcodes.h │ ├── loslib.c │ ├── lparser.c │ ├── lparser.h │ ├── lrodefs.h │ ├── lrotable.c │ ├── lrotable.h │ ├── lstate.c │ ├── lstate.h │ ├── lstring.c │ ├── lstring.h │ ├── lstrlib.c │ ├── ltable.c │ ├── ltable.h │ ├── ltablib.c │ ├── ltm.c │ ├── ltm.h │ ├── lua.c │ ├── lua.h │ ├── luac.c │ ├── luaconf.h │ ├── lualib.h │ ├── lundump.c │ ├── lundump.h │ ├── lvm.c │ ├── lvm.h │ ├── lzio.c │ ├── lzio.h │ └── print.c ├── luarpc_desktop_serial.c ├── luarpc_elua_uart.c ├── main.c ├── mmcfs.c ├── modules │ ├── adc.c │ ├── auxmods.h │ ├── bit.c │ ├── bitarray.c │ ├── can.c │ ├── cpu.c │ ├── elua.c │ ├── i2c.c │ ├── lpack.c │ ├── luarpc.c │ ├── modcommon.h │ ├── net.c │ ├── nrf.c │ ├── pd.c │ ├── pio.c │ ├── pwm.c │ ├── spi.c │ ├── term.c │ ├── tmr.c │ └── uart.c ├── newlib │ ├── devman.c │ ├── genstd.c │ ├── stdtcp.c │ └── stubs.c ├── nrf │ └── nrf.c ├── patches │ ├── README │ └── strings_and_protos_in_rom.patch ├── platform │ ├── arm_constants.h │ ├── arm_cortex_interrupts.c │ ├── arm_utils.s │ ├── at91sam7x │ │ ├── aic.c │ │ ├── aic.h │ │ ├── assert.h │ │ ├── at91sam7x256 │ │ │ └── AT91SAM7X256.h │ │ ├── at91sam7x512 │ │ │ └── AT91SAM7X512.h │ │ ├── board.h │ │ ├── board_cstartup.s │ │ ├── board_lowlevel.c │ │ ├── board_memories.c │ │ ├── board_memories.h │ │ ├── conf.lua │ │ ├── conf.py │ │ ├── flash256.lds │ │ ├── flash512.lds │ │ ├── pio.c │ │ ├── pio.h │ │ ├── platform.c │ │ ├── platform_conf.h │ │ ├── platform_int.c │ │ ├── pmc.c │ │ ├── pmc.h │ │ ├── pwmc.c │ │ ├── pwmc.h │ │ ├── stacks.h │ │ ├── tc.c │ │ ├── tc.h │ │ ├── trace.h │ │ ├── type.h │ │ ├── usart.c │ │ └── usart.h │ ├── avr32 │ │ ├── EVK1100 │ │ │ ├── evk1100.h │ │ │ ├── evk1100_conf.h │ │ │ └── evk1100_revA.h │ │ ├── EVK1101 │ │ │ ├── evk1101.h │ │ │ └── evk1101_conf.h │ │ ├── MIZAR32 │ │ │ ├── mizar32.h │ │ │ └── mizar32_conf.h │ │ ├── MT48LC16M16A2TG7E │ │ │ └── mt48lc16m16a2tg7e.h │ │ ├── adc.c │ │ ├── adc.h │ │ ├── at32uc3a0128.ld │ │ ├── at32uc3a0128_emblod.ld │ │ ├── at32uc3a0256.ld │ │ ├── at32uc3a0512.ld │ │ ├── at32uc3b0256.ld │ │ ├── board.h │ │ ├── compiler.h │ │ ├── conf.lua │ │ ├── conf.py │ │ ├── conf_isp.h │ │ ├── crt0.s │ │ ├── ethernet.c │ │ ├── ethernet.h │ │ ├── exception.s │ │ ├── flashc.c │ │ ├── flashc.h │ │ ├── gpio.c │ │ ├── gpio.h │ │ ├── i2c.c │ │ ├── i2c.h │ │ ├── intc.c │ │ ├── intc.h │ │ ├── lcd.c │ │ ├── lcd.h │ │ ├── mrepeat.h │ │ ├── platform.c │ │ ├── platform_conf.h │ │ ├── platform_int.c │ │ ├── pm.c │ │ ├── pm.h │ │ ├── pm_conf_clocks.c │ │ ├── preprocessor.h │ │ ├── pwm.c │ │ ├── pwm.h │ │ ├── sdramc.c │ │ ├── sdramc.h │ │ ├── spi.c │ │ ├── spi.h │ │ ├── stacks.h │ │ ├── stringz.h │ │ ├── tc.c │ │ ├── tc.h │ │ ├── tpaste.h │ │ ├── trampoline.s │ │ ├── type.h │ │ ├── uip-conf.h │ │ ├── usart.c │ │ └── usart.h │ ├── cortex_constants.h │ ├── cortex_utils.s │ ├── i386 │ │ ├── boot.s │ │ ├── common.c │ │ ├── common.h │ │ ├── conf.lua │ │ ├── conf.py │ │ ├── descriptor_tables.c │ │ ├── descriptor_tables.h │ │ ├── gdt.s │ │ ├── i386.ld │ │ ├── interrupt.s │ │ ├── isr.c │ │ ├── isr.h │ │ ├── kb.c │ │ ├── kb.h │ │ ├── main.c │ │ ├── monitor.c │ │ ├── monitor.h │ │ ├── multiboot.h │ │ ├── platform.c │ │ ├── platform_conf.h │ │ ├── stacks.h │ │ ├── timer.c │ │ ├── timer.h │ │ └── type.h │ ├── lm3s │ │ ├── adc.c │ │ ├── adc.h │ │ ├── can.c │ │ ├── can.h │ │ ├── conf.lua │ │ ├── conf.py │ │ ├── cpu.c │ │ ├── cpu.h │ │ ├── debug.h │ │ ├── disp.c │ │ ├── disp.h │ │ ├── ethernet.c │ │ ├── ethernet.h │ │ ├── flash.c │ │ ├── flash.h │ │ ├── gpio.c │ │ ├── gpio.h │ │ ├── hw_adc.h │ │ ├── hw_can.h │ │ ├── hw_comp.h │ │ ├── hw_epi.h │ │ ├── hw_ethernet.h │ │ ├── hw_flash.h │ │ ├── hw_gpio.h │ │ ├── hw_hibernate.h │ │ ├── hw_i2c.h │ │ ├── hw_i2s.h │ │ ├── hw_ints.h │ │ ├── hw_memmap.h │ │ ├── hw_nvic.h │ │ ├── hw_pwm.h │ │ ├── hw_qei.h │ │ ├── hw_ssi.h │ │ ├── hw_sysctl.h │ │ ├── hw_timer.h │ │ ├── hw_types.h │ │ ├── hw_uart.h │ │ ├── hw_udma.h │ │ ├── hw_usb.h │ │ ├── hw_watchdog.h │ │ ├── interrupt.c │ │ ├── interrupt.h │ │ ├── lm3s-9b92.ld │ │ ├── lm3s-9d92.ld │ │ ├── lm3s.ld │ │ ├── lm3s6918.h │ │ ├── lm3s6965.h │ │ ├── lm3s8962.h │ │ ├── lm3s9b92.h │ │ ├── platform.c │ │ ├── platform_conf.h │ │ ├── platform_int.c │ │ ├── pwm.c │ │ ├── pwm.h │ │ ├── rit128x96x4.c │ │ ├── rit128x96x4.h │ │ ├── rom.h │ │ ├── rom_map.h │ │ ├── ssi.c │ │ ├── ssi.h │ │ ├── stacks.h │ │ ├── startup_gcc.c │ │ ├── sysctl.c │ │ ├── sysctl.h │ │ ├── systick.c │ │ ├── systick.h │ │ ├── timer.c │ │ ├── timer.h │ │ ├── type.h │ │ ├── uart.c │ │ ├── uart.h │ │ └── uip-conf.h │ ├── lpc17xx │ │ ├── LPC17xx.h │ │ ├── LPC17xx.ld │ │ ├── conf.lua │ │ ├── conf.py │ │ ├── core_cm3.c │ │ ├── core_cm3.h │ │ ├── drivers │ │ │ ├── inc │ │ │ │ ├── lpc17xx_adc.h │ │ │ │ ├── lpc17xx_can.h │ │ │ │ ├── lpc17xx_clkpwr.h │ │ │ │ ├── lpc17xx_dac.h │ │ │ │ ├── lpc17xx_emac.h │ │ │ │ ├── lpc17xx_gpdma.h │ │ │ │ ├── lpc17xx_gpio.h │ │ │ │ ├── lpc17xx_i2c.h │ │ │ │ ├── lpc17xx_i2s.h │ │ │ │ ├── lpc17xx_libcfg_default.h │ │ │ │ ├── lpc17xx_mcpwm.h │ │ │ │ ├── lpc17xx_nvic.h │ │ │ │ ├── lpc17xx_pinsel.h │ │ │ │ ├── lpc17xx_pwm.h │ │ │ │ ├── lpc17xx_qei.h │ │ │ │ ├── lpc17xx_rit.h │ │ │ │ ├── lpc17xx_rtc.h │ │ │ │ ├── lpc17xx_spi.h │ │ │ │ ├── lpc17xx_ssp.h │ │ │ │ ├── lpc17xx_timer.h │ │ │ │ ├── lpc17xx_uart.h │ │ │ │ ├── lpc17xx_wdt.h │ │ │ │ └── lpc_types.h │ │ │ └── src │ │ │ │ ├── lpc17xx_adc.c │ │ │ │ ├── lpc17xx_can.c │ │ │ │ ├── lpc17xx_clkpwr.c │ │ │ │ ├── lpc17xx_dac.c │ │ │ │ ├── lpc17xx_emac.c │ │ │ │ ├── lpc17xx_gpdma.c │ │ │ │ ├── lpc17xx_gpio.c │ │ │ │ ├── lpc17xx_i2c.c │ │ │ │ ├── lpc17xx_i2s.c │ │ │ │ ├── lpc17xx_libcfg_default.c │ │ │ │ ├── lpc17xx_mcpwm.c │ │ │ │ ├── lpc17xx_nvic.c │ │ │ │ ├── lpc17xx_pinsel.c │ │ │ │ ├── lpc17xx_pwm.c │ │ │ │ ├── lpc17xx_qei.c │ │ │ │ ├── lpc17xx_rit.c │ │ │ │ ├── lpc17xx_rtc.c │ │ │ │ ├── lpc17xx_spi.c │ │ │ │ ├── lpc17xx_ssp.c │ │ │ │ ├── lpc17xx_timer.c │ │ │ │ ├── lpc17xx_uart.c │ │ │ │ └── lpc17xx_wdt.c │ │ ├── lpc17xx_libcfg.h │ │ ├── mbed_pio.c │ │ ├── platform.c │ │ ├── platform_conf.h │ │ ├── stacks.h │ │ ├── startup_LPC17xx.c │ │ ├── system_LPC17xx.c │ │ ├── system_LPC17xx.h │ │ └── type.h │ ├── lpc24xx │ │ ├── LPC23xx.h │ │ ├── conf.lua │ │ ├── conf.py │ │ ├── irq.c │ │ ├── irq.h │ │ ├── lpc2468.lds │ │ ├── platform.c │ │ ├── platform_conf.h │ │ ├── platform_int.c │ │ ├── stacks.h │ │ ├── startup.s │ │ ├── target.c │ │ ├── target.h │ │ ├── type.h │ │ └── uart.h │ ├── lpc288x │ │ ├── conf.lua │ │ ├── conf.py │ │ ├── lpc2888.lds │ │ ├── lpc288x.h │ │ ├── lpc28xx.s │ │ ├── platform.c │ │ ├── platform_conf.h │ │ ├── sdram_lpc.h │ │ ├── stacks.h │ │ ├── target.c │ │ ├── target.h │ │ ├── type.h │ │ ├── uart.c │ │ └── uart.h │ ├── sim │ │ ├── boot.s │ │ ├── conf.lua │ │ ├── conf.py │ │ ├── host.c │ │ ├── host.h │ │ ├── hostif.h │ │ ├── hostif_linux.c │ │ ├── i386.ld │ │ ├── platform.c │ │ ├── platform_conf.h │ │ ├── stacks.h │ │ ├── type.h │ │ └── utils.s │ ├── stm32 │ │ ├── FWLib │ │ │ └── library │ │ │ │ ├── inc │ │ │ │ ├── misc.h │ │ │ │ ├── stm32f10x_adc.h │ │ │ │ ├── stm32f10x_bkp.h │ │ │ │ ├── stm32f10x_can.h │ │ │ │ ├── stm32f10x_crc.h │ │ │ │ ├── stm32f10x_dac.h │ │ │ │ ├── stm32f10x_dbgmcu.h │ │ │ │ ├── stm32f10x_dma.h │ │ │ │ ├── stm32f10x_exti.h │ │ │ │ ├── stm32f10x_flash.h │ │ │ │ ├── stm32f10x_fsmc.h │ │ │ │ ├── stm32f10x_gpio.h │ │ │ │ ├── stm32f10x_i2c.h │ │ │ │ ├── stm32f10x_iwdg.h │ │ │ │ ├── stm32f10x_pwr.h │ │ │ │ ├── stm32f10x_rcc.h │ │ │ │ ├── stm32f10x_rtc.h │ │ │ │ ├── stm32f10x_sdio.h │ │ │ │ ├── stm32f10x_spi.h │ │ │ │ ├── stm32f10x_tim.h │ │ │ │ ├── stm32f10x_usart.h │ │ │ │ └── stm32f10x_wwdg.h │ │ │ │ └── src │ │ │ │ ├── misc.c │ │ │ │ ├── stm32f10x_adc.c │ │ │ │ ├── stm32f10x_bkp.c │ │ │ │ ├── stm32f10x_can.c │ │ │ │ ├── stm32f10x_crc.c │ │ │ │ ├── stm32f10x_dac.c │ │ │ │ ├── stm32f10x_dbgmcu.c │ │ │ │ ├── stm32f10x_dma.c │ │ │ │ ├── stm32f10x_exti.c │ │ │ │ ├── stm32f10x_flash.c │ │ │ │ ├── stm32f10x_fsmc.c │ │ │ │ ├── stm32f10x_gpio.c │ │ │ │ ├── stm32f10x_i2c.c │ │ │ │ ├── stm32f10x_iwdg.c │ │ │ │ ├── stm32f10x_pwr.c │ │ │ │ ├── stm32f10x_rcc.c │ │ │ │ ├── stm32f10x_rtc.c │ │ │ │ ├── stm32f10x_sdio.c │ │ │ │ ├── stm32f10x_spi.c │ │ │ │ ├── stm32f10x_tim.c │ │ │ │ ├── stm32f10x_usart.c │ │ │ │ └── stm32f10x_wwdg.c │ │ ├── conf.lua │ │ ├── conf.py │ │ ├── core_cm3.c │ │ ├── core_cm3.h │ │ ├── cortexm3_macro.s │ │ ├── diskio_sdio_stm32.c │ │ ├── enc.c │ │ ├── enc.h │ │ ├── fonts.h │ │ ├── fsmc_nand.c │ │ ├── fsmc_nand.h │ │ ├── fsmc_sram.c │ │ ├── fsmc_sram.h │ │ ├── lstm32_mod.c │ │ ├── lua_lcd.c │ │ ├── nand_if.c │ │ ├── nand_if.h │ │ ├── nrf_conf.h │ │ ├── platform.c │ │ ├── platform_conf.h │ │ ├── platform_int.c │ │ ├── sdcard.c │ │ ├── sdcard.h │ │ ├── snd.c │ │ ├── stacks.h │ │ ├── startup_stm32f10x_hd.s │ │ ├── stm32.ld │ │ ├── stm32f10x.h │ │ ├── stm32f10x_conf.h │ │ ├── stm32f10x_it.c │ │ ├── stm32f10x_it.h │ │ ├── system_stm32f10x.c │ │ ├── system_stm32f10x.h │ │ ├── type.h │ │ └── uip-conf.h │ ├── str7 │ │ ├── 71x_apb.c │ │ ├── 71x_apb.h │ │ ├── 71x_conf.h │ │ ├── 71x_gpio.c │ │ ├── 71x_gpio.h │ │ ├── 71x_lib.h │ │ ├── 71x_map.h │ │ ├── 71x_rccu.c │ │ ├── 71x_rccu.h │ │ ├── 71x_tim.c │ │ ├── 71x_tim.h │ │ ├── 71x_type.h │ │ ├── 71x_uart.c │ │ ├── 71x_uart.h │ │ ├── conf.lua │ │ ├── conf.py │ │ ├── crt0.s │ │ ├── platform.c │ │ ├── platform_conf.h │ │ ├── stacks.h │ │ ├── str711fr2.lds │ │ └── type.h │ └── str9 │ │ ├── 91x_adc.c │ │ ├── 91x_adc.h │ │ ├── 91x_conf.h │ │ ├── 91x_fmi.c │ │ ├── 91x_fmi.h │ │ ├── 91x_gpio.c │ │ ├── 91x_gpio.h │ │ ├── 91x_i2c.c │ │ ├── 91x_i2c.h │ │ ├── 91x_it.h │ │ ├── 91x_map.h │ │ ├── 91x_scu.c │ │ ├── 91x_scu.h │ │ ├── 91x_ssp.c │ │ ├── 91x_ssp.h │ │ ├── 91x_tim.c │ │ ├── 91x_tim.h │ │ ├── 91x_type.h │ │ ├── 91x_uart.c │ │ ├── 91x_uart.h │ │ ├── 91x_vic.c │ │ ├── 91x_vic.h │ │ ├── 91x_wiu.c │ │ ├── 91x_wiu.h │ │ ├── conf.lua │ │ ├── conf.py │ │ ├── interrupt.c │ │ ├── platform.c │ │ ├── platform_conf.h │ │ ├── platform_int.c │ │ ├── stacks.h │ │ ├── startup912.s │ │ ├── startup_generic.s │ │ ├── str912fw44.lds │ │ ├── str9_pio.c │ │ └── type.h ├── ps2.c ├── remotefs │ ├── client.c │ ├── elua_os_io.c │ ├── elua_rfs.c │ └── remotefs.c ├── romfs.c ├── salloc.c ├── semifs.c ├── serial │ ├── serial_posix.c │ └── serial_win32.c ├── shell.c ├── term.c ├── term_vram.c ├── uip │ ├── clock.h │ ├── dhcpc.c │ ├── dhcpc.h │ ├── lc-addrlabels.h │ ├── lc-switch.h │ ├── lc.h │ ├── psock.c │ ├── psock.h │ ├── pt.h │ ├── resolv.c │ ├── resolv.h │ ├── timer.c │ ├── timer.h │ ├── uip-fw.c │ ├── uip-fw.h │ ├── uip-neighbor.c │ ├── uip-neighbor.h │ ├── uip-split.c │ ├── uip-split.h │ ├── uip.c │ ├── uip.h │ ├── uip_arch.h │ ├── uip_arp.c │ ├── uip_arp.h │ ├── uiplib.c │ ├── uiplib.h │ └── uipopt.h ├── vram.c └── xmodem.c ├── test └── test-rpc.lua └── utils ├── build.lua ├── build_release.lua ├── mkfs.lua └── utils.lua /.gitignore: -------------------------------------------------------------------------------- 1 | .build/ 2 | *.hex 3 | *.elf 4 | *.o 5 | *.obj 6 | *.exe 7 | *.bin 8 | *.pyc 9 | inc/romfiles.h 10 | *.swp 11 | .sconf_temp/ 12 | .sconsign.dblite 13 | config.log 14 | mux* 15 | rfs_server* 16 | doc/dist 17 | doc/cache 18 | luarpc 19 | *.binary 20 | *.eeprom 21 | *~ 22 | *.*~ 23 | luac.cross* 24 | *.s#* 25 | ~*.doc 26 | 27 | -------------------------------------------------------------------------------- /LICENSE.fatfs: -------------------------------------------------------------------------------- 1 | FatFs module is an open source software to implement FAT file system to 2 | small embedded systems. This is a free software and is opened for education, 3 | research and commercial developments under license policy of following trems. 4 | 5 | Copyright (C) 2009, ChaN, all right reserved. 6 | 7 | * The FatFs module is a free software and there is NO WARRANTY. 8 | * No restriction on use. You can use, modify and redistribute it for 9 | personal, non-profit or commercial product UNDER YOUR RESPONSIBILITY. 10 | * Redistributions of source code must retain the above copyright notice. 11 | 12 | -------------------------------------------------------------------------------- /LICENSE.luarpc: -------------------------------------------------------------------------------- 1 | Lua-RPC library, Copyright (C) 2001 Russell L. Smith. All rights reserved. 2 | Email: russ@q12.org Web: www.q12.org 3 | For documentation, see http://www.q12.org/lua 4 | 5 | Permission is hereby granted, without written agreement and without 6 | license or royalty fees, to use, copy, modify, and distribute this 7 | software and its documentation for any purpose, including commercial 8 | applications, subject to the following conditions: 9 | 10 | - The above copyright notice and this permission notice shall appear 11 | in all copies or substantial portions of this software. 12 | 13 | - The origin of this software must not be misrepresented; you must 14 | not claim that you wrote the original software. If you use this 15 | software in a product, an acknowledgment in the product 16 | documentation would be greatly appreciated (but it is not 17 | required). 18 | 19 | - Altered source versions must be plainly marked as such, and must 20 | not be misrepresented as being the original software. 21 | 22 | The authors specifically disclaim any warranties, including, but not 23 | limited to, the implied warranties of merchantability and fitness for 24 | a particular purpose. The software provided hereunder is on an "as is" 25 | basis, and the authors have no obligation to provide maintenance, 26 | support, updates, enhancements, or modifications. In no event shall 27 | the authors be held liable to any party for direct, indirect, special, 28 | incidental, or consequential damages arising out of the use of this 29 | software and its documentation. 30 | 31 | This implementation contains no third-party code. 32 | 33 | -------------------------------------------------------------------------------- /cross-lua.lua: -------------------------------------------------------------------------------- 1 | local args = { ... } 2 | local b = require "utils.build" 3 | local builder = b.new_builder( ".build/cross-lua" ) 4 | local utils = b.utils 5 | local sf = string.format 6 | builder:init( args ) 7 | builder:set_build_mode( builder.BUILD_DIR ) 8 | 9 | local output = 'luac.cross' 10 | local cdefs = '-DLUA_CROSS_COMPILER' 11 | 12 | -- Lua source files and include path 13 | local lua_files = [[lapi.c lcode.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c lobject.c lopcodes.c 14 | lparser.c lstate.c lstring.c ltable.c ltm.c lundump.c lvm.c lzio.c lauxlib.c lbaselib.c 15 | ldblib.c liolib.c lmathlib.c loslib.c ltablib.c lstrlib.c loadlib.c linit.c luac.c print.c lrotable.c]] 16 | lua_files = lua_files:gsub( "\n" , "" ) 17 | local lua_full_files = utils.prepend_path( lua_files, "src/lua" ) 18 | local local_include = "-Isrc/lua -Iinc/desktop -Iinc" 19 | 20 | -- Compiler/linker options 21 | builder:set_compile_cmd( sf( "gcc -O2 %s -Wall %s -c $(FIRST) -o $(TARGET)", local_include, cdefs ) ) 22 | builder:set_link_cmd( "gcc -o $(TARGET) $(DEPENDS) -lm" ) 23 | 24 | -- Build everything 25 | builder:make_exe_target( output, lua_full_files ) 26 | builder:build() 27 | 28 | -------------------------------------------------------------------------------- /cross-lua.py: -------------------------------------------------------------------------------- 1 | import os, sys 2 | 3 | output = 'luac.cross' 4 | cdefs = '-DLUA_CROSS_COMPILER' 5 | 6 | # Lua source files and include path 7 | lua_files = """lapi.c lcode.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c lobject.c lopcodes.c 8 | lparser.c lstate.c lstring.c ltable.c ltm.c lundump.c lvm.c lzio.c lauxlib.c lbaselib.c 9 | ldblib.c liolib.c lmathlib.c loslib.c ltablib.c lstrlib.c loadlib.c linit.c luac.c print.c lrotable.c""" 10 | lua_full_files = " " + " ".join( [ "src/lua/%s" % name for name in lua_files.split() ] ) 11 | local_include = "-Isrc/lua -Iinc/desktop -Iinc" 12 | 13 | # Compiler/linker options 14 | cccom = "gcc -O2 %s -Wall %s -c $SOURCE -o $TARGET" % ( local_include, cdefs ) 15 | linkcom = "gcc -o $TARGET $SOURCES -lm" 16 | 17 | # Env for building the program 18 | comp = Environment( CCCOM = cccom, 19 | LINKCOM = linkcom, 20 | ENV = os.environ ) 21 | if comp['PLATFORM'] == 'win32': 22 | suffix = ".exe" 23 | else: 24 | suffix = "" 25 | Decider( 'MD5' ) 26 | Default( comp.Program( output + suffix, Split( lua_full_files ) ) ) 27 | -------------------------------------------------------------------------------- /doc/ddlevelsfiles/arrow-right.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bogdanm/eLuaBrain/35176be6e4e82fb4e7dadf5cd2379c0a4ea2314c/doc/ddlevelsfiles/arrow-right.gif -------------------------------------------------------------------------------- /doc/eluadoc/refman_gen_pd.lua: -------------------------------------------------------------------------------- 1 | -- eLua reference manual - platform data 2 | 3 | data_en = 4 | { 5 | 6 | -- Title 7 | title = "eLua reference manual - platform data", 8 | 9 | -- Menu name 10 | menu_name = "pd", 11 | 12 | desc = "Platform data", 13 | 14 | -- Overview 15 | overview = [[This module contains functions that access specific platform data. Useful if the code needs to know on which platform it runs.]], 16 | 17 | -- Functions 18 | funcs = 19 | { 20 | { sig = "platform = #pd.platform#()", 21 | desc = "Get platform name.", 22 | ret = "$platform$ - the name of the platform on which eLua is running.", 23 | }, 24 | 25 | { sig = "cpu = #pd.cpu#()", 26 | desc = "Get CPU name.", 27 | ret = "$cpu$ - the name of the CPU of the platform on which eLua is running.", 28 | }, 29 | 30 | { sig = "board = #pd.board#()", 31 | desc = "Get board name.", 32 | ret = "$board$ - the name of the board on which eLua is running.", 33 | } 34 | }, 35 | } 36 | 37 | data_pt = data_en 38 | -------------------------------------------------------------------------------- /doc/eluadoc/refman_ps_stm32_snd.lua: -------------------------------------------------------------------------------- 1 | -- eLua platform interface - stm32.snd module 2 | 3 | data_en = 4 | { 5 | 6 | -- Title 7 | title = "eLua reference manual - STM32 snd module", 8 | 9 | -- Menu name 10 | menu_name = "snd", 11 | mod_name = "stm32.snd", 12 | desc = "STM32 PWM based sound generator", 13 | 14 | -- Overview 15 | overview = "This module implements PWM based sound generation with a simple syntax.", 16 | 17 | -- Functions 18 | funcs = 19 | { 20 | { sig = "#stm32.snd.play#( song )", 21 | desc = [[Plays the specified song. The song is described with a simple syntax detailed below. This function is blocking (it doesn't return until the song finished playing).]], 22 | args = [[$song$ - the song to be played. The song is given in a string which contains notes and indications about their duration. Notes are specified like below: 23 |
Notes durations and tempo are specified like below:
31 |This section presents in-depth details about the design and implementation of eLua. It's meant as a guide mainly for eLua developers, 10 | but it contains information that can be also valuable for eLua users. An example is the ROM file system chapter. 11 | Also, by reading the overview of the eLua architecture you'll get a good view of the overall structure of eLua, 12 | which will help no matter if you're a developer or not.
13 |Before diving into this, go to the downloads section and download the source code of eLua, it's much easier to 14 | follow this section if you look at the source code.
15 | 16 | -------------------------------------------------------------------------------- /doc/en/doc.html: -------------------------------------------------------------------------------- 1 | $$HEADER$$ 2 |This section contains the complete eLua documentation for both users and developers, including (but not limited to):
4 |People who want to contribute to the eLua source code will find a lot of important information here:
11 |4 | Previous to v0.8, official eLua distributions included some games, demos and code examples in 5 | the ROM File System. 6 |
7 |8 | These examples grew to independent projects and are now maintained by the 9 | community in dedicated pages on the eLua 10 | Wiki projects section. 11 |
12 |13 | There you will also find some tutorials on how to use them on your kits 14 | and many others. 15 |
16 |The wiki is maintained by eLua users and you are very welcomed to 17 | register and add your own tutorial contribution or to comment on any other. 18 |
19 |You can compile and use more than one file system in eLua, as listed below:
4 |To use eLua in one of the
4 | supported
5 | platforms, you need to install
6 | it in your target kit/device or, more precisely, to flash the eLua
7 | image into the platform of your choice.
8 | This section shows specific installation instructions and tips, for all the
9 | CPU/boards supported by eLua.
10 |
11 | First, you need to have a suitable eLua image for your target.
12 | You can either download one of our ready to use
13 | binary images or build
14 | eLua to have custom image for your needs.
15 |
16 | Please choose the platform of your interest from the "Platform Info" submenu
17 | for more instructions.
Since the i386 platform was implemented as a proof of concept only, the only things you can do with it are:
4 |If you want to do this, build your eLua image or download a precompiled image, as explained in the download page.
9 |However, most of the features that you'd find on an embedded platform won't work. You won't be able to upload programs to your i386 eLua box using the 10 | XMODEM protocol (not because it's impossible, but simply because this doesn't make sense at all on a desktop PC). Also, you won't be able to control the peripherals that you'd normally find in an 11 | embedded CPU (SPI, I2C, PIO and all the others), because they are not present on the i386 platform (they can be emulated via different means, but this is way beyond 12 | the scope of eLua). So, until further notice, i386 will be nothing more than a spectacular demo platform for eLua. If you think that you can make something 13 | more out of it, please feel free to contact us. I'm actually very interested in this, but I lack the necessary resources to continue it.
14 | $$FOOTER$$ 15 | 16 | -------------------------------------------------------------------------------- /doc/en/modules_lm3s.html: -------------------------------------------------------------------------------- 1 | $$HEADER$$ 2 |This paragraph presents all the modules specific to the LM3S platform.
4 | $$FOOTER$$ 5 | 6 | -------------------------------------------------------------------------------- /doc/en/modules_mbed.txt: -------------------------------------------------------------------------------- 1 | // $$HEADER$$ 2 | Reference manual - MBED platform dependent modules 3 | -------------------------------------------------- 4 | 5 | This paragraph presents all the modules specific to the link:status.html[lpc17xx] (mbed) platform. 6 | 7 | // $$FOOTER$$ 8 | -------------------------------------------------------------------------------- /doc/en/modules_mizar32.txt: -------------------------------------------------------------------------------- 1 | $$HEADER$$ 2 |This paragraph presents all the modules specific to the Mizar32 platform.
4 | $$FOOTER$$ 5 | 6 | -------------------------------------------------------------------------------- /doc/en/modules_str9.html: -------------------------------------------------------------------------------- 1 | $$HEADER$$ 2 |This paragraph presents all the modules specific to the STR9 platform.
4 | $$FOOTER$$ 5 | 6 | -------------------------------------------------------------------------------- /doc/en/refman.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |The eLua reference manual presents in details all the modules that can be used from a Lua program running inside eLua. It doesn't cover the 10 | standard Lua libraries, as the Lua reference manual already does a very good job at this. 11 | Instead, it covers eLua-specific modules (most of which are linked with the platform interface) and some generic 12 | "3rd party" modules that are included in eLua by default. There are two types of modules in eLua, both of which are presented 13 | in this section: 14 |
Remember that in order to use a module (generic or not) in eLua you must first include it in your eLua binary image, check 20 | here for instructions on how to do this.
21 |22 | 23 | -------------------------------------------------------------------------------- /doc/en/refman_dep.html: -------------------------------------------------------------------------------- 1 | $$HEADER$$ 2 |
This part of the reference manual presents the platform specifics in eLua (see here for more information about platform 4 | specific modules).
5 | $$FOOTER$$ 6 | 7 | -------------------------------------------------------------------------------- /doc/en/refman_gen.html: -------------------------------------------------------------------------------- 1 | $$HEADER$$ 2 |This part of the reference manual presents the generic modules in 4 | eLua. Please check the available modules and all its functions, in the 5 | Generic Modules sub-menu options of the main menu. For more information on 6 | what a Generic Module is, see here.
7 | $$FOOTER$$ 8 | 9 | -------------------------------------------------------------------------------- /doc/en/tchainbuild.html: -------------------------------------------------------------------------------- 1 | $$HEADER$$ 2 |Although not strictly required, you can roll your own toolchain that can be used to build eLua. As explained here, eLua can generally be built with 4 | ready-made toolchains (with the exception of the i386 port), but you might still want to build your own toolchain for various reasons:
5 |Three separate tutorials explain the procedure of building a regular ARM toolchain, a Cortex-M3 toolchain and an i386 toolchain, respectively.
12 | $$FOOTER$$ 13 | 14 | -------------------------------------------------------------------------------- /doc/en/tutorials.html: -------------------------------------------------------------------------------- 1 | $$HEADER$$ 2 |This section contains information about different tools and procedures related to eLua:
4 |Esta seção apresenta em detalhes, a concepção e implementação de eLua. Foi concebida como um guia, principalmente para os desenvolvedores eLua, 5 | mas contém informação que pode ser também útil também para usuários de eLua. Um exemplo é o capítulo sobre o sistema de arquivos ROM. 6 | Além disso, ao ler a visão geral da arquitetura eLua você vai ter uma boa visão da estrutura geral de eLua, 7 | que irá ajudar, não importa se você é um desenvolvedor ou não.
8 |Antes de nos aprofundarmos nisso, vá para a seção de downloads e baixe o código fonte do eLua, é muito mais fácil seguir esta seção acompanhando pelo código-fonte.
9 | 10 | -------------------------------------------------------------------------------- /doc/pt/disp_ref.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |
11 |
15 |
19 |
23 |
28 |
29 |
Nesta seção você encontrará; a documentação completa de eLua tanto para usuá;rios quanto para desenvolvedores, incluindo (mas não se limitando a): 4 |
Aquele que desejar contribuir com o código fonte de eLua encontrará; aqui muita informação importante: