At the end of the compilation you get a memory dump.
The following lines are interesting :
[ 3] .data PROGBITS 20000000 050000 002a8c 00 WA 0 0 8
[ 4] .jcr PROGBITS 20002a8c 052a8c 000004 00 WA 0 0 4
[ 5] .bss NOBITS 20002a90 062a90 0085fc 00 WA 0 0 4
[ 6] .ccm PROGBITS 10000000 058000 0090e8 00 WA 0 0 4
[ 7] .ccmnoload NOBITS 100090e8 0610e8 006074 00 WA 0 0 4
10000000 is CCM (64kb)
20000000 is regular mem (112kb)
After the adress, first value is offset the second one is size.
CCM :
We have 0090e8 + 006074 = 61788 bytes out of 65536.
The descending execution stack starts at the top of this memory, so we can consider it's full.
Standard memory:
002a8c + 000004 + 0085fc = 45196.
So yes there's free RAM here for new waveforms
Are there any other good sites or books to read about coding in C for music applications such as the PreenFM2? Are there any differences when coding for an ARM vs the ATMega?
...
Also, to remove the DC offset created by operator feedback, would we subtract the mean from the signal?
I don't think there's book for coding music applications in C. There is C/C++ on one side and understand how a synth work on the other one.
Then there are lots of information on the web to link both sides.
To remove DC use a simple HP filter.
You can have a look here :
https://github.com/Ixox/preenFM2/blob/master/src/synth/Voice.cpp#L2952And line 2967 and 2987.
I filter freq4 to remove DC.
Xavier