I think a stack of 16 kB should be enough, but watch out for certain
objects that might do large stack allocations, e.g. [sigmund~]. A modern
OS usually has a stack size of at least 1 MB...
Regarding heap memory, you could get a rough idea by writing a small
libpd test program on your Desktop with Pd's memory debug option or some
external memory debugging tool like valgrind.
Also don't forget that the code itself also has to be loaded into
memory. Then there are of course the actual Pd patches, which also need
memory.
Finally, note that depending on the actual memory allocator, memory
usage might not be deterministic. There are things like heap
fragmentation to look out for. Pd might do heap allocations repeatedly
during run time, e.g. [vline~] or any list larger than 100 atoms, and
with such a small heap, fragmentation is very likely. One bigger
allocation and boom - you're basically out of memory.
I don't know whether it's much fun to use Pd in such a constrained
environment. Sound very brittle to me... You might be better of with an
actual signal processing library, where you can control every aspect of
your program.
Is there anyone who has actually used or tried to use libpd under such
extreme memory constraints and can share their experience?
Christof
On 24.03.2020 11:49, Boštjan Jerko wrote:
Do you know what are the minimum values for the stack and heap? At least rough
estimation.
B.
On 24 Mar 2020, at 11:30, Christof Ressi <[email protected]> wrote:
Check how much memory Pd is using. I mean, a 16 kB stack and 130 kB heap is
still pretty small... (if those hex numbers mean bytes). Pd hasn't really been
designed to run on microcontrollers ;-). Anyway, have a look at m_memory.c,
there are some heap memory debug options, in case your developer tools don't
provide this.
Christof
On 24.03.2020 09:25, Boštjan Jerko wrote:
I don’t use PDINSTANCE, but after checking some online stuff I thought maybe
the size of the stack is the problem so I’ve changed it from 0x400 to 0x4000
and heap size from 0x200 to 0x2000, but no success.
Still - I guess there is something going on with the memory so I’ll be checking
this some more.
_______________________________________________
Pd-dev mailing list
[email protected]
https://lists.puredata.info/listinfo/pd-dev
_______________________________________________
Pd-dev mailing list
[email protected]
https://lists.puredata.info/listinfo/pd-dev