1
0
mirror of https://github.com/elua/elua.git synced 2025-01-08 20:56:17 +08:00

154 Commits

Author SHA1 Message Date
James Snyder
709d18c080 Updated ADC Module:
- now uses bitfields rather than HWREGBITW for keeping track of state
- started generalizing functionality for smoothing, state tracking etc... into
  separate functions
- burst mode now works, including with smoothing enabled (only operates in a
  blocking mode, non-blocking to come later)
2009-01-31 21:04:08 +00:00
Bogdan Marinescu
afa96dcc25 I was bored during a long training, so I added partial ANSI term support to i386. Now you can life.lua on it :) 2009-01-28 17:53:33 +00:00
James Snyder
da35498b02 - ADC now runs with an interrupt handler, which manages samples from each
channel.  Smoothing support (rolling average) has been added. adcscope has
  been updated to reflect these changes, and show output from 4 channels at
  once.

- fix for typo in stm32/platform.c
2009-01-27 20:49:45 +00:00
James Snyder
16e4dba18d line endings for rit128 changed to unix. 2009-01-27 20:49:34 +00:00
Bogdan Marinescu
0d9fcf9909 - lua parsing: lparser.c was modified to allocate some of its structures to
the heap instead of the stack. Also, the stack size was bumped to at least
  2048 bytes on all backends. Hopefully this will take care of most issues
  related to stack overflows.

- new buffering system available. Originally I planned to make it fully
  generic, but I came to the conclusions that this would take too much
  development work and system resources (RAM/Flash) if done properly, so
  currently it's only used on UART RX (although it could be easily extended
  for other peripherals). For an example of use check the AT91SAM7X and
  AVR32 backend (platform_init and associated interrupt handlers and also
  platform_conf.h).

- new XMODEM implementation. Better, cleaner, bug fixed, and BSD instead of
  GPL.

- AVR32 can use the huge (32MBytes) SDRAM on the board as system memory now.

- fixed an error in elua_sbrk/_sbrk_r (and revised the compilation options
  for dlmalloc).

- added the CPU module and interrupt support on the STR9 platform.

- uart module changes: 'sendstr' is out, but the regular 'send' will send
  strings instead of simple chars (which makes sense since Lua doesn't have
  a "char" type). Also, the 'timer_id' and 'timout' parameters of the 'recv'
  function are now optional.
2009-01-22 19:46:47 +00:00
James Snyder
569a9f69e7 fix to correctly use multiple input channels 2009-01-22 03:25:09 +00:00
James Snyder
150005cad9 Quick ADC demo (not yet an actual scope, just writes text to OLED with last
reading).
2009-01-21 23:41:04 +00:00
James Snyder
cd2e9e1cf0 Initial ADC implementation. 2009-01-21 23:40:34 +00:00
James Snyder
88ccbc5375 Typo fix. :-) 2009-01-21 23:40:03 +00:00
Pedro Bittencourt
fe072acadd Completing some comments about lua function calls on that module 2009-01-19 20:34:06 +00:00
Dado Sutter
1acaa67361 Fixed mistyped syntax of disp.imagedraw() function 2009-01-19 20:25:50 +00:00
Bogdan Marinescu
69e02e0375 bugfix: mathlib's rotable not included anymore in 'lualong' mode 2009-01-14 11:03:28 +00:00
Bogdan Marinescu
093108faad eLua stack overflow fix
DETAILS: for most platforms, the main stack size was set to 256 bytes to
save RAM. During a routine Lua debugging session, I discovered that there
are at least two data structures in Lua (declared on the stack) that can
lead to a stack overflow problem because of their size:

lparser.h -> struct FuncState (original size: 572) is allocated on the stack
when the parser needs to compile a Lua function
lstrlib.c -> MatchState (original size: 272) is allocated on the stack
everytime the string library does match-related operations.

To fix the first problem I modified these macros in luaconf.h:

/*
@@ LUAI_MAXUPVALUES is the maximum number of upvalues per function
@* (must be smaller than 250).
*/

LUAI_MAXUPVALUES from 60 to 10

/*
@@ LUAI_MAXVARS is the maximum number of local variables per function
@* (must be smaller than 250).
*/
LUAI_MAXVARS from 200 to 25

