One of the major new features available with Dash is the ability to address extended RAM in 32-bit controllers. On any 32-bit board with firmware built in the last couple of years, you can access up to 8192 bytes of RAM with no obvious change to your code.

So how do we do it?

First, download, install, and open Dash, if you haven’t already done so.

Open the relevant folder or project, then go to the “SPLat” pane on the left-hand side:

In the Limit box under “Memory”, enter the number 8191. This tells Dash the last valid memory address (we start at address 0, so 8191 is actually the 8,192nd byte of memory).

And that’s it, but with one caveat:

If you have an NVEM0 table set up to address memory and it’s not specifically coded to handle 16-bit (2-byte) addresses, it’s vitally important to make sure that memory is in the first 256 bytes of memory (address less than 255).

Modbus tables have no problems with 16-bit addressing: The firmware expects to read a 16-bit address.

Xwire, however, can only handle 8-bit addressing. This becomes more important if you’ve used a defBLOCK to define your Xwire data areas, as these are usually allocated last and therefore higher up in memory. We recommend modifying these blocks to use mEQU directives instead.