- build_release.lua changed to use the new build system
- checked for proper compilation of all known configurations (boards/known/)
- fixed various small issues in the builder/utils library
- added 'disp_mode=minimal'
- (mostly) finished configurator docs
- arch_overview conterted to AsciiDoc and updated
- 'adc' parameters updates in all configuration files
- added 'config_only' option to the build system
Conflicts:
.gitignore
src/common_tmr.c
src/platform/lm3s/platform.c
src/platform/lm3s/platform_conf.h
src/platform/sim/platform_conf.h
src/platform/stm32/platform_conf.h
src/platform/str9/platform_conf.h
utils/build.lua
Also fixed some minor issues in the builder.
1. Respect the value of build_dir
2. Added romfs_dir (specify ROMFS directory location)
3. Added output_dir (specify the location of the final executable and
associated (bin, hex) files)
- AVR32 platform converted to use the new build system
- new section in configuration: 'build'. Used to set predefined
build parameters (such as allocator, target, boot mode...)
- more build configuration attributes (allocator, target)
- more sanity checks
- more color in the builder
- 'romfs' is now a separate builder target, not a function being called separately
- added mappings for the configurator attributes
From the Lua Power Patches page:
"Use NaN packing for TValue on x86 to reduce memory usage
and tiny performance gain (same as in LuaJIT i2).
It's fully ABI compatible with standard Lua libraries.
On one test script memory consumption reduced from 28Mb
to 21Mb and performance improved about 3.5-5%"
Added support for big endian architectures and LTR compatibility.
These changes allow you to "#define UIP_CONF_IPV6 1" in uip-conf.h
for an IPV6-capable network layer.
This also removes a pointless inclusion in avr32/uip-conf.h
The changes to the other three .c files (from "build.h" to "platform_conf.h")
are just orthogonal future-proofing.
Changes the default Mizar32 CPU to the 256K model,
the default allocator for the 128K Mizar32 to simple (the smallest)
the default allocator for other Mizar32s to multiple to avoid newlib's
dlmalloc bug
and only use one memory region on AVR32 platforms when newlib or simple
for the same newlib dlmalloc bug and because simple can only handle
one region
The separate dependency generation step from the Lua build system
was not needed, now the dependencies are generated at the same time
as the object files.
Now the build system will automatically include all the files in
romfs/ (except .gitignore) in the ROM filesystem. Remember that the
files in romfs/ should NOT be under source control.
emBLOD is Marcus Jansson's second-stage boot loader for AVR32UC3A
parts as used in the EVK1100 and Mizar32 boards, designed to allow
firmware images larger than the on-chip flash memory by loading the
eLua binary from SD card into SDRAM and executing it there.
The source for the emBLOD loader is here https://github.com/cmp1084/emBLOD
When compilation option bootloader=emblod is given to scons, a special
version is compiled that
- locates the program at the start of SDRAM
- doesn't initialize the system clocks and SDRAM controller, as these
are already set up by emBLOD.
If the bootloader= option is not given, eLua is compiled exactly as before.
The changes I've made to Marcus' originally posted patches are to put
DATA and BSS in internal static RAM, the same as before, since in the
best case (memcpy) the SDRAM is three times slower than access to
static RAM
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=80657
This also has an impact on code speed: the interpreter runs 9 times
slower in external SDRAM than it does in internal flash.
Tested and working on Mizar32
- add basic (no clock support) ADC implementation for AVR32, works on EVK1100
- add avr32-unknown-none-gcc to new lua-based build system to support crosstools-ng avr32 toolchain
The files that will be compiled to link an eLua image are now found automatically,
there's no need to specify them explicitly anymore. This applies only to the main
'build_elua.lua' build file, each target's 'conf.lua' still needs to specify them
explicitly (but can use the same automatic source file finding as the main build file).
$ lua build_elua.lua board=et-stm32 burn /dev/ttyUSB0
will invoke stm32ld (the default for stm32's platform 'burn' target) on port /dev/ttyUSB0.
I really have to document all this stuff somewhere. Don't panic though, for now you can use the old build system exactly like you used it before :)
- added support for per-backend targets. avr32 now has a 'burn' target (besides the regular 'prog') that can be used to build the image and burn it to the board (lua build_elua.lua board=atevk1100 burn). It is created in 'conf.lua'
- other fixes and improvements to the build system