Sat Jan 18 21:59:35 CET 2020

Scheduler structure: less memory


csp_task: 12 + n_ev * csp_evt:
csp_evt:   8

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.