max. size of sysex message = 256 bytes in the RK002 sysex parser. So no small chunks or whatever :-( (unfortunately; .. this maybe needs some improvement indeed; by default the cable will not pass-through messages bigger than that it seems)
however : you can implement
bool RK002_onRxByte(byte d) {}
yourself, and parse every byte received on the input 🫤
"Dynamic memory" : yes: variably-sized, heap-allocated, memory garbage generating, evil construct which should be avoided in realtime systems, because of it's intrinsic nondeterministic behaviour.
data declared as global/static is not per-se stored inside the code image, 'data' is 'initialized memory', and takes up ROM (for the init value) as well as RAM (for the working memory) (!)
if you want to store a sysex message you can declare it as 'const' (!) which will not take-up RAM memory, and only ROM/FLASH. In Arduino this is done by declaring a variable with 'PROGMEM' .. I'm not entirely sure whether the RK002 compiler also accepts this.
the API call 'RK002_sendSystemExclusive()
' will happily send-out big chunks of sysex for you.