4 ms·
Once did a prototype that had to work with a really memory poor device. Compression and speed is meh, but still worth it (small serial interfaces are no racing
by eurg 5y ago
Once did a prototype that had to work with a really memory poor device. Compression and speed is meh, but still worth it (small serial interfaces are no racing dogs either).
Also very simple to understand and port and play around with, and to compare with other algorithms. More or less took this project as an excuse to learn some compression basics. Can recommend
- malux85 5y agoI’m curious about embedded and constrained environments, do you mind telling us a bit more? What was the project? What hardware was involved? What tooling and OS’s did you use? What were the most challenging technical problems? Really just curious :)
- roland35 5y agoNot the OP, but check out devices like Microchip's PIC (8 bits) or AVR (8 bits), or ARM Cortex M0 or Cortex M3/4 devices. On cheaper devices you can get down to a few kB of RAM and Flash memory, so you need to be mindful of what you use! When working with embedded devices like that, the main thing is you can't just easily import libraries or use many layers of abstraction (limited stack depth too). So generally everything is done at a low level.
- eurg 5y ago> What were the most challenging technical problems? While technically the customer asked for the solution to problem A, they wanted us to solve problem B, but we failed to invoke our inner patio11, and as a result delivered what they said instead of what they meant. A frustrating lesson for me. At that point in my career I should have known better already. ETA: sibling comment about Cortex-M0 is spot on. You really start counting bytes. Some kiB of RAM sound a lot, but when you have to juggle several tasks, and don't have to option to write from scratch but instead reuse existing old code you've lying around, stuff gets dirty pretty quickly. Other team member was doing the hard work, I was just providing tooling for them.
- BenjiWiebe 5y agoAnd some microcontrollers have even less RAM. Quite a few AVRs have 1k or 512 bytes of RAM. A few don't have RAM (just CPU registers) but that's very different again.