Sat Jan 18 21:59:35 CET 2020
Scheduler structure: less memory
csp_task: 12 + n_ev * csp_evt:
csp_chan_to_evt: n_chan * 8
csp_evt_list: n_ev_tot * 12
Most of these can be halved by using 16-bit packed pointers.
The expensive parts are the events: 20 bytes/ev.
The smallest controller I run this on has 20kB.
This really isn't all that bad.
It can be halved without too much effort, by using encoded pointers
(RAM_BASE + 4*i). Works for up to 256kBytes. For controllers that
have more memory it problably isn't necessary.
It will make it a lot more awkward.
So don't optimize.