The new size of the FuncState structure: 124

To fix the second problem I modified this macro in luaconf.g

/*
@@ LUA_MAXCAPTURES is the maximum number of captures that a pattern
@* can do during pattern-matching.
** CHANGE it if you need more captures. This limit is arbitrary.
*/

LUA_MAXCAPTURES from 32 to 10

The new size of the MatchState structure: 96

All these values are experimental, but they should work well.

Also, I forced the main stack to 512 bytes in all the backends. Hopefully
this will take care of this problem.
2009-01-12 11:52:58 +00:00
Bogdan Marinescu
a529d5d835 LTR bugfix: wrong metatable query for rotables in luaV_gettable 2009-01-12 10:35:58 +00:00
Bogdan Marinescu
dd5294d821 changed propedit 2009-01-11 20:44:22 +00:00
Bogdan Marinescu
f729155fce - Lua Tiny RAM (LTR) patch is now integrated in eLua and is enabled by default
- all eLua modules updated to work with LTR
- "cpu" module added to avr32, at91sam7x, str7
- "disp" module no longer generic (now stays in src/modules/lm3s). For this reason, the "disp" platform interface was also removed.
- the "modcommon" mechanism in STM32 (ROM loader) was depreciated in favour of the Lua Tiny RAM patch (and the "stm3210lcd" module from the STM32 backend now uses LTR).
- small bugfixes
2009-01-11 20:43:02 +00:00
James Snyder
737aeda5b8 No need to double-check baud with asserts. 2009-01-09 23:22:17 +00:00
James Snyder
f9a608c332 Minor change to reflect name usart.h. 2009-01-09 23:22:09 +00:00
James Snyder
51163fdf86 Update drivers to StellarisWare revision 3740.
- functionality added to UART driver
- simplification to reduce code repetition
- misc other fixes?
2009-01-09 23:21:58 +00:00
James Snyder
4b505e92eb Fix RIT OLED driver to work on LM3S6965 (Rev C and later boards) 2009-01-09 22:18:23 +00:00
James Snyder
4ef76a03b9 Fix for LM3S6965 PWM1. 2009-01-09 22:12:35 +00:00
Bogdan Marinescu
fca447cb12 New feature: per-board file system specifications (which means that not all the files from romfs/ will end up in your binary, you now need to specify
in SConstruct what files (or rather samples) you need to be included in the
ROM file system for each board).
2009-01-08 15:20:05 +00:00
Bogdan Marinescu
e851b3cfce updated tmr module for the virtual timers 2009-01-07 20:27:07 +00:00
Bogdan Marinescu
58da9ac870 - factored out common code from all backends in src/common.c
- added virtual timers (on LM3S, AVR32 and AT91SAM7 for now)
- added interrupt handling code for AT91SAM7 and AVR32
- fixed two serious bugs that prevented the eLua image to run on both STR9 and LPC2888 (linker command file issues)
- fixed line endings (DOS->UNIX) in the STM32 library files
- fixed preprocessor errors (hopefully all of them) like #if ELUA_CPU == LM3S8962
- other minor or less than minor fixes :)
2009-01-07 20:17:18 +00:00
Bogdan Marinescu
450dc03989 fix yet another preprocessor error 2009-01-02 11:57:02 +00:00
Dado Sutter
3989133645 restoring the lm3s.c file, wrongly removed from the repo (by me :) before. 2009-01-01 00:10:52 +00:00
Dado Sutter
acf34177af Independent txt doc files removed from trunk 2008-12-31 22:01:26 +00:00
Dado Sutter
6513694269 Independent txt doc files beeing removed.
They are all migrating to the eLua_Manual.pdf
2008-12-31 21:57:32 +00:00
Dado Sutter
ce14c9199a eLua doc migrating to PDF Format
an eLua_Manual.pdf was added to docs
separate .txt files will be removed soon
The eLua_Manual.odt development will be part of another area (branch) of the repo
2008-12-30 04:18:11 +00:00
Bogdan Marinescu
bb3d4466fb fixed a build problem 2008-12-27 15:51:36 +00:00
Bogdan Marinescu
843bb3dd59 Now we have both GPIO and timer support on AVR32. led.lua sample was also modified to work with the ATEVK1100 board. More to come after I get rid of some other projects. 2008-12-16 19:01:51 +00:00
Bogdan Marinescu
c1d88386dc many fixed to the AVR32 backend, update if you need AVR32 support 2008-12-14 21:39:51 +00:00
Bogdan Marinescu
edac46fcd6 preliminary AVR32 port 2008-12-13 23:31:40 +00:00
Dado Sutter
77d626b26a href tags changed to relative (to current host) to avoid the need for "elua" host be known by DNS.
Modules tested ok after changes.
2008-12-13 21:31:20 +00:00
Dado Sutter
6ac505a181 Pong example remorphed for a require() / module () scheme.
It now illustrates how to create and use a module in Lua for eLua.
An LM3S platform-dependend module is created, exposing it's buttons, leds and offering some utility functions.
2008-12-08 19:39:47 +00:00
Dado Sutter
a20cfa3563 Still integrating basic text from previous doc & site content. 2008-12-01 23:04:05 +00:00
Dado Sutter
69157a6d21 pong.lua code updated to the new disp.stringdraw() and disp.imagedraw() disp module
syntax.
2008-12-01 01:46:19 +00:00
Dado Sutter
53cd95035e First version of the eLua Manual added to the docs folder.
This very first version is basic an assembly of the previous txt files written
by Bogdan.
Documentation for the new disp module was included and some initial revisions too.
This document, in PDF format, will soon replace the separated txt files in the docs
folder of the eLua distros and it will also be available separetely on the site.
2008-11-30 23:34:18 +00:00
Dado Sutter
9083b3171c - Added support for RIT128x96x4 OLED Display on LM3S8962 platform, on module "disp"
- ls shell command enhanced with column aligned file sizes and total size report
- New section on CHANGELOG for ongoing dev changes, to ease up next release
- pong.lua added to examples in romfs
- minor URL and e-mail updates, to reflect the new eluaproject.net domain
2008-11-30 22:30:06 +00:00
Dado Sutter
832ef91723 Shell command "ver" suggested URL updated to new domain http://www.eluaproject.net 2008-11-28 02:14:15 +00:00
Dado Sutter
07fa2652be LUA_PATH_DEFAULT reconfigured, to point to eLua's File System, so we can require() for modules 2008-11-25 23:33:36 +00:00
Dado Sutter
13d6993b43 Code added for an "ls" (or "dir") shell command 2008-11-24 13:48:46 +00:00
Mike Panetta
fd7cbd0109 * Finished stm3210lcd module.
* Added systick functions (for stm3210lcd module)
 * Created modcommon.{c,h} which contain module helper functions and module loader
 * Created lstm32_mod.c which demonstrates module helper functions and module loader (in addition to lua_lcd.c)
 * Added a .lua_init section to the stm32.ld linker script to facilitate platform module loading (see modcommon and lstm32_mod)
 * Updated conf.py auxmods.h and SConstruct to build the new files.
 * Modified linit.c to add support for require and package back in so that require 'stm3210lcd' would work.
2008-11-12 04:53:10 +00:00
Mike Panetta
88242c590f Fixed a bug in stm32/conf.py that broke build due to finding .svn dir. Added files to start lcd module for the STM3210E-EVAL 2008-11-11 04:08:48 +00:00
Mike Panetta
599651e5cf Checking in changes for new STM32 platform. Added the stm32 platform and the STM3210E-EVAL board. 2008-11-08 07:14:51 +00:00
Mike Panetta
5f62b0e7f7 Added stm32 ports dir. Only basic functionality supported for now (U(S)ARTS and PIO) 2008-11-08 07:09:35 +00:00
Bogdan Marinescu
2f8d70c2c0 fixed some errors in index.pht, also made it smaller 2008-11-03 21:01:45 +00:00
Bogdan Marinescu
92465cf2a6 looks like I still had some documentation to update :) 2008-11-01 20:39:50 +00:00
Bogdan Marinescu
967722761a ready for 0.5 2008-11-01 18:32:37 +00:00
Bogdan Marinescu
df5a678aa5 multiple changes, documentation updated, getting ready for the new release 2008-10-31 21:32:15 +00:00