Using eLua with the STR9 CPUs from ST
Among the ARM based MCUs available today, the STR9 CPUs from ST stand up because of a few unique features. First, their core is an ARM966-E, as opposed to the very popular ARM7TDMI core. This, together with some cleverly chosen on-chip hardware blocks, allows the CPU to run at 96MHz, which is very fast for a general purpose MCU. The particular CPU I'm using (STR912FW44) ) also has 512k of flash (and another bank of 32k flash) and 96k of internal RAM, so you won't be running out of memory anytime soon. It is accompanied by a very good support library, and ST provides a lot of nice tools for STR9, including a graphical tool that you can use to configure the chip exactly how you want. When I wrote to ST about eLua, they agreed to send me a STR9-comStick board to run eLua on it. Thank you very much for your help, once again. This is the board that I'm going to use through this tutorial.
Prerequisites
Before you'll be able to use eLua on the STR912FW44 CPU, make sure that:
- you're using Linux, Windows, or any other OS that has support for OpenOCD. You might have a look at my OpenOCD tutorial before continuing.
- if you're on Windows, you have installed the STR9-comStick support package from the accompanying CD.
- you already built your eLua image for the STR912FW44 CPU. Simply put, this means that you have a GCC toolchain for ARM, and that you used it to build eLua (remember to specify "prog" on the scons command line to get a .bin file that's suitable for programming). Or follow the instructions from the download page and download a precompiled binary image.
Burning eLua to the STR9-comStick
You need OpenOCD to do this. Just follow the instructions from my OpenOCD tutorial . On the tutorial page you'll also find links to the OpenOCD configuration files that I'm using for burning eLua to the comStick.
IMPORTANT NOTE: for some very strage reasons (probably related to the on-board USB to JTAG converter) my comstick does NOT start to execute the code from its internal flash after being powered up via the USB cable (faulty reset sequence?). To overcome this, you'll find a special OpenOCD configuration file on my OpenOCD tutorial page. It is called comrst.cfg, and you can use it to reset your comstick after it is powered up.
That's it! eLua is now programmed in the CPU, so you can start your terminal emulator and enjoy it, as described in using eLua. If you have any problems with this procedure, feel free to contact us.