Wouldn't it be interesting if Oot could be a good choice for embedded systems too? This is not one of my main goals, but Lua is inspiring in that it seems it started out just trying to a small, portable, simple, language suitable for embedding into host applications, and it turned out to be suitable for running on low-end hardware too.
Oot has similar, if different, goals, so maybe we can think about targetting low-end hardware too. Our similar goals are: simplicity; embeddability into host applications, because it's hard to start using a new language if you have to write a project entirely in that language, but easier if you can start by adding new functionality to an existing project in the new language. Unlike Lua, we are not as concerned with performance, however.
PIC AVR ARM Intel Quark
ARM L1 cache
486 had 8K of L1 cache
Uses an ARM1176JZF-S processor, which was also used by the iPod Touch and many smartphones. (Broadcom BCM2835 SoC? with a GPU) at 700Mhz. The ARM1176JZF-S can have L1 cache configured from 4k to 64k.
This book claims that the Pi's L1 instruction cache is 16k and the L1 data cache is 16k.
Intel Quark SoC? X1000
16 Kbyte shared instruction and data L1 cache.
"The SoC? also features a 512 Kbyte on-die embedded SRAM (eSRAM) that can be configured to overlay regions of DRAM to provide low latency access to critical portions of system memory. For robustness, the contents of this on-die eSRAM are also ECC protected. "
Total memory size from 128 Mbyte to 2 Gbyte
ST Microelectronics STM32L151VB ultra-low-power 32 MHz ARM Cortex-M3 MCU -- http://www.ifixit.com/Teardown/Nest+Learning+Thermostat+2nd+Generation+Teardown/13818
ARM Cortex-M3 processor
Arduino Due: "The Due makes use of Atmel's SAM3U ARM-based process, which supports 32-bit instructions and runs at 96Mhz. The Due will have 256KB of Flash, 50KB of SRAM, five SPI buses, two I2C interfaces, five serial ports, 16 12-bit analog inputs and more. This is much more powerful than the current Uno or Mega.". Cortex M3
http://arduino.cc/en/Main/arduinoBoardDue says: 96 KBytes of SRAM. 512 KBytes of Flash memory for code.
" This operating system is stored in firmware, and runs on the baseband processor. As far as I know, this baseband RTOS is always entirely proprietary. For instance, the RTOS inside Qualcomm baseband processors (in this specific case, the MSM6280) is called AMSS, built upon their own proprietary REX kernel, and is made up of 69 concurrent tasks, handling everything from USB to GPS. It runs on an ARMv5 processor. "
http://beagleboard.org/Products/BeagleBone%20Black
Processor: AM335x 1GHz ARM® Cortex-A8
512MB DDR3 RAM
2GB 8-bit eMMC on-board flash storage
3D graphics accelerator
NEON floating-point accelerator
2x PRU 32-bit microcontrollersConnectivity
USB client for power & communications
USB host
Ethernet
HDMI
2x 46 pin headersSoftware Compatibility
Ångström Linux
Android
Ubuntu
Cloud9 IDE on Node.js w/ BoneScript library
plus much moreThe PRU 32-bit MCUs are:
http://elinux.org/Ti_AM33XX_PRUSSv2
8KB program memory
8KB data memory
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dai0321a/BIHEADII.html
" The Cortex-M0, Cortex-M0+, Cortex-M1, Cortex-M3, and Cortex-M4 processors do not have any internal cache memory. However, it is possible for a SoC? design to integrate a system level cache. Note
A small caching component is present in the Cortex-M3 and Cortex-M4 processors to accelerate flash memory accesses during instruction fetches. "
Technical Specifications:
32 bit ARM Cortex-M4 48 MHz CPU (M4 = DSP extensions)
128K Flash Memory, 16K RAM, 2K EEPROMUsed in http://reprap.org/wiki/Melzi and i hear ATmega128 referred to often (e.g. search on this page for "ATmega128").
"The high-performance Atmel 8-bit AVR RISC-based microcontroller combines 128KB ISP flash memory with read-while-write capabilities, 4KB EEPROM, 16KB SRAM, 32 general purpose I/O lines, 32 general purpose working registers, a real time counter, three flexible timer/counters with compare modes and PWM, two USARTs, a byte oriented 2-wire serial interface, an 8-channel 10-bit A/D converter with optional differential input stage with programmable gain, programmable watchdog timer with internal oscillator, SPI serial port, a JTAG (IEEE 1149.1 compliant) test interface for on-chip debugging and programming, and six software selectable power saving modes. The device operates between 1.8-5.5 volts.
By executing powerful instructions in a single clock cycle, the device achieves throughputs approaching 1 MIPS per MHz, balancing power consumption and processing speed. " -- http://www.atmel.com/devices/atmega1284p.aspx
4K or 8K bytes RAM, expandable to 65K.
"...a MOS Technology 6502 microprocessor running at 1 MHz, two game paddles,[9] 4 kB of RAM, an audio cassette interface for loading programs and storing data, and the Integer BASIC programming language built into the ROMs. The video controller displayed 24 lines by 40 columns of monochrome, upper-case-only (the original character set matches ASCII characters 20h to 5Fh) text on the screen, with NTSC composite video output suitable for display on a TV monitor, or on a regular TV set by way of a separate RF modulator. The original retail price of the computer was $1,298 USD[10] (with 4 kB of RAM) and $2,638 USD (with the maximum 48 kB of RAM).[11]"
" The Apple II Plus, introduced in June 1979,[20][21][22][23] included the Applesoft BASIC programming language in ROM. This Microsoft-authored dialect of BASIC, which was previously available as an upgrade, supported floating-point arithmetic, and became the standard BASIC dialect on the Apple II series (though it ran at a noticeably slower speed than Steve Wozniak's Integer BASIC).
Except for improved graphics and disk-booting support in the ROM, and the removal of the 2k 6502 assembler/disassembler to make room for the floating point BASIC, the II+ was otherwise identical to the original II. RAM prices fell during 1980–81 and all II+ machines came from the factory with a full 48k of memory already installed. The language card in Slot 0 added another 16k, but it had to be bank switched since the remaining CPU address space was occupied by the ROMs and I/O area. For this reason, the extra RAM in the language card was bank-switched over the machine's built-in ROM, allowing code loaded into the additional memory to be used as if it actually were ROM. Users could thus load Integer BASIC into the language card from disk and switch between the Integer and Applesoft dialects of BASIC with DOS 3.3's INT and FP commands just as if they had the BASIC ROM expansion card. The language card was also required to use the UCSD Pascal and FORTRAN 77 compilers, which were released by Apple at about the same time. These ran under the UCSD p-System operating system, which had its own disk format and emitted code for a "virtual machine" rather than the actual 6502 processor. "
" The Apple II Plus was followed in 1983 by the Apple IIe, a cost-reduced yet more powerful machine that used newer chips to reduce the component count and add new features, such as the display of upper and lowercase letters and a standard 64 kB of RAM.
The IIe RAM was configured as if it were a 48 kB Apple II Plus with a language card; the machine had no slot 0, but instead had an auxiliary slot that for most practical purposes took the place of slot 3, the most commonly used slot for 80-column cards in the II Plus. "
http://lifehacker.com/how-to-pick-the-right-electronics-board-for-your-diy-pr-742869540
"It really makes zero sense to use an 8 bit uCtlr just about anywhere anymore, when you can get an ARM in the same size package and at nearly the same cost. Since flash dominates the die area in a microcontroller, 8-bit versus 32-bit logic is noise -- it has less cost impact than the package. There are a lot of Cortex-M3 parts in 48 pin packages now that cost only slightly more than 8 bit parts. (I should point out that there is huge difference between, an ARM Cortex-M3 and an ARM-A9, for instance an MMU.)
In the end, it comes down to MIPS and MFLOPS, and the die area and power required to do that much computation. When an ARM has enough functional units to match the MIPS and MFLOPS of an x86, it will take as much die area and power. At the complexity level of a Pentium IV, the added ugliness of the X86 instruction set is pretty much noise in the total die area and power. (In a past life I was an instruction decode and pipeline control logic design specialist -- I can tell you that x86 instruction decode is as ugly as it comes -- and in the day and age of out-of-order execution, that almost doesn't matter, except that because of all that ugliness x86 code is freakishly dense, which means the same size I-cache holds a lot more useful code. When you toss in the fact that the ugliness is also guarantees employment for instruction decode specialists, I'd call that a win :) "
" I use frequently the cheap $9.90 ARM 32 bits LPC2103 board, running at 48MHz, 32KB flash and 8KB RAM: http://www.wayengineer.com/index.php?main_page=product_info&products_id=129 "
" Wow that pdip cortex-m0 is awesome ! It can even run directly from 2 AAA batteries and is debuggable by openocd without ugly kludges. Once it sells on ebay or anywhere with cheap intl shipping, I’m definitely there ! The only shame is it doesn’t have a usb device interface (but you could make a software-based usb low speed device with tons of time to spare). Thanks a lot, hack a day ! "
"
Hussam Al-Hertani says: August 13, 2012 at 10:35 am
There are many ARM Cortex Boards out there. The best (non-arduino clones) in my opinion are the LPCXpresso boards/IDE. The boards cost $20-$30USD, come in many variations, LPC1114(M0)/LPC11U14(M0)/LPC1227(M0)/LPC1343(M3)/LPC1769(M3( with a hardware debugger and a LPCXPresso Developer environment limited to 128KB program size but thats a lot of programming…infact thats more memory than the program memory available on most of the micros on the LPCXpresso boards. The fact that a 28-pin DIP version of the LPC1114 (32KB Flash) micro is available is also nice though I’d like to see a DIP version with more flash memory…at least 64KB. ... The other two boards that have been announced but not produced are the Cortex-m0+ Freedom board from freescale and cortex-m4 Stellaris launchpad. The Cortex-m0+ Freedom board is $13. You get a Dev board (arduino compatible) with debugger. Hopefully they will be compatible with Freescale’s Evaluation version of CodeWarrior?