(no title)
jake_morrison | 2 years ago
Lack of MMU caused some unexpected issues:
* Because there is no MMU, there are no shared libraries. All the binaries have to be statically linked. We had a total of 2MB of ROM, of which about 1M was the Linux kernel. So we ran out of space for the programs we needed for the application about 3/4 of the way through the project. The solution was to use Lua, which was a 200k binary, and it could run scripts to do some things.
* Lack of MMU means no memory protection between programs. One program can step on another program's memory. Just like the good old days of DOS. Ouch!
* We started with the ucLinux distribution, which is pretty lame. A lot of programs in the tree didn't build. We ended up rebuilding with Yocto, and making patches to things where necessary.
* We found other entertaining bugs: https://www.cogini.com/blog/debugging-your-space-probe/
kragen|2 years ago
possibly https://github.com/mickael-guene/fdpic_doc postdates the time you're talking about, but since you mention yocto, i suspect not
lua is pretty great
jake_morrison|2 years ago