ΣSigmaStudio Ask AI Русский Log in

Which memory page

SigmaDSP & SigmaStudio JBAX Jun 6, 2025 00:00 2 replies Original on forum ↗
Subscribe
JBAX Question
Jun 6, 2025 00:00

Greetings

i would like to know if it's possible to know in which memory page a parameter is stored, in RAM, from the adress alone.

From SS's exported macros I can get a parameter address (e.g :

#define XXX_ADDR 27038

in decimal)

Is there a way to deduce the memory page index from the address ?

I know that there is a macro called XXX_MEMORY_PAGE for that purpose, but I would like having to only enter one macro in my program to link between sigmastudio and the microcontroller software, and not 2 for each parameter which would be very tedious for a lot of parameters

In other words, my goal is to enter only one parameter (macro) in my microcontroller code to link a parameter, not several by hand. How could I achieve that ?

Audio Signal Processors

software

adau1467

SigmaDSP Audio Processors

Harishgowtham Reply
Jun 6, 2025 00:00

Hello JBAX,

The slave control port address for DM0's upper memory and lower memory is just the same. Depending on the SECONDPAGE_ENABLE (0xF899) register, it's decided whether to write to a lower memory or upper memory. The same applies for the DM1 too.

Please look at the memory map below, you can see that slave port address of DM0's lower memory is from 0x0000-0x4FFF, and DM0's upper memory is also from 0x0000-0x4FFF.

Let's say you have a slave port address 2FFF, if you set SECONDPAGE_ENABLE register as '0' then the new value will be written to DM0's lower memory, if you set register as '1', then it will be written to DM0's upper memory. So, you have a single slave port address for both upper and lower memory, the SECONDPAGE_ENABLE register decides where to write.

So, if you closely watch sigma studio writes, it will always set SECONDPAGE_ENABLE register before writing to upper page memory in big projects.

Regards,

Harish

pastedimage1749210553097v2.png
pastedimage1749210553097v2.png
pastedimage1749210469985v1.png
pastedimage1749210469985v1.png
JBAX Reply
Jun 6, 2025 00:00

Thanks for the answer
I understood that I needed to select between upper and lower memory but didn't quite get that the control port use the same address ranges for both
So I have the answer, I need to use 2 variables in my uc code, for each parameter of the schema, to be able to write to the correct address via the control port