Close

Now in FLASH

A project log for BlueBasic: BASIC for Bluetooth

Embedded BASIC interpreter for CC2540 and CC2541 Bluetooth LE modules

tim-wilkinsonTim Wilkinson 09/09/2014 at 20:530 Comments

The first versions of BlueBasic ran the BASIC code out of RAM. This was simple, but undesirable. There's not that much RAM on these things, and using it for code didn't seem like the right thing. On the other hand, keeping the code in FLASH is tricky because the program is edited on device and FLASH isn't very flexible about constantly being changed.

Now, as of v0.5, I've finally added a flash storage system and moved the code into FLASH. This has a number of advantages. First, you now have 8K of memory for BASIC (rather than ~2K on the old RAM based version). Second, what you write always persists; if you reboot the device, or pull the power for a while, the code will still be right where you left it when you get back. The flash storage system manages the details of finding, writing, reading, erasing and compacting space (with all that fun wear leveling stuff).

Anyway, please check it out. There's still improvements here, but it all works. Next up, a proper way to persist data too.

Discussions