I know many of the lower-end PICs have fixed hardware stacks that can become an issue during firmware development. I've recently heard that the PIC24-series (and maybe just anything above PIC18 series) have software-defined stacks? Does that mean they're dynamically allocated while the code is running or is the size just assigned by MPLAB when you compile?
I know this is more of a nuanced question, but I appreciate any help there might be out there. It just doesn't seem to be talked about much on the datasheets or product pages.