Hmm, I suppose XiP's not going to like it if you tie up the flash with erase operations, so I'd still need to either have a second flash chip for general storage (including the file system) or run everything from RAM.
My code size is somewhere around 400 kB for this project, and that's with much of the TCP/IP stack running on a separate module. The performance-critical parts (mostly DSP code) wouldn't take up a ton of RAM, but there's a lot of infrequently-used stuff (including the entire command shell, text editor, OTA update process, etc) that I'd hate to waste RAM on and would be good candidates for placement in slower memory.
The way this project is shaping up, it'd be a shame to not have a more capable platform to let the code stretch its legs. The big problem with the current design is that it's married to a particular (deprecated) SiLabs WiFi module, which was fine when WiFi was mostly used for initial setup and fairly light-duty use. It's getting a heavier emphasis on network features now, and a mostly-abandoned, not terribly reliable WiFi module is just going to create headaches.
So that means planning ahead for a successor that can incorporate the existing features and also handle the extra overhead of the rest of the network stack. And unfortunately that includes having to cram a TLS-capable HTTP server in there, because browsers are getting more picky about security - you can't even enable the mic input on Chrome if the page isn't served up over HTTPS. This device's main job is handling 2-way radio interfaces and VoIP connections so being able to get audio in and out of a browser via WebSockets is important.
Where would I find information on how uTasker can be used in combination with FreeRTOS? Getting off FreeRTOS completely would take some work. Or would you say uTasker's RTOS is worth ditching FreeRTOS for? I don't feel like I'm pushing FreeRTOS too hard at this point - my most complex project has maybe 8 tasks, around a dozen queues, direct-to-task notifications, and a handful of semaphores.
The MK66FN2M0VLQ18 looks like the simplest way forward at the moment. Might not be the most bang for the buck, but if I ever want to actually finish the project I probably shouldn't make a major platform jump right now.
Got any Ethernet PHYs you like, preferably not in a QFN?
Thanks,
Scott